Sabtu, 11 Januari 2020

OBJECT AND CLASS

OBJECT AND CLASS

Class dan Object pada Pemrograman Java. Java adalah bahasa berorientasi objek. Sebagai bahasa yang memiliki fitur object oriented, Java mendukung konsep dasar berikut ini.

-Polymorphism
-Inheritance
-Encapsulation
-Abstraction
-Classes
-Objects
-Instance
-Method
-Message Parsing

Kita akan membahas konsep class dan object.

– Class merupakan suatu “Blueprint” atau “Cetakan” untuk menciptakan suatu instant dari object. Class juga merupakan grup suatu object dengan kemiripan attributes/properties, behavior dan relasi ke object lain. Contoh :Class Person, Vehicle, Tree, Fruit dan lainnya.

– Object adalah instance dari class secara umum merepresentasikan (template) sebuah object, sebuah instance adalah representasi nyata dari class itu sendiri.
Contoh : Dari Class Fruit kita dapat membuat object Mangga, Pisang, Apel, dan lainnya.

Object Pada Java

Mari kita lihat lebih dalam apa itu object. Bila kita melihat dunia nyata kita dapat menemukan banyak benda disekitar kita seperti, mobil, kucing, manusia dan lain-lain. Semua object memiliki state(attribute) dan behavior. Jika kita melihat objek kucing, maka state (attribute) tersebut adalah nama, jenis, warna dan behavior(prilaku) tersebut adalah mengeong, bergoyang-goyang, berjalan. Jika Anda membandingkan objek pada software dengan objek dunia nyata, mereka memiliki karakteristik yang sangat mirip. Objek pada software juga memiliki state (Attribute) dan behavior, sebuah state pada objek software disimpan dalam bidang dan behavior ditunjukkan melalui method. Jadi dalam pengembangan software, method beroperasi pada keadaan internal suatu objek dengan komunikasi objek ke objek dilakukan melalui method.

Class Pada Java

Berikut contoh class dibawah ini:
 
public class cat{
   String breed;
   int age;
   String color;

   void miaow(){
   }
   
   void hungry(){
   }
   
   void sleeping(){
   }
}


Class dapat berisi salah satu jenis variabel berikut.
Variabel lokal : Variabel didefinisikan didalam method konstruktor atau blok disebut variabel lokal, variabel akan dideklarisasikan dalam method dan variabel akan dihancurkan ketika method telah selesai.

Variabel Instance : Variabel dalam class tetapi diluar method apapun, variabel ini dipakai ketika class dimuat. Variabel instance dapat diakses dari dalam method, konstruktor atau class tertentu.

Variabel Class : Variabel dideklarasikan dalam class, diluar method apapun, dengan kata kunci static.
Class dapat memiliki sejumlah method untuk mengakses nilai dari berbagai jenis method. Dalam contoh diatas miaow(), hungry(), dan sleeping() adalah method.

 Membuat Objek

Seperti disebut sebelumnya class menyediakan "blueprint" untuk objek jadi pada dasarnya,sebuah objek dibuat dari class.Di java, kata kunci "new" digunakan untuk membuat objek baru.
Ada tiga langkah membuat objek dari class:
Deklarasi: Deklarasi variabel dengan nama variabel dan jenis objek.
Instansiasi: kata kunci "new" digunakan untuk membuat objek.
Inisialisasi: kata kunci "new" diikuti dengangan panggilan untuk konstuktor, panggilan ini menginisialisasi objek baru.
Berikut contoh membuat objek dibawah ini.
 
public class Kitten{

 public Kitten(String name){
  // konstruktor ini memiliki satu parameter, name 
  System.out.println("my kitten is:" + name);
  }
 public static void main (String []args){
  //ikuti statement ini untuk membuat objek mykitten
  Kitten mykitten = new Kitten ("teo");
 }
}

Jika code diatas benar maka hasilnya seperti berikut.
 
my kitten is:teo

ARRAY

ARRAY

