Java – PenaHoster
 
×

Archive

Tutorial Belajar Java Part 38: Pengertian Function (Fungsi) Bahasa Java


Dalam merancang kode program, kadang kita sering membuat kode yang melakukan tugas sama secara berulang-ulang, seperti membaca tabel dari database, menampilkan penjumlahan, dll. Tugas yang sama ini akan lebih efektif jika dipisahkan dari program utama, dan dirancang menjadi sebuah function atau fungsi.


Pengertian Function (Fungsi) dalam Bahasa Java

Secara sederhana, function adalah kode program yang dirancang untuk menyelesaikan sebuah tugas tertentu, dan merupakan bagian dari program utama. Ketika di sadur ke dalam bahasa indonesia, function ini di sebut juga sebagai fungsi.

Bahasa Java sebenarnya tidak dikenal istilah function, akan tetapi diganti dengan sebutan method. Ini karena secara internal Java sudah menerapkan paradigma object oriented programming (OOP) atau pemrograman berbasis object.

Untuk memudahkan pembahasan, saya akan tetap memakai istilah function untuk sementara. Pada dasarnya cara kerja function nyaris tidak berbeda dengan method. Materi tentang method akan kita bahas ketika masuk ke tutorial tentang pemrograman object Java.

Berdasarkan siapa yang membuat, function bisa dibedakan ke dalam 2 kelompok:

  1. Built-In Function 
  2. User Defined Function

Built-In Function adalah sebutan untuk function yang sudah ada secara bawaan dari dalam bahasa pemrograman. Sebagai contoh, perintah System.out.println() adalah function atau method bawaan bahasa Java.

Bahasa Java menyediakan banyak function bawaan, belum termasuk yang bisa diakses dari berbagai library atau package pihak ketiga. Setiap function punya tugas masing-masing, misalnya perintah System.out.println() dipakai untuk menampilkan teks ke layar.

Sedangkan User Defined Function adalah function yang kita (sebagai programmer) yang membuatnya sendiri. Jenis function inilah yang akan kita bahas.


Cara Membuat Function dalam Bahasa Java

Berikut format dasar cara penulisan function dalam bahasa Java:

static tipeDataKembalian namaFunction() { // Isi function disini... // Isi function disini...
}

Keyword static dipakai untuk membuat function yang tidak butuh instansiasi object. Dalam tutorial ini saya tidak akan membahas apa itu instansiasi object karena cukup panjang dan akan menjadi jatah tutorial OOP Java. Untuk sementara bisa dianggap bahwa semua function di Java harus diawali dengan perintah static.

Keyword tipeDataKembalian bisa diisi dengan tipe data nilai yang dikembalikan function. Tipe data ini sudah kita pelajari sebelumnya, seperti int, double atau String. Jika function tidak mengembalikan nilai apapun, tipeDataKembalian ditulis sebagai void. Sebuah function yang tidak mengembalikan nilai kadang disebut juga sebagai procedure.

Penulisan namaFunction boleh bebas, namun kebiasaan programmer Java adalah menulis dalam gaya camelCase, dimana karakter pertama nama function ditulis dengan huruf kecil, kemudian setiap karakter pertama kata berikutnya dalam huruf besar. Antara kata tidak boleh mengandung spasi. Contohnya seperti cariNamaMahasiswa(), prosesFormInput() atau tampilkanHargaBarang().

Setelah penulisan namaFunction, terdapat tanda kurung ” () “. Nantinya tanda kurung ini bisa diisi dengan function parameter (akan kita bahas dalam tutorial setelah ini).

Isi dari function berada dalam tanda kurung kurawal yang bisa terdiri dari 1 sampai ribuan baris kode program, tergantung kompleksitas aplikasi yang dibuat.

Pendefinisian function ini harus berada di dalam class seperti format berikut:

class NamaClass { static tipeDataKembalian namaFunction() { // Isi function disini... // Isi function disini... } public static void main(String args[]){ // Jalankan function namaFunction() } }

Dalam contoh format ini, pendefinisian function ada di baris 3 – 6. Sebuah function harus dijalankan atau “dipanggil” dengan cara menulis nama function tersebut dalam method main(). Inilah yang dilakukan oleh perintah di baris 10.

Agar penjelasan ini lebih mudah dipahami, mari kita bahas dengan contoh praktek.


Contoh Kode Program Function Bahasa Java

Dalam kode program berikut saya membuat sebuah function sapa() yang ketika dijalankan akan menampilkan teks “Halo Duniailkom”:

class BelajarJava { static void sapa() { System.out.println("Halo Duniailkom"); } public static void main(String args[]){ sapa(); sapa(); sapa(); } }

Hasil kode program:

Halo Duniailkom
Halo Duniailkom
Halo Duniailkom

Function sapa() tidak mengembalikan nilai, sehingga tipeDataKembalian diisi dengan keyword void. Isi dari function sapa() sendiri hanya 1 perintah System.out.println(“Halo Duniailkom”) seperti di baris 4.

Setelah di definisikan, sebuah function bisa dijalankan berkali-kali, inilah yang saya lakukan antara baris 11 – 13. Setiap kali perintah sapa() ditulis, akan tampil teks “Halo Duniailkom” di layar.

Sebuah class bisa saja memiliki banyak function. Berikut contohnya:

class BelajarJava { static void sapaLisa() { System.out.println("Hai Lisa"); } static void sapaNova() { System.out.println("Morning, Nova"); } static void sapaRudi() { System.out.println("Halo bro,.."); } public static void main(String args[]){ sapaLisa(); sapaNova(); sapaRudi(); } }

Hasil kode program:

Hai Lisa
Morning, Nova
Halo bro,..

Kali ini saya mendefinisikan 3 function di dalam class BelajarJava, yakni function sapaLisa(), sapaNova() dan sapaRudi(). Setiap function berisi perintah System.out.println() yang berbeda-beda.


Variabel di Dalam Function

Untuk function yang kompleks, kita bisa menulis variabel di dalam function tersebut. Berikut contoh penggunaannya:

class BelajarJava { static void hitungLuasSegitiga() { double alas = 5; double tinggi = 7; double luas = (alas * tinggi) / 2; System.out.println("Luas segitiga adalah: "+luas); } public static void main(String args[]){ hitungLuasSegitiga(); } }

Hasil kode program:

Luas segitiga adalah: 17.5

Kali ini saya mendefinisikan function hitungLuasSegitiga() di baris 3 – 8. Sesuai dengan namanya, fungsi ini dipakai untuk menghitung luas segitiga.

Di dalam function hitungLuasSegitiga() terdapat variabel alas, tinggi dan luas yang semuanya bertipe double. Variabel alas diisi angka 5 dan variabel tinggi diisi angka 7. Sedangkan variabel luas akan diisi hasil perhitungan (alas * tinggi) / 2, yakni rumus untuk mencari luas segitiga. Kemudian perintah System.out.println() di baris 7 akan menampilkan hasil perhitungan.

Untuk menjalankan function ini, kita harus panggil dengan perintah hitungLuasSegitiga() dari dalam method main di baris 11.


Dalam tutorial ini kita telah membahas pengertian function serta cara pembuatan function dalam bahasa Java. Berikutnya akan dibahas tentang Pengertian Parameter dan Argument Function.

*** Artikel Terkait ***

Sumber

Tutorial Belajar Java Part 37: Fungsi dan Pengertian Perintah CONTINUE

Pada tutorial belajar bahasa Java kali ini kita akan membahas Fungsi dan Pengertian Perintah CONTINUE. Perintah CONTINUE dipakai untuk mengatur alur perulangan yang mirip seperti perintah BREAK dalam tutorial sebelumnya.


Pengertian Perintah CONTINUE dalam Bahasa Java

Perintah CONTINUE mirip seperti perintah BREAK, hanya saja jika dalam perintah break perulangan langsung berhenti, untuk perintah continue perulangan hanya melewati 1 kali proses iterasi saja.

Berikut format dasar penggunaan perintah CONTINUE dalam perulangan FOR:

for (start; condition_1; increment) {
   // kode program
   // kode program   if (condition_2) {    continue;   } // kode program lanjutan
}

Sebagai contoh, misalnya kita membuat perulangan 1 sampai 10, lalu terdapat kondisi if (i = 5) { continue; }, maka ketika nilai variabel counter i sudah mencapai 5, kode program yang ada di bawah perintah continue akan di lewati dan proses perulangan lanjut ke iterasi ke 6.

Penjelasan ini akan lebih mudah dengan praktek contoh kode program.


Contoh Kode Program Perintah CONTINUE Bahasa Java

Sama seperti pada tutorial perintah BREAK, berikut perulangan FOR “normal” tanpa perintah continue:

class BelajarJava { public static void main(String args[]){ int i; for (i = 1; i <= 10; i++) { System.out.println(i + " + " + i + " = "+ (i+i)); } }
}

Hasil kode program:

1 + 1 = 2
2 + 2 = 4
3 + 3 = 6
4 + 4 = 8
5 + 5 = 10
6 + 6 = 12
7 + 7 = 14
8 + 8 = 16
9 + 9 = 18
10 + 10 = 20

Di sini saya menggunakan perulangan FOR untuk membuat daftar penambahan 1 + 1, 2 + 2, dst hingga 10 + 10.

Sekarang kita akan tambah dengan perintah CONTINUE:

class BelajarJava { public static void main(String args[]){ int i; for (i = 1; i <= 10; i++) { if (i == 5) { continue; } System.out.println(i + " + " + i + " = "+ (i+i)); } }
}

Hasil kode program:

1 + 1 = 2
2 + 2 = 4
3 + 3 = 6
4 + 4 = 8
6 + 6 = 12
7 + 7 = 14
8 + 8 = 16
9 + 9 = 18
10 + 10 = 20

Di dalam kode program, pada baris 6 terdapat kondisi if (i == 5) { continue; }. Kondisi ini akan terpenuhi saat variabel counter i berisi angka 5. Hasilnya, perintah System.out.println di baris 9 akan dilompati dan perulangan langsung pindah ke iterasi berikutnya, yakni variabel i akan berisi angka 6. Dalam tampilan akhir bisa terlihat baris 5 + 5 = 10 tidak ada di daftar penambahan.

Selanjutnya, bisakah anda menebak kenapa perintah continue tidak berefek pada kode program berikut?

class BelajarJava { public static void main(String args[]){ int i; for (i = 1; i <= 10; i++) { System.out.println(i + " + " + i + " = "+ (i+i)); if (i == 5) { continue; } } }
}

Hasil kode program:

1 + 1 = 2
2 + 2 = 4
3 + 3 = 6
4 + 4 = 8
5 + 5 = 10
6 + 6 = 12
7 + 7 = 14
8 + 8 = 16
9 + 9 = 18
10 + 10 = 20

Pertanyaannya, kenapa baris 5 + 5 = 10 masih tampil? padahal saya membuat kondisi if (i == 5) {continue; } di baris 7.

Kembali, logika yang sama seperti pada perulangan BREAK juga berlaku di sini. Dalam kode di atas, perintah System.out.println di tulis sebelum perintah continue. Akibatnya, meskipun perintah continue dijalankan saat i bernilai 5 (dan kondisi ini terpenuhi), namun perintah System.out.println sudah terlanjur di proses terlebih dahulu.

Ini menjadi catatan penting saat merancang kode program yang melibatkan perintah continue, karena posisi peletakan perintah sangat berpengaruh ke hasil akhir.

Sebagai tambahan, berikut contoh kode program perintah continue dalam perulangan DO WHILE:

class BelajarJava { public static void main(String args[]){ int i = 0; do { i++; if (i == 5) { continue; } System.out.println(i + " + " + i + " = "+ (i+i)); } while (i < 10); }
} 

Hasil kode program:

1 + 1 = 2
2 + 2 = 4
3 + 3 = 6
4 + 4 = 8
6 + 6 = 12
7 + 7 = 14
8 + 8 = 16
9 + 9 = 18
10 + 10 = 20

Ketika membuat perintah CONTINUE dengan perulangan DO WHILE dan juga perulangan WHILE, posisi peletakan perintah increment sangat berpengaruh.

Contoh kasus, tanpa menjalankan kode program dibawah ini bisakah anda menebak hasilnya?

class BelajarJava { public static void main(String args[]){ int i = 0; do { if (i == 5) { continue; } System.out.println(i + " + " + i + " = "+ (i+i)); i++; } while (i < 10); }
}

Hasilnya sebuah infinity loop!, yakni perulangan yang tidak pernah berakhir.

Ini terjadi karena pada saat variabel i berisi angka 5, perulangan akan terus berputar-putar antara baris 6 – 9. Perintah increment i++ yang ada di baris 11 tidak bisa di eksekusi karena di tulis setelah perintah continue di baris 8.

Jadi, kata kuncinya adalah: perhatikan logika program terutama ketika membuat perulangan WHILE dan DO WHILE yang melibatkan perintah continue.

Sekedar catatan, jika anda menjalankan kode diatas, akan tampil hasil berikut:

0 + 0 = 0
1 + 1 = 2
2 + 2 = 4
3 + 3 = 6
4 + 4 = 8

Setelah itu tampil baris kosong yang sebenarnya berupa infinity loop, karena perintah System.out.println dan increment i++ di tulis setelah perintah continue.


Dalam lanjutan tutorial bahasa Java di duniailkom kali ini kita telah membahas tentang perintah CONTINUE. Tutorial ini menutup seri bahasan struktur kondisi dan perulangan di dalam bahasa Java.

Sumber

Tutorial Belajar Java Part 36: Fungsi dan Pengertian Perintah BREAK

Melanjutkan tutorial belajar bahasa pemrograman Java di Duniailkom, kali ini kita akan membahas tentang Fungsi dan Pengertian Perintah BREAK. Perintah BREAK masih berhubungan dengan perulangan (loop) FOR, WHILE dan DO WHILE yang baru saja di bahas.


Pengertian Perintah BREAK dalam Bahasa Java

Ketika membuat perulangan, kadang kita ingin keluar dari perulangan sebelum waktunya.

Sebagai contoh, saya sedang membuat kode program untuk mencari sebuah nilai dalam array yang terdiri dari 100 element. Jika ternyata nilai sudah ditemukan di posisi ke-43, maka sisa perulangan tidak diperlukan lagi. Akan lebih efisien jika perulangan tersebut langsung berhenti pada saat itu juga, dan inilah fungsi dari perintah BREAK.

Secara sederhana, BREAK adalah perintah khusus yang dipakai untuk memaksa sebuah perulangan berhenti sebelum waktunya. Perintah break ini bisa dipakai dalam semua jenis perulangan, baik itu FOR, WHILE, maupun DO WHILE.

Berikut format dasar penggunaan perintah BREAK dalam perulangan FOR:

for (start; condition_1; increment) {
   // kode program
   // kode program   if (condition_2) {    break;   }
}

Dalam contoh ini, jika condition_2 terpenuhi (bernilai true), maka perulangan akan langsung berhenti meskipun belum mencapai kondisi akhir di condition_1.

Mari kita bahas dengan contoh kode program.


Contoh Kode Program Perintah BREAK Bahasa Java

Sebelum masuk ke perintah break, berikut contoh perulangan FOR bahasa Java untuk menampilkan daftar penambahan angka:

class BelajarJava { public static void main(String args[]){ int i; for (i = 1; i <= 10; i++) { System.out.println(i + " + " + i + " = "+ (i+i)); } }
}

Hasil kode program:

1 + 1 = 2
2 + 2 = 4
3 + 3 = 6
4 + 4 = 8
5 + 5 = 10
6 + 6 = 12
7 + 7 = 14
8 + 8 = 16
9 + 9 = 18
10 + 10 = 20

Di sini saya menggunakan perulangan FOR untuk membuat daftar penambahan 1 + 1, 2 + 2, dst hingga 10 + 10.

Sekarang saya ingin jika variabel counter i sudah mencapai angka 5, maka hentikan perulangan (break). Berikut kode programnya:

class BelajarJava { public static void main(String args[]){ int i; for (i = 1; i <= 10; i++) { System.out.println(i + " + " + i + " = "+ (i+i)); if (i == 5) { break; } } }
}

Hasil kode program:

1 + 1 = 2
2 + 2 = 4
3 + 3 = 6
4 + 4 = 8
5 + 5 = 10

Di dalam perulangan FOR, yakni pada baris 7 terdapat pemeriksaan kondisi if (i == 5). Jika kondisi ini terpenuhi (variabel counter i sudah bernilai 5) maka jalankan perintah BREAK. Hasilnya, perulangan langsung berhenti begitu variabel i mencapai angka 5.

Sebagai tambahan, posisi pemeriksaan kondisi ini bisa berpengaruh kepada tampilan akhir. Perhatikan kode program berikut:

class BelajarJava { public static void main(String args[]){ int i; for (i = 1; i <= 10; i++) { if (i == 5) { break; } System.out.println(i + " + " + i + " = "+ (i+i)); } }
}

Hasil kode program:

1 + 1 = 2
2 + 2 = 4
3 + 3 = 6
4 + 4 = 8

Bisakah anda menjelaskan kenapa perulangan kita berhenti pada angka 4 dan bukan di angka 5 seperti sebelumnya? Padahal kondisi yang dipakai tetap sama, yakni if (i == 5) { break; }

Ini terjadi karena perubahan posisi perintah System.out.println. Dalam contoh pertama, perintah System.out.println ditulis sebelum pemeriksaan kondisi if (i == 5). Ini berarti begitu variabel counter i naik menjadi 5, perintah System.out.println akan di proses terlebih dahulu, setelah itu barulah perintah break di jalankan.

Sedangkan pada kode program kali ini, ketika variabel i sampai ke angka 5, maka langsung break tanpa sempat menjalankan perintah System.out.println. Ini terjadi karena perintah System.out.println ditulis setelah pemeriksaan kondisi.

Sebagai penutup, berikut contoh penggunaan perintah break pada perulangan WHILE:

class BelajarJava { public static void main(String args[]){ int i = 1; while (i <= 10){ if (i == 5) { break; } System.out.println(i + " + " + i + " = "+ (i+i)); i++; } }
}

Hasil kode program:

1 + 1 = 2
2 + 2 = 4
3 + 3 = 6
4 + 4 = 8

Saya mengkonversi perulangan FOR sebelumnya menjadi WHILE. Dan karena perintah System.out.println juga ditulis setelah perintah break, maka penambahan yang tampil hanya sampai 4 saja.


Dalam tutorial kali ini kita telah membahas cara penggunaan perintah BREAK. Berikutnya akan dilanjutkan dengan membahas perintah CONTINUE dalam bahasa pemrograman Java.

Sumber

Tutorial Belajar Java Part 32: Percabangan Kondisi Switch Case Bahasa Java


Kondisi SWITCH CASE yang akan kita pelajari ini bisa dipandang sebagai alternatif penulisan dari kondisi logika IF ELSE IF pada tutorial Java sebelumnya. Namun tidak semua kondisi IF ELSE IF bisa dikonversi ke dalam bentuk SWITCH CASE, yang kita akan bahas dengan lebih detail.


Pengertian SWITCH CASE Bahasa Java

Kondisi SWITCH CASE adalah percabangan kode program dimana kita membandingkan isi sebuah variabel dengan beberapa nilai. Jika proses perbandingan tersebut menghasilkan true, maka block kode program akan di proses.

Kondisi SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH dimana terdapat nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE untuk setiap nilai yang akan diperiksa.

Berikut format dasar penulisan kondisi SWITCH CASE dalam bahasa Java:

 switch (nama_variabel) { case 'nilai_1': // Kode program yang dijalankan jika nama_variabel == nilai_1 break; case 'nilai_2': // Kode program yang dijalankan jika nama_variabel == nilai_2 break; case 'nilai_3': // Kode program yang dijalankan jika nama_variabel == nilai_3 break; ... ... default: // Kode program yang dijalankan jika tidak ada kondisi yang terpenuhi }

Di awal kode program, terdapat perintah SWITCH untuk menginput variabel yang akan diperiksa. Kemudian terdapat beberapa perintah CASE yang diikuti dengan sebuah nilai.

Jika isi dari nama_variabel sama dengan salah satu nilai ini, maka blok kode program akan dijalankan. Jika ternyata tidak ada kondisi CASE yang dipenuhi, blok default di baris paling bawah lah yang akan dijalankan.

Di dalam setiap block case, diakhiri dengan perintah break; agar struktur CASE langsung berhenti begitu kondisi terpenuhi. Mari langsung lihat contoh prakteknya.


Contoh Kode Program SWITCH CASE Bahasa Java

Dalam tutorial sebelumnya, terdapat kode program untuk menampilkan nilai dengan struktur IF ELSE IF. Kita akan coba konversi menjadi bentuk SWITCH CASE.

Sebelumnya, berikut kode menampilkan nilai dengan struktur IF ELSE IF:

import java.util.Scanner; class BelajarJava { public static void main(String args[]){ char nilai; Scanner input = new Scanner(System.in); System.out.print("Input Nilai Anda (A - E): "); nilai = input.next().charAt(0); if (nilai == 'A' ) { System.out.println("Pertahankan!"); } else if (nilai == 'B' ) { System.out.println("Harus lebih baik lagi"); } else if (nilai == 'C' ) { System.out.println("Perbanyak belajar"); } else if (nilai == 'D' ) { System.out.println("Jangan keseringan main"); } else if (nilai == 'E' ) { System.out.println("Kebanyakan bolos..."); } else { System.out.println("Maaf, format nilai tidak sesuai"); } }
}

Program yang sama bisa dikonversi ke dalam bentuk SWITCH CASE berikut ini:

import java.util.Scanner; class BelajarJava { public static void main(String args[]){ char nilai; Scanner input = new Scanner(System.in); System.out.print("Input Nilai Anda (A - E): "); nilai = input.next().charAt(0); switch (nilai) { case 'A': System.out.println("Pertahankan!"); break; case 'B': System.out.println("Harus lebih baik lagi"); break; case 'C': System.out.println("Perbanyak belajar"); break; case 'D': System.out.println("Jangan keseringan main"); break; case 'E': System.out.println("Kebanyakan bolos..."); break; default: System.out.println("Maaf, format nilai tidak sesuai"); } }
}

Hasil kode program:

Input Nilai Anda (A - E): A
Pertahankan! Input Nilai Anda (A - E): D
Jangan keseringan main Input Nilai Anda (A - E): E
Kebanyakan bolos... Input Nilai Anda (A - E): F
Maaf, format nilai tidak sesuai

Di baris 10 terdapat perintah untuk meminta user menginput salah satu huruf antara ‘A’ – ‘E’. Nilai huruf ini kemudian disimpan ke dalam variabel nilai yang sudah di set ber tipe data char.

Kondisi SWITCH CASE dimulai pada baris 12. Di sini terdapat perintah switch (nilai) yang artinya kita ingin memeriksa isi dari variabel nilai. Seluruh block SWITCH berada di dalam tanda kurung kurawal yang dimulai dari baris 12 sampai 30.

Di baris 13 terdapat perintah case ‘A’: Ini artinya jika variabel nilai berisi karakter ‘A‘, maka jalankan isi dari block CASE, yakni perintah System.out.println(“Pertahankan!”). Lalu terdapat perintah break di baris 15 agar struktur CASE lain tidak perlu di proses lagi.

Di baris 16 terdapat perintah CASE kedua, yakni case ‘B’:. Sama seperti sebelumnya, blok ini akan dijalankan jika variabel nilai berisi huruf ‘B‘. Demikian seterusnya sampai case ‘E’ : di baris 25.

Jika ternyata tidak ada nilai yang sesuai, maka block default di baris 28 yang akan di eksekusi.

Struktur SWITCH CASE ini terlihat lebih rapi daripada struktur IF ELSE IF, dan kadang kala bisa lebih efisien. Namun SWITCH CASE juga memiliki batasan, dimana tidak bisa dipakai untuk kondisi yang lebih kompleks seperti perbandingan dengan tanda lebih besar dari ” > “, maupun penggabungan kondisi.

Kita tidak bisa membuat struktur CASE seperti berikut:

// ini akan error
case > '90':
  System.out.println("Pertahankan!");
  break;

Kondisi perbandingan di atas hanya bisa ditulis menggunakan struktur IF.

Sehingga jika kondisi yang diperiksa cukup rumit, maka terpaksa harus menggunakan struktur IF ELSE IF. Struktur SWITCH CASE yang kita pelajari kali ini hanya cocok untuk operasi perbandingan sederhana, dimana nilai yang diperiksa hanya terdiri dari nilai yang tetap.


Dalam tutorial ini kita telah membahas pengertian dan cara penggunaan struktur SWITCH CASE dalam bahasa pemrograman Java. Selanjutnya akan disambung dengan struktur perulangan (loop), yang diawali dengan perulangan FOR.

*** Artikel Terkait ***

Sumber

Tutorial Belajar Java Part 31: Percabangan Kondisi IF ELSE IF Bahasa Java


Masih tentang kondisi percabangan kode program dengan perintah IF, kali ini akan kita bahas bentuk yang lebih kompleks, yakni kondisi IF ELSE IF. Struktur ini tidak lain terdiri dari gabungan beberapa kondisi IF ELSE yang saling bersambung.


Pengertian Kondisi IF ELSE IF Bahasa Java

Pada dasarnya, kondisi IF ELSE IF adalah sebuah struktur logika program yang di dapat dengan cara menyambung beberapa perintah IF ELSE menjadi sebuah kesatuan.

Jika kondisi pertama tidak terpenuhi atau bernilai false, maka kode program akan lanjut ke kondisi IF di bawahnya. Jika ternyata tidak juga terpenuhi, akan lanjut lagi ke kondisi IF di bawahnya lagi, dst hingga blok ELSE terakhir atau terdapat kondisi IF yang menghasilkan nilai true.

Berikut format dasar penulisan kondisi IF ELSE IF dalam bahasa Java:

if (condition_1) { // Kode program yang dijalankan jika condition_1 berisi nilai True
}
else if (condition_2) { // Kode program yang dijalankan jika condition_2 berisi nilai True
}
else if (condition_3) { // Kode program yang dijalankan jika condition_3 berisi nilai True }
else { // Kode program yang dijalankan jika semua kondisi tidak terpenuhi
}

Mari kita lihat contoh prakteknya.


Contoh Kode Program Percabangan IF ELSE IF Java

Sebagai contoh pertama, saya ingin membuat kode program untuk menampilkan nilai. User diminta menginput sebuah huruf antara ‘A’ – ‘E’. Kemudian program akan menampilkan hasil yang berbeda-beda untuk setiap huruf, termasuk jika huruf tersebut di luar ‘A’ – ‘E’.

Berikut contoh kode programnya:

import java.util.Scanner; class BelajarJava { public static void main(String args[]){ char nilai; Scanner input = new Scanner(System.in); System.out.print("Input Nilai Anda (A - E): "); nilai = input.next().charAt(0); if (nilai == 'A' ) { System.out.println("Pertahankan!"); } else if (nilai == 'B' ) { System.out.println("Harus lebih baik lagi"); } else if (nilai == 'C' ) { System.out.println("Perbanyak belajar"); } else if (nilai == 'D' ) { System.out.println("Jangan keseringan main"); } else if (nilai == 'E' ) { System.out.println("Kebanyakan bolos..."); } else { System.out.println("Maaf, format nilai tidak sesuai"); } }
}

Hasil kode program:

Input Nilai Anda (A - E): A
Pertahankan! Input Nilai Anda (A - E): D
Jangan keseringan main Input Nilai Anda (A - E): E
Kebanyakan bolos... Input Nilai Anda (A - E): F
Maaf, format nilai tidak sesuai

Di baris 6 saya mendefinisikan sebuah variabel nilai sebagai char. Variabel nilai ini kemudian dipakai untuk menampung input dari perintah input.next().charAt(0) di baris 10. Ini adalah proses input nilai char dalam bahasa Java.

Mulai dari baris 12 hingga 29, terdapat 5 kali pemeriksaan kondisi, yakni satu untuk setiap block IF ELSE. Dalam setiap kondisi, isi variabel nilai akan di diperiksa apakah berisi karakter ‘A’, ‘B’, hingga ‘E’. Jika salah satu kondisi terpenuhi, maka block kode program yang sesuai akan di eksekusi.

Jika ternyata nilai inputan bukan salah satu dari karakter ‘A’ – ‘E’, maka block ELSE di baris 28 lah yang akan dijalankan.

Setiap kondisi dari block IF ELSE IF bisa diisi dengan perbandingan yang lebih kompleks, seperti contoh berikut:

import java.util.Scanner; class BelajarJava { public static void main(String args[]){ byte nilai; Scanner input = new Scanner(System.in); System.out.print("Input Nilai Anda (0 - 100): "); nilai = input.nextByte(); if (nilai >= 90 ) { System.out.println("Pertahankan!"); } else if (nilai >= 80 && nilai < 90) { System.out.println("Harus lebih baik lagi"); } else if (nilai >= 60 && nilai < 80) { System.out.println("Perbanyak belajar"); } else if (nilai >= 40 && nilai < 60) { System.out.println("Jangan keseringan main"); } else if (nilai < 40) { System.out.println("Kebanyakan bolos..."); } else { System.out.println("Maaf, format nilai tidak sesuai"); } }
}

Di sini saya memodifikasi sedikit kode program sebelumnya. Sekarang nilai inputan berupa angka antara 0 hingga 100.

Angka inputan ini ditampung ke dalam variabel nilai yang sekarang di set sebagai tipe data byte di baris 5. Tipe data byte adalah jenis terkecil dari tipe data angka bulat (integer) dalam bahasa Java, yakni bisa menampung antara -128 sampai dengan +127.

Di baris 12, variabel nilai di periksa apakah berisi angka yang lebih dari 90. Jika iya, tampilkan teks “Pertahankan!”.

Jika kondisi di baris 12 tidak terpenuhi (yang artinya isi variabel nilai kurang dari 90), maka kode program akan lanjut ke kondisi ELSE IF berikutnya di baris 15. Di sini saya menggabung dua buah kondisi pemeriksaan dengan operator logika && (operator AND). Kondisi if(nilai >= 80 && nilai < 90) hanya akan terpenuhi jika isi variabel nilai berada dalam rentang 80 sampai 89.

Ketika membuat kondisi perbandingan, kita harus hati-hati dengan penggunaan tanda, apakah ingin menggunakan tanda lebih besar saja (>) atau tanda lebih besar sama dengan (>=) karena bisa mempengaruhi hasil akhir.

Jika ternyata kondisi ini tidak dipenuhi juga (artinya isi variabel nilai kurang dari 80), program akan lanjut ke kondisi if(nilai >= 60 && nilai < 80) di baris 18, yakni apakah isi variabel nilai berada dalam rentang 60 – 79. Demikian seterusnya hingga kondisi terakhir if(nilai < 40) di baris 24.

Jika semua kondisi tidak terpenuhi, jalankan block ELSE di baris 27.

Berikut hasil percobaan dari kode program di atas:

Input Nilai Anda (0 - 100): 95
Pertahankan! Input Nilai Anda (0 - 100): 60
Perbanyak belajar Input Nilai Anda (0 - 100): 30
Kebanyakan bolos...

Yang cukup unik adalah, jika kita memberikan nilai di luar rentang 0 – 100, akan tetap ditangkap oleh kondisi IF di baris 10 atau di baris 22:

Input Nilai Anda (0 - 100): 120
Pertahankan! Input Nilai Anda (0 - 100): -10
Kebanyakan bolos...

Ini terjadi karena nilai 120 tetap memenuhi syarat if (nilai >= 90), dan nilai -10 juga tetap memenuhi syarat if (nilai < 40). Silahkan anda modifikasi kode program di atas agar ketika diinput angka di luar dari rentang 0 – 100, tampil teks “Maaf, format nilai tidak sesuai”. Untuk hal ini kita cuma perlu mengubah / menambah 2 kondisi saja.

Namun jika diinput angka 200, yang akan tampil adalah pesan error berikut:

Exception in thread "main" java.util.InputMismatchException: Value out of range. Value:"200" Radix:10 at java.base/java.util.Scanner.nextByte(Scanner.java:2008) at java.base/java.util.Scanner.nextByte(Scanner.java:1956) at BelajarJava.main(BelajarJava.java:10)

Ini terjadi karena angka 200 sudah berada di luar jangkauan tipe data byte. Solusi sederhana adalah dengan menukar tipe data byte dengan tipe data yang memiliki jangkauan lebih besar seperti int.

Atau idealnya, kita bisa buat kode tambahan untuk proses validasi. Terkait proses validasi inputan rencananya akan bahas dalam tutorial terpisah.


Dalam tutorial belajar Java kali ini kita telah membahas konsep struktur IF ELSE IF, yang tidak lain terdiri dari beberapa kondisi IF yang saling bersambung.

Berikutnya, akan dilanjutkan ke struktur kondisi SWITCH, yang dalam banyak hal merupakan alternatif penulisan dari kondisi IF ELSE IF yang baru saja kita pelajari.

*** Artikel Terkait ***

Sumber

Tutorial Belajar Java Part 30: Percabangan Kondisi IF ELSE Bahasa Java


Melanjutkan tutorial belajar bahasa pemrograman Java di Duniailkom, kali ini kita akan membahas kondisi percabangan selanjutnya, yakni kondisi IF ELSE.


Pengertian Kondisi IF ELSE bahasa Java

Pada dasarnya, kondisi IF ELSE merupakan modifikasi tambahan dari kondisi IF yang sudah kita pelajari pada tutorial sebelumnya.

Blok kode program IF tetap akan dijalankan ketika kondisi true, namun sekarang terdapat tambahan bagian ELSE akan dijalankan ketika kondisi false.

Berikut format dasarnya:

if (condition)
{ // Kode program yang akan dijalankan jika condition berisi nilai True
}
else
{ // Kode program yang akan dijalankan jika condition berisi nilai False
}

Bagian condition berperan sebagai penentu dari struktur percabangan ini. Jika condition terpenuhi (menghasilkan nilai TRUE), blok kode program milik IF akan dijalankan. Jika condition tidak terpenuhi (menghasilkan nilai FALSE), blok kode program bagian ELSE-lah yang akan diproses.

Mari kita lihat contoh praktek dari struktur IF ELSE.


Contoh Kode Program Percabangan IF ELSE Java

Pada tutorial sebelumnya kita membuat program penentu bilangan genap / ganjil menggunakan 2 buah kondisi IF sebagai berikut:

if (a % 2 == 0) { System.out.println(a + " adalah angka genap");
}
if (a % 2 == 1) { System.out.println(a + " adalah angka ganjil");
}

Alur ini sebenarnya akan lebih sederhana (dan lebih efisien) jika diubah ke dalam struktur IF ELSE.

Jika sebuah angka tidak genap, maka pasti itu adalah angka ganjil. Sehingga apabila kondisi if (a % 2 == 0) tidak terpenuhi (false), maka variabel a haruslah berisi angka ganjil. Dengan demikian kode programnya bisa ditulis ulang sebagai berikut:

import java.util.Scanner; class BelajarJava { public static void main(String args[]){ int a; Scanner input = new Scanner(System.in); System.out.print("Input sembarang angka: "); a = input.nextInt(); if (a % 2 == 0) { System.out.println(a + " adalah angka genap"); } else { System.out.println(a + " adalah angka ganjil"); } }
}

Sekarang jika kondisi if (a % 2 == 0) menghasilkan false, bagian ELSE lah yang akan di proses. Kode program akan jadi lebih efisien karena pemeriksaan kondisi hanya perlu dilakukan 1 kali saja.

Berikut contoh lain dari struktur kondisi IF ELSE:

import java.util.Scanner; class BelajarJava { public static void main(String args[]){ int a; Scanner input = new Scanner(System.in); System.out.print("Input nilai ujian: "); a = input.nextInt(); if (a >= 75) { System.out.println("Selamat, anda lulus!"); } else { System.out.println("Maaf, silahkan coba lagi tahun depan"); } }
}

Hasil kode program:

Input nilai ujian: 57
Maaf, silahkan coba lagi tahun depan Input nilai ujian: 90
Selamat, anda lulus! Input nilai ujian: 75 Selamat, anda lulus! Input nilai ujian: 74 Maaf, silahkan coba lagi tahun depan

Di sini saya membuat kondisi if (a >= 75), yakni jika variabel a berisi angka lebih besar atau sama dengan 75 maka jalankan perintah System.out.println(“Selamat, anda lulus!”). Jika tidak, blok ELSE lah yang akan di eksekusi, yakni System.out.println(“Maaf, silahkan coba lagi tahun depan”).


Pada tutorial kali ini kita telah membahas kondisi percabangan IF ELSE bahasa Java yang cocok dipakai jika terdapat 2 kondisi yang saling bertentangan, yakni “Jika kondisi sesuai jalankan kode ini, jika tidak jalankan kode itu”.

Berikutnya akan dibahas kondisi percabangan IF ELSE IF dalam bahasa Java.

*** Artikel Terkait ***

Sumber