Anda di halaman 1dari 9

Nama : Muhammad Rizqi

NIM : 22076049
Prodi : Pendidikan Teknik Informatika
TUGAS 9: Tentang STRUCT dan ARRAY of STRUCT

1. Buatlah suatu tipe bentukan berupa struct bernama PESERTA dan jadikan
sebagai tipe data baru menggunakan klausa typedef untuk struktur seperti
berikut: PESERTA
nama

nomorPeserta

Algoritma:
Deklarasi
Variabel
Nama, namaPeserta : char
Deskripsi
Start
typedef struct peserta
nama[30]
nomorPeserta[10]
peserta
peserta peserta01
strcpy(peserta01.nama, iqbal’)
strcpy(peserta01.nomorPeserta, ‘051’)
write(‘nomor peserta’, peserta01.nama, peserta01.nomorPeserta’)
End

Implementasi C:
//Program Menampilkan Nama Dan nomor peserta

#include <stdio.h>
#include <string.h>

printf("Programmer : Muhammad Iqbal\n");


printf("NIM : 22076048\n");
printf("Prodi : Pendidikan Teknik Informatika\n");

typedef struct Peserta{


char nama [30];
unsigned int nomor[10];
}biodataPeserta;

int main()
{
biodataPeserta peserta01;

strcpy (peserta01.nama, "Badu");


peserta01.nomor[10] = 932;

printf("nama peserta : %s\n",peserta01.nama);


printf("nomor peserta :%d",peserta01.nomor[10]);
}

2. Sekarang Anda buat juga suatu tipe bentukan bernama WAKTU berupa struct
dan jadikan sebagai tipe data baru menggunakan klausa typedef untuk struktur
seperti berikut:

jam
WAKTU

menit

detik
Perlu diingat, bahwa struct WAKTU memiliki tiga buah field dan Anda harus
menentukan tipe data variabel dari masing-masing field tersebut.
Algoritma:
Deklarasi
Variabel
Jam, menit, detik :int Deskripsi
Start
typedef struct jam, menit, detik

WAKTU
write(‘Masukkan jam : ‘)
read(a)
write(‘Masukkan menit : ‘)
read(b)
write(’Masukkan detik : ‘)
read(c)
write (WAKTU)
write(‘JAM : ’, a)
write(‘Menit : ’, b)
write(‘Detik : ’, c)
End

Implementasi C:
//program penampl waktu

#include <stdio.h>
typedef unsigned int jam; typedef unsigned int menit; typedef unsigned int
detik;

int main()
{
jam a; menit b; detik c;

printf("Programmer : Muhammad Iqbal\n");


printf("NIM : 22076048\n");
printf("Prodi : Pendidikan Teknik Informatika\n");

printf("Masukkan Jam : ");


scanf("%d",&a);
printf("Masukkan Menit : ");
scanf("%d",&b);
printf("Masukkan Detik : ");
scanf("%d",&c);

printf("\nWAKTU\n");
printf("Jam : %d \n",a);
printf("Menit: %d \n",b);
printf("Detik: %d \n",c);
return 0;
}

3. Gunakan ke dua tipe data baru di atas untuk suatu tipe bentukan baru berupa
struct yang di dalamnya ada struct dengan nama LOMBA. Strukturnya sebagai
berikut:

peserta: PESERTA
LOMBA

start: WAKTU
finish: WAKTU
catatanWaktu: WAKTU

Algoritma:
Deklarasi
Variabel
Nama, nomor, peserta, start, finish, waktu, catatanwaktu : char
Deskripsi
Start
struct Peserta
nama[30]
nomor[10]
Peserta
struct Lomba
Peserta[30]
start[10]
finish[10]
durasiLomba
struct WaktuLomba
struct waktu
catatanwaktu[10]
durasiWaktuLomba

Peserta
strcpy (Peserta.nama, ‘Muhammad iqbal’)
strcpy (Peserta.nomor,’0046’)
write(‘Nama Peserta : ‘,Peserta.nama)
write(‘Nomor Peserta : ‘,Peserta.nomor)

durasiLomba
strcpy(durasiLomba.start, ‘00:00:00’)
strcpy(durasiLomba.finish,’00:03:34’)

write(‘Waktu start : ‘,durasiLomba.start)


write(‘Waktu finish : ‘,durasiLomba.finish)
durasiWaktuLomba
strcpy(durasiWaktuLomba.catatanwaktu,’00:03:34’)
write(’Catatan waktu : ‘,durasiWaktuLomba.catatanwaktu)
End