Secara pengertian: Array atau larik (dalam Bahasa Indonesia) adalah sebuah tipe data bentukan yang terdiri dari sejumlah komponen dengan tipe yang sama.
Artinya, kita dapat menyimpan banyak data dalam satu variabel.
Analoginya seperti ini:
Mari kita bayangkan bahwa array merupakan sebuah hotel yang memiliki beberapa kamar. Kemudian setiap kamar dikenal dengan index atau urutan angka.
Intinya adalah: kita akan menyiapkan kamar dalam hotel dengan nomor index 0-sekian. Untuk penggunaanya sendiri pengunjung dibagi berdasarkan nomor kamar hotel.
Jika kita lihat lagi masalah diatas, kita tidak lagi membutuhkan banyak variabel untuk menyiman data yang sama. Namun kita hanya membutuhkan satu variabel saja.
Ada beberapa hal yang perlu anda ketahu tentang array:
  • Nomor index pada Array dimulai dari nol (0).
  • Array hanya mampu menyimpan data dengan tipe yang sama.
  • Artinya, semua isi array memiliki tipe data sama.
Jika anda sudah paham mari kita lanjutkan.

Ketika kita mendeklarasikan array ke compiler, maka sama saja dengan menciptakan sebuah hotel dengan masing-masing nomor kamar yang tersedia.
Setelah kita berhasil mendeklarasikan array, maka kita dapat mulai memberikan nilai untuk setiap kamar-kamar yang tersedia dalam hotel yang tadi kita deklarasikan.
Tipe data array yang dapat digunakan antara lain: int, char, double, string, dan boolean.
Berikut cara mendeklarasikan array dalam program pascal.

nama_Array: array[panjang_indeks] of tipe_Array
 
Contoh pendeklarasian array berdimensi 1 (satu):
 
X : array [0..9] of integer;

Pada contoh diatas kita telah mendeklarasikan variabel X bertipe Array yang memiliki indeks 0-9 (10 larik) dengan tipe data integer. Artinya kita dapat menyimpan 10 angka.

Berikut cara memberikan nilai pada array:
 
X[0] := 9; X[1] := 8; X[2] := 7; X[3] := 10; X[4] := 8; X[5] := 7; X[6] := 9; X[7] := 7; X[8] := 8; X[9] := 10;

TIPS: X[0] := 9 menunjukkan bahwa X adalah nama larik, 0 adalah nilai indeks, 10 menunjukkan nilai integer. Sedangkan untuk mengakses nilai dari variabel:
menggunakan namaVariabel[nomorIndeks], contoh:
 
Writeln(X[0]);

Dalam penggunaannya, array dipasangkan dengan sebuah fungsi perulangan.
 
Ada dua jenis tipe data array
  • Array 1 dimensi
  • Array 2 dimensi (multi dimensi)
Jika array satu dimensi kita asumsikan sebagai deretan data maka array berdimensi dua mewakili suatu bentuk tabel atau matrik dimana indeks yang pertama menunjukkan baris kemudian indeks yang kedua menunjukkan kolom dari tabel atau matriks.
Berikut bentuk umumnya:

Nama_larik : Array [indeks_baris,Indeks_Kolom] of Tipe_Array;

Berikut contoh array dimensi satu dalam pascal dengan fungsi for to do:

Program ContohArray;
uses crt;
var data:array[0..4] of integer;
m,n,i : integer;
Begin
   n:=4;
   Write('Masukan 5 buah angka (1-10): ');
   for i:=0 to n do
   begin
     write ('Data ke-',i+1,' = ');readln(data[i]);
   end;

   Write('data ke berapa yang ingin anda lihat? (1-5) : ');readln(m);

   Write('Data Ke-',m,' = ',data[m-1]);
   readln;
end.

Berikut contoh array berdimensi dua:

Program Matriks;
uses crt;
var A:array[1..3,1..3] of integer;
i,j,m,n,k,l : integer;
Begin
   Writeln('Program input matriks A');
   writeln('-----------------------');
   write('Banyaknya baris : ');readln(m);
   write('Banyaknya kolom : ');readln(n);
   for i:=1 to m do
   begin
      for j:=1 to n do
      begin
         write('A [',i,',',j,'] : ');readln(A[i,j]);
      end;
      writeln;
   end;

   writeln('Melihat Elemen Matrik A');
   write('Baris ke-');readln(k);
   write('Kolom ke-');readln(l);
   Write('Elemen Matrik A baris ke-',k,' kolom ke-',l,' =',A[k,l]);
   readln;
end.

Maaf karena harusnya saya menggunakan indeks dari 0, namun hal ini hanya untuk mempermudah pemahaman anda mengenai konsep array berdimensi dua.

 Keunggulan array dibandingkan variabel biasa akan anda rasakan dalam fleksibilitas program, sebagai contoh ketika anda ingin menampung daftar nama mahasiswa.
