Langsung ke konten utama

Looping pada Java

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

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

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

Flowchari while loop diperlihatkan pada gambar 1.


  • satu, Eksekusi while looping dimulai dengan memeriksa kondisi program. Jika nilai yang diperiksa bernilai benar, maka statement pada badan looping akan dieksekusi begitu juga statement pertama pun 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 biasanya mengandung perbaruan nilai untuk variabel yang digunakan pada proses selanjutnya untuk proses terasi  atau perulangan.
  • tiga, Ketika kondisi yang dieksekusi bernilai salah, maka looping akan berhenti dieksekusi.

// Program Java yang

// mengilustrasikan while loop

class whileLoopDemo

{

 

public static void main(String args[])

{

int x = 1;

 

// Iterasi atau looping

// berakhir ketika nilai lebih

// dari 4

while (x <= 4)

{

System.out.println("Nilai da"

+"ri x:" 

+ x);

 

// Inkrementasi nilai dari x

// untuk proses iterasi

// selanjutnya

 

x++

// x++ sama dengan x=x+1;

}

 

}

 

}

Output:
Nilai dari x:1
Nilai dari x:2
Nilai dari x:3
Nilai dari x:4

For loop: merupaakn statement looping yang menyediakan solusi ringkas dari struktur looping atau perulangan (iterasi), 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.


  • 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.

// Program Java yang

// mengilustrasikan for loop.

class forLoopDemo

{

 

public static void main(String args[])

{

// for loop dieksekusi ketika

// x=2 dan berlangsung selama

// x <=4

for (int x = 2; x <= 4; x++)

System.out.println("Nilai da"

+"ri x:"

+ x);

}

 

}

Output:
Nilai dari x:2
Nilai dari x:3
Nilai dari 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 hanya digunakan ketika 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 bentuk kebalikan dari iterasi for, dimana nilai variabelnya dapat diubah ketipa proses looping dijalankan.

Direkomendasikan untuk menggunakan sintak dalam bentuk berikut ini pada statement:

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

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

// Program Java yang

// mengilustrasikan enhanced

// for loop

public class enhancedforloop

{

 

public static void main(String args[])

{

String array[]

{"Ron", "Harry", "Hermoine"};

 

/* enhanced for loop */

for (String x:array)

{System.out.println(x);}

 

// for loop dengan fungsi yang

// sama

  

/* for (int i = 0; i < array.length; i++) {System.out.println(array[i]);}*/

}

 

}

Output:
Ron
Harry
Hermoine



do while: adalah sama dengan iterasi while dimana perbedaannya adalah proses pemeriksaan kondisi dilakukan setelah statement dieksekusi.

Sintak:
do statements }
while (condition);

Flowchart do while diperlihatkan pada gambar 3.


  • satu, Iterasi do while dimulai dengan eksekusi dari statement pada program. Tidak ada tahap pemeriksaan dari kondisi apapun pada saat awal iterasi dimulai.
  • 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 statement minimal sekali sebelum kondisi apapun diperiksa seperti diperlihatkan pada contoh berikut ini.

// Program java

// mengilustrasikan do while

// loop

class dowhileloopDemo

{

 

public static void main(String args[])

{

int x = 21;

 

do{

// Baris ini akan dicetak jika

// variabel yang dieksekusi

// bernilai salah.

System.out.println("Nilai da"

+"ri x:" 

+ x);

x++;}

while (x < 20);

 

}

 

}

Output:
Nilai dari x: 21

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

Contoh:

// Program Java

// mengilustrasikan berbagai

// bentuk looping tak hingga.

public class LooppitfallsDemo

{

 

public static void main(String[] args)

{

 

// infinite loop terjadi

// karena kondisi exit tidak

// bisa terpenuhi

for (int i = 5; i != 0; i -= 2)

{System.out.println(i);}

 

int x = 5;

while (x == 5)

{System.out.println("Dalam"

+" looping");}

 

}

 

}


dua, Bentuk lain dari jebakan looping adalah ketika menambahkan sesuatu ke dalam koleksi objek pada saat objek dijalankan yang mengakibatkan iterasi tidak dapat mengakses memori. Contoh, jika program dibawah ini dieksekusi, maka setelah beberapa iterasi dilakukan akan muncul pesan out of memory.

// Java program out of memory

// exception.

import java.util.ArrayList;

 

public class Integer1

{

 

public static void main(String[] args)

{

ArrayList<integer> ar = new ArrayList<>();

 

for (int i = 0; i < Integer.MAX_VALUE; i++)

{ar.add(i);}

 

}

 

}

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)

Komentar

  1. Jelaskan secara sederhana apa yang dimaksud dengan proses perulangan atau looping pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Looping atau iterasi dalam bahasa pemrograman Java adalah fitur yang digunakan untuk memfasilitasi proses eksekusi dari sekumpulan instruksi atau fungsi yang dilakukan secara berulang-ulang jika suatu kondisi bernilai benar.

      Hapus
    2. Dalam ilmu komputer, looping adalah struktur pemrograman yang mengulangi urutan instruksi sehingga kondisi tertentu dapat terpenuhi. Program menggunakan looping untuk menelusuri nilai, menambahkan jumlah angka, mengulangi fungsi, dan masih banyak lagi hal lainnya yang dapat dijalankan pada program.

      Hapus
  2. Apa kegunaan dari progses looping pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Loop adalah struktur pemrograman yang digunakan untuk mengulangi urutan instruksi sampai kondisi tertentu terpenuhi. Loops memungkina pengguna untuk mengulangi proses berulang tanpa harus menulis instruksi yang sama setiap kali pengguna ingin program tersebut akan menjalankan suatu tugas tertentu.

      Hapus

Posting Komentar

Respon komentar 7 x 24 jam, so please be patient :D