Pemrograman Berorientasi Obyek Dasar-dasar PBO Ramos Somya
PBO Adalah paradigma pemrograman yang diorientasikan pada obyek. Inti dari konsep berorientasi obyek adalah obyek, di mana obyek tersebut merepresentasikan entitas-entitas secara nyata sehingga memungkinkan para software engineer merepresentasikan obyek-obyek dalam dunia nyata ke dalam perancangan perangkat lunak. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau obyek-obyek. Setiap obyek dapat menerima pesan, memproses data, dan mengirim pesan ke obyek lainnya.
PT vs PBO PT, prosedur dan data merupakan dua hal yang terpisahkan satu sama lain. Contoh, untuk mengelola data waktu yang terdiri dari jam, menit, dan detik, dalam C dapat digroupkan dengan menggunakan struct sebagai berikut: Namun meskipun demikian, untuk mengolah ketiga data tersebut, dibutuhkan prosedur yang disusun pada bagian yang terpisah.
PBO vs PT PBO, prosedur dan data dapat dibungkus menjadi sebuah objek sehingga prosedur dan data tidak terpisah lagi melainkan menjadi satu kesatuan. Ini merupakan salah satu konsep OOP yang disebut dengan “encapsulation”. OOP didasarkan pada pemodelan objek – objek dunia nyata menjadi objek – objek dalam pemrograman.
Konsep Dasar dalam PBO Obyek Kelas Abstract Data Type / Tipe Data Abstrak Instantiation / Instansiasi Inheritance / Inheritas / Pewarisan Encapsulation / Enkapsulasi Abstraction / Abstraksi Polymorphism / Polimorfisme
Object / Obyek Merepresentasikan sebuah entitas baik itu fisik, konseptual atau software.
… Fisik: pesawat, mahasiswa, dosen. Konseptual: proses kimia. Software: Linked List Bagi programmer, object adalah sebuah benda yang dapat dinyatakan (represent) dalam sebuah program. Memungkinkan para software developer untuk merepresentasikan konsep dunia nyata ke dalam desain software mereka.
… Seorang customer, product, supplier adalah object yang dapat anda nyatakan di dalam program. Obejct didefinisikan sebagai sebuah benda (entity) yang memiliki batasan (boundary) dan identitas (attribute) yang terdefinisi jelas, yang membungkus (encapsulate) kondisi (state) dan perilaku (behavior) / operation.
… Sebuah object memiliki 2 hal: kondisi (state) dan perilaku (behavior). Kondisi (state) dari suatu object sering dinyatakan melalui attribute dari object tsb. Sedangkan perilaku (behavior) dinyatakan melalui operations dari object tsb.
…
Object’s State Merupakan suatu kondisi yang mungkin ada pada object. Hal ini diimplementasikan dengan kumpulan property yang dikenal sebagai atribut yang di dalamnya ada nilai. Nilai dari property atau atribut bisa berubah nilainya seiring jalannya program.
Object’s Behaviour Menentukan suatu object beraktivitas dan bereaksi. Direpresentasikan dengan operasi-operasi yang dapat dilakukan oleh object. Sebuah object akan melakukan aksi atau reaksi terhadap request atau permintaan dari object lain.
Contoh Object, State dan Behaviour
…
Class Cetakan / template / blue print dari objek. Kelas mendefinisikan attribute (diwujudkan dalam bentuk field / variable global [variable yang melekat pada kelas, bukan pada sebuah method / fungsi / prosedur]) dan behaviour (diwujudkan dalam bentuk method / prosedur / fungsi) dari objek dalam suatu unit untuk suatu tujuan tertentu.
… Class: ibaratkan sebuah rancangan rumah. Dari rancangan rumah ini akan dibuat banyak rumah. Rumah = obyek = hasil cetakan dari rancangan rumah.
Deklarasi Class class NamaClass { tipe_data namaVariabel1; . tipe_data namaVariabelN; tipe_data namaMethod1(parameter) { // implementasi Method1 } tipe_data namaMethodN(parameter) { // implementasi MethodN
Instantiation Adalah proses penciptaan objek berdasarkan kelas yang ada. Sama dengan pembuatan variable berdasar kelas tertentu. Biasanya ditandai dengan penggunaan kata kunci “new”. Contoh: A a = new A();
… Dosen (KELAS) Instansiasi Adi, Yos, Jasson, Yessica, Indrastanti (OBYEK). Sehingga obyek juga memuat atribute & behaviour. Contoh: Yos (Obyek) Atribute: Nama, alamat, dsb. Behaviour : Mengajar, makan, dsb
Attribute dan Behaviour Attribute property Behaviour metoda
metoda Pada bahasa – bahasa pemograman yang lain method disebut juga function atau procedure. Dalam pemograman berorientasi object method adalah suatu operasi atau kegiatan yang dapat dilakukan suatu object.
Deklarasi Method tipe-data namaMethod(daftar-parameter) { //implementasi }
Contoh Class, Property, Method, Object
Instansiasi
Operaror this Operator this adalah operator yang digunakan untuk mengakses variabel yang paling global dari suatu class jika terdapat dua variabel yang memilki nama yang sama dalam scope yang berbeda. Operator (.) dot adalah operator yang digunakan untuk mengakses atribut atribut yang terdapat didalam class yang telah diinstansiasi tersebut.
Constructor Konstruktor merupakan method khusus yang digunakan untuk menginisialisasi obyek saat pertama kali dibentuk. konstruktor harus memiliki nama yang sama dengan nama classnya dan tidak memiliki nilai kembalian (tipe-data) Konstruktor dijalankan pada saat sebuah object diinisialisasi (menggunakan kata new)
Latihan Buatlah class dengan nama class Matematika dengan atribut angka1 dan angka2 (sesuaikan tipe datanya). Pada class Matematika buat constructor untuk inisialisasi awal pada saat obyek dibuat. Pada class Matematika buat method: Penjumlahan berisi operasi penjumlahan angka1 dan angka2 Pengurangan berisi operasi pengurangan angka1 dan angka2 Perkalian berisi operasi perkalian angka1 dan angka2 Pembagian berisi operasi pembagian angka1 dan angka2 Buat class TestMatematika yang di dalamnya terdapat method main dan buat obyek baru serta inisialisasi dengan nilai bebas lalu panggil method Penjumlahan, Pengurangan, Perkalian dan Pembagian dan cetak hasilnya.
Jawaban: public class Matematika { float angka1; float angka2; public Matematika(int a, int b) { this.angka1 = a; this.angka2 = b; } float Penjumlahan() { System.out.print("Hasil Penjumlahan " + this.angka1 + "+" + angka2 + " = "); return this.angka1 + this.angka2; float Pengurangan() { System.out.print("Hasil Pengurangan " + this.angka1 + "-" + angka2 + " = "); return this.angka1 - this.angka2; float Perkalian() { System.out.print("Hasil Perkalian " + this.angka1 + "*" + angka2 + " = "); return this.angka1 * this.angka2; float Pembagian() { System.out.print("Hasil Pembagian " + this.angka1 + "/" + angka2 + " = "); return this.angka1 / this.angka2;
… public class TestMatematika { public static void main(String[] args) { Matematika math = new Matematika(5, 4); System.out.println(math.Penjumlahan()); System.out.println(math.Pengurangan()); System.out.println(math.Perkalian()); System.out.println(math.Pembagian()); }
Tugas Take Home Buat Class Buku dengan atribut judul, pengarang, penerbit, jumlahBeli dan hargaSatuan (sesuaikan tipe datanya) Pada class Buku buat constructor untuk melakukan inisialisasi awal pada saat obyek diciptakan. Pada class Buku buat method: HitungTotalHarga untuk menghitung total harga (jumlahBeli*harga) CekDiskon untuk mengecek diskon (jika TotalHarga>100000 diskon 10% selain itu diskon = 0) InfoBuku untuk mencetak info buku yang dibeli Buat class TestBuku yang di dalamnya terdapat method main dan buat obyek baru serta inisialisasi dengan nilai bebas lalu panggil method HitungTotalHarga, CekDiskon, InfoBuku dan cetak hasilnya.
Ketentuan Dikerjakan maksimal 2 orang. Dikumpulkan dalam bentuk hardcopy, sertakan kode program, output dan penjelasan.
See You Next Week