Jumat, 29 April 2016

ShortHand If Else di bahasa Java

Maksud dari Short Hand di sini ialah penulisan singkat dari statement If Else di java. Tidak hanya di Java, di PHP pun Anda juga bisa menerapkannya hanya saja mungkin agak sedikit berbeda penulisannya. Dengan trik ini mungkin akan lebih mempercantik penulisan coding Anda dan lebih berbeda. Selain itu, teknik ini juga akan mempersingkat penulisan coding Anda. Seperti berikut syntax-nya:

Kondisi_If ? Statement jika Kondisi If Benar : Statement jika Kondisi If Salah
Perhatikan contoh sederhana berikut.
/**
 * 
 * @author Yudi Setiawan
 * 
 * Contoh Sederhana Short Hand If Java
 *
 */
public class Main
{
 public static void main(String[] args)
 {
  int angka = 5;
  String hasil = (angka >= 5) ? "Lebih besar sama dengan 5" : "Lebih kecil dari 5";
  System.out.println("Hasil : "+hasil);
 }
}
Pada kode diatas, bisa Anda perhatikan bahwa angka berniai 5. Kemudian, variable hasil menggunakan short hand if else dimana, jika variable angka bernilai 5 atau lebih besar 5 maka, variable hasil akan bernilai "Lebih besar sama dengan 5" namun, jika variable angka bernilai dibawah 5 maka, variable hasil akan bernilai "Lebih kecil dari 5". Yang perlu Anda ingat di teknik ini ialah bahwa letak statement true terletak di sebelah kiri dari tanda titik dua(:), dan letak statementfalse terletak di sebelah kanan dari tanda titik dua(:). Gimana lumayan gampangkan? Coba Anda bandingkan kedua contoh program di bawah ini dimana, pada contoh pertama menggunakan gaya penulisan If Else biasa dan contoh kedua menggunakan gaya penulisan Short Hand If Else.
File : Contoh1.java
import java.util.Scanner;

/**
 * 
 * @author Yudi Setiawan
 * 
 * Contoh 1 : Menggunakan gaya penulisan If Else biasa
 *
 */

public class Contoh1
{
 public static void main(String[] args)
 {
  // Objeck Scanner
  Scanner scan = new Scanner(System.in);
  
  // Input nilai angka
  System.out.print("Masukkan nilai angka : "); int nilai_angka = scan.nextInt();
  
  String hasil;
  // Proses menentukan, apakah lulus atau tidak
  if(nilai_angka > 65)
  {
   hasil = "Selamat, Anda lulus.";
  }
  else
  {
   hasil = "Maaf, Anda gagal. Silakan coba lagi.";
  }
  
  // Cetak hasil
  System.out.println("Hasil ujian Anda : "+hasil);
  
 }
}
Dan berikut contoh kedua menggunakan teknik Short Hand.
File : Contoh2.java
import java.util.Scanner;

/**
 * 
 * @author Yudi Setiawan
 * 
 * Contoh 2 : Menggunakan teknik short hand If Else
 *
 */

public class Contoh2
{
 public static void main(String[] args)
 {
  // Objeck Scanner
  Scanner scan = new Scanner(System.in);
  
  // Input nilai angka
  System.out.print("Masukkan nilai angka : "); int nilai_angka = scan.nextInt();
  
  // Proses menentukan, apakah lulus atau tidak
  String hasil = (nilai_angka > 65) ? "Selamat, Anda lulus." : "Maaf, Anda gagal. Silakan coba lagi";  
  
  // Cetak hasil
  System.out.println("Hasil ujian Anda : "+hasil);
  
 }
}
Coba Anda perhatikan, pada kedua contoh diatas. Lihat baik - baik pada teknik penulisan If Else-nya. Gimana gampangkan cara membuatnya. Mungkin Anda belum terbiasa tapi, lama kelamaan mungkin akan bisa dengan sendirinya. Oya, saya rasa teknik short hand ini hanya bekerja pada kondisi If Else saja. Untuk kondisi If Else If belum pernah saya coba dan kalaupun bisa saya belum tahu gimana bentuk penulisannya dalam Short Hand.
Biar Anda lebih paham lagi, berikut saya beri contoh program Bubble Sort dengan menggunakan teknik Short Hand If Else.
import java.util.Scanner;

/**
 * 
 * @author Yudi Setiawan
 * 
 * Bubble Short menggunakan teknik Short Hand
 *
 */
public class Main
{
 public static void main(String[] args)
 {
  // Data
  int[] data = {5, 9, 1, 2, 3};
  
  // Tampilkan Data
  System.out.print("Data : ");
  for(int a = 0; a < data.length; a++)
   System.out.print(data[a]+" ");
  
  // Proses Bubble Sort
  for(int a = 0; a < data.length; a++)
  {
   for(int b = 0; b < data.length-1; b++)
   {
    // Gaya Penulisan If Else biasa
   /* if(data[b] > data[b+1])
    {
     int temp = data[b];
     data[b] = data[b+1];
     data[b+1] = temp;
    } */
    
    // Gaya Penulisan Short Hand If Else
    int temp = (data[b] > data[b+1]) ? data[b] : data[b+1];
    data[b] = (temp == data[b]) ? data[b+1] : data[b];
    data[b+1] = (data[b] == data[b+1]) ? temp : data[b+1];

   }
  }
  
  // Cetak output
  System.out.print("\nHasil Sorting : ");
  for(int a = 0; a < data.length; a++)
   System.out.print(data[a]+" ");
  
  
 }
}
Perhatikan pada contoh program Bubble Sort diatas. Hampir lupa, bahwa untuk menggunakan teknik Short Hand If Else harus menggunakan variable untuk menyimpan hasil pengkondisiannya. Lihat pada contoh-contoh sebelumnya. Saya selalu menggunakan variable untuk menyimpan value hasil dari pengkondisiannya. Pada contoh program Bubble Sort diatas pun saya menyimpannya dalam variable. Berikut sedikit penjelasan dari kode Short Hand If Else di program Bubble Sort diatas.
  1. Pertama, cek kondisi apakah data ke-n lebih besar dari data ke-(n+1) atau (data-[n] > data-[n+1] ). Jika bernilai true, maka simpan nilai data[n] ke dalam variable temp. Kode ini, bisa Anda lihat pada kode "int temp = (data[b] > data[b+1]) ? data[b] : data[b+1];".
  2. Kedua, cek kondisi apakah nilai temp sama dengan data[n]. Pada statement ini, Kondisi ini akan bernilai true jika pada kondisi sebelumnya(point 1) bernilai true. Jika kondisi ini bernilai true maka, simpan nilai data[n+1] ke dalam data[n]. Jika false, maka, nilainya tetap. Bisa Anda lihat pada kode"data[b] = (temp == data[b]) ? data[b+1] : data[b];".
  3. Ketiga, cek kondisi apakah nilai data[n] sama dengan data[n+1]. Pada statement ini, Kondisi ini akan bernilai true jika pada kondisi sebelumnya(point 2) bernilai true. Jika kondisi ini bernilai true maka, simpan nilai variable temp kedalam data[b+1]. Jika false maka, nilainya tetap. Bisa Anda lihat pada kode "data[b+1] = (data[b] == data[b+1]) ? temp : data[b+1];".
  4. Keempat, cetak hasilnya.

Tidak ada komentar:

Posting Komentar