Rabu, 18 April 2012

PEWARISAN (INHERITANCE) DAN POLIMORFISME

  • PEWARISAN(INHERITANCE)

Sebuah objek dideskripsikan melalui sebuah kelas. Semua perilaku dari sebuah objek, dapat diketahui dengan mengenali kelas dari objek yang bersangkutan. Jika kita tahu bahwa objek itu bisa kita makan, mengandung zat-zat pembentuknya, dengan sejumlah protein atau mineral,misalnya. Contoh lain, jika “X” adalah sebuah Telepon, maka kita bisa menduga pasti ada suatu cara yang ada pada objek X tersebut yang dapat kita gunakan untuk menelpon atau menerima telepon dari orang lain.
Sistem OOP memmungkinkan kita untuk mendefenisikan suatu kelas baru dengan mewarisi sifat dari kelas lain yang sudah ada.
Subkelas memungkinkan kita untuk melakukan spesifikasi detail dan perilaku khusus dari kelas supernya. Dengan konsep pewarisan, seorang programmer dapat menggunakan kode yang telah ditulisnya pada kelas super berulang kali pada kelas-kelas turunannya tanpa harus menulis ulang semua kode-kode itu. Kelas abstrak dapat dibuat sebagai kelas super yang mendefenisikan perilaku umum, misalnya kelas makanan. Kelas makanan adalah suatu kelas abstrak, yang ,mendefenisikan sesuatu yang dapat dimakan. Kelas turunannya misalnya adalah kelas Dodol, kelas Rujak, kelas Nasi goreng, dan sebagainya. Kelas makanan tidak mempunyai bentuk, karena ia adalah kelas abstrak. Bentuknya menjadi jeals ketika kita membuat kelas turunan yang mewarisi dari kelas Makanan, misalnya Nasi Goreng.

Contoh Program :

















Output :










  • POLIMORFISME

Polimorfisme merupakan kemampuan objek-objek yang berbeda kelas namun terkait dalam pewarisan untuk merespon secara berbeda terhadap suatu pesan yang sama. Polimorfisme juga dapat dikatakan kemampuan sebuah objek untuk memutuskan method mana yang akan diterapkan padanya, tergantung letak objek tersebut pada jenjang pewarisan. Misalnya kita mempunyai kelas truk, yang memiliki method Jalan, dengan kelas TrukMini yang merupakan turunan dari kelas Truk, yang juga memiliki method Jalan. Sebuah objek yang bertipe TrukMini dan memanggil method Jalan, akan memanggil method Jalan yang terdapat pada kelas TurkMini, dan bukan method Jalan pada kelas Truk. Proses ini termasuk polimorfisme murni karena berkaitan dengan jenjang pewarisan, dan dinamakan method overriding. Polimorfisme yang lain juga dapat berlaku ketika sebuah kelas memiliki lebih dari sedikit lebih cepat dari java sebelumnya.

Contoh Program :


Output :


Nama    : Esra Febrina Siregar
Npm     : 52410444

Sumber :  http://student.eepis-its.edu/~sentul/Data%20Kuliah/oop%20pjj/pertemuan8.pdf ,
http://www.scribd.com/doc/31395466/Polimorfisme , Widiarta Wisnu.2007.Dari Pascal ke Java. Bandung.Informatika Bandung



Rabu, 11 April 2012

ENKAPSULASI


Istilah enkapsulasi sebenarnya adalah kombinasi data dan fungsionalitas dalan sebuah unit tunggal sebagai bentuk untuk menyembunyikan detail informasi. Inilah salah satu konsep dalam OOP  yang tidak terdapat pada procedural programming. Tipe data record pada Pascal atau Stuct pada C hanya mengumpulkan data namun tidak untuk fungsi atau operasi. Kecuali pada borland delpi 2006, record telah berevolusi menjadi bentuk yang lebih maju. Record bisa memiliki constructor, property, method, data field, dan tipe bersarang. Bedanya dengan keals adalah, record tidak mendukung pewarisan, record bisa mempunyai data variant sementara kelas tidak,record dihantarkan by value, kelas by reference,record dialokasikan secara otomatis sementara kelas harus secara eksplisit, record tidak mempunyai destructor, kata kunci virtual,dynamic, dan message tidak dapat digunakan pada record.

