Social Icons

Pages

Jumat, 07 Desember 2012

Pemrograman Berorientasi Objek


Tujuan
1.Mampu memahami konsep dasar pemrograman berorientasi objek
Objek,class,attributes,behavior,abstraksi.
2.Mampu memehami karakteristik pemrograman berorientasi objek
Enkapsulasi,pewarisan,polimorfisme.

Disini yang akan dibahas pertama kali adalah sbb:
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 OOP, state disimpan pada variabel dan tingkah laku disimpan pada method.
Dalam bahasa teoretis OOP, 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 OOP, 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 OOP). 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
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. Abstraksi
Abstraksi adalah kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
Konsep Konsep OOP
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 OOP, 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.


Senin, 26 November 2012

ARRAY


7.1  Tujuan
Dalam bagian ini, kita akan mendiskusikan mengenai array dalam Java. Pertama, kita
akan mendefinisikan apa yang dimaksud dengan array, kemudian kita juga akan
mendefinisikan bagaimana mendeklarasikannya dan menggunakannya dalam Java.  
 7.2  Pengenalan Array
Dibagian 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, dimana untuk menggunakan variabel tersebut, kita akan memanggil dengan nama
identifier-nya.
 
Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier
yang berbeda untuk tiap variabel.

int number1;
int number2;
int number3;

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

Seperti yang dapat Anda perhatikan pada contoh diatas, hanya untuk menginisialisasi
dan menggunakan variabel terutama pada saat variabel-variabel tersebut memiliki
tujuan yang sama, dirasa sangat membingungkan. Di Java maupun di bahasa
pemrograman yang lain, mereka memiliki kemampuan untuk menggunakan satu
variabel yang dapat menyimpan sebuah data list dan  kemudian 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
slot. Bayangkanlah array adalah sebuah variabel – sebuah lokasi memori tertentu yang
memiliki satu nama sebagai identifier, akan tetapi ia dapat menyimpan lebih dari sebuah
value. 

 7.3  Pendeklarasian Array
Array harus dideklarasikan seperti layaknya sebuah variabel. Apabila Anda
mendeklarasikan array, Anda harus membuat sebuah list dari tipe data, yang diikuti oleh
tanda kurung buka dan kurung tutup, yang diikuti oleh nama identifier. Sebagai contoh,

int []ages;

atau Anda dapat menempatkan kurung  buka dan kurung tutupnya setelah  identifier.
Sebagai contoh,
int ages[];

Setelah pendeklarasian, kita harus membuat array dan menentukan berapa panjangnya
dengan sebuah  konstruktor. Proses ini di Java disebut sebagai  instantiation ( Kata
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. Perlu dicatat, bahwa ukuran
dari array tidak dapat diubah setelah Anda menginisialisasinya. Sebagai contoh, 
 
//deklarasi
int ages[];   
 
Gambar 2: Inisialisasi Arrays
//instantiate obyek
ages = new int[100];  

atau bisa juga ditulis dengan, 

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

Pada contoh diatas, deklarasi akan
memberitahukan kepada compiler Java,
bahwa identifier ages akan digunakan
sebagai nama array yang berisi data-data
integer, dan kemudian untuk membuat atau
meng-instantiate sebuah array baru yang
terdiri dari 100 elemen. 

Selain menggunakan sebuah keyword baru
untuk meng-instantiate array, Anda juga
dapat secara otomatis mendeklarasikan
array, membangunnya, kemudian
memberikan sebuah value.
 

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 //4
variabel 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”,}
7.4  Pengaksesan sebuah elemen array 
Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari array,
Anda harus menggunakan sebuah nomor atau yang disebut sebagai  index atau
subscript. 
Sebuah  nomor index atau subscript telah diberikan kepada tiap anggota array,
sehingga program dan programmer dapat mengakses setiap value apabila dibutuhkan.
Index  selalu dalam integer.  Dimulai dari nol, kemudian akan terus bertambah
sampai list value dari array tersebut berakhir. Perlu dicatat, bahwa elemen-elemen
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 reference seperti String, ia tidak akan diinisalisasi
ke string kosong “”, sehingga Anda tetap harus membuat String array secara eksplisit. 

Berikut ini adalah contoh, bagaimana untuk mencetak seluruh elemen didalam array.
Dalam contoh ini digunakanlah 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] );
  } 
 }
}

Petunjuk penulisan program:
1. Biasanya, lebih baik menginisialisasi  atau meng-instantiate array setelah Anda
mendeklarasikannya. Sebagai contoh pendeklarasiannya


           int []arr = new int[100];
   lebih disarankan daripada,
 int []arr;
  arr = new int[100];

