Selasa, 09 Desember 2014

Jumat, 19 Oktober 2012


Pembahasan III Method (JENI)


3. Pemberian Variabel Dalam Method

Pada contoh kita sebelumnya , kita sudah pernah mecoba melewati variabel pada method.
Walaupun kita belumdapat membedakan antara perbedaan tipe variabel yang diberikan
(passing) ke method dalam Java. Ada dua tipe data variabel passing pada method, yang
pertama adalah pass-by-value dan yang kedua adalah pass-by-reference.

1.3 Pass-by-Value
Ketika pass-by-values terjadi, method membuat sebuah salinan dari nilai variable yang
dikirimkan ke method. Walaupun demikian, method tidak dapat secara langsung
memodifikasi nilai variabel pengirimnya meskipun parameter salinannya sudah dimodifikasi
nilainya di dalam method.


Pada contoh diatas, kita memanggil method tes dan melewatkan nilai variabel i sebagai
parameter. Nilai pada i disalinkan ke variable j pada method. Pada kondisi ini variabel j
adalah merupakan variabel pengganti pada method tes, jika nilai j berubah maka nilai
variabel i yang terletak pada main tidak akan ikut berubah walaupun awalnya variabel j
merupakan salinan dari variabel i.
Secara default, semua tipe data primitif ketika dilewatkan pada sebuah method adalah
pass-by-value.

2.3 Pass-by-reference
Ketika sebuah pass-by-reference terjadi, alamat memori dari nilai pada sebuah variabel
dilewatkan pada saat pemanggilan method. Hal ini berarti bahwa method menyalin alamat
memori dari variabel yang dilewatkan pada method. Ini tidak seperti pada pass-by-value,
method dapat memodifikasi variabel asli dengan menggunakan alamat memori tersebut,
meskipun berbeda nama variabel yang digunakan dalam method dengan variabel aslinya,
kedua variabel ini menunjukkan lokasi dari data yang sama.






Pembahasan II Method (JENI)



2. Memanggil Instance dan memberikan Variabel dari Method
Sekarang, untuk mengilustrasikan bagaimana memanggil method, mari kita menggunakan class
string sebagai contoh. Anda dapat menggunakan the dokumentasi dari Java API untuk melihat
semua method yang tersedia dalam class string. Selanjutnya, kita akan membuat method, kita
sendiri. Tapi untuk saat ini, mari terlebih dahulu kita gunakan method yang sudah disediakan oleh
Java.

Untuk memanggil sebuah instance method, kita dapat menuliskan :

    nameOfObject.nameOfMethod( parameters );

mari kita mengambil dua contoh method yang ditemukan dalam class String.





Pembahasan I Method (JENI)



1. Apakah Method itu dan mengapa menggunakan Method?
Pada contoh yang telah kita diskusikan sebelumnya, kita hanya memiliki satu method, dan itu
adalah method main(). Di dalam Java, kita dapat mendefinisikan banyak method yang akan
kita panggil dari method yang berbeda.

Sebuah method adalah bagian-bagian kode yang dapat dipanggil oleh program utama atau
dari method lainnya untuk menjalankan fungsi yang spesifik.

Berikut adalah karakteristik dari method :
1. dapat mengembalikan satu nilai atau tidak sama sekali
2. dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama
    sekali. Parameter bisa juga disebut sebagai argumen dari fungsi
3. setelah method telah selesai dieksekusi, dia akan kembali pada method yang
    memanggilnya.


Sekarang mengapa kita butuh untuk membuat banyak method? Mengapa kita tidak menuliskan
semua kode pada sebuah method? Hal ini karena penyelesaian masalah yang sangat efektif adalah
memecah masalah-masalah tersebut menjadi beberapa bagian. Kita juga dapat melakukan hal ini di
Java dengan membuat method untuk mengatasi bagian tertentu dari masalah. Sebuah
permasalahan dapat dipecah-pecah menjadi beberapa bagian kecil. Hal ini sangat baik sekali untuk
membuat program yang sangat besar.




Class dan Object (JENI)



1. Perbedaan Class dan Object
Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang
stukturnya mirip dengan obyek pada dunia nyata. Setiap obyek dibangun dari sekumpulan
data (atribut) yang disebut variabel untuk menjabarkan karakteristik khusus dari obyek, dan
juga terdiri dari sekumpulan method yang menjabarkan tingkah laku dari obyek. Bisa
dikatakan bahwa obyek adalah sebuah perangkat lunak yang berisi sekumpulan variabel dan
method yg berhubungan. Variabel dan method dalam obyek Java secara formal diketahui
sebagai variabel instance dan method instance. Hal ini dilakukan untuk membedakan dari
variabel class dan method class, dimana akan dibahas kemudian.

