Senin, 14 November 2011

Pemrograman Berorientasi Obyek

Pemrograman Berorientasi Obyek (Object Oriented Programming – OOP)
adalah programming paradigm yang menggunakan obyek dan interaksinya untuk
merancang aplikasi dan program komputer.

Ada beberapa konsep penting yang kalian harus pahami dalam
pemrograman berorientasi yaitu, abstraksi, enkapsulasi, inheritance dan polymorphism.

a. Abstraksi

Abstraction atau disebut juga composition merupakan prinsip
penyederhanaan dari sesuatu yang kompleks dengan cara memodelkan kelas
sesuai dengan masalahnya.

sebuah mobil jika dipecah-pecah bagian-bagiannya kita akan dapatkan
seperti ban, mesin, rangka, mobil, kaca, dan lain-lain dan hal in berlaku sebaliknya.
Jika kita gabungkan bagian-bagian tersebut maka kita akan mendapatkan sebuah kelas mobil.

Pada pemrograman berorientasi obyek biasanya kalau kita menjumpai beberapa kelas
atau obyek yang kalau diidentifikasi memiliki banyak kesamaan atribut dan
method maka kita akan menggabungkan kelas-kelas tersebut menjadi satu super
class.

b. Enkapsulasi

Prinsip encapsulation adalah prinsip penyembunyian detil dari sebuah
kelas terhadap obyek yang berinteraksi terhadapnya.

Sebagai contoh ketika kita menjalankan mobil, sebenarnya kita sedang berinteraksi dan
kita meminta kepada mobil untuk menjalankan methodnya seperti maju, mundur atau
berhenti. Kita berinteraksi hanya dengan beberapa bagian dari mobil (interface)
seperti persneling, setir, pijakan gas, pijakan rem dan bagian lain.

Tapi detil proses yang terjadi didalam mobil bagaimana bisa maju, mundur atau berhenti
kita tidak perlu tahu.

c. Inheritance

Inheritance atau pewarisan adalah prinsip pewarisan sifat dari orang tua
ke anak atau turunannya yang diterapkan pada kelas.

Orang tua memiliki atribut dan method yang lebih umum dibandingkan dengan anak
atau turunannya.

kita bisa tahu bahwa mobil memiliki atribut dan method yang
lebih umum dibandingkan dengan sedan , truk atau bus.

Mobil sebagai kelas yang mewarisi disebut sebagai super class, sedangkan sedan,
truk dan bus sebagai kelas yang diwarisi disebut sub class.

d. Polymorphism

Arti dari polymorphism adalah kemampuan dari suatu obyek untuk
mempunyai lebih dari satu bentuk.

Atau dalam pengertian lain adalah kita dapat menerapkan sesuatu hal yang berbeda melalui
suatu cara yang sama.

Sebagai contoh kalau ada empat ekor hewan berbeda
yaitu burung, ular, katak, dan singa kemudian kita minta untuk bergerak, maka
burung akan terbang, ular akan melata, katak melompat, singa mungkin akan
berlari.

Jadi suatu method yang sama mungkin bisa diterapkan secara lain jika
obyek yang menerapkan adalah berlainan.

1. Class

jawab :

Class atau kelas mendefinisikan karakteristik abstrak dari sesuatu
termasuk atribut atau sifat-sifat dari sesuatu dan apa yang dapat dikerjakan oleh
sesuatu (method). Sebagai contoh, mobil adalah sebuah kelas yang memiliki
attribut warna, merek, tipe dan lain-lain. Mobil juga punya method antara lain,
maju, mundur dan berhenti.

1.a. Pembuatan Kelas

Pada Java kelas didefinisikan dengan kata kunci class.
Bentuk umum untuk mendefinisikan kelas adalah sebagai berikut:

class NamaKelas
tipe data1;
tipe data2;

tipe dataN;
tipe method1 (daftar parameter) {
//blok kode untuk method1
}
tipe method2 (daftar parameter) {
//blok kode untuk method2
}

tipe methodN (daftar parameter) {
//blok kode untuk methodN
}
}

contoh :

class Siswa
{
    String name;
    String alamat;
    int usia;
}

Data atau variabel yang didefinisikan di dalam kelas sering disebut sebagai instance variable.

Nilai-nilai variabel ini akan dibaca melalui method-method yang tersedia.
Dengan demikian method digunakan sebagai antarmuka (interface) antara pemakai kelas dengan

data yang ada di dalam kelas tersebut.

2. Object

jawab :

