Program Repetition
Pendahuluan
Biasanya, ketika kita sedang bermain
game, kita pasti akan menemukan checkpoint untuk mensave progress kita supaya
saat kita game over, kita bisa restart atau mulai ulang dari checkpoint
sebelumnya. Aksi restart dari checkpoint ini dapat dilakukan
berulang-ulang karena di dalam system program game kita, terdapat aksi
perulangan yang disebut Repetition.
Repetition ini biasanya dieksekusi
dengan beberapa perintah program seperti:
1.
For
2.
While
3.
Do-While
kebanyakan programmer menggunakan
For dan While untuk membuat aksi repetition di programnya. Maka, oleh
karena itu, kali ini, perintah For dan While
akan dijelaskan lebih dalam. Pertama-tama, akan dijelaskan bagian-bagian format
For sebagai berikut:
For(exp1; exp2; exp3;)
{statement1;
statement2;
.....
}
catatan:
- exp1=initialization
- exp2=conditional
- exp3=increment atau decrement
- exp1,exp2 dan exp3 adalah optional
contoh aksi pertama For sebagai
berikut:
int i;
for(i=1; i<10; i++)
{printf("%d\n",i);
}
getchar();
return 0;
jika dijalankan, maka
akan dicetak angka 1 sampai 9. Kenapa ? karena dibagian "i<10"
menunjukkan bahwa hasil cetakannya hanya akan dicetak sampai 9 tanpa melewati
batas 10.
Lalu bagaimana
jika ada contoh For kedua seperti ini:
int i;
for(i=1; i<=10; i++)
{
printf("%d\n",i);
}
getchar();
return 0;
Pada bagian
"i<=10;" , tanda "=" ditambahkan agar saat dijalankan,
dari angka 1 sampai 10 dicetak.
Hasil Atau Jumlah?
Sekarang apabila
kita menjalankan program untuk membuat barisan aritmatika yang memiliki beda
jarak dua dengan perintah For seperti berikut:
for(int i=0; i<10;
i++)
{
printf("%d\n",i+1);
}
getchar();
return 0;
kita pasti berpikiran
bahwa hasilnya akan menjadi 2 sampai 9 namun ternyata bukan. karena hasilnya
akan menjadi 2 sampai 10. kenapa? karena pada bagian "i<10" menunjukkan
bahwa batas jumlah cetakan yang dibuat adalah kurang dari 10 buah, bukan
hasilnya yang dicetak kurang dari angka 10.
Sebagai catatan, kita
bisa menerapkan rumus "batas-awal" untuk menentukan berapa banyak
jumlah cetakan yang akan dibuat.
Sebagai contohnya, di
contoh For pertama, kita memilih angka 10 sebagai batas berapa kali cetakan
yang akan keluarkan saat dijalankan dan angka 1 sebagai awalnya. selain itu,
kita juga menggunakan increment (++) untuk menambahkan hasil
setiap kali dicetak.
Maka,kita dapat
menerapkan rumusnya sebagai berikut:
- batas-awal
- 10-1=9
Maka,kita dapat
menyimpulkan bahwa jumlah cetakannya akan ada 9 buah. Hal yang sama juga berlaku
dengan contoh ketiga tersebut.
Format
Selanjutnya, kita akan
mencoba format seperti berikut:
for(int i=1; i<10;
i++)
{
printf("%d\n",i);
}
getchar();
return 0;
apakah akan bekerja jika
"int i" dimasukkan ke dalam for? ya,dia akan bekerja karena jika
bahasa pengograman yang dipakai adalah C++, maka boleh dimasukkan. Bagaimana
jika bahasa C yang dipakai? Maka tidak dapat di jalankan atau error.
Infinite Loop
Selanjutnya,jika ada
contoh keempat For seperti berikut:
for(int i=1; i<10;
i--)
{printf("*\n",i);
{
return 0;
getchar();
Maka, saat dijalankan,
komputer akan terus mencetak "*". Kenapa? Karena batas yang digunakan
adalah "i<10" sedangkan decrement (i--) dipakai
untuk mengurangi hasilnya setiap kali dicetak. Sehingga hasil cetakan yang ada
tidak akan mendekati jumlah yang diminta, melainkan makin menjauhinya. Sama
halnya jika:
for(int i=10; i>1; i++)
{printf("*\n",i);
{
return 0;
getchar();
Karena hasilnya akan
mencetak "*" terus tapi bedanya adalah dia melebihi batas jumlah yang
ditentukan.
While
Berikutnya kita akan membahas tentang While. Biasanya While
digunakan untuk mengecek kebenaran atau validasi suatu program yang kita buat
melalui loop.
Salah satu contoh penggunaan while adalah perkalian
faktorial yaitu perkalian dari angka awal yaitu 1 ke angka yang ditentukan.
Misalnya 5! maka caranya 5 x 4 x 3 x 2 x 1 adalah sehingga hasilnya menjadi 120.
Jika kita membuat program faktorial menggunakan faktorial
maka sebagai berikut:
#include<stdio.h>
int main()
{
int num,i,sum;
sum=i=1;
printf("Enter a Number to Find Factorial: ");
scanf("%d",&num);
while(i<=num)
{
sum*=i;
i++;
}
printf("The
Factorial of %d is : %d",num,sum);
}
Pada awalnya, main akan diinisiasikan terlebih dahulu
lalu variabel num,i,dan sum. Lalu kita memberi value 1 pada sum dan i. Lalu
kita input angka faktorialnya dengan scanf di variabel num misalnya 5. Di sini,
mulai lah fungsi while dipakai.
Di dalam while, terdapat syarat jika i kurang dari atau
sama dengan num yang di input, maka akan di loop. Karena i adalah 1 dan kurang
dari num yaitu 5, maka mulai lah loop. Di syntax “sum*=i” artinya sum akan
menjadi hasil kali dari sum awal dan i.
Setelah di kali, “i++” akan menambah value i menjadi 2.
Lalu kita cek lagi di while, karena i adalah 2 dan masih kurang dari num kita 5
maka masih akan di loop terus sampai ketika i sudah lebih dari num yaitu 6.
Ketika i adalah 6, maka syarat nya sudah tidak berguna lagi sehingga loop akan
berhenti dan kita printf(“the factorial of 5 is 120”).
Maka, dari contoh tadi, kita dapat mengerti cara kerja
while.
Tidak ada komentar:
Posting Komentar