1 / 32

Pertemuan 23

Pertemuan 23. Object Oriented Programming CLASS, OBJECT METHOD, PROPERTIES. Dasar Pemrograman Renni Angreni, S.Kom. PENDAHULUAN.

melosa
Download Presentation

Pertemuan 23

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. Pertemuan 23 Object Oriented Programming CLASS, OBJECT METHOD, PROPERTIES Dasar Pemrograman Renni Angreni, S.Kom.

  2. PENDAHULUAN • Dalamkonsep OOP, setiapentitas yang terlibatdalampemrogramandianggapsebagaisebuahobjek. Sasaranutamadalamkonsepiniadalahkemudahandalampengembangansistem. Sebuahaplikasibarutidakharusdibangundarinol, tetapibisadibangundengancara “meneruskan” aplikasisebelumnya. • Ilustrasi : Jikaprosessorpentium 4 harusdibangundarinol, berapa lama waktu yang dihabiskan, biaya yang dikeluarkandantenaga yang dikorbankanuntukitu? Adalahlebihefisienjikaprosesor Pentium 4 dibangunberdasarkanrancangan Pentium 3 denganperbaikandanpenambahanfitur.

  3. Masalahdalammetode OOP adalahaplikasi yang dibangunberbasis OOP memerlukanmemoridalamjumlahbesar agar dapatmenampungdanmengolahobjek. Setiapobjekakanmenempatisejumlah area memori, dankebutuhaniniakanterusbertambahseiringdengankehadiranobjekbarumeskipunjenisnyasamadenganobjek yang telahada.

  4. CLASS dan OBJECT • Dalam OOP, dikenalistilahClassdanObject. Dalambahasa Indonesia artinyakelasdanobjek. • Dalam OOP, program dibuatsedekat-dekatnyadengandunianyata. Misalkan program mengenaimobil, makaakandibuatobjekmobil. • Dalamterminologi OOP (pemrogramanberorientasiobjek), objek (object) sebenarnyaadalahanggotadarisuatukelas (class). Dengankata lain, kelasadalahkumpulandaribeberapaobjek yang sama. • Contoh : ayam, sapi, kuda, kerbau, anjingadalahhewan. Dengankata lain hewandisebutkelas / class, danayam, sapi, kuda, kerbau, anjingadalahobjek.

  5. Kelasseringdisebutsebagai blueprint dariobjek. • Jikadibandingkandenganvariabel, makakelasmerupakantipe data, danobjekmerupakanvariabel. Dari satukelasdapatdibuatbanyakobjek. • Misalkandarikelasmobil, dapatdibuatmobilToyota, mobilDaihatsu, mobilSuzuki, mobilHyundai, dll. Ataudarikelaspemain, dapatdibuat pemain1, pemain2, pemain3, pemain4, dst. Jadi, dalam OOP, programmer melakukan abstraction menghasilkan class danobjekdalamprogram. • Saatsebuahobjekdianalisadandikelompokkan, makamuncullahduakomponenutamadarisebuahobjek, yaitustate danbehaviour. Serta empatsifatutama, yaituabstraction, enkapsulasi, pewarisan, danpolymorphism.

  6. Object • Analogi Class : Pohon Object Object Object

  7. METHOD dan PROPERTIES • Setiapobjekdapatmemiliki properties dan method / state dan behavior / istilahlainnya. • Properties adalahvariabelanggotasuatuobjek. MisalkanmobilA.warna, mobilA.kecepatanMax, mobilA.merk, dll. • Method adalahfungsimiliksuatuobjek. Method bisamengembalikannilaidaridalamobjek (getter method), mengubahkondisiobjek (setter method) atauberupasuatu static method (metode yang bisadipakai. • Setiapobjekmemilikisuatuciri-ciri / keadaan (properties / state) danfungsi(method / behaviour) yang dapatmengubah state tersebut.

  8. State merupakansuatuidentitasdariobjek. • Setiapbarangmemilikinama, harga, jenis, dll.. • Diimplementasikansebagaivariabelatau field (data_members) • Behaviourdapatdiartikansebagaikegiatandariobjek. • Diimplementasikandalam program sebagaiproses / method(member_functions) • State = katabenda • Behaviour = katakerja • Contoh : • Class : Manusia • Objek : Tina, Siti, Toni, Iwan, Arief, Angel, dll • State : umur, tinggibadan, beratbadan • Behaviour : makan, tidur, bekerja, berjalan

  9. ABSTRACTION • Prosespembentukankonsepdalammengenaliciri-ciritertentusuatuobjek, danmenciptakansuatukonsepberdasarkanciritersebut. • Konseppenyembunyian detail program / proses yang sangatrumitsehinggakitatidakperlumempermasalahkanpembuatannya. • Misalnya : Objekmobilterhadapsopir. Pembuatmobiltidakperlumendefinisikancarapembuatanmobil yang rumit. Yang pentingbagisopiradalahbagaimanamobiltersebutdapatdigunakansebagaimanamestinya. Dengankata lain pembuatmobilmengabstraksikancarapembuatannya.

  10. ENCAPSULATION • Encapsulation adalahsuatukonsepmengenaipenggabungan properties atau method kedalamsuatuobjek. • Suatuobjekadalahsepertisebuahkapsul yang berisiberbagaimacamobat-obatandidalamnya. • Ketikakitamendeklarasikansuatuobjek, misalnyaobjekmobil, makaobjekituotomatismemiliki (misalkan) warna, kecepatanMax, kapasitasbensin, merkdansebagainya. Dan mobilitujugadapatmengisiBensin, maju, mundur, dihidupkanataudimatikan.

  11. Tujuandarienkapsulasiadalah : • Mengelompokkansejumlah data (properties) kedalamobjek. • Melindungi properties dan method didalamkelas agar tidaksembarangandiaksesolehkelas lain. • Enkapsulasijugaberfungsisebagaipenyederhanaan. Misalkan, untukmaju, sebuahmobilharusmenjalaniprosesmesin 4 tak (injeksi, kompresi, bakar, buang), tetapipengendarahanyatinggalmenginjak pedal gas saja.

  12. INHERITANCE • Konsepatauprosesdalampembuatansuatu class barudimana class baruditurunkandari class induk (Base Class). • Class baruinidisebutdengan class turunan (Derived Class). • Misalnya : Seoranganakpastiakanmewarisibeberapasifatatauperilaku yang dimilikiolehbapakdanibunya. Begitujugadalamsebuahpemrograman, suatu class dapatditurunkanmenjadibeberapasifatatauperilakudarikelasinduknya.

  13. Base Class MANUSIA WANITA PRIA Class Turunan Class Turunan Base Class BINATANG AMPHIBI REPTIL MAMALIA Class Turunan Class Turunan Class Turunan

  14. POLYMORPHISME • Polymorphism (poly = banyak, morph = berubahbentuk). • Dalam OOP, konsepinimemungkinkandigunakannyasuatu interface yang samauntukmemerintahsuatuobjekmelakukansuatuaksi / tindakanyang mungkinsecaraprinsipsamatetapisecaraprosesberbeda. Dalamkonsep yang lebihumum, Polymorphism disebutdalamistilahsatuinterface, banyakaksi. • contoh : Mobil, terdiridariberbagaimerk, namunsemuanyamemiliki interface kemudi yang sama (stir kemudi, tongkattransmisi, pedal gas danrem). • Jikaandadapatmengemudikansatumobilsaja, dapatdipastikanjugadapatmengemudiberbagaimobil.

  15. Class MANUSIA (STATE) berat tinggi usia (BEHAVIOUR) Makan() Minum() Menua() Bekerja() pewarisan   Class PRIA (STATE) memiliki_organ_ kelamin_pria (BEHAVIOUR) Class WANITA (STATE) memiliki_organ_ kelamin_wanita (BEHAVIOUR) melahirkan() menyusui() Contoh instance/objek  maria debra ruth david rudi robert Gambar : Class & Objek

  16. ACCESS MODIFIER • Access modifier mengaturpengaksesansuatuvariabel. • Adatigajenis access modifier, yaitu : • private (hanyabisadiaksesolehfungsi yang adadidalam class itusendiri). • public (bisadiaksesdarimanapun). • protected (hanyabisadiaksesdarifungsididalamkelasitusendiri, ataufungsididalamkelas lain yang mewarisikelastersebut).

  17. MEMBUAT CLASS dan OBJECT • Class sangatmiripdenganstruktur, kecualipada class, terdapat method, dan class memilikisifat inheritance (pewarisan) dan polymorphism (morph = berubahbentuk, poly = banyak, polymorphism = berubahkebanyakbentuk).

  18. Contoh Program denganStruct #include <iostream> #include <conio.h> #include <string> using namespace std; structBuku { string judul; string pengarang; intjumlah; }; void main() { Buku novel; novel.judul = "RumahBeratapBougenvile"; novel.pengarang = "Agnes Jessica"; novel.jumlah = 12; cout<<novel.judul<<endl; cout<<novel.pengarang<<endl; cout<<novel.jumlah<<endl; _getch(); }

  19. Contoh Program dengan Class #include <iostream> #include <conio.h> #include <string> using namespace std; class Buku { public: string judul; string pengarang; intjumlah; }; void main() { Buku novel; novel.judul = "RumahBeratapBougenvile"; novel.pengarang = "Agnes Jessica"; novel.jumlah = 12; cout<<novel.judul<<endl; cout<<novel.pengarang<<endl; cout<<novel.jumlah<<endl; _getch(); }

  20. Contoh Program dengan Class #include <iostream> #include <conio.h> #include <string> using namespace std; class manusia { private : string nama; intusia; intberat; inttinggi; public : void identitas(string a, int b, int c, int d) { nama = a; usia = b; berat = c; tinggi = d; } Lanjut …

  21. … lanjut void cetak() { cout<<"--------------------------------“; cout<<endl; cout<<"Nama : "<<nama<<endl; cout<<"Usia : "<<usia<<endl; cout<<"Berat Badan : "<<berat<<endl; cout<<"TinggiBadan : "<<tinggi<<endl; cout<<"--------------------------------“; cout<<endl; } }; void main() { manusiamhs; mhs.identitas("Michael", 22, 70, 185); mhs.cetak(); mhs.identitas("Zurich", 35, 61, 177); mhs.cetak(); _getch(); }

  22. Properties yang bersifat private tidakdapatdiaksessecaralangsungpadafungsi main(). Untukmengakses properties ini, biasadigunakangetter methoddansetter method. Setter method bergunauntukmengesetnilaikesuatu properties / member private. Biasanyaditambahkanpengaturankhususpada method ini. Padacontoh, identitasadalah setter method. Karena member private tidakbisadiaksesdariluarkelas, makadisediakan method getter untukmengakses member tersebut. Padacontoh, cetakadalah getter method.

  23. METHOD diLuar CLASS • Suatu method bisadidefinisikandidalamkelasataudiluarkelas. Untukmendefinisikan method diluarkelas, sintaxnya : class namaKelas { public: TipeDatanamaMethod(); }; TipeDatanamaKelas::namaMethod() { blokpernyataan / isi method; } • Operator " :: " disebut operator ruanglingkup, berfungsiuntukmenjelaskanlingkup identifier yang digunakan.

  24. Contoh Program dengan Method diLuar Class #include <iostream> #include <conio.h> #include <string> using namespace std; class manusia { private : string nama; intusia; intberat; inttinggi; public : void identitas(string a, int b, int c, int d); void cetak(); }; Lanjut …

  25. … lanjut void manusia::identitas(string a, int b, int c, int d) { nama = a; usia = b; berat = c; tinggi = d; } void manusia::cetak() { cout<<"--------------------------------"<<endl; cout<<"Nama : "<<nama<<endl; cout<<"Usia : "<<usia<<endl; cout<<"Berat Badan : "<<berat<<endl; cout<<"TinggiBadan : "<<tinggi<<endl; cout<<"--------------------------------"<<endl; }

  26. … lanjut void main() { manusiamhs; mhs.identitas("Michael", 22, 70, 185); mhs.cetak(); mhs.identitas("Zurich", 35, 61, 177); mhs.cetak(); _getch(); }

  27. PenugasanAntarObjek void main() { manusiamhs; mhs.identitas("Michael", 22, 70, 185); mhs.cetak(); manusia mhs2; mhs2 = mhs; mhs2.cetak(); _getch(); }

  28. LATIHAN • Buatlahsebuah program C++ berisisebuahkelasdengannamaBuku yang memilikijudulbuku, namapengarang, tahunterbit, jumlahhalaman, danjumlahbukuserta method-method yang dibutuhkanuntukmengakseskelasitu, lalutampilkan 3 buahobjekdarikelastersebut.

  29. BuatsuatukelasdengannamaKeranjang yang memiliki properties namapemilik, kapasitaskeranjang, jumlahapel, jumlahjeruk, danjumlahmanggis. Tambahkan setter dan getter method seperlunya, lalubuatlahsuatu method untukmenghitungsisakapasitaskeranjangdanmenampilkanisidarikeranjangtersebutsepertitampilandibawahini : (Gunakankelasdalamfungsi main).

  30. Dari soalnomor (2) tambahkanlagi method untukmenghitungjumlahbuahdan total yang harusdibayar. Untukhargaapel 4500, jeruk 3500, danmanggis 2000. Jikajumlahbuahapel >= 15 makaadapotongansebesar 15000, Jikajumlahbuahjeruk >= 15 makapotongansebesar 12500, Jikajumlahbuahmanggis >= 15 makapotongansebesar 7000, danselainitutidakadapotongan. Tampilkansepertidibawahini.

  31. -- Sekian -- Dasar Pemrograman Renni Angreni, S.Kom.

More Related