2. Elemen-elemen dalam n-elemen array memiliki index dari 0 sampai n-1. Perhatikan
disini bahwa tidak ada elemen array arr[n]. Hal ini akan menyebabkan array-index out-of-bounds exception.

3.  Anda tidak dapat mengubah ukuran dari sebuah array
7.5  Panjang Array 
Untuk mengetahui berapa banyak element didalam sebuah array, Anda dapat
menggunakan  length (panjang) field dalam array. Panjang field dalam array 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] );
  } 
 }
}

Petunjuk penulisan program:
 
1.  Pada saat pembuatan loop untuk memproses elemen-elemen dalam array,
gunakanlah length field didalam pernyataan pengkondisian dalam loop. Hal ini akan
menyebabkan loop secara otomatis menyesuaikan diri terhada ukuran array yang
berbeda-beda.
2.  Pendeklarasian ukuran array di Java, biasanya digunakan constant untuk
mempermudah. Sebagai contoh,

final int ARRAY_SIZE = 1000;  //pendeklarasian constant
 . . .

int[] ages = new int[ARRAY_SIZE];

 7.6  Array Multidimensi 
Array multidimensi diimplementasikan sebagai array didalam array. 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 element pertama dari
baris pertama didalam array dogs, kita akan menulis, 

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

Kode diatas akan mencetak String “terry” di layar. 



























Minggu, 28 Oktober 2012

Struktur Kontrol



Tujuan
Menggunakan struktur kontrol keputusan (if, else, switch), untuk memilih bagian dari program yang akan dieksekusi.

Menggunakan struktur kontrol pengulangan (while, do-while, for), untuk melakukan pengulangan eksekusi program atau code, sejumlah yang telah ditentukan.


Struktur kontrol
◦Digunakan untuk mengatur susunan proses eksekusi statement-
statement di dalam program.

Struktur kontrol mempunyai dua tipe:

(Struktur kontrol keputusan)
Digunakan untuk memilih bagian dari code yang akan dieksekusi.

(Struktur kontrol pengulangan)
digunanakan untuk mengeksekusi bagian tertentu sesuai dengan
jumlah angka pengulangannya.

1. Struktur kontrol keputusan

digunakan untuk memilih dan mengeksekusi block tertentu dari code yang dapat berpindah ke bagian lain.
Tipe-tipe:
1.      statement-if
2.      statement-if-else
3.      statement-if-else if
4.      statement-switch
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.statement-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
       }
Dimana,
◦ekspresi switch
Merupakan integer atau karakter ekspresi
◦case_pilihan1, case_pilihan2 dan yang lainnya ,
merupakan integer unique atau karakter tetap.
Ketika sebuah switch digunakan,
◦Java akan menilai ekspresi switch, kemudian berpindah ke
case yang pilihan dari pemilih sesuai dengan nilai dari
ekspresi.
◦Program mengeksekusi statement yang diminta dari point
sebuah case sampai statement break dibaca, kemudian
pindah ke statement awal setelah membaca akhir dari
struktur switch.
◦Jika tidak ada case yang sesuai, maka blok default akan
dieksekusi. Catatan, bahwa bagian default merupakan
pilihan.

2. Struktur kontrol pengulangan
Struktur kontrol pengulangan
◦Pada statement Java, kita dapat menentukan angka
pengulangan yang akan dilakukan,
Tipe:
1.    Pengulangan-while
2.    Pengulangan-do-while
3.    Pengulangan-for
1.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.

2.Pengulangan-do-while
◦Sama dengan pengulangan-while
◦statement didalam pengulangan do-while
akan dieksekusi beberapa kali selama
kondisinya sesuai dengan ekspressi yang
diberikan.
◦Hal utama yang membedakan antara
pengulangan while dan do-while:
statement didalam pengulangan
do-while loop setidaknya dieksekusi
satu kali.
           Form pengulangan-do-while:

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

3.pengulangan for
Pengulangan-for
◦Digunakan untuk mengeksekusi code yang
bernilai sama, berulang-ulang.  
           Form pengulangan-for:
               for(InisialisasiEkspresi;KondisiPengulangan;StepEkspresi)
         {   
         statement1;
         statement2;
         . . .
         }
◦dimana,
InisialisasiEkspresi   –meninisialisasi
variabel pengulangan.
KondisiPengulangan   – membandingkan
variabel pengulangan dengan   nilai
limit.
StepEkspresi    - memperbarui variabel
pengulangan.











 
Blogger Templates