Class adalah sturktur dasar dari OOP. Class terdiri dari dua tipe dari anggota dimana disebut
dengan field (attribut/properti) dan method. Field merupakan tipe data yang didefinisikan
oleh class, sementara method merupakan operasi. Sebuah obyek adalah sebuah instance
(keturunan) dari class.

Untuk dapat membedakanantara class dan obyek, mari kita mendiskusikan beberapa contoh
berikut ini. Kita memiliki sebuah class mobil dimana dapat digunakan untuk medefinisikan
beberapa obyek mobil. Pada tabel dibawah, mobil A dan mobil B adalah obyek dari class
mobil. Class memiliki field nomor, plat, warna, manufaktur dan kecepatan yang diisi dengan
nilai pada obyek mobil A dan mobil B. Mobil juga dapat berakselerasi, berbelok dan
melakukan rem.



Ketika diinisialisi, setiap obyek mendapat satu set variabel yang baru. Bagaimanapun,
implementasi dari method dibagi diantara objek pada class yang sama.
Class menyediakan keuntungan dari reusability. Programmer perangkat lunak dapat
menggunakan sebuah kelas beberapa kali untuk membuat banyak objek.

2. Instansiasi Class
Untuk membuat sebuah objek atau sebuah instance pada sebuah class. Kita menggunakan
operator new. Sebagai contoh, jika anda ingin membuat instance dari class string, kita
menggunakan kode berikut :

     String str2 = new String(“Hello world!”);

Ini juga sama dengan,

     String str2 = "Hello";

3. Variabel Class dan Variabel Method
Selain dari variabel instance, kita juga memungkinkan untuk mendefinisikan variabel dari
class, yang nantinya variabel ini dimiliki oleh class. Ini berarti variabel ini dapat memiliki nilai
yang sama untuk semua objek pada class yang sama. Mereka juga disebut static member
variables.



Pengenalan Pemrograman Berorientasi Obyek (JENI)



OOP berputar pada konsep dari obyek yang merupakan elemen dasar dari program Anda.
Ketika kita membandingkan dengan dunia nyata, kita dapat menemukan beberapa obyek
disekitar kita seperti mobil, singa, manusia dan seterusnya. Obyek ini dikarakterisasi oleh
atribut dan tingkah lakunya.
Contohnya, objek sebuah mobil mempunyai atribut tipe transmisi, warna dan manufaktur.
Mempunyai tingkah laku berbelok, mengerem dan berakselerasi. Dengan cara yang sama
pula kita dapat mendefinisikan perbedaan sifat dan tingkah laku dari singa. Coba perhatikan
tabel dibawah ini sebagai contoh perbandingan :


Dengan deskripsi ini, obyek pada dunia nyata dapat secara mudah asumsikan sebagai obyek
perangkat lunak menggunakan atribut sebagai data dan tingkah laku sebagai method. Data
dan method dapat digunakan dalam pemrograman game atau perangkat lunak interaktif
untuk membuat simulasi obyek pada dunia nyata. Contohnya adalah perangkat lunak obyek
mobil dalam permainan balap mobil atau perangkat lunak obyek singa dalam sebuah
perangkat lunak pendidikan interaktif pada kebun binatang untuk anak anak.



Argument Command-line di NetBeans (JENI)





Untuk mengilustrasikan sebuah argumen yang diberikan dengan menggunakan
NetBeans, marilah kita membuat sebuah program Java yang akan mencetak
jumlah argumen dan argumen pertama diberikan pada program tersebut.

   public class CommandLineExample
   {
      public static void main( String[] args ){
         System.out.println("Number of arguments=" +
                             args.length);
         System.out.println("First Argument="+ args[0]);
      }
   }

Sekarang, jalankan NetBeans, buat sebuah project yang baru, dan beri nama project ini
CommanLineExample. Salin kode yang telah dituliskan diatas, kemudian dilakukan proses
compile.

Argumen Command-line (JENI)



Sebuah aplikasi Java dapat menerima sejumlah argumen dari command-line. Argumen
dari command line memberikan kesempatan bagi user untuk mengatur operasi dari
sebuah aplikasi dalam sekali pemanggilan program. User memasukkan argumen
command line pada saat memanggil aplikasi dan menspesifikasikan argumen tersebut
setelah nama dari class yang akan dijalankan.
Sebagai contoh, apabila Anda memiliki sebuah aplikasi Java dengan nama Sort, yang
akan mengurutkan lima nomor, Anda dapat menjalankannya seperti berikut ini:


Perlu diperhatikan bahwa sebuah argumen dapat dipisahkan oleh ruang spasi. Pada
bahasa pemrograman Java, jika kita akan memanggil sebuah aplikasi, sistem runtime
akan memberikan argumen command-line ke method main yang dimiliki oleh aplikasi
menggunakan sebuah array dari String. Lalu, setiap String di dalam array mewakili
sebuah argumen commmand-line. Perhatikan deklarasi dari main method,

public static void main( String[] args )

Argumen yang diberikan kepada program Anda akan disimpan kedalam sebuah array
String dengan identifier args.

Pada contoh sebelumnya, argumen dari command-line yang akan diberikan
kepada aplikasi sort command adalah sebuah array dengan lima buah String yaitu
“5”,”4”,”3”,”2”, dan “1”. Anda dapat mengetahaui berapa banyak argumen dari
command-line dengan cara melihat panjang dari attribute array.
Sebagai contoh,

   int numberOfArgs = args.length;

Jika program Anda membutuhkan argumen command-line yang bertipe angka. Anda
harus mengkonversi argumen String tersebut untuk merepresantasikan sebuah angka,
misalnya “34” menjadi sebuah angka 34. Kode dibawah ini adalah sebuah potongan
program untuk mengkonversi sebuah argumen command-line menjadi tipe integer.

   int firstArg = 0;
   if (args.length > 0){
        firstArg = Integer.parseInt(args[0]);
   }

parseInt akan melempar eksepsi NumberFormatException (ERROR) jika format args[0]
tidak valid (bukan sebuah angka).




Sejarah Netbeans




NetBeans dimulai pada tahun 1996 sebagai Xelfi (word bermain di Delphi), Java IDE proyek mahasiswa di bawah bimbingan Fakultas Matematika dan Fisika di Universitas Charles di Praha. Pada tahun 1997 Roman Stanek membentuk perusahaan sekitar proyek tersebut dan menghasilkan versi komersial NetBeans IDE hingga kemudian dibeli oleh Sun Microsystems pada tahun 1999. Sun open-source IDE NetBeans pada bulan Juni tahun berikutnya. Sejak itu, komunitas NetBeans terus berkembang. Pada tahun 2010, Sun (dan dengan demikian NetBeans) diakui oleh Oracle.


NetBeans IDE adalah sebuah lingkungan pengembangan open source yang terintegrasi. NetBeans IDE mendukung pengembangan semua tipe aplikasi Java (Java SE (termasuk JavaFX), Java ME, web, EJB, dan aplikasi mobile) di luar kotak. Di antara fitur-fitur lainnya adalah Ant berbasis proyek sistem, dukungan Maven, refactorings, kontrol versi (CVS mendukung, Subversion, Mercurial dan ClearCase).
Modularitas: Semua fungsi IDE disediakan oleh modul. Setiap modul menyediakan fungsi yang didefinisikan dengan baik, seperti dukungan untuk bahasa Java, editing, atau dukungan untuk sistem versi CVS, dan SVN. NetBeans memuat semua modul yang dibutuhkan untuk pengembangan Java dalam sekali download, memungkinkan pengguna untuk mulai bekerja segera. Modul juga memungkinkan NetBeans untuk diperpanjang. Fitur-fitur baru, seperti dukungan untuk bahasa pemrograman lain, dapat ditambahkan dengan menginstal modul tambahan. Misalnya, Sun Studio, Sun Java Studio Enterprise, dan Sun Java Studio Creator dari Sun Microsystems semua didasarkan pada NetBeans IDE.
Lisensi: Dari bulan Juli 2006 sampai 2007, NetBeans IDE dilisensikan di bawah Pembangunan Umum Sun dan Lisensi Distribusi (CDDL), lisensi berdasarkan Mozilla Public License (MPL). Pada bulan Oktober 2007, Sun mengumumkan bahwa NetBeans selanjutnya akan ditawarkan di bawah lisensi ganda dari CDDL dan versi GPL 2 lisensi, dengan pengecualian untuk menghubungkan GPL GNU Classpath

Array Multidimensi (JENI)




Array multidimensi dideklarasikan dengan menambahkan jumlah tanda kurung setelah
nama array. Sebagai contoh,

// Elemen 512 x 128 dari integer array
int[][] twoD = new int[512][128];

// karakter array 8 x 16 x 24
char[][][] threeD = new char[8][16][24];

