1 / 37

PEMROGRAMAN BERORIENTASI OBJEK

PEMROGRAMAN BERORIENTASI OBJEK. KONSEP PEMROGRAMAN BERORIENTASI OBJEK. Rian F. Umbara, S.Si, M.Si. Paradigma Pemrograman. PEMROGRAMAN PROSEDURAL.

Download Presentation

PEMROGRAMAN BERORIENTASI OBJEK

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. PEMROGRAMAN BERORIENTASI OBJEK KONSEP PEMROGRAMAN BERORIENTASI OBJEK Rian F. Umbara, S.Si, M.Si

  2. ParadigmaPemrograman

  3. PEMROGRAMAN PROSEDURAL Dalam pemrograman prosedural, sebuah program akan dibagi menjadi beberapa sub-program (modul) yang akan melakukan tugas-tugas tertentu. Modul bisa dibuat oleh user atau diambil dari library program lainnya. Dalam sebuah modul, bisa terdiri dari satu atau lebih prosedur.

  4. PEMROGRAMAN BERORIENTASI OBJEK • Pemrograman yang didasarkan pada objek-objek, yaitu suatu unit terkecil dari program yang mengandung data dan fungsi yang bekerja atas objek tersebut. • Pemrograman yang dibangun dengan cara membungkus (enkapsulasi) komponennya menjadi kelompok data dan fungsi yang dapat mewarisi atribut dan sifat dari komponen lainnya, dan komponen-komponen tersebut dapat berinteraksi satu sama lainnya.

  5. OOP VS PROSEDURAL

  6. PERANGKAT LUNAK OBJEK • Perangkat lunak yang dibangun dari kelas-kelas dan objek-objek yang saling berinteraksi satu sama lainnya. • Kelas Deskripsi statis dari sesuatu. • Objek Sesuatu yang diciptakan (instansiasi) dari kelas.

  7. KELAS DAN OBJEK • Sebuah kelas menentukan struktur dan tingkah laku sebuah objek • Kelas adalah cetak biru dari objek, mendefinisikan atribut (state) dan perilaku (behaviour/method) dari objek • Objek adalah instans dari kelas

  8. KELAS DAN OBJEK • Contoh Kelas Mahasiswa memiliki atribut NIM, Nama, Alamat, dan memiliki perilaku (behaviour/method) seperti melakukan registrasi, perkuliahan, ujian, praktikum, dll.

  9. 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.

  10. KELEBIHAN OOP • Real world programming • Reusability of code • Resilience to change • Information hiding • Modularity of code

  11. FITUR PEMROGRAMAN BERORIENTASI OBJEK

  12. FITUR PEMROGRAMAN BERORIENTASI OBJEK • ABSTRAKSI • ENKAPSULASI • PEWARISAN • POLYMORPHISM

  13. 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

  14. Setelah entitas-entitas didaftarkan, maka selanjutnya ditentukan sifat-sifat (state/atribut) dan hal yang dapat dilakukan oleh entitas tersebut (behaviour/method)

  15. Misalnya dalam sistem kepegawaian, dimana didalamnya terdapat banyak entitas di antaranya adalah pegawai. Didalam entitas pegawai terdapat atribut-atribut yang akan membedakan satu pegawai dengan pegawai lainnya, misalkan NIP, Nama, Alamat, Tanggal Lahir, dll.

  16. Dalam aplikasi yang akan dibuat, entitas-entitas tersebut akan menjadi kelas-kelas. Di dalam kelas-kelas inilah didefinisikan atribut-atribut dan method-method • Kelas adalah blue print dari objek. Dari kelas lahirlah objek • Kelas tidak memiliki data, tapi objeklah yang menyimpan data

  17. CONTOH KASUS (ANALISIS MASALAH BERORIENTASI OBJEK Contoh masalah yang akan dibuat desain pemecahannya adalah sebagai berikut : • 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. Petugas tersebut 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 anggota koperasi; • kemudian ada kebijakan kalau barang berupa makanan yang masa kedaluwarsanya sudah lewat, harus dibuang, dan yang masa kedaluwarsanya tinggal 6 bulan lagi, diberikan diskon 50% (asumsi makananya semuanya mempunyai masa kedaluwarsa > 1 tahun ). Kebijakan lainnya adalah : untuk item barang yang tinggal <= 40% dari seharusnya, harus segera ditambah stoknya.

  18. IDENTIFIKASI DOMAIN MASALAH • Domain masalah didefinisikan sebagai ruang lingkup permasalahan yang akan dipecahkan. Ruang lingkup ini membatasi permasalahan sehingga permasalahan tidak meluas, dan tetap pada fokusnya. • Domain masalah ini dapat ditentukan dari permintaan / requirements yang diberikan oleh pihak yang meminta aplikasi (customer). Setelah permintaan tersebut dikumpulkan, maka developer ( dalam hal ini programmer ) dapat membuat pernyataan tentang apa yang akan dibuatnya , misalnya : ”Membuat sistem pelaporan stok barang pada koperasi yang mengakomodasi kebijakan-kebijakan kedaluwarsa dan potongan harga” .

  19. 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.

  20. 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

  21. Hasil Seleksi Entitas

  22. Enkapsulasi • Enkapsulasi adalah suatu cara untuk menyembunyikan implementasi detil (berupa atribut atau method) dari suatu kelas. • Dalam OOP, kebutuhan akan enkapsulasi muncul karena adanya sharing data antar method

  23. Enkapsulasi Contoh

  24. Latihan Anda diminta untuk menjadi konsultan di suatu Badan Liga Sepak bola. Badan Liga Sepakbola tersebut meminta Anda untuk membuat aplikasi pencatatan pertandingan pada suatu liga sepakbola. Aplikasi harus mencatat sebagai berikut : • Daftar pemain sepak bola untuk setiap tim • Jumlah goal yang berhasil dicetak oleh setiap pemain • Pertandingan selama satu musim, termasuk di dalamnya jadwal pertandingan, hasilnya (score, jumlah kartu yang dikeluarkan wasit, dan sebagainya). Lakukan analisis berorientasi obyek dengan membuat daftar obyek yang kemungkinan besar digunakan dalam aplikasi tersebut, beserta atribut dan operasi yang dapat dilakukan oleh setiap obyek tersebut, dan buat disain kelasnya secara lengkap !

  25. DESAIN KELAS DAN OBJEK • Kelas adalah cetak-biru dari obyek. Seperti halnya semua cetak-biru dalam kehidupan sehari-hari, kelas merupakan acuan bagaimana obyek itu dibentuk, data apa saja yang disimpan oleh obyek, dan operasi-operasi apa saja yang dapat dilakukan oleh obyek.

  26. Struktur dasar sebuah kelas pada intinya ada 4 bagian, yaitu : • deklarasi kelas; • deklarasi dan inisialisasi atribut; • pendefinisian method; • komentar.

  27. Pada pemrograman Java, pendeklarasian kelas dilakukan dengan menggunakan syntax sebagai berikut : [specifier] class class_identifier Contoh: public class Barang { ……… }

  28. Deklarasi variabel dilakukan di dalam kelas. Variabel yang didefinisikan di kelas merupakan atribut dari kelas tersebut • Sintaks deklarasi variabel: [specifier] data_type identifier [ = value ] ;

  29. Method merepresentasikan operasi-operasi yang dapat dilakukan oleh obyek. Dalam penulisan, yang membedakan method dan variabel adalah : method selalu diakhiri dengan ( ) atau (< nama argumen >). Pendeklarasiannya juga berbeda, yaitu dengan menambahkan blok { ... } dan mengisi blok tersebut dengan baris-baris program. Bentuk umum penulisan deklarasi method adalah sebagai berikut : [specifier] return_type method_identifier ([arguments]){ method_code_block; }

  30. PEMBUATAN KELAS • Diagram UML (Unified Modeling Language)

  31. 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); } }

  32. KELAS DENGAN METHOD MAIN

  33. 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 objek SegiEmpat se2 = new SegiEmpat(); // pembentukan objek se1.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()); } }

  34. KELAS DENGAN KONSTRUKTOR

  35. public class SegiEmpat{ public double panjang; public double lebar; //deklarasi konstruktor public SegiEmpat(){ } public SegiEmpat(double p, double l){ panjang = p; lebar = l; } //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); }

  36. Lanjutan public static void main(String[] args){ SegiEmpat se1; se1 = new SegiEmpat(); //pembentukan objek se1.setPanjang(10); se1.setLebar(5); SegiEmpat se2 = new SegiEmpat(5.5,2.3); // pembentukan objek System.out.println("Luas segi empat 1 ="+se1.hitungLuas()); System.out.println(“Keliling segi empat 2 ="+se2.hitungKeliling()); } }

More Related