Anda di halaman 1dari 21

1 Analisis Kebutuhan

 Kebutuhan Output

- Menampilkan nama peserta dan nomor peserta yang diinputkan

 Kebutuhan Input

- Memasukkan struct nama dan nomor peserta yang diinginkan

 Kebutuhan Proses

- Memastikan tipe data dari dari suatu variable.

- Memasukkan struct nama dan nomor peserta yang diinginkan.

- Menampilkan nama dan nomor peserta yang diinputkan.

 Kebutuhan Variabel

- Variabel menyimpan nama diberi nama, nama bertipe char.

- Variabel menyimpan nomor peserta diberi nama, nomorPeserta


bertipe char. Algoritma_menampilkan_datapeserta(input, output)
{menampilkan data peserta } Deklarasi Variabel Nama,
namaPeserta :char Deskripsi Start

typedef struct peserta

nama[30]

nomorPeserta[10]

peserta peserta peserta01

strcpy(peserta01.nama, ’Maulanda Alfarizi’)


strcpy(peserta01.nomorPeserta, ‘051’)
write(‘… dengan nomor peserta …’, peserta01.nama,
peserta01.nomorPeserta)

stop

imlementasi dalam c

//Program Menampilkan Nama Dan nomor peserta

#include <stdio.h>

#include <string.h>

typedef struct Peserta{

char nama [30];

unsigned int nomor[10];

}biodataPeserta;

int main()

biodataPeserta peserta01;

strcpy (peserta01.nama, "Bujang");

peserta01.nomor[10] = 932;

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

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

}
2.Analisis Kebutuhan

 Kebutuhan Output

- Menampilkan informasi waktu yang terdiri dari jam, menit, detik.

 Kebutuhan Input

- Memasukkan struct informasi waktu yang terdiri dari jam, menit,


detik.

 Kebutuhan Proses

- Menentukan tipe data variabel.

- Memasukkan struct informasi waktu yang diinginkan terdiri dari jam,


menit, detik.

- Menampilkan informasi waktu yang diinputkan terdiri dari jam,


menit, detik

 Kebutuhan Variabel

- Variable untuk menyimpan jam diberi nama, jam bertipe integer.

- Variable untuk menyimpan menit diberi nama, menit bertipe integer.

- Variable untuk menyimpan detik diberi nama, detik bertipe integer.


jam menit detik WA K T U

Algoritma_menampilkan_waktu(input, output)

{menampilkan waktu peserta}

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)

stop

imlementasi dalam c
//program penampl waktu

#include <stdio.h>

typedef unsigned int jam;

typedef unsigned int menit;

typedef unsigned int detik;

int main(void)

jam a;

menit b;

detik c;

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.Analisis Kebutuhan

 Kebutuhan Output

- Menampilkan hasil dari lomba yang telah diinputkan.

 Kebutuhan Input

- Memasukkan struct yang terdiri dari peserta(nama dan nomor),


lomba(peserta, start, finish), waktu lomba(waktu dan catatan waktu).

 Kebutuhan Proses

- Memasukkan struct peserta, yang terdiri dari nama dan nomor.

- Memasukkan struct lomba, yang terdiri dari peserta, start, finish.

- Memasukkan struct waktu lomba, yang terdiri dari waktu dan catatan
waktu.

- Menampilkan hasil dari Lomba.

 Kebutuhan Variabel

- Untuk menyimpan nama peserta diberi nama, nama bertipe data


char.

- Untuk menyimpan nomor peserta diberi nama, nomor bertipe data


char.

- Untuk menyimpan peserta diberi nama, peserta bertipe data char.

- Untuk menyimpan start diberi nama, start bertipe data char.

- Untuk menyimpan finish diberi nama, finish bertipe data char.

- Untuk menyimpan waktu diberi nama, waktu bertipe struct.


- untuk menyimpan catatan waktu diberi nama, catatanwaktu bertipe
data char.

Algoritma_menampilkan_hasillomba(input, output) {menampilkan data


perlombaan}

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, ‘Maulanda Alfarizi’)

strcpy (Peserta.nomor,’0051’)

write(‘Nama Peserta : ‘,Peserta.nama)

write(‘Nomor Peserta : ‘,Peserta.nomor)

durasiLomba

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

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

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

durasiWaktuLomba
strcpy(durasiWaktuLomba.catatanwaktu,’00:02:34’)

write(’Catatan waktu : ‘,durasiWaktuLomba.catatanwaktu)

stop
imlementasi salam c
4. Analisis Kebutuhan

 Kebutuhan Output

- Menampilkan hasil perlombaan.

 Kebutuhan Input

- Memasukkan struct peserta(nama dan nomor peserta), waktu(jam,


menit, detik), lomba(peserta, waktu start, waktu finish, catatan waktu).

 Kebutuhan Proses

- Menghitung jumlah start JumlahStart =


(3600*PesertaLomba[i].Start.Jam) + (60*PesertaLomba[i].Start.Menit) +
PesertaLomba[i].Start.Detik

- Menhitung jumlah finish

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

- Keterangan

JumlahFinish -= JumlahStart

- Rumus :

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

 Kebutuhan Variabel

- Untuk menyimpan variable nama diberi nama, Nama bertipe data


char.
- Untuk menyimpan variable nomor peserta diberi nama,
NomorPeserta bertipe data char.

- Untuk menyimpan variable jam diberi nama, Jam bertipe data integer.

- Untuk menyimpan variable menit diberi nama, Menit bertipe data


integer.

- Untuk menyimpan variable detik diberi nama, Detik bertipe data


integer.

- Untuk menyimpan variable jumlah peserta diberi nama, N bertipe


data integer.

- Untuk menyimpan variable biasa untuk perulangan diberi nama, i


bertipe data integer.

- Untuk menyimpan variable jumlah start diberi nama, JumlahStart


bertipe data integer.

- Untuk menyimpan variable jumlah finish diberi nama, JumlahFinish


bertipe data integer.

- Untuk menyimpan variable biasa untuk perulangan diberi nama, j


bertipe data integer

Algoritma_menampilkan_hasillomba(input, output)

{menampilkan data perlombaan}

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++)

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,

PesertaLomba[j].CatatanWaktu.Menit,
PesertaLomba[j].CatatanWaktu.Detik)

Stop
Implementasi dalam 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("\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 %d \n" );

PesertaLomba[j].CatatanWaktu.Menit,

PesertaLomba[j].CatatanWaktu.Detik;

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

printf("\n");

printf("\n");

return 0;

Anda mungkin juga menyukai