Minggu, 04 Desember 2011

Struktur Kontrol Pada Java

Struktur Kontrol

Struktur kontrol adalah pernyataan dari Java yang mengijinkan user untuk memilih dan mengeksekusi blok kode spesifik dan mengabaikan blok kode yang lain.

Statement if 
Pernyataan if akan menentukan sebuah pernyataan (atau blok kode) yang akan eksekusi jika dan hanya jika persyaratan bernilai benar(true).


Bentuk dari pernyataan if,
                            if( boolean_expression )
                                     statement;

atau
                            if( boolean_expression ){
                                     statement1;
                                     statement2;
                                          . . .
                            }
dimana, boolean_expression adalah sebuah penyataan logika (true/false) atau variabel
bertipe boolean.




 
                Gambar 1: Flowchart Statement If

Berikut ini adalah potongan kode dari pernyataan if:
                                int grade = 68;
                                if( grade > 60 ) System.out.println("Congratulations!");

atau
                                int grade = 68;
                                if( grade > 60 ){
                                System.out.println("Congratulations!");
                                System.out.println("You passed!");
                                }


Petunjuk Penulisan Program :
1. Boolean_expression pada pernyataan i f harus merupakan nilai boolean).Hal ini
berarti persyaratan harus bernilai true atau false.
2. Masukkan statement di dalam blok if. Contohnya,
if( boolean_expression ){
//statement1;
//statement2;
}


Statement if-else
Pernyataan if-else digunakan apabila kita ingin mengeksekusi beberapa pernyataan dengan kondisi true dan pernyataan yang lain dengan kondisi false.


Bentuk statement if-else,
                    if( boolean_expression )
                              statement;
                    else
                              statement;

dapat juga ditulis seperti,
                    if( boolean_expression ){
                            statement1;
                            statement2;
                                 . . .
                    }
                    else{
                            statement1;
                            statement2;
                                 . . .

                    }

Berikut ini contoh code statement if-else,
                     int grade = 68;
                     if( grade > 60 )       System.out.println("Congratulations!");
                     else                        System.out.println("Sorry you failed");
atau
                     int grade = 68;
                     if( grade > 60 ){
                               System.out.println("Congratulations!");
                               System.out.println("You passed!");
                     }
                     else{
                               System.out.println("Sorry you failed");
                     }

              Gambar 2: Flowchart Statement If-Else



Petunjuk Penulisan Program :
1.Untuk menghindari kebingungan, selalu letakkan sebuah pernyataan atau beberapa
pernyataan di dalam blok if-else didalam tanda kurawal {},
2. Anda dapat memiliki blok if-else yang bersarang. Ini berarti anda dapat memiliki blok
if-else yang lain di dalam blok if-else. Contohnya,
if( boolean_expression ){
if( boolean_expression ){
. . .
}
} else{
. . .
}
Pengenalan


Statement if-else-if

Pernyataan pada bagian kondisi else dari blok if-else dapat menjadi struktur if-else
yang lain. Kondisi struktur seperti ini mengijinkan kita untuk membuat seleksi
persyaratan yang lebih kompleks.



Bentuk statement if-else if,
                if( boolean_expression1 )
                         statement1;
                else if( boolean_expression2 )
                         statement2;
                else
                         statement3;



Sebagai catatan : anda dapat memiliki banyak blok else-if sesudah pernyataan if. Blok else bersifat opsional dan dapat dihilangkan. Pada contoh yang ditampilkan di atas, jika boolean_expression1 bernilai true, maka program akan mengeksekusi statement1 dan melewati pernyataan yang lain. Jika boolean_expression2 bernilai true, maka program akan mengeksekusi statement2 dan melewati statement3.

                            Gambar 3: Flowchart Statement If-Else-If


Berikut ini contoh code statement if-else-if
                         int grade = 68;
                         if( grade > 90 ){
                               System.out.println("Very good!");
                         }
                         else if( grade > 60 ){
                               System.out.println("Very good!");
                         }
                         else{
                               System.out.println("Sorry you failed");

                         }

Statement switch
Cara lain untuk membuat cabang adalah dengan menggunakan kata kunci switch. Switch mengkonstruksikan cabang untuk beberapa kondisi dari nilai.


Bentuk statement switch,
                     switch( switch_expression ){
                                case case_selector1:
                                               statement1;          //
                                               statement2;          //block 1
                                               . . .                      //
                                               break;
                                case case_selector2:
                                               statement1;          //
                                               statement2;          //block 2
                                               . . .                      //
                                               break;
                                 . . .
                                default:
                                               statement1;          //
                                               statement2;          //block n
                                               . . .                      //
                                               break;

                                 }



