Pages

8/26/2013

Struktur perulangan dasar pada Java

Saat membuat program terkadang terdapat situasi dimana kita ingin membuat sebuah proses yang berulang dalam program tersebut. Struktur perulangan atau lebih akrab disebut Iterasi yang kita pilih, seperti contoh saat kita ingin membuat output seperti dibawah:
1
2
3
4
5

maka dibandingkan menuliskannya dengan:
System.out.println(1);
System.out.println(2);
System.out.println(3);
System.out.println(4);
System.out.println(5);


akan lebih efisien jika kita menuliskannya dengan perintah perulangan seperti pada contoh dibawah (menggunakan FOR-LOOP)
for(int i=0;i<=5;i++) {
   System.out.println(i);
}

dan perbedaannya akan lebih jauh lagi apabila kita ingin menampilkan jarak angka yang lebih besar lagi, kan tidak mungkin kita tuliskan satu persatu seperti pada code pertama tadi. :)


Sebelum mempelajarinya lebih lanjut lagi, ada baiknya kita pahami terlebih dahulu dasar-dsar dari operator perbandingan.


Ada beberapa tipe perulangan dasar pada Java, diantaranya:
  • for-loop
  • while-loop
  • do..while-loop
Hal yang perlu kita ketahui dari tipe perulangan ini adalah semuanya memiliki bagian ekspresi (berada di dalam kurung fungsi) dan juga memiliki bagian statement (bagian dimana perintah utama program dijalankan).


for-loop

Perulangan ini cukup simpel digunakan, dimana kita bisa meng-inisialisasi variabel kounter dan melakukan perubahan nilai variabel tersebut didalam blok ekspresinya. for-loop Mempunyai struktur dasar:
for(inisialisasi ; ekspresi boolean ; perubahan nilai variabel) {
   // blok statement
}

Logikanya sederhana, selama ekspresi boolean bernilai benar maka blok statement yang ada di dalam for-loop dijalankan, lalu lakukan perubahan pada variabel kounter. Contoh:

for(int x=1 ; x<5 ;x++) {
   System.out.println(x);
}

Logika dari program diatas adalah
  • Deklarasi variabel x dan inisialisasi dengan nilai 1
  • Lalu selama x bernilai kurang dari 5 maka statement for-loop dijalankan
  • Terdapat statement cetak, cetak isi variabel x
  • Jika selesai menjalankan seluruh statement, lakukan penambahan nilai x sebesar 1 (x++), lalu kembali ke awal blok for-loop.
Hingga variabel x bernilai 4 for loop tetap dijalankan namun saat x=5 (berarti tidak sesuai lagi dengan kondisi yang diinginkan), barulah for-loop tidak dieksekusi. Jadi outputnya adalah:
1
2
3
4


while-loop

Untuk while-loop, blok ekspresi yang ada hanya pengecekan saja, yaitu ekspresi boolean. Deklarasi maupun inisialisasi dilakukan diluar blok blok while-loop, dan perubahan variabel kounter dilakukan di dalam blok statemen. Bentuk umumnya:
while(<ekspresi boolean>) {
   // Blok statement
}

Logika umumnya sederhana, selama ekspresi boolean bernilai benar, blok statement dieksekusi. Contoh:
int buah = 4;

while(buah > 0) {
   System.out.println("buahnya tinggal: "+buah);
   buah--;
}

Pada program tersebut:
  • Dilakukan pengecekan apakah buah bernilai lebih dari 0, jika benar maka jalankan blok statemen.
  • Blok statement dijalankan, cetak: buahnya tinggal : dan juga tepat disampingnya isi dari variabel buah. Setelah itu lakukan pengurangan isi dari variabel buah sebesar satu (x--).
  • Seluruh statement selesai dijalankan, kembali ke blok while

output program diatas adalah:

buahnya tinggal 4
buahnya tinggal 3
buahnya tinggal 2
buahnya tinggal 1

Nilai dari variabel buah berkurang. Hingga variabel tersebut bernilai 1 statatement akan terus dijalankan, dan juga program melakukan pencetakan terlebih dahulu sebelum mengurangi variabel kounternya yang berarti angka yang tercetak adalah nilai awal variabel tersebut hingga bernilai 1, kenapa? karena saat variabel buah bernilai 1, dilakukan pencetakan dan karena sesudah pencetakan, variabel buah berkurang (sekarang buah=0) maka saat program kembali ke blok while, ekspresi boolean bernilai salah dan statement while tidak dieksekusi lagi.


do..while-loop

Logika perulangan ini adalah kebalikan dari while..loop, strukturnya terbalik. Jika pada while-loop, blok while berada diatas dan blok statementnya dibawah, maka pada do.. while-do blok while berada dibawah dan blok statement berada di atas. Bentuk umunya dari perulangan ini adalah sebagai berikut:
do {

   // blok statement

} while(ekspresi boolean);

Saat pertama kali dieksekusi, blok statement dikerjakan terlebih dahulu, barulah setelah itu dilakukan pengecekan kondisi pada blok while. Program akan kembali meng-eksekusi blok statement apabila ekspresi boolean pada blok while bernilai benar.

Sangat mudah untuk membedakan while-loop dengan do..while-loop. Dimana pada do..while-loop peng-eksekusian statement dilakukan terlebih dahulu (tanpa mempedulikan kondisi variabel yang dibandingkan terlebih dahulu) dan barulah setelah itu dilakukan pengecekan variabel pada ekspresi boolean.
Perbedaan output juga dapat dilihat pada program dibawah:

while-loopint test = 1;
while(test < 1) {

   System.out.println(test);

}

Output while-loop

do..while-loopint test = 1;

do {

   System.out.println(test);

} while(test < 1);

Output do..while-loop1


Kesimpulan:

Struktur perulangan/Iterasi ini adalah hal yang paling sederhana dalam pemrograman, namun keterlibatannya sangatlah penting. Dalam pembuatan sebuah program kita akan sangat sering menggunakannya, oleh karena itu alur dari tiap jenisnya WAJIB kita pahami, minimal untuk for-loop dan while-loop.
5 le Journal de MVA: Struktur perulangan dasar pada Java Saat membuat program terkadang terdapat situasi dimana kita ingin membuat sebuah proses yang berulang dalam program tersebut. Struktur perul...

4 comments:

  1. bgai mna cra membuat biar mw seperti ini
    * *********
    * *
    **************
    * *
    ****** *

    ReplyDelete
  2. Bagaimana agar menghasilkan output seperti ini.
    #
    #+
    # +#
    #+#+
    #+#+#
    #+#+#+
    Terima atas bantuannya.

    ReplyDelete
  3. Bagaimana agar menghasilkan output seperti ini.
    #
    #+
    # +#
    #+#+
    #+#+#
    #+#+#+
    Terima atas bantuannya.

    ReplyDelete
  4. Bagaimana agar menghasilkan output seperti ini.
    #
    #+
    # +#
    #+#+
    #+#+#
    #+#+#+
    Terima atas bantuannya.

    ReplyDelete

< >