1 / 56

Pengenalan OOP

Pengenalan OOP. Indriati ,ST ., M.Kom. MENGENAL OBJEK & CLASS. Paradigma Class dan Objek Berbagai benda di sekitar kita adalah objek nyata yang dapat dilihat , seperti : kucing , meja , rumah , orang , dll .

yitta
Download Presentation

Pengenalan OOP

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. Pengenalan OOP Indriati ,ST .,M.Kom

  2. MENGENAL OBJEK & CLASS • ParadigmaClass dan Objek • Berbagaibendadisekitarkitaadalahobjeknyata yang dapatdilihat, seperti : kucing, meja, rumah, orang , dll. • Persoalannya, bagaimanamemindahkanpemikiranobjekdidunianyatamenjadiobjekdidunia software ataupemrograman, khususnya Java?

  3. MENGENAL OBJEK & CLASS • Definisi class: merupakan template untukmembuatobyek. • Definisi class: merupakanprototipe / blue prints yang mendefinisikanvariabel – variabeldan method – method secaraumum. • Obyekmerupakanhasilinstansiasidarisuatukelas. • Prosespembentukanobyekdarisuatu class disebutdenganinstantiation. • Obyekdisebutjugainstances.

  4. MENGENALOBJEK & CLASS • Ambilcontohobjeknyata yang akandipindahkanadalahobjekorang. • Jadi dapat diumpamakan bahwa Tuhan memiliki class Orang yang kemudian membuat banyak objek dari class Orang tsb, dan contoh objek tersebut adalah Anda sendiri. • Dari definisi class Orangdiatas, kitabisamembuatobjek-objekberdasar class tersebut. • Objek-objek yang dibuatperludisimpandalamvariabel yang akanmenyimpanreferensi/address dariobjek yang dibuat.

  5. MENGENAL OBJEK & CLASS • Data Member • Setiapobjek‘orang’ pastimemiliki : nama, tinggibadan, beratbadan, warnarambut, warnakulit, jeniskelamin, menggunakankacamata, dll • Ciri-ciritersebutdapatdipindahkanmenjadivariabel-variabeldari class yang seringdisebutsebagai : data member (data field/attribut).

  6. MENGENAL OBJEK & CLASS • Contoh pemisalan objek orang nyata menjadi kode program dalam class Orang : class Orang { String nama; //nama orang int tinggiBadan; //dalam cm int beratBadan; //dlm kg String warnaRambut; //hitam, pirang, coklat String warnaKulit; //sawoMatang, hitam, putih String jenisKelamin; //pria atau wanita boolean berkacamata; //bila berkacamata berarti true }

  7. MENGENAL OBJEK & CLASS • Method • Selainmemilikiatribut(STATE) yang diimplementasikansebagai data member diatas, manusiajugadapatmelakukansuatuaksiataupekerjaantertentu (BEHAVIOR) • Contohaksi/behavior yang umumadalahmenangisdantertawa • Kedua behavior tsbbisadipindahkankedalambahasapemrogramanmenjadi method sbb : void menangis() { System.out.println(“hik..hikk..hik…”); } void tertawa() { System.out.println(“ha..ha..ha..ha..”); }

  8. MENGENAL OBJEK & CLASS • Method merupakanperwujudanaksiatautindakandaridunianyatadidalampemrogramankomputer. • Method dalam dunia pemrograman juga “pasti melakukan sesuatu aksi”, misalnya menampilkan String di konsol

  9. MENGENAL OBJEK & CLASS Memindahkan orang dari dunia nyata menjadi class Orang

  10. Ilustrasi perbedaan antara class dan objek

  11. MENGENAL OBJEK & CLASS • Dari gambar di atas dapat dipahami bahwa suatu class dapat memiliki banyak objek, dan setiap objek akan mewarisi data member dan method yang sama dari class • UntukmembuatobjekOrangdari class Orang, gunakan keyword newsbb : Orang orang1 = new Orang(“Izzuddin A Afif”); Orang orang2 = new Orang(“Muhammad Fairuz”); • setiapobjekdapatmemiliki state ataunilai data member yang berbeda (hanyanamadantipevariabel yang sama)

  12. Ilustrasi pembuatan objek dari class

  13. Fitur OOP • Encapsulation • Inheritance • Polymorphism

  14. Fitur OOP • Enkapsulasi  suatucarauntukmenyembunyikanimplementasi detail darisuatu class dalamrangkamenghindariakses yang ilegal. Contoh : konsep class & modifier. • Inheritansi dimanasuatuentitas/obyekdapatmempunyaientitas/obyekturunan. Dengankonsep inheritance, sebuah class dapatmempunyai class turunan. Contoh : extends • Polymorphism  kemampuanuntukmerepresentasikan 2 bentuk yang berbeda. Contoh : overriding

  15. Deklarasi class <modifier> class <classname> { [deklarasi_atribut] [deklarasi_konstruktor] [deklarasi_metode] }

  16. Contoh public class Mahasiswa { } nama class modifier

  17. DeklarasiAtribut / Membuat Variabel <modifier> <tipe> <nama_atribut>;

  18. Contoh public class Mahasiswa{ public intnrp; public String nama; } atribut

  19. Deklarasi metode <modifier> <return_type> <nama_metode> ([daftar_argumen]) { [<statement>] }

  20. Contoh public class Mahasiswa{ public intnim; public String nama; public void info() { System.out.println(nim + " " + nama + " " + "adalah Mahasiswa UB“); } } metode

  21. Pengaksesan anggota obyek Output 1 Ahmad adalahMahasiswa UB

  22. Life Cycle dari Objek • Creation (Membuatobjek) • Use (Menggunakanobjek) • Destruction (Menghapusobjek)

  23. Contoh public class MyDate { private int day=1; private int month=1; private int year=2000; //konstruktor public MyDate(int day, int month, int year) {…} } public class TestMyDate { public static void main(String args[]) { MyDate today = new MyDate(10,11,2006); } }

  24. Declaring Objek (Membuat Objek) • MyDate today = new MyDate(10, 11, 2006); • Pernyataan diatas terdiri dari 3 langkah : • Deklarasi objek  MyDate today ; • Alokasi Memori  menggunakan kata kunci new MyDate(10, 11, 2006); • Inisialisasi Objek  tergantung dari konstruktornya

  25. Membuat Objek MyDate today = new MyDate(10, 11, 2006); today ????

  26. MyDate today = new MyDate(10, 11, 2006); Alokasi Memori objek today dengan tipe class MyDate Mengisi atribut dengan default value today ???? day 0 month 0 year 0

  27. MyDate today = newMyDate(10, 11, 2006); today ???? Mengisi atribut dengan nilai inisialisasi eksplisit day 1 month 1 year 2000

  28. MyDate today = newMyDate(10, 11, 2006); today ???? Menjalankan konstruktor day 10 month 11 year 2006

  29. MyDate today = newMyDate(10, 11, 2006); today 0x01abcdef Membuat Variabel Reference day 10 month 11 year 2006

  30. Men-assign reference variable MyDate x = new MyDate(14, 6, 2005); MyDate y = x; Variabel Reference x dan y 14 x 0x01234567 6 y 0x01234567 2005

  31. 14 14 6 6 2005 2005 Men-assign reference variable MyDate x = new MyDate(14, 6, 2005); MyDate y = x; y = new MyDate(14, 6, 2005); x 0x01234567 y 0x01234568

  32. Menggunakan Objek • Ada 2 cara : • Memanipulasi variabelnya • Menggunakan metode dari objek tersebut

  33. Menghapus Objek • The Garbage Collector • The Java platform has a garbage collector that periodically frees the memory used by objects that are no longer needed

  34. Pass by value • Java tidakmembolehkanadanya pass by reference, jadihanyamengijinkan pass by value. • Ketikaargumen yang di-passing adalahbertipe reference type, makaanggota-anggota (data member) dariargumentersebutdiperlakukansebagai pass by reference, sedangkanargumennyatetap (dianggap) sebagai pass by value

  35. Tipe Argument • Nilai yang dikirim melalui argument dapat berupa variabel reference maupun variabel biasa. • Jika yang dikirim ke method adalah value atau variabel biasa  Pass by value • Jika yang dikirim ke method adalah alamat memori atau variabel reference  Pass by reference

  36. Pass by Value • Mengirimkan value/nilai ke parameter method • Contoh : String nama = “Shanti”; Mahasiswa.getNama(nama); Variabel biasa

  37. Pass by Reference • Mengirimkan alamat memori/referensi ke parameter method • Contoh : Student maba = new Student(); Mahasiswa.getNama(maba); Variabel reference

  38. Contoh public class MyDate { private int day=1; private int month=1; private int year=2000; public MyDate(int day, int month, int year) { … } public void setDay(int day) { // change the day } public void print() { // print the day, month and year } }

  39. public class TestMyDate { public static void changeInt(int value) { value = 10; } public static void changeObjectRef(MyDate ref) { ref = new myDate(3, 5, 2003); } public static void changeObjectAttr(Mydate ref) { ref.setDay(5); } public static void main(String args[]) { int x=5; changeInt(x); System.out.println(x); MyDate today=new MyDate(10,10,2005); changeObjectRef(today); today.print(); changeObjectAttr(today); today.print(); } }

  40. Hasil eksekusi > java TestMyDate 5 10-10-2005 5-10-2005

  41. Class Fundamentals: main method • The main() Method public static void main(String[] args) ·public : method main() dapat diakses oleh apa saja, termasuk java technology interpreter. ·static : keyword ini berfungsi untuk memberi tahu kompiler bahwa method main bisa langsung digunakan dalam context class yang bersangkutan. Untuk mengeksekusi/menjalankan method yang bertipe static, tidak diperlukan instance nya. ·void : menunjukkan bahwa method main() tidak mengembalikan nilai ·main : merupakan nama method utama dari program java ·String [] args : Menyatakan bahwa method main() menerima single parameter yaitu args yang bertipe array. Digunakan pada saat memasukkan parameter pada saat menjalankan program. Contoh: java TestGreeting args[0] args[1] …

  42. Tabungan - saldo : int + Tabungan(initsaldo : int) + getSaldo() : int + simpanUang(jumlah : int) + ambilUang(jumlah : int) : boolean Contoh Program • Implementasikan UML class diagram dalam program untuk class Tabungan Output Jumlah uang yang disimpan : 8000 Jumlah uang yang diambil : 6000 true Jumlah uang yang disimpan : 5500 Jumlah uang yang diambil : 4000 true Jumlah uang yang diambil : 1600 false Jumlah uang yang disimpan : 3500 Saldo : 3500

  43. Class Customer

  44. Output Yuliana, Setiowati Age:29 Stanley, Clark Age:8 Jane, Graff Age:16 Nancy, Goodyear Age:69

  45. Class Customers Output Yuliana Setiowati Age:29 Stanley Clark Age:8 Jane Graff Age:16 Nancy Goodyear Age:69 12000

  46. Class TestCustomer2

  47. Data Member • Disebutjugavariabelatauatribut • Variabeldibagimenjadidua : • Variabel instance : variabel yang dimilikiolehsetiapobjek. Masing-masingobjekmempunyainilaivariabel instance yang berbeda • Variabel class : variabel yang dimilikioleh class. Semuaobjekdari class tersebutakanmempunyainilai yang sama. Ciridarivariabel class denganmenambahkankatakuncistatic contohprivate static double bunga

More Related