Dibandingkan anda membuat banyak variabel misalnya: nama1, nama2, nama2, dan seterusnya. Akan lebih baik jika kita menggunakan tipe data array.
Karena kita dapat menyimpan data-data tersebut menjadi satu nama variabel.
Selain mudah diingat, tentu lebih efektif dalam pembuatan program.

FUNGSI REKURSIF

FUNGSI REKURSIF

Rekursif berarti suatu proses yang memanggil dirinya sendiri. Dalam rekursif sebenarnya terkandung pengertian prosedur atau fungsi. Perbedaannya adalah bahwa rekursif bisa memanggil ke dirinya sendiri, tetapi prosedur atau fungsi harus dipanggil lewat pemanggil prosedur atau fungsi. Rekursif merupakan teknik pemrograman yang penting, dan beberapa bahasa pemrograman modern mendukung keberadaan proses rekursif ini.
Pemanggilan prosedur atau fungsi ke dirinya sendiri bisa berarti proses yang berulang yang tidak bisa diketahui kapan akan berakhir. Dalam pemakaian sehari-hari, rekursi merupakan teknik pemrograman yang berdaya guna untuk digunakan pada pekerjaan pemrograman dengan mengeksperisikannya ke dalam suku-suku dari program lain dengan menambahkan langkahlangkah sejenis. Contoh paling sederhana dari proses rekursi adalah menghitung nilai faktorial dari bilangan bulat. Nilai faktorial, secara rekursif dapat ditulis sebagai :
0! = 1
N! = N x (N-1)!, Untuk N > 0
yang secara notasi pemrograman bisa ditulis sebagai:
FAKTORIAL (0) = 1 1)
FAKTORIAL (N) = N * FAKTORIAL (N-1) 2)
Persamaan 2) di atas merupakan contoh hubungan rekurens (recurrence relation), yang berarti bahwa nilai suatu fungsi dengan argumen tertentu bisa dihitung dari fungsi yang sama dengan argumen yang lebih kecil. Persamaan 1) yang tidak bersifat rekursif, disebut nilai awal. Setiap fungsi rekursi paling sedikit mempuyai 1 (satu) nilai awal; jika tidak, fungsi tersebut tidak bisa dihitung secara eksplisit.
Proses rekursi akan selesai , ini terletak pada kondisi pernyataan if-nya. Jika pernyataan if menjadi FALSE maka akan menghentikan proses rekursi
Prinsif dan proses rekursi:
  1. Memiliki kasus non rekursi(sederhana)
  2. Kasus awal diarahkan menuju kasus sederhana
  3. Mendefinisikan proses rekursi
Dalam bentuk pernyataan , biasanya menggunakan pernyataan if( atau if……else)
Contoh  program rekursi sederhana dengan DEV C++
#include <iostream>
using namespace std;
void cetak(int n)
{
if(n<=4)
cetak(n+1);
cout<<n<<endl;
}
int main(int argc, char *argv[])
{
cout<<“Hasil dengan cara menggunakan rekursif: “;
cetak(1);
system(“PAUSE”);
return EXIT_SUCCESS;
}
Fungsi yang didefinisikan secara rekursif:
Langkah-langkah untuk mendefinisikan fungsi dengan domain bilangan cacah:
  1. Langkah basis: Definisikan nilai fungsi pada saat nol.
  2. Langkah rekursif: Berikan aturan untuk mencari nilai fungs iuntuk setiap bilangan bulat berdasarkan nilai fungsi pada bilangan bulat yang lebih kecil.
Definisi seperti itu disebut rekursif atau definisi induktif.
Bentuk rekursif :
a. suatu subrutin/fungsi/ prosedur yang memanggil dirinya sendiri.
b. Bentuk dimana pemanggilan subrutin terdapat dalam body subrutin
c. Dengan rekursi, program akan lebih mudah dilihat
Bentuk rekursi bertujuan untuk : b.menyederhanakan penulisan program c.menggantikan bentuk iterasi Syarat bentuk rekursif:  ada kondisi terminal (basis)  ada subroutine call yang melibatkan parameter yang nilainya menuju kondisi terminal (recurrence)
Proses Rekursif
Untuk memahami proses rekursif yang terjadi dalam sebuah fungsi rekursif, perhatikan contoh sederhana di bawah ini. Contoh di bawah ini menyajikan satu fungsi untuk menghitung harga pangkat suatu nilai bilangan bulat misalnya 35, berdasarkan hubungan rekurens seperti dijelaskan diatas, maka proses rekursif akan tampak pada gambar berikut ini:


index 
Dari definisi tersebut, statemen pertama menunjukkan nilai yang utama dari fungsi, dan statemen kedua menunjukan perulangan penurunan dari n yaitu n-1.
Selain fungsi, prosedur juga dapat dilakukan operasi rekursif. Sebagai contoh penggunaan proses rekursif pada prosedur adalah prosedur pencarian biner (binary search). Dalam beberapa hal rekursif kurang efisien dibandng proses iterasi. Dalam artian pemecahan secara rekursif dan secara iterasi mempunyai keuntungan dan kekurangan yang bisa saling diperbandingkan. Adalah cukup sulit untuk menentukan mana yang paling sederhana, paling jelas, paling efisien dan paling
mudah dibanding yang lain. Bisa ditambahkan, pemilihan secara iteratif maupun rekursif boleh dikatakan merupakan kesenangan seorang programmer sesuai dengan keinginannya.


indexs



Kelebihan perulangan rekursif
Sangat mudah untuk melakukan perulangan dengan batasan yang luas dalam artian melakukan perulangan dalam skala yang besar
Dapat melakukan perulangan dengan batasan fungsi
 
Kekurangan perulangan rekursif
Tidak bisa melakukan nested loop atau looping bersarang.
Biasanya membuat fungsi sulit untuk dipahami, hanya cocok untuk persoalan tertentu saja.
Memerlukan stack yang lebih besar, sebab setiap kali fungsi dipanggil, variabel lokal dan parameter formal akan ditempatkan ke stack dan ada kalaya akan menyebabkan stack tak cukup lagi (Stack Overum).
Proses agak berbelit-belit karena terdapat pemangilan fungsi yang berulang-ulang dan pemanggilan data yang ditumpuk.



PENGULANGAN (LOOP)

PENGULANGAN (LOOP)

Apa yang akan kita lakukan bila ingin menyuruh komputer mengerjakan perintah yang berulang-ulang?
Misalkan kita ingin menyuruh komputer menampilkan teks Petani Kode sebanyak 5x.
Maka kita bisa menyuruhnya seperti ini:
System.out.println("Petani Kode");
System.out.println("Petani Kode");
System.out.println("Petani Kode");
System.out.println("Petani Kode");
System.out.println("Petani Kode");
Tapi bagaimana kalau sebanyak 1000x, apa kita akan mampu mengetik kode sebanyak itu?
Tentunya tidak.
Karena itu, kita harus pakai perulangan.
Contoh perulangan:
for (int hitungan = 0; hitungan <= 1000; hitungan++) {
    System.out.println("Petani Kode");
}
Sebelum masuk ke pembahasan lebih dalam, ada hal yang harus kalian ketahui terlebih dahulu.
Perulangan dalam pemrograman dibagi manjadi dua jenis:
  1. Counted loop: Perulangan yang jumlah pengulangannya terhitung atau tentu.
  2. Uncounted loop: Perulangan yang jumlah pengulangannya tidak terhitung atau tidak tentu.
Mind map perulangan

1. COUNTED LOOP
perulangan ini terdiri dari perungan for dan for each

PERULANGAN FOR
Format penulisan perulangan For di java adalah sebagai berikut:
for( int hitungan = 0; hitungan <= 10; hitungan++ ){
    // blok kode yang akan diulang
}
Penjelasan:
  • variabel hitungan tugasnya untuk menyimpan hitungan pengulangan.
  • hitungan <= 10 artinya selama nilai hitungannya lebih kecil atau sama dengan 10, maka pengulangan akan terus dilakukan. Dengan kata lain, perualangan ini akan mengulang sebanyak 10 kali.
  • hitungan++ fungsinya untuk menambah satu (+1) nilai hitungan peda setiap pengulangan.
  • Blok kode For dimulai dengan tanda ‘{’ dan diakhiri dengan ‘}’.
Mari kita coba dalam contoh program

 CONTOH PERULANGAN FOR

