Anda di halaman 1dari 37

Pemrograman Berorientasi Obyek

Oleh :

Arif Rahman
Program Studi Ilmu Komputer Universitas Ahmad Dahlan email: arif-r@telkom.net

Kuliah & Penilaian

Jadwal
Kamis, 12.45-14.25 di R.307

Penilaian

Presensi (10% jika 75% masuk ) Tugas/ Kuis (20%) Ujian Mid (30%) Ujian Akhir (40%)

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Ikhtisar

Pengantar Kelas dan Obyek

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Perkembangan PBO

Sejarah Bahasa pemrograman

Java, C++, Delphi, C#, PHP 5, dll

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Apa itu Obyek?

di dunia nyata
keadaan (state)

Obyek

perilaku (behavior)

contoh
keadaan
warna nama jenis

perilaku
berjalan mengeong

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Apa itu Obyek?

di dunia software
atribut / variabel

Obyek

method / function

contoh
variable
warna nama jenis

method
berjalan() mengeong()

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Apa itu Obyek?

Definisi

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Berorientasi Obyek?
Contoh :

Pengembangan SIA (Sistem Informasi Akademik)

Berorientasi Prosedur
Prosedur / fungsi

mhs_registrasi

SIA

mhs_krs
dosen_insertNilai admin_setJadwal

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Berorientasi Obyek?

Berorientasi Obyek

Mahasiswa NIM nama registrasi() updateKRS()


Dosen NIP nama insertNilai() Administrasi nama alamat insertNilai()

SIA

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Kelas (Class)

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

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Kelas (Class)

Kelas merupakan cetakan (blueprint) dari suatu obyek Dari suatu kelas kita dapat membuat obyek-obyek baru yang masing-masing dapat memiliki keadaan yang berbeda-beda
Sepeda jenis warna berjalan() mengerem()
Sepeda1 jenis = BMX warna = hitam berjalan() mengerem() Sepeda2 jenis = Mini warna = merah berjalan() mengerem()

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Message

Obyek berinteraksi dan berkomunikasi dengan obyek lain melalui message

message Obyek A Obyek B

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Message

Message terdiri dari Nama obyek yg dikirimi Nama method yg dipanggil Parameter yang diperlukan oleh method yang dipanggil

berjalan(10 km/jam) Budi SepedaBudi

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Ciri Utama PBO


Encapsulation (pembungkusan) Inheritance (pewarisan) Polymorphism

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Encapsulation

Suatu metode untuk menyembunyikan suatu bagian implementasi dari kelas dan menyediakan antarmuka bagi kelas/software lain yang akan mengaksesnya. Direalisasikan dalam bentuk class contoh
Administrator
password setPassword()

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Deklarasi Kelas
Sintaks deklarasi kelas dalam JAVA: <modifiers> class <class_name> { [<attribute_declarations>] [<method_declarations>] }

<modifiers> public :kelas dapat diakses dari luar default : kelas hanya dapat diakses dari satu package
Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Deklarasi Kelas

Contoh 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 Komputer Universitas Ahmad Dahlan

Deklarasi Atribut

[<modifiers>] <type> <name>

<modifiers>
private public atribut hanya dapat diakses oleh method yg ada dalam kelas tersebut atribut dapat diakses secara langsung

<type>
Dapat berupa tipe primitif (int, double boolean, dst..) atau kelas

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

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

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Deklarasi Method
[<modifiers>] <return_type> <name> ([<argument_list>]) { [<statement>] }

[<modifiers>] public : method dapat diakses dari luar private : method hanya dapat dipanggil oleh method lain dalam satu kelas
Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Diagram Kelas

nama_kelas -nama_atribut1 #nama_atribut2 +nama_atribut3 +nama_method1() #nama_method2() -nama_method3()

contoh
Sepeda +jenis -warna +berjalan() +mengerem()

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Diagram Obyek

Kelas
Sepeda +jenis -warna +berjalan() +mengerem()

Obyek
Sepeda1 : Sepeda jenis warna Sepeda2 : Sepeda jenis warna

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Contoh Kasus

Suatu 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 Komputer Universitas Ahmad Dahlan

Pengaksesan Atribut dan Method

Dapat dari kelas lain atau dari kelas itu sendiri

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Pengaksesan Atribut dan Method


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

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Constructor

adalah method yang dijalankan secara otomatis pada saat obyek diciptakan. Dengan constructor kita dapat memberikan nilai awal pada obyek Nama constructor sama dengan nama kelas
Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Constructor
public class Cat { private int weight; public Cat() { weight = 20; } public int getWeight() { return weight; } public void setWeight(int newWeight) { weight = newWeight; } }
Program Studi Ilmu Komputer Universitas Ahmad Dahlan

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

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Constructor dgn argumen


public 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 Komputer Universitas Ahmad Dahlan

Constructor dgn argumen


public 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 Komputer Universitas Ahmad Dahlan

Deklarasi Array
public 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 Komputer Universitas Ahmad Dahlan

Array String
public 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 Komputer Universitas Ahmad Dahlan

Array dari Obyek


public 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 Komputer Universitas Ahmad Dahlan

Array dari Obyek


Rekening[] 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 Komputer Universitas Ahmad Dahlan

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

Program Studi Ilmu Komputer Universitas Ahmad Dahlan

Mengkopi Array
public 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 Komputer Universitas 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(); } } }

Program Studi Ilmu Komputer Universitas Ahmad Dahlan