// String array 4 baris x 2 kolom
String[][] dogs = {{ "terry", "brown" },
     { "Kristin", "white" },
     { "toby", "gray"},
     { "fido", "black"}
     };

Untuk mengakses sebuah elemen didalam array multidimensi, sama saja
dengan mengakses array satu dimensi. Misalnya saja, untuk mengakses elemen
pertama dari baris pertama didalam array dogs, kita akan menulis,

System.out.print( dogs[0][0] );

Kode diatas akan mencetak String “terry” di layar.

Panjang Array (JENI)



Untuk mengetahui berapa banyak elemen didalam sebuah array, Anda dapat
menggunakan atribut length dari array. Atribut ini akan mengembalikan ukuran dari
array itu sendiri. Sebagai contoh,

     arrayName.length

Pada contoh sebelumnya, kita dapat menuliskannya kembali seperti berikut ini,

public class ArraySample
{
     public static void main( String[] args ){
       int[] ages = new int[100];
       for( int i=0; i<ages.length; i++ ){
          System.out.print( ages[i] );
       }
     }
}

Pengaksesan sebuah elemen array (JENI)



Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari
array, Anda harus menggunakan sebuah angka atau yang disebut sebagai
indeks atau subscript.

Pada saat memasukkan nilai ke dalam array, sebuah nomor indeks atau subscript
telah diberikan kepada tiap anggota array, sehingga program dan programmer
dapat mengakses setiap nilai pada array apabila dibutuhkan. Nilai indeks selalu
dalam tipeinteger, dimulai dari angkanol dan dilanjutkan ke angka berikutnya
sampai akhir array. Sebagai catatan bahwa indeks didalam array dimulai dari 0
sampai dengan (ukuranArray-1).

Sebagai contoh, pada array yang kita deklarasikan tadi, kita mempunyai,

//memberikan nilai 10 kepada elemen pertama array
ages[0] = 10;

//mencetak elemen array yang terakhir
System.out.print(ages[99]);

Perlu diperhatikan bahwa sekali array dideklarasikan dan dikonstruksi, nilai
yang disimpan dalam setiap anggota array akan diinisialisasi sebagai nol. Oleh
karena itu, apabila Anda menggunakan tipe data seperti String, array tidak akan
diinisalisasi menjadi string kosong “”. Untuk itu Anda tetap harus membuat String array
secara eksplisit.

Berikut ini adalah contoh kode untuk mencetak seluruh elemen didalam array. Dalam
contoh ini digunakanlah pernyataan for loop, sehingga kode kita menjadi lebih pendek.

public class ArraySample{
    public static void main( String[] args ){
         int[] ages = new int[100];
         for( int i=0; i<100; i++ ){
             System.out.print( ages[i] );
         }
    }
}

Contoh Mendeklarasikan Sebuah Array (JENI)





//deklarasi
int ages[];
//instantiate obyek
ages = new int[100];

atau bisa juga ditulis dengan,

//deklarasi dan instantiate
obyek
int ages[] = new
int[100];

Pada contoh diatas, pendeklarasian tersebut akan memberitahukan kepada compiler Java, bahwa identifier ages akan digunakan sebagai nama array yang berisi data bertipe integer, dan dilanjutkan dengan membuat atau meng-instantiate sebuah array baru yang terdiri dari 100 elemen.
Selain menggunakan sebuah pernyataan new untuk meng-instantiate array, Anda juga dapat mendeklarasikan, membangun, kemudian memberikan sebuah nilai pada array sekaligus dalam sebuah pernyataan.
Sebagai Contoh :

//membuat sebuah array yang berisi variabel-variabel
//boolean pada sebuah identifier. Array ini terdiri dari 4
//elemen yang diinisilisasikan sebagai value
//{true,false,true,false}
boolean results[] ={ true, false, true, false };
//Membuat sebuah array yang terdiri dari penginisialisasian
//4variabel double bagi value {100,90,80,75}
double []grades = {100, 90, 80, 75};
//Membuat sebuah array String dengan identifier days. Array
//ini terdiri dari 7 elemen.
String days[] = { “Mon”, “Tue”, “Wed”, “Thu”, “Fri”, “Sat”,
“Sun”};


Pendeklarasian Array (JENI)






Array harus di deklarasikan seperti layaknya sebuah variabel. Pada saat
mendeklarasikan array, anda harus membuat sebuah daftar dari tipe data, yang diikuti
oleh sepasang tanda kurung [], lalu diikuti oleh nama identifier-nya. Sebagai contoh,

int []ages;