Apakah obyek itu? Semua benda yang ada didunia ini dapat kita sebut
sebagai obyek. Guru mata pelajaran RPL kalian adalah suatu obyek.
Buku yang kalian pegang ini juga suatu obyek.
Bahkan mata pelajaran RPL adalah juga sebuah obyek.
Setiap obyek akan mempunyai karakteristik dan tingkah laku tertentu.
Karakteristik disebut attribute dan tingkah laku disebut sebagai behavior atau method.

contoh :

class Siswa
{
    String nama;
    String alamat;
    int usia;
}

public class DataSiswa
{
public static void main(String[] args)
{
    siswa siswa1 = new Siswa();
    siswa1.nama = "Roni";
    siswa1.alamat = "Mergosono Gg. 1 No. 34";
    siswa1.usia = 23;

    System.out.println("Nama :" + siswa1.nama);
    System.out.println("Alamat :" + siswa1.alamat);
    System.out.println("Usia :" + siswa1.usia);
}
}

Kode program di atas harus kita simpan dengan nama file DataSiswa.java,
bukan Siswa.java.

Hal ini karena method main berada pada class DataSiswa.

Pada kode di atas kelas Siswa kita gunakan pada kelas DataSiswa.
Kita membuat obyek aktual dari kelas Siswa dengan cara mengetikkan Siswa
siswa1 = new Siswa();.

Siswa1 adalah nama obyek aktual dari kelas Siswa.
Setelah itu baru kita dapat menggunakan variabel atau data yang ada pada kelas siswa.

3. Instantiate

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!”);

4. Instance Variable
jawab :
instance variabel adalah Data atau variabel yang didefinisikan di dalam kelas.

5. Instance Method

jawab :

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

Petunjuk Penulisan method :
1. Nama method harus dimulai dengan huruf kecil
2. Nama method harus berupa kata kerja
3. Gunakan dokumentasi sebelum mendeklarasikan sebuah method.

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.

contoh program :

class Siswa
{
    String nama;
    String alamat;
    int usia;
    double nilaiMatematika;
    double nilaiBhsInggris;
    double nilaiBhsIndonesia;
    double rerata;

// Menghasilkan nama dari Siswa
public String getNama()
{
    return nama;
}

public void setNama( String temp )
{
    nama = temp;
}

// Menghitung rata – rata nilai
public double getRerata()
{
    rerata = (nilaiMatematika+nilaiBhsInggris+nilaiBhsIndonesia )/3;
    return rerata;
}
}

public class DataSiswa
{
    public static void main(String[] args)
    {
        Siswa siswa1 = new Siswa();
        siswa1.setNama("Rony");
        siswa1.nilaiMatematika = 67;
        siswa1.nilaiBhsInggris = 87;
        siswa1.nilaiBhsIndonesia = 59;

        System.out.println("Nama :" +siswa1.getNama());
        System.out.println("Nilai Matematika :" + siswa1.nilaiMatematika);
        System.out.println("Nilai Bahasa Inggris :" + siswa1.nilaiBhsInggris);
        System.out.println("Nilai Bahasa Indonesia :" + siswa1.nilaiBhsIndonesia);
        System.out.println("Rerata :" + siswa1.getRerata());
    }
}

Contoh Pembuatan method tanpa pengembalian nilai.

Class Bangun
{
    double panjang;
    double lebar;

// Mendefinisikan method void (tidak mengembalikan nilai)
void cetakLuas()
{
    System.out.println(“Luas bangun = “ + (panjang * lebar));
}
}

class pakaiBangun
{
    public static void main(String[] args)
    {
    Bangun b1, b2;

    // instansiasi objek
    b1 = new Bangun();
    b2 = new Bangun();

    // mengisi data untuk objek b1
    b1.panjang = 4;
    b1.lebar = 3;

    // mengisi data untuk objek b2
    b2.panjang = 6;
    b2.lebar = 5;

    // memanggil method cetakLuas() untuk masing-masing objek
    b1.cetakLuas();
    b2.cetakLuas();
    }
}

Contoh Pembuatan method dengan pengembalian nilai.

Class Bangun
{
    double panjang;
    double lebar;

    // Mendefinisikan method yang mengembalikan nilai

    double hitungLuas()
    {
        double luas = panjang * lebar;
        return luas;
    }
}

