Selasa, 18 Desember 2018


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