atau Anda dapat menempatkan sepasang tanda kurung [] sesudah nama identifier. Sebagai
contoh,

int ages[];

Setelah pendeklarasian array , kita harus membuat array dan menentukan berapa
panjangnya dengan sebuah konstruktor. Proses ini di Java disebut sebagai
instantiation (istilah dalam Java yang berarti membuat). Untuk meng-instantiate
sebuah obyek, kita membutuhkan sebuah konstruktor. Kita akan membicarakan
lagi mengenai instantiate obyek dan pembuatan konstruktor pada bagian selanjutnya.
Sebagai catatan bahwa ukuran dari array tidak dapat diubah setelah anda
menginisialisasinya



Pengenalan Array (JENI)





Pada Bab sebelumnya, kita telah mendiskusikan bagaimana cara pendeklarasian
berbagai macam variabel dengan menggunakan tipe data primitif. Dalam pendeklarasian
variabel, kita sering menggunakan sebuah tipe data beserta nama variabel atau
identifier yang unik. Apabila kita ingin menggunakan variabel tersebut, kita akan
memanggil dengan nama identifier-nya.

Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier
berbeda untuk tiap variabel.

int number1;
int number2;
int number3;

number1 = 1;
number2 = 2;
number3 = 3;

Seperti yang dapat Anda perhatikan pada contoh diatas, kode tersebut akan sia-sia
karena harus menginisialisasi dan menggunakan setiap variabel padahal sebenarnya
variabel-variabel tersebut digunakan untuk tujuan yang sama. Pada bahasa
pemrograman Java maupun di bahasa pemrograman yang lain, terdapat sebuah
kemampuan untuk menggunakan satu variabel yang dapat menyimpan beberapa data
dan memanipulasinya dengan lebih efektif. Tipe variabel inilah yang disebut sebagai
array.


Sebuah array akan menyimpan beberapa item data yang memiliki tipe data
sama didalam sebuah blok memori yang berdekatan yang kemudian dibagai menjadi
beberapa ruang. Array adalah sebuah variabel/sebuah lokasi tertentu yang memiliki
satu nama sebagai identifier, namun identifier ini dapat menyimpan lebih dari sebuah
nilai.


Pernyataan Percabangan (JENI)



Pernyataan percabangan mengijinkan kita untuk mengatur aliran eksekusi program. Java
memberikan tiga bentuk pernyataan percabangan: break, continue dan return.

6.4.1Pernyataan break
Pernyataan break memiliki dua bentuk: tidak berlabel (unlabeled) dan berlabel (labeled).

6.4.1.1 Pernyataan break tidak berlabel (unlabeled)
Pernyataan break tidak berlabel (unlabeled) digunakan untuk menghentikan jalannya
pernyataan switch. Selain itu pernyataan break unlabeled juga bisa digunakan
untuk menghentikan pernyataan-pernyataan for, while atau do-while loop.

Contohnya,

String names[] = {"Beah", "Bianca", "Lance", "Belle",
                  "Nico", "Yza", "Gem", "Ethan"};
String            searchName = "Yza";
boolean           foundName = false;
for( int i=0; i< names.length; i++ ){
      if( names[i].equals( searchName )){
               foundName = true;
               break;
      }
}
if( foundName ){
      System.out.println( searchName + " found!" );
}
else{
      System.out.println( searchName + " not found." );
}

Pada contoh diatas, jika string “Yza” ditemukan, pengulangan pada for loop akan
dihentikan dan akan dilanjutkan ke pernyataan berikutnya yang terletak setelah pernyataan
for.




6.4.1.2 Pernyataan break berlabel
Bentuk label dari pernyataan break akan menghentikan pernyataan di luarnya, dimana
sebelumnya harus diberikan label yang sudah di spesifikasikan pada program pada
pernyataan break. Program berikut ini akan mencari nilai dalam array dua dimensi.
Terdapat dua pengulangan bersarang (nested loop). Ketika sebuah nilai ditemukan,
brea akan menghentikan pernyataan yang diberi label searchLabel yang terletak di luar
pernyataan for loop.

int[][] numbers = {{1, 2, 3},
                  {4, 5, 6},
                  {7, 8, 9}};
int searchNum = 5;
boolean foundNum = false;
searchLabel:
for( int i=0; i<numbers.length; i++ ){
       for( int j=0; j<numbers[i].length; j++ ){
           if( searchNum == numbers[i][j] ){
               foundNum = true;
               break searchLabel;
           }
        }
}
if( foundNum ){
       System.out.println( searchNum + " found!" );
}
else{
       System.out.println( searchNum + " not found!" );
}