Silahkan buat class baru bernama Bintang, kemudian ikuti kode berikut:
class Bintang{
    public static void main(String[] args){

        for(int i=0; i <= 5; i++){
            System.out.println("*****");
        }

    }
}
Hasil output:
*****
*****
*****
*****
*****
*****
Mau lagi?
Sekarang cobalah buat program untuk menampilkan nilai dari 1 sampai 10 dengan menggunakan perulangan.
class CetakAngka{

    public static void main(String[] argumen){

        for(int i=0; i <= 10; i++){
            System.out.print( i + " " );
        }

    }

}
Hasil output:
0 1 2 3 4 5 6 7 8 9 10
Coba kita lakukan sedikit eksperimen.
Buat sebuah program yang menampilkan bilangan ganjil saja.
class CetakBilanganGanjil{

    public static void main(String[] argumen){
        for(int i = 1; i <= 20; i += 2){
            System.out.print( i + " ");
        }
    }

}
Hasil output:
1 3 5 7 9 11 13 15 17 19
Perhatikan: di sana kita menggunakan i += 2, bukan i++.
Apa maksudnya?
Maksudnya, nilai i akan ditambah dua (+2) di setiap pengulangan.

PERULANGAN FOR EACH

Perulangan For Each pada Java, dilakukan juga dengan kata kunci For.
Contohnya seperti ini:
for ( int item : dataArray ) {
    // blok kode yang diulang
}
Penjelasan:
  • variabel item akan menyimpan nilai dari array
  • Kita bisa baca seperti ini: “Untuk setiap item dalam dataArray, maka lakukan perulangan”
CONTOH PROGRAM FOR EACH

Buat sebuah class baru bernama PerulanganForeach, kemudian ikuti kode berikut.
public class PerulanganForeach {
    public static void main(String[] args) {

        // membuat array
        int angka[] = {3,1,42,24,12};

        // menggunakan perulangan For each untuk menampilkan angka
        for( int x : angka ){
            System.out.print(x + " ");
        }

    }
}
Hasil outputnya:
3 1 42 24 12
 
 UNCOUNTED LOOP

Seperti yang sudah dijelaskan di awal tadi, perulangan ini tidak jelas jumlah pengulangannya.
Tapi, tidak menutup kemungkinan juga, jumlah pengulangannya dapat ditentukan.
Perulangan uncounted loop terdirid dari perulangan While dan Do/While.

 Flow Chart Perulangan While dan Do/While
   
PERULANGAN WHILE

While bisa kita artikan selama.
Cara kerja perulangan ini seperti percabangan, ia akan melakukan perulangan selama kondisinya bernilai true.
Struktur penulisan perulangan while:
while ( kondisi ) {
    // blok kode yang akan diulang
}
Penjelasan:
  • kondisi bisa kita isi dengan perbandingan maupun variabel boolean. Kondisi ini hanya memiliki nilai true dan flase.
  • Perulangan while akan berhenti sampai kondisi bernilai false.
Untuk lebih jelasnya, mari kita coba membuat program

CONTOH PROGRAM DENGAN PERULANGAN WHILE

Program ini akan melakukan perulangan selama jawabannya tidak.
import java.util.Scanner;

public class PerulanganWhile {
    public static void main(String[] args) {

        // membuat variabel dan scanner
        boolean running = true;
        int counter = 0;
        String jawab;
        Scanner scan = new Scanner(System.in);

        while( running ) {
            System.out.println("Apakah anda ingin keluar?");
            System.out.print("Jawab [ya/tidak]> ");

            jawab = scan.nextLine();

            // cek jawabnnya, kalau ya maka berhenti mengulang
            if( jawab.equalsIgnoreCase("ya") ){
                running = false;
            }

            counter++;
        }

        System.out.println("Anda sudah melakukan perulangan sebanyak " + counter + " kali");

    }
}
Hasil outputnya:




Hasil output contoh program menggunakan perulangan while 
 

 
Di sana telah dilakukan perulangan sebanyak 4 kali. Bisa saja terjadi 10 kali.
Itu targantung dari kondisinya.
Kalau nilai variabel running bernilai false, maka perulangan berhenti.
Contoh kode while di atas dapat kita baca seperti ini: “Lakukan perulangan selama nilai running bernilai true.”
Tidak menutup kemungkinan juga, perulangan ini dapat melakukan counted loop.
Contohnya seperti ini:
int i = 0;