Kelas menyatukan data dengan operasi dalam satu kesatuan. Sebagai tambahan dalam enkapsulasi, OOP lebih dikarakterisasikan dengan pewarisan(inheritance) dan polimorfisme(Polymorphism). Proses enkapsulasi memudahkan kita untuk menggunakan sebuah objek dari suatu kelas karena kita tidak perlu mengetahui segala hal secara rinci. Enkapsulasi menekankan pada antarmuka suatu kelas, atau dengan kata lain bagaimana menggunakan objek kelas tertentu. Sebuah contoh, kelas mobil meyediakan antarmuka fungsi untuk menjalankan mobil tersebut, tanpa kita perlu tahu komposisi bahan bakar, udara, dan kalor yang diperlukan untuk proses tersebut. Disini terjadi proses enkpsulasi  terhadap rincian bagaimana sebuah mobil dijalankan.

Contoh Program Enkapsulasi :

                LISTING



public class ContohBaik{
            public static void main(String[] args){
                        BujurSangkar bs = new BujurSangkar (8);
                          System.out.println("Luas bs dengan sisi 8 = "+ bs.cariLuas());
                          System.out.println("Keliling  bs dengan sisi 8 = "+ bs.cariKeliling());
                          System.out.println(" ");
                        PersegiPanjang pp = new PersegiPanjang(5,2);
                          System.out.println("Luas pp dengan p = 5 dan l = 2 adalah " + pp.cariLuas());
System.out.println("Keliling pp dengan p = 5 dan l = 2 adalah " +         pp.cariKeliling());
                          System.out.println(" ");
                        BangunDatar bd = new BujurSangkar (8);
                         System.out.println("Luas bd dengan sisi 8 = " + bs.cariLuas());
                         System.out.println("Keliling bd dengan sisi 8 = " + bs.cariKeliling());
                         System.out.println(" ");
                        bd = new PersegiPanjang(5,2);
                         System.out.println("Luas pp dengan p = 5 dan l = 2 adalah "+ pp.cariLuas());
System.out.println("Keliling pp dengan p = 5 dan l = 2 adalah "+  pp.cariKeliling());
            }
}
abstract class BangunDatar {
            abstract double cariLuas();
            abstract double cariKeliling();
}
class PersegiPanjang extends BangunDatar {
            private int lebar = 1;
            private int panjang = 1;
            PersegiPanjang (int p,int l){
            panjang = p;
            lebar = l;
        }
            double cariLuas(){
                        return panjang * lebar;
            }
            double cariKeliling(){
                        return 2 * (panjang + lebar);
            }
}
class BujurSangkar extends BangunDatar {
            private int sisi = 1;
        BujurSangkar (int s){
            sisi = s;
            }
        double cariLuas(){
                        return sisi * sisi;
            }
            double cariKeliling(){
                        return 4 * sisi;
            }
}




               OUTPUT



Prinsip OOP yang dapat diterapkan di contoh diatas adalah :
1. Adanya abstraksi kelas-kelas;
2. Adanya pewarisan (inheritance) -->adanya kata kunci extends;
3. Adanya enkapsulasi (variabel dalam dibuat private);
4. Adanya polymorphism.

Nama : Esra Febrina Siregar
Kelas : 2IA13
NPM : 52410444

sumber : Widiarta Wisnu .2007 .Dari Pascal ke Java .Bandung.Informatika Bandung

Kamis, 05 April 2012

Perbedaan Pemrograman Terstruktur dan Berobjek