Pernyataan break menghentikan pernyataan yang diberi label; dan tidak menjalankan
aliran kontrol apapun pada label. Aliran kontrol pada label akan diberikan secara
otomatis pada pernyataan yang terletak dibawah label.


6.4.2Pernyataan Continue
Pernyataan continue memiliki dua bentuk: berlabel dan tidak berlabel. Anda dapat
menggunakan pernyataan continue untuk melanjutkan pengulangan yang sedang
dijalankan oleh pernyataan for, while, atau do- while loop.

6.4.2.1 Pernyataan continue tidak berlabel (unlabeled)
Bentuk pernyataan continue tidak berlabel (unlabeled) akan melewati bagian pernyataan
setelah pernyataan ini dituliskan dan memeriksa eksepresi logika (boolean) yang
mengkontrol pengulangan. Jika ekspresi logika (boolean) masih bernilai true, maka
pengulangan tetap dilanjutkan. Pada dasarnya pernyataan ini akan melanjutkan bagian
pengulangan pada pernyataan loop.
Berikut ini adalah contoh dari penghitungan angka dari “Beah” dalam suatu array.

String names[] = {"Beah", "Bianca", "Lance", "Beah"};
int count = 0;
for( int i=0; i<names.length; i++ ){
       if( !names[i].equals("Beah") ){
           continue; //skip next statement
       }
       count++;
}
System.out.println("There are " + count + " Beahs in the
list");

6.4.2.2 Labeled continue statement
Bentuk pernyataan continue berlabel (labeled) akan melanjutkan pengulangan yang
sedang terjadi dan dilanjuti ke pengulangan berikutnya dari pernyataan pengulangan yang
diberi label (tanda).

outerLoop:
for( int i=0; i<5; i++ ){
       for( int j=0; j<5; j++ ){
          System.out.println("Inside for(j) loop"); //message1
          if( j == 2 ) continue outerLoop;
       }
       System.out.println("Inside for(i) loop"); //message2
}

Pada contoh ini, bagian message2 tidak pernah akan dicetak, karena pernyataan
continue akan melewati pengulangan.



6.4.3Pernyataan Return
Pernyataan return digunakan untuk keluar dari sebuah method. Pernyataan
return memiliki dua bentuk: memberikan sebuah nilai, dan tidak memberikan nilai.
Untuk memberikan sebuah nilai, cukup berikan nilai (atau ekspresi yang menghasilkan
sebuah nilai) sesudah kata return. Contohnya,

return ++count;

atau

return "Hello";

Tipe data dari nilai yang diberikan harus sama dengan tipe dari method
yang dibuat. Ketika sebuah method void dideklariskan, gunakan bentuk return yang tidak
memberikan nilai. Contohnya,

return;

Kita akan membahas lebih lanjut tentang pernyataan return ketika mempelajari tentang
method.





Struktur Kontrol Perulangan (JENI)



Struktur kontrol pengulangan adalah berupa pernyataan dari Java yang mengijinkan kita
untuk mengeksekusi blok code berulang-ulang sesuai dengan jumlah tertentu yang
diinginkan. Ada tiga macam jenis dari struktur kontrol pengulangan yaitu while, dowhile,
dan for-loops.


6.3.1 while loop
Pernyataan while loop adalah pernyataan atau blok pernyataan yang diulang-ulang
sampai mencapai kondisi yang cocok.

Bentuk pernyataan while,

while( boolean_expression ){
statement1;
statement2;
. . .
}

Pernyataan di dalam while loop akan dieksekusi berulang-ulang selama kondisi
boolean_expression bernilai benar (true).

Contoh, pada kode dibawah ini,

int i = 4;
while ( i > 0 ){
System.out.print(i);
i--;
}

Contoh diatas akan mencetak angka 4321 pada layar. Perlu dicatat jika bagian i-
-; dihilangkan, akan menghasilkan pengulangan yang terus menerus (infinite loop).
Sehingga, ketika menggunakan while loop atau bentuk pengulangan yang lain,
pastikan Anda memberikan pernyataan yang membuat pengulangan berhenti pada
suatu kondisi.



6.3.2 do-while loop
Do-while loop mirip dengan while-loop. Pernyataan di dalam do-while loop
akan dieksekusi beberapa kali selama kondisi bernilai benar(true).

Perbedaan antara while dan do-while loop adalah dimana pernyataan di dalam do-while
loop akan dieksekusi sedikitnya satu kali.

Bentuk pernyataan do-while,

do{
statement1;
statement2;
. . .
}while( boolean_expression );

Pernyataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi
kondisi dari boolean_expression. Jika nilai pada boolean_expression tersebut bernilai
true, pernyataan di dalam do-while loop akan dieksekusi lagi.

Berikut ini beberapa contoh do-while loop:
Contoh 1:

int x = 0;
do
{
System.out.println(x);
x++;
}while (x<10);

Contoh ini akan memberikan output 0123456789 pada layar.



6.3.3for loop
Pernyataan for loop memiliki kondisi hampir mirip seperti struktur pengulangan
sebelumnya yaitu melakukan pengulangan untuk mengeksekusi kode yang sama
sebanyak jumlah yang telah ditentukan.

Bentuk dari for loop,

for (InitializationExpression; LoopCondition; StepExpression){
statement1;
statement2;
. . .
}

dimana,

InitializationExpression       - inisialisasi dari variabel loop.
LoopCondition                      - membandingkan variabel loop pada nilai batas
tertentu
. StepExpression                  - melakukan update pada variabel loop.

Berikut ini adalah contoh dari for loop,

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

Pada contoh ini, pernyataan i=0 merupakan inisialisasi dari variabel. Selanjutnya,
kondisi i<10 diperiksa. Jika kondisi bernilai true, pernyataan di dalam for loop
dieksekusi. Kemudian, ekspresi i++ dieksekusi, lalu akan kembali pada bagian
pemeriksaan terhadap kondisi i<10 lagi. Kondisi ini akan dilakukan berulang-ulang
sampai mencapai nilai yang salah (false).

Contoh tadi, adalah contoh yang sama dari while loop,

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




7. Contoh statement switch (JENI)



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.");
         }
      }
}