Implementasi C:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

struct Peserta{
char nama[30];
char nomor[10];
}Peserta;

struct Lomba{
char Peserta[30]; char start[10]; char finish[10];
}durasiLomba;

struct WaktuLomba{
struct waktu;
char catatanwaktu[10];
}durasiWaktuLomba;

int main()
printf("Programmer : Muhammad Iqbal\n");
printf("NIM : 22076048\n");
printf("Prodi : Pendidikan Teknik Informatika\n");

{ Peserta;
strcpy (Peserta.nama, "Bujang");
strcpy (Peserta.nomor,"946");

printf("Nama Peserta : %s \n",Peserta.nama);


printf("Nomor Peserta : %s \n \n",Peserta.nomor);
{
durasiLomba;
strcpy(durasiLomba.start, "00:00:00");
strcpy(durasiLomba.finish,"00:16:45");

printf("Waktu start : %s\n",durasiLomba.start);


printf("Waktu finish : %s\n",durasiLomba.finish);

{durasiWaktuLomba;

strcpy(durasiWaktuLomba.catatanwaktu,"00:16:45");
printf("Catatan waktu: %s",durasiWaktuLomba.catatanwaktu);
}
}
}

4. Buatlah sebuah program yang menerapkan ketiga tipe data baru di atas yang
dapat mengelola hasil pertandingan LOMBA MARATHON, dengan ketentuan
sebagai berikut:
 Program digunakan untuk mengelola N orang peserta (misalnya N
ditetapkan sebagai 10)
 Data dientrikan dan disimpan dalam suatu array of struct dari tipe
LOMBA
 Field catatanWaktu adalah selisih waktu yang dihitung berdasarkan
waktu start dan waktu finish
 Program dapat menampilkan informasi lengkap hasil pertandingan.

Algoritma:
Deklarasi
Variabel
Nama, nomor: char
Jam, menit, detik, I, j :int
jumlahStart: Int
JumlahFinish:int
Deskripsi
Start
typedef struct
Peserta Nama[100]
NomorPeserta[3]
PESERTA

typedef struct Waktu


Jam Menit Detik
WAKTU

typedef struct Lomba


PESERTA Peserta
WAKTU Start
WAKTU Finish
WAKTU CatatanWaktu
LOMBA
write(‘PROGRAM HASIL PERTANDINGAN LOMBA
MARATHON’)
write(‘Masukkan Jumlah Peserta Lomba : ‘)
read(N)

LOMBA PesertaLomba[N]

for(i=0; i<N; i++)


write(‘Masukkan Nama Peserta Ke- : ‘,i+1)
fflush(stdin)
read(PesertaLomba[i].Peserta.Nama)
write(‘Masukkan Nomor Peserta Ke- : ‘,i+1)
fflush(stdin)
read(PesertaLomba[i].Peserta.NomorPeserta)
write(‘Masukkan Waktu Start Peserta Ke- (JJ:MM:DD) : ‘,i+1)
fflush(stdin)
read(PesertaLomba[i].Start.Jam, PesertaLomba[i].Start.Menit,
PesertaLomba[i].Start.Detik)

write(‘Masukkan Waktu Finish Peserta Ke- (JJ:MM:DD) : ‘,i+1)


fflush(stdin)
read(PesertaLomba[i].Finish.Jam, PesertaLomba[i].Finish.Menit,
PesertaLomba[i].Finish.Detik)

JumlahStart = (3600*PesertaLomba[i].Start.Jam) +
(60*PesertaLomba[i].Start.Menit) + PesertaLomba[i].Start.Detik
JumlahFinish = (3600*PesertaLomba[i].Finish.Jam) +
(60*PesertaLomba[i].Finish.Menit) + PesertaLomba[i].Finish.Detik