class pakaiBangun
{
    public static void main(String[] args)
    {
        Bangun b1, b2;

        // instansiasi objek
        b1 = new Bangun();
        b2 = new Bangun();

        // mengisi data untuk objek b1
        b1.panjang = 4;
        b1.lebar = 3;

        // mengisi data untuk objek b2
        b2.panjang = 6;
        b2.lebar = 5;

        // memanggil method hitungLuas() untuk masing-masing objek
        System.out.println(“Luas b1 = “ + b1.hitungLuas());
        System.out.println(“Luas b2 = “ + b2.hitungLuas());
    }
}

Pada contoh diatas kita membuat metode hitungLuas yang mengembalikan nilai.

Perhatikan deklarasi method tidak lagi menggunakan void
tetapi menggunakan double yang merupakan tipe data nilai yang dikembalikan.

Untuk mengembalikan nilai digunakan kata kunci return.


Contoh Pembuatan method dengan argumen.

class Bangun
{
    double panjang;
    double lebar;
   
    // method dengan argumen
    void isiData(double p, double l)
    {
        panjang = p;
        lebar = l;
    }

    // method yang mengembalikan nilai
    double hitungLuas() {
        double luas = panjang * lebar;
        return luas;
    }
}

class pakaiBangun
{
    public static void main(String[] args)
    {
        Bangun b;
       
        // instansiasi obyek
        b = new Bangun();

        // memanggil method isiData dan mengisi argumennya
        b.isiData(6,8);

        // memanggil method hitungLuas() untuk objek b
        System.out.println("Luas b = " + b.hitungLuas());
    }
}

Pada contoh diatas kita menambahkan satu method lagi pada class Bangun yaitu isiData.
Karena tidak mengembalikan nilai maka kita menggunakan void.

Method ini mempunyai dua buah argument yaitu p dan l
yang digunakan untuk menampung nilai yang akan kita masukkan.

6. Class Variables atau static member variables

Disamping instance variable, kita juga dapat mendeklarasikan class variable atau variabel
yang dimiliki class sepenuhnya.

Nilai pada variabel ini sama pada semua object di class yang sama.

Anggaplah kita menginginkan jumlah dari siswa yang dimiliki dari seluruh class,
kita dapat mendeklarasikan satu static variable yang akan menampung nilai tersebut.

Kita beri nama variabel tersebut dengan nama studentCount.

Berikut penulisan static variable :

public class StudentRecord
{
    //area deklarasi instance variables
    private static int studentCount;

    //area penulisan kode selanjutnya
}

Kita gunakan keyword : ’static’

untuk mendeklarasikan bahwa variabel tersebut adalah static.

Maka keseluruhan kode yang dibuat terlihat sebagai berikut :

public class StudentRecord
{
    private String name;
    private String address;
    private int age;
    private double mathGrade;
    private double englishGrade;
    private double scienceGrade;
    private double average;
    private static int studentCount;

    //area penulisan kode selanjutnya
}


7. Constructor

Constructor yang merupakan method khusus, merupakan method yang
didefiniskan di dalam kelas dan akan dipanggil secara otomatis setiap kali terjadi
pendefinisian (instansiasi) obyek.

Biasanya constructor berfungsi untuk melakukan inisialisasi nilai terhadap data-data
yang terdapat pada kelas yang bersangkutan.

Nama method constructor harus sama dengan nama kelas itu sendiri.
Constructor tidak memiliki kembalian nilai dan tidak void.

contoh :

class Bangun
{
    double panjang;
    double lebar;
   
    // constructor dengan argumen
    Bangun(double p, double l)
    {
        panjang = p;
        lebar = l;
    }

    // method yang mengembalikan nilai
   
    double hitungLuas()
    {
        double luas = panjang * lebar;
        return luas;
    }
}

class pakaiBangun
{
    public static void main(String[] args)
    {
        Bangun b;

        // instansiasi obyek
        b = new Bangun();
   
        // memanggil method isiData dan mengisi argumennya
        b.isiData(6,8);

        // memanggil method hitungLuas() untuk objek b
        System.out.println("Luas b = " + b.hitungLuas());
    }
}

Pada kode ini terdapat constructor dengan nama yang sama dengan kelasnya yaitu Bangun.

Constructor seperti halnya method yang lain boleh mempunyai argumen dan boleh tidak.
Pada contoh di atas kita constructor Bangun mempunyai argumen p dan l.

Tidak ada komentar:

Posting Komentar

TUGAS BASIS DATA

TUGAS BASIS DATA SOAL PRAKTIK BASIS DATA (TENTANG MENGGUNAKAN SQL DAN KLASIFIKASINYA) Sebuah sekolah akan membuat syste...