6. Statement switch (JENI)



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



5. Contoh statement if-else-else if (JENI)



public class Grade
{
   public static void main( String[] args )
   {
       double grade = 92.0;
       if( grade >= 90 ){
            System.out.println( "Excellent!" );
       }
       else if( (grade < 90) && (grade >= 80)){
            System.out.println("Good job!" );
       }
       else if( (grade < 80) && (grade >= 60)){
            System.out.println("Study harder!" );
       }
       else{
            System.out.println("Sorry, you failed.");
       }
   }
}

4. Kesalahan umum ketika menggunakan statement if-else: (JENI)



1. Kondisi pada statement if tidak mengevaluasi nilai logika boolean. Contohnya :

//SALAH
int number = 0;
if( number ){
//some statements here
}

Variabel number tidak memiliki nilai Boolean.

2. Menggunakan operator = sebagai operator perbandingan yang seharusnya adalah
operator == . Contohnya,

//SALAH
int number = 0;
if( number = 0 ){
//Beberapa pernyataan
}

Seharusnya kode tersebut ditulis,

//BENAR
int number = 0;
if( number == 0 ){
//beberapa pernyataan
}

3. Penulisan elseif yang seharusnya ditulis sebagai else if.

3. Statement if-else-if (JENI)



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.


     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");
     }



2. Statement if - else (JENI)



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");
     }





1. Statement if (JENI)



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




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!");
    }



Struktur Kontrol Pemilihan (JENI)



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

Selanjutnya yang akan kami bahasa dalam modul Struktur Kontrol Pemilihan diantaranya :

1. Statement if
2. Statement if-else
3. Statement if-else-if
4. Kesalahan umum ketika menggunakan statement if-else:
5. Contoh statement if-else-else if
6. Statement switch
7. Contoh statement switch

Menggunakan JOptionPane untuk mendapatkan input (JENI)



Cara lain untuk mendapatkan input dari user adalah dengan menggunakan class
JoptionPane yang didapatkan dari javax.swing package. JoptionPane memudahkan
memunculkan dialog box standard yang memberikan kepada user sebuah nilai atau
menginformasikan sesuatu.

Diberikan kode berikut ini,

  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,

Statement pertama,

          import javax.swing.JOptionPane;

Menjelaskan bahwa kita mengimpor class JoptionPane dari package javax.swing.
Bisa juga ditulis seperti,

    import javax.swing.*;

Pernyataan, 

    name = JOptionPane.showInputDialog("Please enter your name");

membuat sebuah input dialog JOptionPane, yang akan menampilkan dialog dengan
sebuah pesan, sebuah textfield dan tombol OK seperti pada gambar. Hasil dari dialog
tersebut adalah String dan disimpan ke dalam variabel name.

Sekarang kita membuat pesan selamat datang, yang akan disimpan ke dalam variabe
msg,

    String msg = "Hello " + name + "!";