while ( i <= 10 ){
    // blok kode yang akan diulang
    System.out.println('Perulangan ke-' + i);

    // increment nilai i
    i++;
}
Hasil outputnya:
Perulangan ke-0
Perulangan ke-1
Perulangan ke-2
Perulangan ke-3
Perulangan ke-4
Perulangan ke-5
Perulangan ke-6
Perulangan ke-7
Perulangan ke-8
Perulangan ke-9
Perulangan ke-10

 PERULANGAN DO/WHILE


Cara kerja perulangan Do/While sebenarnya sama seperti perulangan While.
Bedanya, Do/While melakukan satu kali perulangan dulu. Kemudian mengecek kondisinya.

 Flowchart perulangan do/while

Struktur penulisannya seperti ini:
do {
    // blok kode yang akan diulang
} while (kondisi);
Jadi kerjakan dulu (Do), baru di cek kondisinya while( kondisi ). Kalau kondisi bernilai ture, maka lanjutkan perulangan.

CONTOH PROGRAM DENGAN PERULANGAN DO/WHILE

public class PerulanganDoWhile {
    public static void main(String[] args) {

        // membuat variabel
        int i = 0;

        do {
            System.out.println("perulangan ke-" + i);
            i++;
        } while ( i <= 10);

    }
}
Hasil outputnya:
perulangan ke-0
perulangan ke-1
perulangan ke-2
perulangan ke-3
perulangan ke-4
perulangan ke-5
perulangan ke-6
perulangan ke-7
perulangan ke-8
perulangan ke-9
perulangan ke-10

PERULANGAN BERSARANG (NESTED LOOP)

Perulangan juga dapat bersarang. Perulangan bersarang maksudnya, perulangan dalam perulangan atau disebut juga nested loop.
Contoh bentuk flow chart-nya seperti ini:

Flow Chart Perulangan Bersarang
 CONTOH PROGRAM PERULANGAN BERSARANG

public class PerulanganBersarang {
    public static void main(String[] args) {

        // membuat variabel
        int x, y;

        // melakukan parulang sebnayan x dan y kali
        for (x = 0; x <= 5; x++){
            for( y = 0; y <= 3; y++){
                System.out.format("Perulangan [x=%d, y=%d] %n", x, y);
            }
        }
    }
}
Hasil outputnya:
Perulangan [x=0, y=0]
Perulangan [x=0, y=1]
Perulangan [x=0, y=2]
Perulangan [x=0, y=3]
Perulangan [x=1, y=0]
Perulangan [x=1, y=1]
Perulangan [x=1, y=2]
Perulangan [x=1, y=3]
Perulangan [x=2, y=0]
Perulangan [x=2, y=1]
Perulangan [x=2, y=2]
Perulangan [x=2, y=3]
Perulangan [x=3, y=0]
Perulangan [x=3, y=1]
Perulangan [x=3, y=2]
Perulangan [x=3, y=3]
Perulangan [x=4, y=0]
Perulangan [x=4, y=1]
Perulangan [x=4, y=2]
Perulangan [x=4, y=3]
Perulangan [x=5, y=0]
Perulangan [x=5, y=1]
Perulangan [x=5, y=2]
Perulangan [x=5, y=3]
 


BENTUK STRUKTUR KASUS

BENTUK STRUKTUR KASUS

Kalau kita perhatikan, alur pengeksekusian sebuahkode program dikerjakan satu persatu dari atas sampe bawah.
Baris demi baris dibaca, kemudian komputer mengerjakan apa yang diperintahkan.
Alur porgram tanpa percabangan 
Alur program nya satu tidak ada percabangan, percabangan adalah sebuah istilah yang digunakan untuk menyebut alur program yang bercabang. percabangan juga dikenal dengan "Control Flow" , "Struktur IF" , "Decision" , dsb. semuanya itu sama.
Setelah kita menggunakan percabangan alurnya akan bertambah seperti ini.

Flowchart Percabangan 

Lalu bagaimana cara menulis kode percabangan dalam java?
caranya: menggunakan kata kunci if,else,switch, dan case, dan operator ternary.
contoh format struktur if seperti ini.