switch_expression adalah ekspresi integer atau karakter dan case_selector1, case_selector2 dan seterusnya adalah konstanta unik dari nilai integer atau karakter.
Ketika pernyataan switch ditemukan pada potongan kode program, java pertama kali akan memeriksa switch_expression, dan menuju ke case yang akan menyamakan nilai yang dimiliki oleh switch_expression. Selanjutnya program akan mengeksekusi pernyataan pada dari kode setelah case yang ditemukan sampai menemui pernyataan break, selanjutnya akan mengabaikan pernyataan yang lainnya hingga akhir dari struktur dari pernyataan switch. Jika tidak ditemui case yang cocok, maka program akan mengeksekusi blok default.
Sebagai catatan, bahwa bagian blok default adalah opsional. Sebuah pernyataan switch bisa jadi tidak memiliki blok kode default.
CATATAN:

  • Tidak seperti padapernyataan if, beberapa pernyataan pada struktur pernyataan switch akan dieksekusi tanpa memerlukan tanda kurung kurawal ({}).
  • Ketika sebuah case pada pernyataan switch menemui kecocokan, semua pernyataan pada case tersebut akan dieksekusi. Tidak hanya demikian, pernyataan lain yang berada pada case yang sesuai juga akan dieksekusi. 
  • Untuk menghindari program mengeksekusi pernyataan pada case berikutnya, kita menggunakan pernyataan break sebagai pernyataan akhir pada setiap blok case.

                                    Gambar 4: Flowchart Statement Switch



Petunjuk Penulisan Program :
1. Menentukan penggunaan pernyataan if atau pernyataan switch adalah sebuah
keputusan programmer. Programmer dapat menentukan pernyataan yang mana
yang akan dipakai berdasarkan kemudahan membaca program dan faktor-faktor
yang lain.
2. Pernyataan if dapat digunakan untuk membuat keputusan berdasarkan rentang nilai
tertentu atau kondisi tertentu, sedangkan pernyataan switch membuat keputusan
hanya berdasarkan nilai unik dari tipe integer atau karakter.



Contoh statement switch



                   public class Grade
                   {
                              public static void main( String[] args )
                              {
                                     int grade = 92;
                                     switch(grade){
                                    case 100:
                                                 System.out.println( "Excellent!" );
                                                 break;
                                    case 90:

                                                 System.out.println("Good job!" );
                                                 break;

                                    case 80:
                                                 System.out.println("Study harder!" );
                                                 break;

                                    default:
                                                 System.out.println("Sorry, you failed.");
                                    }
                              }
                   }

Program Daftar Gaji