JumlahFinish -= JumlahStart
PesertaLomba[i].CatatanWaktu.Jam = JumlahFinish/3600
PesertaLomba[i].CatatanWaktu.Menit = JumlahFinish%3600/60
PesertaLomba[i].CatatanWaktu.Detik = JumlahFinish%3600%60
write(‘ = Hasil Perlombaan = ‘)
for(j=0; j<N; j++)
write(‘PESERTA KE-‘, j+1)
write(‘Nama Peserta : ‘, PesertaLomba[j].Peserta.Nama)
write(‘Nomor Peserta : ‘,
PesertaLomba[j].Peserta.NomorPeserta) write(‘Waktu Start : ‘,
PesertaLomba[j].Start.Jam,PesertaLomba[j].Start.Menit,
PesertaLomba[j].Start.Detik)
write(‘Waktu Finish : ‘, PesertaLomba[j].Finish.Jam,
PesertaLomba[j].Finish.Menit, PesertaLomba[j].Finish.Detik)
write(‘Catatan Waktu : Peserta Mencapai Finish Dalam … Jam
…. Menit …. Detik’, PesertaLomba[j].CatatanWaktu.Jam,
End

Implementasi C:
//program penampil catatan lomba

#include <stdio.h>
#include <string.h>

typedef struct Peserta


{
char Nama[100];
char NomorPeserta[3];
} PESERTA;

typedef struct Waktu


{
int Jam; int Menit; int Detik;
} WAKTU;

typedef struct Lomba


{
PESERTA Peserta; WAKTU Start; WAKTU Finish;
WAKTU CatatanWaktu;
} LOMBA;

main()
{
printf("Programmer : Muhammad Iqbal\n");
printf("NIM : 22076048\n");
printf("Prodi : Pendidikan Teknik Informatika\n");

printf("\n PROGRAM HASIL PERTANDINGAN LOMBA MARATHON \


n");
printf("\n");
int N;
printf("\n Masukkan Jumlah Peserta Lomba : ");
scanf("%d",&N);
printf("\n ------------------------------\n");
LOMBA PesertaLomba[N];
int i;
for(i=0; i<N; i++)
{
printf("\n Masukkan Nama Peserta Ke-%d : ",i+1);
fflush(stdin);
gets(PesertaLomba[i].Peserta.Nama);
printf(" Masukkan Nomor Peserta Ke-%d : ",i+1);
fflush(stdin);
gets(PesertaLomba[i].Peserta.NomorPeserta);
printf(" Masukkan Waktu Start Peserta Ke-%d (JJ:MM:DD) : ",i+1);
fflush(stdin);
scanf("%d:%d:%d", &PesertaLomba[i].Start.Jam,
&PesertaLomba[i].Start.Menit, &PesertaLomba[i].Start.Detik);
printf(" Masukkan Waktu Finish Peserta Ke-%d (JJ:MM:DD) : ",i+1);
fflush(stdin);
scanf("%d:%d:%d", &PesertaLomba[i].Finish.Jam,
&PesertaLomba[i].Finish.Menit, &PesertaLomba[i].Finish.Detik);

int JumlahStart = (3600*PesertaLomba[i].Start.Jam) +


(60*PesertaLomba[i].Start.Menit) + PesertaLomba[i].Start.Detik; int
JumlahFinish = (3600*PesertaLomba[i].Finish.Jam) +
(60*PesertaLomba[i].Finish.Menit) + PesertaLomba[i].Finish.Detik;

JumlahFinish -= JumlahStart;
PesertaLomba[i].CatatanWaktu.Jam = JumlahFinish/3600;
PesertaLomba[i].CatatanWaktu.Menit = JumlahFinish%3600/60;
PesertaLomba[i].CatatanWaktu.Detik = JumlahFinish%3600%60;

printf("\n ------------------------------\n");

}
printf("\n === Hasil Perlombaan === \n");
int j;
for(j=0; j<N; j++)
{
printf("\n PESERTA KE-%d", j+1);
printf("\n Nama Peserta : %s ", PesertaLomba[j].Peserta.Nama); printf("\n
Nomor Peserta : %s ", PesertaLomba[j].Peserta.NomorPeserta);
printf("\n Waktu Start : %d:%d:%d", PesertaLomba[j].Start.Jam,
PesertaLomba[j].Start.Menit, PesertaLomba[j].Start.Detik);
printf("\n Waktu Finish : %d:%d:%d", PesertaLomba[j].Finish.Jam,
PesertaLomba[j].Finish.Menit, PesertaLomba[j].Finish.Detik);
printf("\n Catatan Waktu : Peserta Mencapai Finish Dalam %d Jam %d Menit
%d Detik", PesertaLomba[j].CatatanWaktu.Jam,
PesertaLomba[j].CatatanWaktu.Menit, PesertaLomba[j].CatatanWaktu.Detik);
printf("\n ------------------------------------");
printf("\n");
}
printf("\n");
return 0;
}

Anda mungkin juga menyukai