if( suatu_kondisi ) {
    // lakukan sesuatu kalau kondisi benar
    // Lakukan ini juga
}
suatu_kondisi hanya bernilai true/false saja. Kita bisa gunakan operator relasi dan logika di sini.
Untuk lebih jelasnya, nanti akan kita bahas.
Sebelumnya, kamu perlu tahu dulu tiga bentuk percabangan pada Java:
  1. Percabangan IF
  2. Percabangan IF/ELSE
  3. Percabangan IF/ELSE/IF atau SWITCH/CASE
1. PERCABANGAN IF
Percabangan ini hanya memiliki satu pilihan. Artinya, pilihan di dalam IF hanya akan dikerjakan kalau kondisinya benar
Percabangan IF 
Tapi kalau salah tidak akan melakukan apa-apa. Alias lanjut eksekusi ke perintah berikutnya.
Contoh:
Pernahkah kalian belanja di toko, kemudian kalau belanja di atas sekian ribu dapat hadiah atau diskon.
Nah! Contoh kasus seperti itu, dapat kita selesaikan dengan menggunakan percabangan ini.
untuk lebih jelasnya
Misalkan ada sebuah toko buku. Mereka memberikan hadiah berupa perlengkapan sekolah kepada pembeli yang belanja di atas Rp 100.000.
Maka programnya bisa kita buat seperti ini:
import java.util.Scanner;

public class Hadiah {

    public static void main(String[] args) {

        // membuat variabel belanja dan scanner
        int belanja = 0;
        Scanner scan = new Scanner(System.in);

        // mengambil input
        System.out.print("Total Belanjaan: Rp ");
        belanja = scan.nextInt();

        // cek apakah dia belanja di atas 100000
        if ( belanja > 100000 ) {
            System.out.println("Selamat, anda mendapatkan hadiah!");
        }

        System.out.println("Terima kasih...");

    }

}
Jalankan programnya dan perhatikanlah hasilnya.

Program diskon dengan Java

Cobalah untuk memberikan nilai di bawah 100000 dan perhatikan apa akan yang terjadi.

2.PERCABANGAN IF/ELSE

Sedangkan percabangan IF/ELSE memiliki pilihan alternatif kalau kondisinya salah.
IF: “Jika kondisi benar maka kerjakan ini, kalau tidak silahkan lanjut”
IF/ESLE: “Jika kondisi benar maka kerjakan ini, kalau salah maka kerjakan yang itu, setelah itu lanjut”

Perbedaan percabangan IF dengan IF/ELSE


Begitulah perbedaan IF dengan IF/ELSE.
Sekarang mari kita coba dalam kode program


Misalkan, kalau nilai siswa lebih besar dari 70, maka ia dinyatakan lulus. Kalau tidak, maka dia gagal.
Programnya bisa kita buat seperti ini
import java.util.Scanner;

public class CekKelulusan {

    public static void main(String[] args) {

        // membuat variabel dan Scanner
        int nilai;
        String nama;
        Scanner scan = new Scanner(System.in);

        // mengambil input
        System.out.print("Nama: ");
        nama = scan.nextLine();
        System.out.print("Nilai: ");
        nilai = scan.nextInt();

        // cek apakah dia lulus atau tidak
        if( nilai >= 70 ) {
            System.out.println("Selemat " + nama + ", anda lulus!");
        } else {
            System.out.println("Maaf " + nama + ", anda gagal");
        }

    }

}
Hasil outputnya:

Hasil output program tes kelulusan

3.PERCABANGAN IF/ELSE DAN SWITCH/CASE
Jika percabangan IF/ESLE hanya memiliki dua pilihan saja. Maka percahangan IF/ELSE/IF memiliki lebih dari dua pilihan.
Formatnya seperti ini:
if (suatu kondisi) {
    // maka kerjakan ini
    // kerjakan perintah ini juga
    // …
} else if (kondisi lain) {
    // kerjakan ini
    // kerjakan ini juga
    // …
} else if (kondisi yang lain lagi) {
    // kerjakan perintah ini
    // kerjakan ini juga
    // …
} esle {
    // kerjakan ini kalau
    // semua kondisi di atas
    // tidak ada yang benar
    // …
}
Coba perhatikan contohnya:



Jika nilainya lebih besar dari 90, maka grade-nya “A”. Sedangkan kalau lebih besar dari 80, maka “B+”. Lebih besar dari 70, maka “B”, dan seterusnya.
Lebih jelasnya, mari kita buat program.

