int main()
{
printf("=== Kue Black Forest untuk Raya ===\n");
Souce code 1 merupakan bagian awal dari kode. Bagian ini memuat library yang digunakan, yaitu stdio.h
untuk menggunakan fungsi printf dan scanf, serta stdlib.h untuk memanipulasi tipe data char. Pada mula
– mula program, dideklarasikan terlebih dahulu variabel panjangKue dan jumlahCeri dengan tipe data
integer. Kedua variabel ini akan digunakan sebagai tempat menyimpan data panjang kue dan jumah ceri
yang didapat dari input user.
Source code 2
//Validasi input panjang kue dari user
printf("Masukkan panjang kue : ");
scanf("%d", &panjangKue);
while ((panjangKue >20) || (panjangKue <= 0)) {
printf("Panjang kue melebihi dari yang seharusnya!\n");
printf("Masukkan panjang kue : ");
scanf("%d", &panjangKue);
}
Source code 3
//Validasi input jumlah ceri dari user
printf("Masukkan jumlah ceri : ");
scanf("%d", &jumlahCeri);
while ((jumlahCeri > panjangKue) || (jumlahCeri < 0)) {
printf("Jumlah ceri melebihi dari panjang kue!\n");
printf("Masukkan jumlah ceri : ");
scanf("%d", &jumlahCeri);
}
Halaman 2 dari 5
pengulangan pada tahap ini selesai, array kue sudah membentuk kue blackforest yang terdiri dari “.” Serta
“6”.
Source code 6
//Mencetak output
for (int i = 0 ; i < (panjangKue+2); i++) {
printf("-");
}
printf("\n|");
for (int i = 0 ; i < panjangKue ; i++) {
printf("%c", kue[i]);
}
printf("|\n");
for (int i = 0 ; i < (panjangKue+2); i++) {
printf("-");
}
printf("\n\n==== Kue sudah siap diberikan ====");
return 0;
}
Source code 6 merupakan kelanjutan dari source code 5, sekaligus sebagai bagian output dari keseluruhan
program. Source code 6 berisikan program untuk mengeluarkan output array of character kue ditambah
dengan “-“ dan “|” untuk mempercantik output. Program ditutup dengan kode return 0 .
Halaman 4 dari 5
Analisis Kompleksitas Algoritma
Saya akan menggunakan analisis kompleksitas waktu untuk menganalisis kompleksitas algoritma.
Pada program membuat kue blackforest yang sudah saya buat, operasi yang mendasari keseluruhan
program ini adalah proses membuat kue yang tertera pada source code 5. Karena itu, untuk selnjutnya
saya akan banyak menijau kode hanya dari source code- 5 saja.
Kasus terbaik terjadi ketika loop terjadi paling minimum, yaitu ketika panjangKue = 1, pada input user
pertama kali (belum memasuki validasi input). Maka pada kasus terbaik kompleksitas algoritma adalah :
𝑇𝑇𝑚𝑚𝑚𝑚𝑚𝑚 (𝑛𝑛) = 1
Seperti yang dapat dilihat pada penjelasan source code 5, program tersebut masih memiliki operasi yang
mendasari lagi untuk membuat kue tersebut. Operasi tersebut adalah operasi adaCeri <- adaCeri + 1 atau
adaCeri <- adaCeri + 0. Dengan cukup meninjau bagian kode pada souce code 5, maka pada kasus
terburuk, program membuat kue akan mengalami looping sebanyak n panjang kue yang tidak diketahui.
Karena operasi tersebut berada dalam nested loop maka untuk kasus terburuk, kompleksitas algoritma
adalah
𝑇𝑇𝑚𝑚𝑚𝑚𝑚𝑚 (𝑛𝑛) = 𝑛𝑛2