(PEMROGRAMAN BERORIENTASI...
Transcript of (PEMROGRAMAN BERORIENTASI...
P B O( P E M R O G R A M A N B E R O R I E N T A S I
O B J E C T )
- P E RT E M U A N 1 - 2 -
C L A S S
APA SIH OOP ITU ?
• Pemrograman Berorientasi Object (OOP) adalah model pemrograman yang paling banyak dipakai saat ini.
• OOP telah menggantikan teknik pemrograman proseduralyang telah dipakai sejak tahun 1970-an
• Java adalah bahasa yang berorientasi objek, karena itu Andaharus paham OOP agar dapat produktif menggunakan Java.
• Program yang Berorientasi Objek akan terdiri dari objek-objek.
• Objek-objek ini seringkali merepresentasikan apa yang ada di dunia nyata.
ISTILAH-ISTILAH BARU DIOOP• Class• Object• Relationship (antar class)
– Dependence– Aggregation– Inheritance
• Encapsulation• Instantiation & Instance• Instance Variable• Method (mutator & accessor method)
KELAS DAN OBJEK
• Contoh
Kelas Mahasiswa memiliki atribut NIM, Nama, Alamat, dan memiliki perilaku (behaviour/method) seperti melakukan registrasi, perkuliahan, ujian, praktikum, dll.
KELAS DAN OBJEK
Ani, Budi, dan Gunawan adalah objek (instans) dari kelas mahasiswa. Mereka masing-masing memiliki atribut-atribut nama, nim, alamat (yang nilainya masing-masing berbeda). Mereka juga memiliki behaviour yang sama yaitu melakukan registrasi, perkuliahan, ujian, praktikum.
KELEBIHAN OOP
• Real world programming
• Reusability of code
• Resilience to change
• Information hiding
• Modularity of code
ABTSRAKSI
• Abstraksi adalah suatu proses mendaftarkan entitas-entitas (benda-benda) yang akan berinteraksi dalam suatu aplikasi
• Entitas-entitas tersebut nantinya akan menjadi kelas, dan dari kelas lahirlah objek
• Setelah entitas-entitas didaftarkan, maka selanjutnya ditentukan sifat-sifat (state/atribut) dan hal yang dapat dilakukan oleh entitas tersebut (behaviour/method)
DI PABRIK MOBIL• Sebelum seseorang mengendarai mobil, tentu Anda harus membuat
mobil tersebut terlebih dahulu.
BAGAIMANA CARA MEMBUAT MOBIL ?• Langkah 1 : Menggambar desain mobil.
• Langkah 2 : Menambahkan detil mobil tersebut, misal :
– Desain pedal gas untuk maju
– Desain rem untuk berhenti
– Desain setir untuk belok kiri/kanan, dll.
• Langkah 3 : Proses pembuatan mobil dimulai.
BAGAIMANA PEDAL GAS BEKERJA ?• Apayang sebenarnya terjadi di dalam mesin pada saat pedal gas diinjak?
• Apakah Anda sebagai pengendara perlu tahu, bagaimana cara kerjadetil dari pedal gas?
• Tentu tidak. Yang perlu Anda ketahui hanyalah bahwa kalau pedal gas diinjak akan mempercepat laju mobil!
• Artinya, detil dan cara kerja pedal disembunyikan dari penggunanya.
• Anda cukup tahu aturan dan fungsinya saja:
Injak pedal gas sebelah tengah maka mobil akan melaju
DESAIN MOBIL à OBJEK MOBIL• Jadi kesimpulannya, sebelum Anda membuat objek mobil, seseorang
harus merancang terlebih dahulu.
• Di dalam rancangan tersebut, semua detil cara kerja mobildisembunyikan dari para penggunanya kelak.
• Setelah desain mobil dibuat, maka kita dapat mulai membuat berbagaiobjek mobil yang diinginkan.
APA HUBUNGANNYA DENGAN OOP ?• Sama halnya dengan penyembunyian detil PEDAL pada sebuah MOBIL,
di OOP kita menyembunyikan detil pemrograman di dalam sebuahMETHOD (FUNGSI)
• METHOD-METHOD ini dibuat dan disimpan bersama-sama di dalamsuatu desain yang disebut dengan CLASS.
– METHOD à injak gas, injak rem, belok kiri, belok kanan, dll
– CLASS à rancangan mobil
CLASS & OBJECT• CLASS adalah suatu template/blueprint/rancangan dari object yang
akan dibuat.
• OBJECT adalah sesuatu yang diciptakan dari Class.
• Analogi lain :
– Class = cetakan kue
– Object = kue-nya
MERANCANG APLIKASIPROGRAM BERBASIS OOP• Sekarang, Anda diminta merancang suatu program untuk sebuah
BANK:– Di aplikasi BANK, pasti ada yang namanya REKENING
– Dengan menggunakan konsep yang sama: Anda dapat mendesain sebuahCLASS yang merepresentasikan REKENING.
– REKENING tersebut didesain sedemikian rupa sehingga memiliki 3 METHOD, yaitu:
• METHOD untuk menyimpan uang (tabung)
• METHOD untuk mengambil uang (tarik)
• METHOD untuk memeriksa saldo (cek)
ANALOGIPABRIK MOBIL & PROGRAM
BANK
Pemrograman Berbasis Objek
CONTOH
Pemrograman Berorientasi Object17
¡Contoh :§ Object : Manusia
§ Attribut§ Method
: Nama, tinggi, umur, berat badan dll: Makan, Minum, Berjalan, Bekerja
§ Object : Windows§ Attribut§ Method
: Left, Top, Width, Height, BackgroundColor,: OnClick, OnClose, OnDoubleClick
§ Object : Keluarga§ Attribut§ Method
: ayah, Ibu, Anak[]: TambahAnak,
MEMBUAT CLASS DI JAVACLASS REKENING.JAVA
public class Rekening {
}//end class Rekening
Note:class selalu diawali dengan huruf KAPITAL
CLASS REKENING + METHOD1.public class Rekening{
2. // Method untuk mengecek saldo
3. public void cekSaldo() {
4. System.out.println("Selamat Datang di Rekening Anda!");
5. System.out.println("Saldo Anda adalah" + 150000);
6. } // end method cekSaldo
7.} // end class Rekening
NOTE: class REKENING hanya bisa di-compile, tidak bisa di-run
Hal ini dikarenakan class Rekening bukanlah program aplikasi
(tidak memiliki main method)
CONTOH KASUS (ANALISIS MASALAH BERORIENTASI OBJEKContoh masalah yang akan dibuat desain pemecahannya adalah sebagaiberikut : • sebuah koperasi menginginkan sebuah aplikasi pelaporan rekapitulasi stok
barang yang mencatat persediaan, pemasukan dan pengeluaran barang. Laporan ini dilakukan seminggu sekali;
• aplikasi ini akan dijalankan oleh seorang petugas khusus logistik. Petugastersebut akan mencatat Stok barang didapat dari supplier-supplier, baik dari dalam maupun luar kota. Penjualan barang dilakukan pada sebuah mini market, yang pembelinya berasal dari anggota koperasi maupun yang bukan anggotakoperasi;
• kemudian ada kebijakan kalau barang berupa makanan yang masakedaluwarsanya sudah lewat, harus dibuang, dan yang masa kedaluwarsanyatinggal 6 bulan lagi, diberikan diskon 50% (asumsi makananya semuanyamempunyai masa kedaluwarsa > 1 tahun ). Kebijakan lainnya adalah : untukitem barang yang tinggal <= 40% dari seharusnya, harus segera ditambahstoknya.
IDENTIFIKASI DOMAIN MASALAH• Domain masalah didefinisikan sebagai ruang lingkup permasalahan yang
akan dipecahkan. Ruang lingkup ini membatasi permasalahan sehinggapermasalahan tidak meluas, dan tetap pada fokusnya.
• Domain masalah ini dapat ditentukan dari permintaan / requirements yang diberikan oleh pihak yang meminta aplikasi (customer). Setelah permintaantersebut dikumpulkan, maka developer ( dalam hal ini programmer ) dapatmembuat pernyataan tentang apa yang akan dibuatnya , misalnya : ”Membuat sistem pelaporan stok barang pada koperasi yang mengakomodasikebijakan-kebijakan kedaluwarsa dan potongan harga” .
IDENTIFIKASI ENTITAS
• Setelah domain masalah diidentifikasi, developer sudah dapat melakukan identifikasi terhadap entitas-entitas (benda-benda) yang akan berinteraksi untuk memecahkan masalah.
• Lakukan identifikasi atas beberapa sifat dari entitas tersebut, antara lain: entitas dapat bersifat konseptual atau berupa benda fisik, entitas memiliki atribut atau karakteristik, entitas memiliki operasi
• Dalam fase ini, kegiatan utamanya adalah mengumpulkan entitas-entitas yang mungkin terlibat sebanyak-banyaknya. Kemudian daftarkan atribut dan operasi (method) yang dimiliki oleh setiap entitas.
Entitas Atribut OperasiBarang – jumlah
– harga beli– tanggal kadaluwarsa– harga jual– ID barang– diskon
– hitung tanggal kedaluwarsa– hitung harga jual– hitung diskon
Supplier – nama– lokasi– ID supplier– jenis barang
– modifikasi nama supplier– modifikasi lokasi supplier
Koperasi – daftar transaksi– gudang
– modifikasi daftar transaksi
Pembeli – ID pembeli– nama pembeli
– .modifikasiIDpembeli– modifikasinamapembeli
Gudang – daftar stok barang– koperasi
– modifikasistokbarang– set koperasi
DaftarTransaksi – data penjualan [ ]– data pembelian [ ]
– tambah data penjualan– tambah data pembelian
DaftarStokBarang – Barang [ ]– jumlahBarang[]
– tambah barang– kurangi barang
SELEKSI ENTITAS
Seleksi entitas dilakukan dengan mempertimbangkan hal-hal berikut :
• Relevansi dengan permasalahan
- Apakah entitas tersebut eksis pada batasan-batasan yang ditentukan
pada permasalahan ?
- Apakah entitas tersebut dibutuhkan untuk menyelesaikan masalah ?
• Eksistensi entitas haruslah independent
Hasil Seleksi Entitas
BARANG KOPERASIjumlah daftarstokbarang
daftartransaksihargabelitanggalkedaluwarsahargajualIDbaranghitungtanggalkedaluwarsa modifikasidaftar
transaksihitunghargajualhitungdiskon
DAFTARTRANSAKSI DAFTARSTOKBARANGdatapenjualan[] barang[]datapembelian[] jumlahbarang[]tambahdatapenjualan tambahbarangtambah datapembelian kurangi barang
PEMBUATAN KELAS
• Diagram UML (Unified Modeling Language)
SegiEmpat
+panjang: double+lebar: double
+setPanjang(p: double)+setLebar(l: double)+hitungLuas(): double+hitungKeliling(): double
public class SegiEmpat{//deklarasi variabel (atribut)
public double panjang;public double lebar;//deklarasi method public void setPanjang(double p){panjang = p;
}public void setLebar(double l){lebar = l;
}public double hitungLuas(){return panjang*lebar;
}public double hitungKeliling(){return 2*(panjang + lebar);
}
}
SegiEmpat
+panjang: double+lebar: double
+setPanjang(p: double)+setLebar(l: double)+hitungLuas(): double+hitungKeliling(): double
KELAS DENGAN METHOD MAIN
SegiEmpat
+panjang: double+lebar: double
+setPanjang(p: double)+setLebar(l: double)+hitungLuas(): double+hitungKeliling(): double+main(args: String[])
public class SegiEmpat{public double panjang;public double lebar;public void setPanjang(double p){panjang = p;
}public void setLebar(double l){lebar = l;
}public double hitungLuas(){return panjang*lebar;
}public double hitungKeliling(){return 2*(panjang + lebar);
}
public static void main(String[] args){SegiEmpat se1;se1 = new SegiEmpat(); //pembentukan objekSegiEmpat se2 = new SegiEmpat(); // pembentukan objekse1.setPanjang(10);se1.setLebar(5);se2.setPanjang(5.5);se2.setLebar(2.3);System.out.println(“Luas segi empat 1 =“+se1.hitungLuas());System.out.println(“Keliling segi empat 2 = “+
se2.hitungKeliling());}
}
CATATAN TAMBAHAN• Objek à sebuah representasi/abstraksi dari sebuah entitas
• Contoh : car, soda machine, ATM machine
• Class, terdiri dari :– Data/Attribute
– Methods/behaviour
• Contoh : Remote tv sebagai objek– Data/attribute : channel, volume, menu, switch on/off
– Methods/behaviour : memperbesar volume, mengecilkanvolume, menghidupkan, mematikan
CATATAN TAMBAHAN
Data
Attrib
Objek
Class
Package
JFrame myWindow = new JFrame()
Class Name Object Name
Argument
CATATAN TAMBAHAN• Pembuatan Kelas :
– Nama Kelas à Nama Benda
– Diawali dengan huruf Kapital :• Mahasiswa
• Mobil
• Barang
– Access Modifier 4P :• Public
• Private
• Package
• Protected
– Body of class :• Attribute : Variabel, Contstanta, Field
• Methods
CATATAN TAMBAHAN
• Cara Penulisan Attribute (bagian terkecil dari class)– Nama Benda :
• nim
• nama
• alamat
– Huruf kecil à Camel Case :• namaBarang
• nilaiMaksimum
– Access Modifier 4P• private int nilai;
• private string nim;
• public static final int max=100;
CATATAN TAMBAHAN
• Cara penulisan Operations :– Sebuah proses/kata kerja :
• hitung• cari
– Huruf kecil à camel case :• pendaftaranNasabahBaru();• deleteCustomer();
– Access Modifier 4P