You are on page 1of 9

TUGAS JOBSHEET 03

PRAKTIKUM STRUKTUR DATA

DOSEN PENGAMPU:
Vera Irma Delianti, S.Pd., M.Pd.T.

OLEH:
ALVIGO J.MOLINSKY
22076061

PROGRAM STUDI PENDIDIKAN TEKNIK ELEKTRONIKA


DEPARTEMEN TEKNIK ELEKTRONIKA
FAKULTAS TEKNIK
UNIVERSITAS NEGERI PADANG
2022
1. Percobaan 1

a. SCREENSHOT INPUT

b. SCREENSHOT OUTPUT
2. Percobaan 2

a. SCREENSHOT INPUT

b. SCREENSHOT OUTPUT
3. Percobaan 3

a. SCREENSHOT INPUT

b. SCREENSHOT OUTPUT
4. Percobaan 4

a. SCREENSHOT INPUT

b. SCREENSHOT OUTPUT
LATIHAN

Tugas 1

a. SOURCECODE PROGRAM

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define JUDUL 50
#define N 10
struct Lagu{
int no;
char title[JUDUL];
int time;
};
struct Album{
int data;
struct Lagu lagu[N];
};
void display();
void beginsert();
void lastinsert();
void begin_delete();
void last_delete();
int main() {
struct Album album = {0};
int choice;
do{
printf("MENU\n");
printf("1. Cetak album\n");
printf("2. Tambah lagu di awal album\n");
printf("3. Tambah lagu di akhir album\n");
printf("4. Hapus lagu dari awal album\n");
printf("5. Hapus lagu dari akhir album\n");
printf("6. Keluar\n");
printf("Pilih menu (1-6): ");
scanf("%d", &choice);
switch (choice) {
case 1: display(&album); break;
case 2: beginsert(&album); break;
case 3: lastinsert(&album); break;
case 4: begin_delete(&album); break;
case 5: last_delete(&album); break;
case 6: exit(0); break;
default: printf("Menu tidak tersedia.\n");
}
printf("\n");
} while (1);
}
void display(struct Album *album) {
int i;
if (album->data == 0) {
printf("Album masih kosong\n");
} else {
printf("No\tTitle\tTime\n");
for (i=0;i<album->data;i++){
printf("%d\t", album->lagu[i].no);
printf("%s\t", album->lagu[i].title);
printf("%d\n", album->lagu[i].time);
}
}
}
void beginsert(struct Album *album) {
int i;
struct Lagu x;
printf("Masukkan judul lagu: ");
scanf("%s", x.title);
printf("Masukkan durasi lagu (menit): ");
scanf("%d", &x.time);
if (album->data == 0) {
x.no = 1;
album->lagu[0] = x;
album->data++;
} else {
for (i = album->data - 1; i >= 0; i--) {
album->lagu[i+1] = album->lagu[i];
album->lagu[i+1].no++;
}
x.no = 1;
album->lagu[0] = x;
album->data++;
}
printf("Lagu berhasil ditambahkan di awal album.\n");
}
void lastinsert(struct Album *album) {
struct Lagu x;
printf("Masukkan judul lagu: ");
scanf("%s", x.title);
printf("Masukkan durasi lagu (menit): ");
scanf("%d", &x.time);

if (album->data == 0) {
x.no = 1;
album->lagu[0] = x;
album->data++;
} else {
x.no = album->lagu[album->data-1].no + 1;
album->lagu[album->data] = x;
album->data++;
}
printf("Lagu berhasil ditambahkan di akhir album.\n");
}
void begin_delete(struct Album *album) {
int i;
if (album->data == 0) {
printf("Album masih kosong\n");
} else {
for (i = 0; i < album->data - 1; i++) {
album->lagu[i] = album->lagu[i+1];
album->lagu[i].no--;
}
album->data--;
printf("Lagu berhasil dihapus dari awal album.\n");
}
}
void last_delete(struct Album *album) {
if (album->data == 0) {
printf("Album masih kosong\n");
} else {
album->data--;
printf("Lagu berhasil dihapus dari akhir album.\n");
}
}

b. SCREENSHOT INPUT

c. SCREENSHOT OUTPUT

You might also like