Silahkan buat sebuah class baru bernama HitungGrade, kemudian ikuti kode program berikut.
import java.util.Scanner;

public class HitungGrade {
    public static void main(String[] args) {

        // membuat variabel dan scanner
        int nilai;
        String grade;
        Scanner scan = new Scanner(System.in);

        // mengambil input
        System.out.print("Inputkan nilai: ");
        nilai = scan.nextInt();

        // higung gradenya
        if ( nilai >= 90 ) {
            grade = "A";
        } else if ( nilai >= 80 ){
            grade = "B+";
        } else if ( nilai >= 70 ){
            grade = "B";
        } else if ( nilai >= 60 ){
            grade = "C+";
        } else if ( nilai >= 50 ){
            grade = "C";
        } else if ( nilai >= 40 ){
            grade = "D";
        } else {
            grade = "E";
        }

        // cetak hasilnya
        System.out.println("Grade: " + grade);
    }
}
Hasil outputnya:

Hasil output program hitung grade


PERCABANGAN SWITCH/CASE

Percabangan SWITCH/CASE sebenarnya adalah bentuk lain dari IF/ELSE/IF.
Bedanya, percabangan ini menggunakan kata kunci switch dan case.
Formatnya juga berbeda, tapi cara kerjanya sama.
switch(variabel){
    case 1:
        // kerjakan kode ini
        // kode ini juga
        break;
    case 2:
        // kerjakan kode ini
        // kode ini juga
        break;
    case 3:
        // kerjakan kode ini
        // kode ini juga
        break;
    default:
        // kerjakan kode ini
        // kode ini juga
        break;
}
Perhatikan: case 1 artinya nilai variabel yang akan dibandingkan, apakah nilainya sama dengan 1 atau tidak.
Kalau iya, maka kerjakan kode yang ada di dalam case 1.
Bisa juga betuknya berbeda, misalnya seperti ini:
switch (variabel) {
    case 'A':
        // lakukan sesuatu
        break;
    case 'B':
        // lakukan ini
        break;
    default:
        // lakukan ini
}
Perlu diperhatikan juga: di sana ada kata kunci break dan default.
  • break artinya berhenti. Ini untuk memerintahkan komputer untuk berhenti mengecek case yang lainnya.
  • default artinya jika nilai variabel tidak ada yang sama dengan pilihan case di atas, maka kerjakan kode yang ada di dalam default.
Pilihan default bisa juga tidak memiliki break, karena dia adalah pilihan terakhir. Artinya pengecekan akan berakhir di situ.
Contoh program dengan percabangan SWITCH/CASE
import java.util.Scanner;

public class LampuLalulintas {
    public static void main(String[] args) {

        // membuat variabel dan Scanner
        String lampu;
        Scanner scan = new Scanner(System.in);

        // mengambil input
        System.out.print("Inputkan nama warna: ");
        lampu = scan.nextLine();

        switch(lampu){
            case "merah":
                System.out.println("Lampu merah, berhenti!");
                break;
            case "kuning":
                System.out.println("Lampu kuning, harap hati-hati!");
                break;
            case "hijau":
                System.out.println("Lampu hijau, silahkan jalan!");
                break;
            default:
                System.out.println("Warna lampu salah!");
        }
    }
}
Hasil outputnya:
Hasil output program lampu lalu lintas dengan percabangan switch case
  
 

Senin, 06 Januari 2020

PENGANTAR ALGORITMA DAN PEMROGRAMAN

Pengantar Algoritma dan Pemrograman

1.Definisi pemrograman
Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun suatu program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman.

2.Sejarah Algoritma
Awalnya algoritma digunakan untuk penghitungan dalam ilmu matematika namun dalam perkembangannya, kata algoritma justru banyak dipakai pada bidang pemrograman komputer.
Dalam bidang komputer, algoritma didefinisikan sebagai urutan langkah-langkah penyelesaian masalah yang disusun secara sistematis dan logis.

3.Definisi Algoritma
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis. Langkah-langkah dalam Algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.

4.Keuntungan dalam membuat algoritma
KEUNTUNGAN DALAM PEMBUATAN ALGORITMA
  • Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
  • Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.

5.Hal-hal yang perlu diperhatikan
Beberapa hal yang perlu diperhatikan dalam membuat algoritma:
  • Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  • Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  • Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
  • Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
  • Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman.