Sabtu, 01 Desember 2012

Pengenalan Pemrogaman Berorientasi Object (PBO)


Konsep Dasar Pemrogaman Berorientasi Object (PBO)
1. Objek
Untuk mempermudah pemahaman, maka disini akan dijelaskan melalui analogi. Pada dasarnya semua benda yang adadi dunia nyata dapat dianggap sebagai objek. Misalnya rumah, mobil, sepeda, motor, gelas, komputer, meja, sepatu, dll. Setiap objek memiliki atribut sebagai status (state) dan tingkah laku sebagai behavior.
Contoh objek : Motor. Maka atribute (state) nya adalah pedal, roda, jeruji, speedometer, warna, jumlah roda. Sedangkan tingkah laku (behavior) nya adalah kecepatan menaik, kecepatan menurun, dan perpindahan gigi motor.
Analogi pemrograman berorientasi objek sama dengan penggambara pada dunia nyata seperti contoh di atas. Dalam PBO, state disimpan pada variabel dan tingkah laku disimpan pada method.
Dalam bahasa teoretis PBO, Objek berfungsi untuk membungkus data dan fungsi bersama menjadi satu unit dalam sebuah program komputer. Objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek.

2. Class
Definisi class yaitu template untuk membuat objek. Class merupakan prototipe atau blue prints yang mendefinisikan variabel-variabel dan method-method secara umum. Objek merupakan hasil instansiasi dari suatu class. Proses pembentukan objek dari suatu kelas disebut sebagai instantiation. Objek disebut juga sebagai instances.
Dalam bahasa teoretis PBO, class merupakan kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object.
Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan PBO). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.

3. Attributes
Atribut adalah data yang membedakan antara objek satu dengan yang lainnya.
Contoh Objek : VolcanoRobot ( a volcanic exploration vehicle), mempunyai atribut sebagai berikut:
  • Status ~> exploring, moving, returning home
  • Speed ~> in miles per hour
  • Temperature ~> in Fahrenheit degrees
Dalam class, atribut sering disebut sebagai variabel. Atribut dibedakan menjadi dua jenis yaitu Instance Variable dan Class Variable.
Instance variable adalah atribut untuk tiap objek dari kelas yang sama. Tiap objek mempunyai dan menyimpan nilai atributnya sendiri. Jadi, tiap objek dari class yang sama bokeh mempunyai nilai yang sama atau berbeda.
Class Variable adalah atribut untuk semua objek yang dibuat dari class yang sama. Semua objek mempunyai nilai atribut yang sama. Jadi semua objek dari class yang sama mempunyai hanya satu nilai yang value nya sama.

4. Behavior/method
Behavior/tingkah laku adalah hal-hal yang bisa dilakukan oleh objek dari suatu class. Behavior dapat digunakan untuk mengubah nilai atribut suatu objek, menerima informasi dari objek lain, dan mengirim informasi ke objek lain untuk melakukan suatu tugas (task).
Contoh behavior untuk objek VolcanoRobot:
  • check current temperature
  • begin a survey
  • report its current position
Dalam class, behavior disebut juga sebagai methods. Methods sendiri adalah serangkaian statements dalam suatu class yang menghandle suatu task tertentu. Cara objek berkomunikasi dengan objek yang lain adalah dengan menggunakan method.
Contoh class, object, attributes, dan behavior:


5. Konstruktor
Konstruktor adalah sebuah tipe khusus dari method yang digunakan untuk membuat dan menginisialisasi sebuah object baru. Konstruktor merupakan suatu method yang memiliki nama yang sama dengan nama classnya.

Karakteristik Pemrogaman Berorientasi Object (PBO)
1. Enkapsulasi (Encapsulation)
Definisi enkapsulasi: Pembungkusan variabel dan method dalam sebuah obyek yang terlindungi serta menyediakan interface untuk mengakses variabel tersebut. Variabel dan method yang dimiliki oleh suatu objek, bisa ditentukan hak aksesnya. Dalam PBO, konsep enkapsulasi sebenarnya merupakan perluasan dari struktur dalam bahasa C.
Contoh: jam tangan. Dalam hal ini, penting sekali untuk mengetahui waktu, sedangkan cara jam mencatat waktu dengan baik antara jam bertenaga baterai atau bertenaga gerak tidaklah penting kita ketahui.
Dengan kata lain enkapsulasi berfungsi untuk memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam/dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
2. Pewarisan (Inheritance)
Pewarisan merupakan pewarisan atribut dan method dari sebuah class ke class lainnya. Class yang mewarisi disebut superclass dan Class yang diwarisi disebut subclass. Subclass bisa berlaku sebagai superclass bagi class lainya, disebut sebagai multilevel inheritance.
Contoh : terdapat class sepeda dan sepeda gunung. Sepeda termasuk superclass.  Sepeda gunung termasuk subclass. Hal ini dikarenakan sepeda gunung memiliki variabel dan method yang dimiliki oleh sepeda.
Prinsip dasar inheritance yaitu persamaan-persamaan yang dimiliki oleh beberapa kelas dapat digabungkan dalam sebuah class induk sehingga setiap kelas yang diturunkannya memuat hal-hal yang spesifik untuk kelas yang bersangkutan.

Contoh Pewarisan

 
Keuntungan Pewarisan
  • Subclass menyediakan state/behaviour yang spesifik yang membedakan dengan superclass, sehingga memungkinkan programmer untuk menggunakan ulang source code dari superclass yang telah ada.
  • Programmer dapat mendefinisikan superclass khusus yang bersifat generik, yang disebut abstract class (abstraksi), untuk mendefinisikan class dengan tingkah laku dan state secara umum.
Single & Multiple Inheritance
Bahasa C adalah contoh multiple inheritance. Suatu class diperbolehkan untuk mempunyai lebih dari satu superclass. Variabel dan method yang diwariskan merupakan kombinasi dari superclass-nya. Java adalah contoh single inheritance. Suatu class hanya boleh mempunyai satu superclass.
Multilevel Inheritance
Suatu subclass bisa menjadi superclass bagi class yang lain.

3. Polimorfisme
Polimorfisme adalah kemampuan suatu obyek untuk mempunyai lebih dari satu bentuk. Polimorfisme tidak bergantung kepada pemanggilan subrutin. Metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesan tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.

Jumat, 30 November 2012

Array pada java

Deklarasi dan penciptaan Array
Array adalah kelompok variabel dengan tipe sejenis dan dinyatakan dengan nama yang sama . dengan kata lain, array merupakan tipe khusus yang menyatukan sekelompok variabel dengan tipe yang sama . Array di java dideklarasikan dengan kurung siku : [ .. ]
Pada java tidak perlu menspesifikasikan ukuran array kosong saat mendeklarasikan array. Kita harus selalu menyatakan ukuran array secara eksplisit saat melakukan operasi penciptaan menggunakan operator new () atau dengan mendaftarkan item item untuk array pada saat penciptaan. Contoh char alphabet[] = new() char[26];
 
-          Array 1 dimensi
Sintaks umum deklarasi variabel array 1 dimensi :
                type var-name[];   atau   type[] var-name ;
misalnya, kita akan menamai array tersebut dengan nama jumlah hari dan tipe data dari masing-masing elemennya adalah tpe int, maka kita dapat menuliskannya sebagai berikut :
int [] jumlahhari;
artinya, jumlah elemen- elemen dan nila-nilai dari setiap elemennya diset dengan null. Untuk menentukan jumlah elemen dari array tersebut , kita perlu mengalokasikan ruang memori dengan menggunakan kata kunci new.  Dalam kasus ini, kita akan menentukan array dengan jumlah elemen sebanyak 12 ( sejumlah bulan yang terdapat dalam setahun ). Sehingga dapat kita tulis :
jumlahhari = new int[12]  ( merupakan jumlah elemen array )
selanjutnya , untuk mengisikan nilai dari masing-masing elemen array tersebut, kita harus menggunakan indeks seperti :
jumlahhari [0] = 31;
indeks array dimulai dari 0 bukan 1, kode diatas akan memasukkan nilai 31 ke dalam elemen array pertama ( dalam hal ini berarti bulan januari memiliki 31 hari ). Berikut contoh program nya :
class arraysatu {
public static void main (String[] args)}
int [] jumlahhari;
jumlahhari = new int [12];
jumlahhari[0] = 31;
jumlahhari[1] = 28;
jumlahhari[2] = 31;
jumlahhari[3] = 30;
jumlahhari[4] = 31;
jumlahhari[5] = 30;
jumlahhari[6] = 31;
jumlahhari[7] = 31;
jumlahhari[8] = 30;
jumlahhari[9] = 31;
jumlahhari[10] = 30;
jumlahhari[11] = 31;
System.out.println(“bulan maret memiliki “ + jumlah hari [2]+ “ hari. “);
}
}
Maka hasil outputnya adalah bulan maret memiliki 31 hari.

-          Array multi dimensi
Pendeklarasian array dua dimensi adalah sebagai berikut :
tipe namaArray[];    atau     tipe[][] namaArray;
Contoh program array 2 dimensi :
class arraydua {
public static void main (String[] args) {
int [][] angka = new int [2][3];
int k = 1;
for (int i = 0; i<2; i++) {
for (int j = 0; j<3; j++) {
angka [i][j] = k*10;
System.out.println(angka[i][j]);
if (j<2) System.out.print(“ “);
k++;
}
System.out.println();
}
}
}
Maka outputnya akan menghasilkan
10  20  30
40  50  60

Jumat, 26 Oktober 2012

Struktur Kontrol pada JAVA


Struktur kontrol merupakan pengatur aliran program
Rangkaian perintah yang harus ditulis untuk memenuhi beberapa keadaan, yaitu :
        Mengulang sebagian rutin karena tidak terpenuhinya suatu kondisi
        Melanjutkan sebuah pernyataan bila kondisi terpenuhi
        Memilih sebuah pilihan dari beberapa alternatif bila sebuah kondisi terpenuhi

TUJUAN
  1. Menggunakan struktur kontrol keputusan/percabangan (if, else, switch), untuk memilih bagian dari program yang akan dieksekusi.
  2. Menggunakan struktur kontrol pengulangan/perulangan (while, do-while, for), untuk melakukan pengulangan eksekusi program atau code, sejumlah yang telah ditentukan.
Struktur kontrol  memiliki pokok bahasan yaitu :

  • Percabangan
1.    Statement-if
Menspesifikasikan sebuah statement (atau block dari code) yang akan dieksekusi jika dan hanya jika statement boolean bernilai true.
Form statement-if:
       if( boolean_ekspresi )
                       statement;

atau 
       if( boolean_ekspresi ){
                       statement 1;
                       statement 2;
       }
dimana,                                 
boolean_ekspresi sama dengan boolean ekspresi atau boolean variabel.

2.    Statement if-else
Digunakan ketika kita akan mengeksekusi sebuah statement jika kondisinya true, dan statement yang lain jika berkondisi false.
Form statement if-else:
                if( boolean_ekspresi ){
                                statement1;
                                statement2;
                                . . .
                }
                else{
                                statement3;
                                statement4;
                                . . .
                }

3.      Statement-if-else if
statement pada klausa else dari sebuah blok if-else dapat menjadi struktur if-else yang lain.
Struktur ini memperbolehkan kita untuk membuat pilihan yang lebih kompleks.
Form statement if-else-else if:
if( boolean_ekspresi1 )
                       statement1;
       else if( boolean_ekspresi2 )
                       statement2;
       else
                       statement3;

4.      Switch
Switch Memperbolehkan percabangan pada multiple outcomes.
Form statement-switch:
       switch( switch_ekspresi ){
                       case case_pilihan1:
                                       statement1;//
                                       statement2;//blok 1
                                       break;
                       case case_pilihan2:
                                       statement1;//
                                       statement2;//blok 2 
                                       break;
                                                       :
                       default:
                                       statement1;//
                                       statement2;//blok n
       }

  • Perulangan
1.    For
Digunakan untuk mengeksekusi code yang bernilai sama, berulang-ulang.
Form pengulangan-for:
for(InisialisasiEkspresi;KondisiPengulangan;StepEkspresi)
{   
       statement1;
       statement2;
       . . .
}

  • InisialisasiEkspresi : meninisialisasi variabel pengulangan. 
  • KondisiPengulangan : membandingkan variabel pengulangan dengan  nilai limit.
  • StepEkspresi : memperbarui variabel pengulangan.

2.    While
Pengulangan while
Merupakan statement atau blok dari statement yang diulang selama kondisinya sesuai.
Form pengulangan while:
       while( boolean_ekspresi ){
                       statement1;
                       statement2;
                       . . .
       }

statement didalam pengulangan while akan dieksekusi selama boolean_ekspresi bernilai true. 

3.       Do-while
a.   Sama dengan pengulangan-while
b.   Statement didalam pengulangan do-while akan dieksekusi beberapa kali selama kondisinya sesuai dengan ekspressi yang diberikan.
c.    Hal utama yang membedakan antara pengulangan while dan do-while:
d.   Statement didalam pengulangan do-while loop setidaknya dieksekusi satu kali.
Form pengulangan-do-while:
        do{
                        statement1;
                        statement2;
                        . . .
        }while( boolean_ekspresi );