Baris selanjutnya adalah menampilkan sebuah dialog yang berisi sebuah pesan dan
tombol OK,

    JOptionPane.showMessageDialog(null, msg);




Operator Precedence (JENI)



Operator precedence didefinisikan sebagai perintah yang dilakukan compiler ketika
melakukan evaluasi terhadap operator, untuk mengajukan perintah dengan hasil yang tidak
ambigu/ hasil yag jelas.

Diberikan pernyataan yang membingungkan,

     6%2*5+4/2+88-10

Kita dapat menuliskan kembali pernyataan diatas dan menambahkan beberapa tanda
kurung terhadap operator precedence,

     ((6%2)*5)+(4/2)+88-10;



Operator Kondisi(?:) (JENI)



Operator kondisi ?: adalah operator ternary. Berarti bahwa operator ini membawa tiga
argumen yang membentuk suatu ekspresi bersyarat. Struktur pernyataan yang
menggunakan operator kondisi adalah,

    exp1?exp2:exp3

Dimana nilai exp1 adalah suatu pernyataan boolean yang memiliki hasil yang salah satunya
harus berupa nilai true atau false.
Jika exp1 bernilai true, exp2 merupakan hasil operasi. Jika bernilai false, kemudian exp3
merupakan hasil operasinya.


Sebagai contoh, diberikan code sebagai berikut,

     public class ConditionalOperator
     {
        public static void main( String[] args ){
           String status = "";
           int grade = 80;
           //mendapatkan status pelajar
           status = (grade >= 60)?"Passed":"Fail";
           //print status
           System.out.println( status );
         }
    }
Hasil keluaran dari program ini akan menjadi,
Passed


Operator Relasi dam Operator Logika (JENI)



Relasi membandingkan dua nilai dan menentukan keterhubungan diantara nilainilai
tersebut. Hasil keluarannya berupa nilai boolean yaitu true atau false.



Operator logika memiliki satu atau lebih operand boolean yang menghasilkan nilai boolean.
Terdapat enam operator logika yaitu: && (logika AND), & (boolean logika AND), || (logika
OR), | (boolean logika inclusive OR), ^ (boolean logika exclusive OR), dan ! (logika NOT).

Pernyataan dasar untuk operasi logika adalah,

    x1 op x2

Dimana x1, x2 dapat menjadi pernyataan boolean. Variabel atau konstanta, dan op adalah
salah satu dari operator &&, &, ||, | atau ^. Tabel kebenaran yang akan ditunjukkan
selanjutnya, merupakan kesimpulan dari hasil dari setiap operasi untuk semua kombinasi
yang mungkin dari x1 dan x2.

Berikut ini adalah tabel kebenaran untuk && dan &

Perbedaan dasar antara operator && dan & adalah bahwa && mensupports short-circuit
evaluations (atau evaluasi perbagian), sementara operator & tidak. Apa arti dari
pernyataan tersebut? 

Diberikan suatu pernyataan,

    exp1 && exp2

&& akan mengevaluasi pernyataan exp1, dan segera mengembalikan nilai false dan
menyatakan bahwa exp1 bernilai false. Jika exp1 bernilai false, operator tidak akan pernah
mengevaluasi exp2 karena hasil operasi operator akan menjadi false tanpa memperhatikan
nilai dari exp2. Sebaliknya, operator & selalu mengevaluasi kedua nilai dari exp1 dan exp2
sebelum mengembalikan suatu nilai jawaban.


Berikut ini adalah tabel kebenaran untuk || dan |,


Perbedaan dasar antara operator || dan | adalah bahwa || mendukung short-circuit
evaluations (atau proses evaluasi sebagian), sementara | tidak. Apa maksud dari
pernyataan tersebut?

diberikan suatu pernyataan,

    exp1 || exp2

|| akan mengevaluasi pernyataan exp1, dan segera mengembalikan nilai true dan
menyatakan bahwa exp1 bernilai true. Jika exp1 bernilai true, operator tidak akan pernah
mengevaluasi exp2 karena hasil dari operasi operator akan bernilai true tanpa
memperhatikan nilai dari exp2. Sebaliknya,operator | selalu mengevaluasi kedua nilai dari
exp1 and exp2 sebelum mengembalikan suatu jawaban suatu nilai.

Berikut ini adalah tabel kebenaran untuk ^,


Hasil operasi operator exclusive OR adalah TRUE, jika dan hanya jika satu operand bernilai
TRUE dan yang lain bernilai False. Catatan jika kedua operand harus selalu dievaluasi untuk
menjumlahkan hasil dari suatu exclusive OR.