Kamis, Maret 14, 2019

Looping Pada Java

Looping pada bahasa pemrograman Java adalah fitur yang memfasilitasi eksekusi program dari sekelompok instruksi atau fungsi secara berulang ketika beberapa kondisi tertentu bernilai benar. Java menyediakan tiga cara untuk mengeksekusi looping. Dimana semua cara tersebut menyediakan fungsi dasar yang sama, dimana perbedaannya hanya terdapat pada sintak dan kondisi waktu eksekusi.

While loop: while loop adalah alur kendali statement yang mengijiknan kode program untuk dieksekusi secara berulang berdasarkan kondisi boolean yang diberikan. While loop dapat dianalogikan seperti proses IF statement yang dilakukan secara berulang.

Sintak:
while (boolean condition)
{
   loop statements...
}

Flowchari while loop diperlihatkan pada gambar 1.

iterasi while loop pada program Java
Gambar 1 while loop
sumber : geeksforgeeks.org

satu, eksekusi while looping dimulai dengan memeriksa kondisi program. Jika nilai yang diperiksa bernilai benar, maka statement pada badan looping akan dieksekusi begitupun juga statement pertama akan diekskusi. Karena hal tersebut, maka while loop juga disebut dengan entry control loop.
dua, Ketika kondisi yang dievaluasi bernilai benar, maka statement di dalam looping akan dieksekusi. Normalnya statement mengandung perbaruan nilai untuk variabel yang digunakan pada proses selanjutnya untuk terasi (perulangan).
tiga, Ketika kondisi yang dieksekusi bernilai salah, maka looping akan berhenti dieksekusi dengan tanda akhir dari proses iterasi.

Output:
Value of x:1
Value of x:2
Value of x:3
Value of x:4

For loop: For loop menyediakan solusi ringkas dari struktur looping atau perulangan (iterasi). Tidak seperti while loop, dimana statement-nya membutuhkan inisialisasi, kondisi dan increment/decrement pada baris program. For loop menyediakan solusi lebih ringkas, dan mudah melakukan debug pada struktur looping.

Sintak:
for (initialization condition; testing condition; 
                              increment/decrement)
{
    statement(s)
}

Flowchart for loop diperlihatkan pada gambar 2:

iterasi menggunakan perintah for loop pada Java
Gambar 2 for loop
sumber : geeksforgeeks.org

satu, Inisialisasi kondisi: Pada tahap ini akan digunakan variabel sebagai inisialisasi. Variabel menandai proses awal dari looping. Variabel yang telah dideklarasikan dapat digunakan atau dideklarasikan pada nilai lokal pada saat proses iterasi.
dua, Pengujian kondisi: Pengujian kondisi digunakan untuk exit dari looping. Nilai dari proses kondisi ini harus mengembalikan nilai dalam bentuk boolean. Bentuk looping ini (for loop) juga merupakan Entry control loop karena kondisi nilai diperiksa sebelum eksekusi looping dilaksanakan.
tiga, Eksekusi statement: ketika kondisi yang dievaluasi bernilai benar, maka statement pada body loop akan dieksekusi.
empat, Increment/decrement: digunakan untuk memperbarui nilai variabel untuk iterasi selanjutnya.
lima, Loop termination: ketika kondisi yang dievaluasi bernilai salah, maka proses eksekusi looping berakhir.

Output:
Value of x:2
Value of x:3
Value of x:4

Enhanced for looping
Java juga memasukkan versi lain dari for loop (enhanced for loop) yang diperkenalkan pada versi Java 5. Enhanced for loop menyediakan cara sederhana untuk iterasi pada elemen dari sekelompok collection atau array. Cara ini tidak terlalu fleksibel dan harus digunakan ketika hanya membutuhkan iterasi melalui seluruh elemen dalam aturan yang berurutan tanpa perlu mengetahui indeks dari elemen prosesnya.

Perlu dicatat juga bahwa objek atau variabel bersifat immutable (kebal) ketika enhanced for loop digunakan. Hal ini berguna untuk memastikan bahwa nilai dalam array tidak dapat dimodifikasi, sehingga nilainya hanya bisa dibaca dan tidak bisa diubah sebagai kebalikan dari for loop dimana nilai variabelnya dapat diubah.

Direkomendasikan untuk menggunakan sintak dalam bentuk berikut ini pada statement daripada menggunakan sintak umum kapanpun dibutuhkan.

Sintak:
for (T element:Collection obj/array)
{
    statement(s)
}

Perhatikan contoh sederhana berikut untuk membuktikan bahwa enhanced for loop dapat bekerja lebih sederhana. Mari perhatikan perbedaan antara dua contoh enhanced for loop sebagai berikut:

Output:
Ron
Harry
Hermoine

do while: do while loop adalah sama dengan while loop dimana perbedaannya adalah pada bagian periksa kondisi setelah statement dieksekusi.

Sintak:
do
{
    statements..
}
while (condition);

Flowchart do while diperlihatkan pada gambar 3.

looping do while pada bahasa pemrograman Java
Gambar 3 do while
sumber : geeksforgeeks.org

satu, do while loop dimulai dengan eksekusi dari statement. Tidak ada tahap periksa dari kondisi apapun pada saat awal mulai proses.
dua, Setelah eksekusi dari statement, dan perbaruan nilai dari variabel, selanjutnya nilai akan diperiksa apakah bernilai benar atau salah. Jika nilai bernilai benar, selanjutnya iterasi looping akan dimulai.
tiga, Jika nilai yang dieksekusi bernilai salah, maka proses looping akan berakhir.
empat, Penting untuk dicatat bahwa do while loop akan mengeksekusi statemennya minimal sekali sebelum kondisi apapun diperiksa seperti diperlihatkan pada contoh berikut ini.


Output:
Value of x: 21

Jebakan Looping
satu, Infinite loop (looping tak terhingga): salah satu kesalahan umum ketika mengimplementasikan looping adalah ketika looping yang diprogram tidak berhenti melakukan iterasi, atau bisa disebut dengan infinite looping. Hal ini terjadi ketika terjadi kesalahan kondisi karena beberapa alasan.

Contoh:
dua, Bentuk lain dari jebakan looping adalah ketika menambahkan sesuatu ke dalam koleksi objek pada saat objek yang mengakibatkan tidak dapat mengakses memori. Jika program dibawah ini dieksekusi, setelah beberapa iterasi pesan out of memory akan muncul.
Output:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at java.util.Arrays.copyOf(Unknown Source)
at java.util.Arrays.copyOf(Unknown Source)
at java.util.ArrayList.grow(Unknown Source)
at java.util.ArrayList.ensureCapacityInternal(Unknown Source)
at java.util.ArrayList.add(Unknown Source)
at article.Integer1.main(Integer1.java:9)





Related Posts

Looping Pada Java
Oleh

"semoga yang memberikan komentar diberikan berkah kebaikan dari Allah, dijauhkan dari kejahatan, dan diberikan pahala ilmu dan amal jariyah dari sepenggal kata yang ia tinggalkan amiin :) "