37
Pemrograman Berorientasi Obyek Oleh : Arif Rahman Program Studi Ilmu Komputer Universitas Ahmad Dahlan email: [email protected]

PBO

Embed Size (px)

DESCRIPTION

PBO

Citation preview

  • Pemrograman Berorientasi ObyekOleh :Arif RahmanProgram Studi Ilmu Komputer Universitas Ahmad Dahlan email: [email protected]

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Kuliah & PenilaianJadwalKamis, 12.45-14.25 di R.307 PenilaianPresensi (10% jika 75% masuk )Tugas/ Kuis (20%)Ujian Mid (30%)Ujian Akhir (40%)

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    IkhtisarPengantarKelas dan Obyek

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Perkembangan PBOSejarahBahasa pemrogramanJava, C++, Delphi, C#, PHP 5, dll

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Apa itu Obyek?di dunia nyata

    contohkeadaan (state)perilaku (behavior)Obyekkeadaanwarnanamajenisperilakuberjalanmengeong

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Apa itu Obyek?di dunia software

    contohatribut / variabelmethod / functionObyekvariablewarnanamajenismethodberjalan()mengeong()

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Apa itu Obyek?Definisi

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Berorientasi Obyek?Contoh :Pengembangan SIA (Sistem Informasi Akademik)

    Berorientasi ProsedurSIAmhs_registrasimhs_krsdosen_insertNilaiadmin_setJadwalProsedur / fungsi

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Berorientasi Obyek?Berorientasi ObyekSIAMahasiswaNIMnama registrasi() updateKRS()DosenNIPnama insertNilai()Administrasinamaalamat insertNilai()

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Kelas (Class)Dalam suatu sistem, sering kali ditemui beberapa obyek sejenisBeberapa obyek sejenis dapat di-identifikasi sebagai suatu kelas (class)

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Kelas (Class)Kelas merupakan cetakan (blueprint) dari suatu obyekDari suatu kelas kita dapat membuat obyek-obyek baru yang masing-masing dapat memiliki keadaan yang berbeda-beda

    Sepedajeniswarna berjalan() mengerem()Sepeda1jenis = BMXwarna = hitam berjalan() mengerem()Sepeda2jenis = Miniwarna = merah berjalan() mengerem()

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    MessageObyek berinteraksi dan berkomunikasi dengan obyek lain melalui messageObyek AObyek Bmessage

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    MessageMessage terdiri dariNama obyek yg dikirimiNama method yg dipanggilParameter yang diperlukan oleh method yang dipanggilBudiSepedaBudiberjalan(10 km/jam)

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Ciri Utama PBOEncapsulation (pembungkusan)Inheritance (pewarisan)Polymorphism

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    EncapsulationSuatu metode untuk menyembunyikan suatu bagian implementasi dari kelas dan menyediakan antarmuka bagi kelas/software lain yang akan mengaksesnya. Direalisasikan dalam bentuk classcontoh

    Administratorpassword setPassword()

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Deklarasi KelasSintaks deklarasi kelas dalam JAVA: class {[][]} public :kelas dapat diakses dari luardefault : kelas hanya dapat diakses dari satu package

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Deklarasi KelasContoh deklarasi kelas dalam JAVA:

    public class Cat { private int weight; public int getWeight() { return weight; }public void setWeight(int newWeight) { weight = newWeight; }}

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Deklarasi Atribut[]

    private atribut hanya dapat diakses oleh method yg ada dalam kelas tersebut public atribut dapat diakses secara langsung Dapat berupa tipe primitif (int, double boolean, dst..) atau kelas

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Deklarasi Atribut

    public class TestAtribut { private int x; private float y = 100.5F; public String nama = Obyek;}

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Deklarasi Method[] ([]) { []}

    [] public : method dapat diakses dari luarprivate : method hanya dapat dipanggil oleh method lain dalam satu kelas

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Diagram Kelascontoh

    +berjalan()+mengerem()

    +jenis-warna

    Sepeda

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Diagram ObyekKelas Obyek

    +berjalan()+mengerem()

    +jenis-warna

    Sepeda

    jeniswarna

    Sepeda1 : Sepeda

    jeniswarna

    Sepeda2 : Sepeda

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Contoh KasusSuatu rak buku dalam perpustakaan, rak memiliki kode tertentu, pada rak tersebut kita dapat : menambah sejumlah buku, mengambil sejumlah buku dan mengetahui jumlah buku yang ada dalam rak sekarang.

    Gambarkan diagram kelasnya

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Pengaksesan Atribut dan MethodDapat dari kelas lain atau dari kelas itu sendiri

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Pengaksesan Atribut dan Methodclass Circle{static final double pi = 3.14; // variabel kelas dengan nilai tetapdouble radius = 10; // variabel objekString warna = "biru";// Metode untuk menghitung luas lingkarandouble hitungLuas(){return pi * radius * radius;}public static void main (String[ ] args){Circle lingk = new Circle();// deklarasi objekSystem.out.println ("Luas lingkaran = " + ingk.hitungLuas());System.out.println ("Warna lingkaran = " + lingk.warna);}}

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Constructoradalah method yang dijalankan secara otomatis pada saat obyek diciptakan. Dengan constructor kita dapat memberikan nilai awal pada obyekNama constructor sama dengan nama kelas

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Constructorpublic class Cat { private int weight; public Cat() { weight = 20; } public int getWeight() { return weight; }public void setWeight(int newWeight) { weight = newWeight; }}

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Constructorpublic class TestCat { public static void main(String[] args) { Cat c = new Cat(); System.out.println(Berat kucing = + c.getWeight()); }}

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Constructor dgn argumenpublic class Cat { private int weight; public Cat() { weight = 20; } public Cat(int initWeight) { weight = initWeight; } public int getWeight() { return weight; }public void setWeight(int newWeight) { weight = newWeight; }}

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Constructor dgn argumenpublic class TestCat { public static void main(String[] args) { Cat c = new Cat(); Cat c2 = new Cat(35); System.out.println("Berat kucing 1 = " + c.getWeight()); System.out.println("Berat kucing 2 = + c2.getWeight()); }}

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Deklarasi Arraypublic class ArrayDemo { public static void main(String[] args) { // declare an array of integers int[] anArray;

    // create an array of integers anArray = new int[10];

    // assign a value to each array element and print for (int i = 0; i < anArray.length; i++) { anArray[i] = i; System.out.print(anArray[i] + " "); } System.out.println(); } }

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Array Stringpublic class ArrayOfStringsDemo { public static void main(String[] args) { String[] str = { "String One", "String Two", "String Three" }; for (int i = 0; i < str.length; i++) { System.out.println(str[i].toLowerCase()); } } }

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Array dari Obyekpublic class ArrayOfObjectsDemo { public static void main(String[] args) { Rekening[] rek = new Rekening[5]; for (int i = 0; i < rek.length; i++) { rek[i] = new Rekening(); System.out.println( rek[i].getSaldo() ); } } }

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Array dari ObyekRekening[] rek = new Rekening[5]; for (int i = 0; i < rek.length; i++) { //ERROR: the following line gives a runtime error System.out.println(rek[i].getSaldo() ); }

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Mengkopi ArraySystem.arraycopy(Object source, int srcIndex, Object dest, int destIndex, int length)

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    Mengkopi Arraypublic class ArrayCopyDemo { public static void main(String[] args) { char[] copyFrom = { 'd', 'e', 'c', 'a', 'f', 'f', 'e', 'i', 'n', 'a', 't', 'e', 'd' }; char[] copyTo = new char[7];

    System.arraycopy(copyFrom, 2,copyTo, 0,7); System.out.println(new String(copyTo)); } }

    Program Studi Ilmu KomputerUniversitas Ahmad Dahlan

    public class ArrayOfArraysDemo2 { public static void main(String[] args){ aMatrix = new int[4][]; //populate matrix for (int i = 0; i < aMatrix.length; i++) { //create subarray aMatrix[i] = new int[5]; for (int j = 0; j < aMatrix[i].length; j++) { aMatrix[i][j] = i + j; } } //print matrix for (int i = 0; i < aMatrix.length; i++) { for (int j = 0; j < aMatrix[i].length; j++) { System.out.print(aMatrix[i][j] + " "); } System.out.println(); } } }