Soal:
1.input terdiri dari NIP,NAMA,STATUS,GAJI POKOK
2.proses berakhir jika NIP berisi simbol /*
3.untuk gaji pokok <= 500000 maka tidak dikenakan pajak
4.untuk gaji pokok > 500000 dikenakan pajak dihitung berdasarkan 10% * (gaji pokok - 500000)
5.bagi karyawan dengan status "kawin" diberikan tambahan tunjangan keluarga 100000
6.Gaji bersih dihitung = gaji pokok - pajak + tunjangan keluarga
7.Diakhir laporan hitung total gaji bersih
Buatlah flowchart dan program basic beserta outputnya!

Untuk flowchartnya seperti ini:


Dibawah adalah program basicnya :


5 CLS
10 PRINT TAB(30); "DAFTAR GAJI"
20 PRINT TAB(2); "_____________________________________________________________________"
30 PRINT TAB(2); "NO"; TAB(6); "NIP"; TAB(16); "NAMA"; TAB(30); "STATUS"; TAB(38); "GAJI POKOK"; TAB(50); "PAJAK"; TAB(60); "GAJI BERSIH"
40 PRINT TAB(2); "_____________________________________________________________________"
50 NO = 0: PJ = 0: GB = 0: TB = 0
60 READ NIP$, NAMA$, STAT$, GP
70 NO = NO + 1
80 IF NIP$ = "/*" THEN PRINT TAB(2); "TOTAL GAJI BERSIH"; TAB(60); TGB: END
90 IF GP <= 500000 THEN PJ = 0 ELSE PJ = 10 / 100 * (GP - 500000)
100 IF STAT$ = "MENIKAH" THEN TJ = 100000 ELSE TJ = 0
110 GB = GP - PJ + TJ
120 TGB = TGB + GB
130 PRINT TAB(2); NO; TAB(6); NIP$; TAB(16); NAMA$; TAB(30); STAT$; TAB(38); GP; TAB(49); PJ; TAB(60); GB
140 PRINT TAB(2); "_____________________________________________________________________"
155 GOTO 60
160 DATA 1A,BUDI,MENIKAH,2000000,1B,WAHYU,LAJANG,3000000,1C,DIAN,LAJANG,2500000,/*,C,MENIKAH,1000000

untuk file BASnya bisa download disini

kemudian outputnya adalah :

Mendapatkan Input dari Keyboard

Menggunakan BufferedReader untuk mendapatkan input
 
Pada bagian ini, kita akan menggunakan kelas BufferedReader yang berada di
java.io package untuk mendapatkan input dari keyboard.
Berikut ini adalah langkah-langkah yang diperlukan untuk mendapatkan input dari
keyboard:
1. Tambahkan di bagian paling atas code :
        import java.io.*;
2. Tambahkan statement ini:


      BufferedReader dataIn = new BufferedReader(new InputStreamReader( System.in) );


3. Deklarasikan variabel String temporer untuk mendapatkan input, dan gunakan
fungsi readLine() untuk mendapatkan input dari keyboard. Anda harus
mengetikkannya di dalam blok try-catch:


  try{
  String temp = dataIn.readLine();
  }
       catch( IOException e ){
       System.out.println(“Error in getting input”);
       }

 
Program lengkapnya:


       import java.io.BufferedReader;
       import java.io.InputStreamReader;
       import java.io.IOException;
       public class GetInputFromKeyboard
      {
              public static void main( String[] args ){
              BufferedReader dataIn = new BufferedReader(new
              InputStreamReader( System.in) );

              String name = "";
              System.out.print("Please Enter Your Name:");
              try{
              name = dataIn.readLine();
              }catch( IOException e ){
              System.out.println("Error!");
              }

              System.out.println("Hello " + name +"!");
              }
      }


 Menggunakan JOptionPane untuk mendapatkan input

Program : 

       import javax.swing.JOptionPane;
       public class GetInputFromKeyboard
      {

                 public static void main( String[] args ){
                 String name = "";
                 name = JOptionPane.showInputDialog("Please enter your name");

                 String msg = "Hello " + name + "!";
                 JOptionPane.showMessageDialog(null, msg);
                 }

       } 


Akan menghasilkan output :




Sabtu, 03 Desember 2011

Program Daftar Pembelian Roti

Disini saya mendapat tugas dari Dosen saya disuruh buat flowchart tentang daftar pembelian roti dan program basicnya.
Soal :
Sebuah perusahaan Roti ingin memberi keringanan kepada pembeli roti.
filenya berisi sebagai berikut:
Nama,Kode Pembeli,Banyak Roti
Data tersebut akan diproses dengan ketentuan, jika kode pembeli = 1, berarti pembeli "LANGGANAN", dan jika kode pembeli = 2, berarti pembeli "BIASA
untuk pembeli langganan yang membeli roti lebih dari 10 mendapat potongan dari total pembelian sebesar 10%, jika 10 atau kurang tidak mendapat potongan
untuk pembeli biasa yang membeli roti lebih dari 10 mendapat potongan dari total pembelian sebesar 5%, jika 10 atau kurang tidak mendapat potongan
Buatlah flowchart dan program Basic dan outputnya!

Sekarang kita buat flowchartnya kira-kira seperti ini :




Dan sekarang kita buat program basicnya

CLS
10 PRINT TAB(20); "DAFTAR PEMBELI ROTI"
11 PRINT "__________________________________________________________________"
12 PRINT TAB(2); "NO"; TAB(5); "NAMA"; TAB(18); "KET.PEMBELI"; TAB(40); "BANYAKNYA ROTI"; TAB(60); "BAYAR"
14 PRINT "__________________________________________________________________"
20 NO = 0: R = 4000: D = 0: TB = 0
30 READ NAMA$, KP, BR
40 NO = NO + 1
50 IF NO = 11 THEN GOTO 2000
65 T = BR * R
70 IF KP = 1 THEN KET$ = "LANGGANAN" ELSE GOTO 90
85 IF BR > 10 THEN GOTO 96
90 IF KP = 2 THEN KET$ = " BIASA"
91 IF BR > 10 THEN GOTO 97
96 D = 10 / 100 * T: GOTO 99
97 D = 5 / 100 * T: GOTO 99
99 BY = T - D
100 TB = TB + BY
110 PRINT TAB(1); NO; TAB(5); NAMA$; TAB(18); KET$; TAB(40); BR; TAB(60); BY
130 GOTO 30
2000 PRINT TAB(2); "_________________________________________________________________"
2010 PRINT TAB(2); "TOTAL BAYAR"; TAB(60); TB
2100 END
2200 DATA GESDI,1,10,LINA,2,15,CANTIK,1,5,DONI,2,4,EDWIN,1,10,FARIS,2,10,GEMUK,1,6,HARIS,2,15,IAN,1,10,JULIANDI,2,20,KASIR,1,15

untuk file BAS nya bisa di download disini

kemudian outputnya seperti ini :