Dalam pembahasa kali ini,saya akan mencoba menjelaskan perbedaan antara pemrograman terstruktur dan Berorientasi Objek. Maka dari itu saya akan memberika penjelasan singkat apa itu Pemrograman.
Pemrograman merupakan proses mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah ( algoritma) dengan menggunakan suatu bahasa pemrograman.
Di dalam pemrograman terdapat tipe pemrograman,dalam hal ini saya akan menjelaskan tipe pemrograman terstruktur dan berorientasi objek saja.


  • Pemrograman Terstruktur (Structured Programming)

Ø   Bahasa pemrograman terstruktur adalah bahasa pemrograman yang mendukung pembuatan program sebagai kumpulan prosedur. Prosedur-prosedur ini dapat saling memanggil dan dipanggil dari manapun dalam program dan dapat menggunakan parameter yang berbeda-beda untuk setiap pemanggilan.

Ø   Prosedur adalah bagian dari program untuk melakukan operasi-operasi yang sudah ditentukan dengan menggunakan parameter tertentu.

Ø   Bahasa pemrograman terstruktur adalah pemrograman yang mendukung abstraksi data, pengkodean terstruktur dan kontrol program terstruktur.

Ø   Kontrol program terstruktur (Tiga tipe Bahasa pemrograman terstruktur):
o  Terurut(sequence) : setiap baris program akan dikerjakan secara urut dari atas ke bawah(setiap baris dikerjakan sekali atau tidak baris baris program yang tidak dikerjakan).
o  Pilihan (selection/conditional)
o  Pengulangan (repetition - loop)

Ø   Prinsip pemrograman terstruktur:
ü  Pendekatan rancangan dari atas ke bawah (top down design),
ü  Bagi program ke dalam modul-modul logika yang sejenis,
ü  Gunakan sub-program untuk proses sejenis yang sering digunakan,
ü  Gunakan pengkodean terstruktur: (IF - THEN, DO-.. WHILE ),
ü  Hindarkan penggunaan perintah GO TO bila tidak diperlukan,
ü  Gunakan nama-nama bermakna (mnemonic names), dan
ü  Buat dokumentasi yang akurat dan berarti.

Ø   Contoh bahasa pemrograman terstruktur : Pascal. Cobol, RPG, AD


·       Pemrograman Berorientasi Objek(OOP/Object-Oriented Programming)

Ø   Object / Objek : Elemen yang memiliki fungsi, metode, karakteristik tertentu yang dapat dibedakan dalam dunia nyata.

Ø   Class : Kumpulan Object-object yang memiliki kesamaan karakateristik.

Ø   Merupakan bahasa pemrograman yang mampu memanfaatkan objek-objek yang tersedia atau membuat suatu objek tertentu dengan menggunakan bahasa pemrograman.

Ø   Mampu merefleksikan kebutuhan-kebutuhan user sebagaimana lakyaknya yang ada di dunia nyata.

Ø   Relative lebih fleksibel dan mudah diadaptasikan terhadap perubahan suatu program.

Ø   Memiliki feature yang memperkuat dan meningkatkan flesibilitas suatu objek  dengan diadanya class, instance, encapsulation, inheritance, reuseability, dan polymorphism.

Ø   Karakteristik Bahasa Berorientasi Objek :
o   Objek fisik:  (Mobil dalam simulasi arus lalu lintas, Pesawat terbang dalam    sistem pengontrolan lalu lintas udara).
o   Elemen dari lingkungan: (Windows, Objek grafik(garis,lingkaran, polygon)).
o   Penyimpanan data (array, stack, Link list, binary tree).
o   Entitas orang (karyawan, mahasiswa, pelanggan, pasien).

Ø   Contoh bahasa pemrograman beroriantasi object : C++ , SmallTalks , Java.


Nama   : Esra Febrina Siregar
Kelas    : 2IA13
NPM     : 52410444





















.