Contoh Program Class OPERASI FILE

502 Direktorat Pembinaan SMK | 2008 int umur; }; void main { Pegawai produksi,akuntansi; strcpyproduksi.nip, 200322 ; trcpyproduksi.nama, Wijaya ; produksi.umur= 35 ; cout ================================== endl; cout NIP = , coutproduksi.nipendl; cout NAMA = , coutproduksi.namaendl; cout UMUR = , coutproduksi.umurendl; cout ================================== endl; akuntansi=produksi; cout NIP = , coutakuntansi.nipendl; cout NAMA = , coutakuntansi.namaendl; cout UMUR = , coutakuntansi.umurendl; cout ================================== endl; } Program 14.20 includeiostream includeconio.h using namespace std; class Pegawai { public: char nip[ 6 ]; char nama[ 25 ]; int umur; void isidatacharnip, char nama, int umur { strcpynip, nip; strcpynama,nama; umur= umur; } void tampil_biodata; { coutendl; cout ============================= endl; 2008 | Direktorat Pembinaan SMK 503 cout NIP : nipendl; cout NAMA : namaendl; cout UMUR : umurendl; cout ============================= endl; } }; void main { Pegawai Akuntansi cout INPUTKAN DATA KARYAWAN endl; cout NIP6 = , cinAkuntansi.nip; cout NAMA20= , cinAkuntansi.nama; cout UMUR2 = , cinAkuntansi.umur; Akuntansi.isidataAkuntansi.nip,Akuntansi.nama,Akuntansi.umur; Akuntansi.tampil_biodata; } Program 14.21 includeiostream includeconio.h using namespace std; class contoh { public: int x; int y; int tambah { cout x + yendl;; return ; } int kali { cout x yendl; } }; void main { contoh hitung; cout Masukan x ? , cinhitung.x; cout Masukan y ? , cinhitung.y; cout Hasil x + y = , 504 Direktorat Pembinaan SMK | 2008 tambah; cout Hasil x y = , hitung.kali; getch } 14.12. Soal Latihan Jawablah soal latihan dibawah ini dengan baik dan benar. 1. Apakah fungsi tipe kelas dalam bahasa C 2. Sebutkan tujuan dari mendeklarasikan class 3. Sebutkan yang digunakan untuk menentukan batasan akses terhadap member 4. Apa yang dimaksud dengan konstruktor dan destruktor 5. Jelaskan apa yang dimaksud dengan overloading konstruktor 6. Jelaskan bagaimana cara menulis class 7. Apa yang dimaksud dengan overloading method 8. Apa yang dimakksud dengan akses public, private dan protected 2008 | Direktorat Pembinaan SMK 505

BAB 15 PEMROGRAMAN BERORIENTASI OBJEK

15.1. Pemrograman Object-Oriented dan Prosedural

Dalam beberapa forum diskusi yang membahas programming, salah satu thread yang selalu hangat dan menarik di bicarakan adalah thread mengenai Object oriented Programming OOP. OOP itu sendiri sebetulnya adalah konsep lama, tapi topik ini seperti Design pattern, OOAD dan lain sebagainya sepertinya baru hangat dibicarakan di forum diskusi beberapa tahun belakangan ini. Entah mengapa, mungkin karena bersamaan dengan bermunculan framework yang banyak diantaranya menganut konsep OOP, C++ yangg sekarang sudah full- blown OOP, framework MS .NET yang juga sudah full-blown OOP, dan banyak lagi. Akhirnya banyak orang- orang di sini yang mulai bertanya- tanya “apa sih OOP tuh?”, “apa bedanya dengan prosedural?”, “apa untungnya kalau memakai OOP?. Sekarang kita tidak perlu membicarakan “Apa itu OOP” dan bagaimana membuat belajar OOP. kita hanya akan memberi contoh konkrit perbedaan dari OOP dan Procedural Code, dan kemudian mengambil kesimpulan tentang keuntungan apa yang bisa kita dapat dari OOP. Dalam buku ini banyak dijelaskan apa itu OOP, penggunaan Design Patternnya dan bagaimana mengimplementasikannya dalam kode C++. 15.1. Pemrograman Object-Oriented dan Prosedural 15.2. Perbedaan Object-Oriented dan Prosedural 15.3. Pemrograman berorientasi objek

15.4. Immutable obyek

15.5. Modularitas dan Abstraksi Data 15.6. Modularitas dan Penyebunyian Informasi 15.7. Interface 15.8. Interface dan Class 15.9. Hubungan dari Interface ke Class 15.10. Pewarisan Antar Interface 15.11. Soal Latihan 506 Direktorat Pembinaan SMK | 2008

15.2. Perbedaan Object-Oriented dan Prosedural

Bagaimana desain object oriented berbeda dengan kode prosedural yang lebih tradisional? Akan sangat mudah untuk mengatakan bahwa perbedaan utamanya adalah kode berorientasi obyek memiliki object di dalamnya. Ini tidak betul. Dalam PHP kita akan sering menemukan kode prosedural menggunakan obyek. Kita juga mungkin sering melihat class-class yang mengandung kode prosedural di dalamnya. Keberadaan class tidak menjamin adanya desain berorientasi obyek, walau dalam bahasa pemrogramman Java sekalipun, yang notabene “memaksa” kita untuk melakukan apa pun di dalam class. Satu perbedaan utama antara kode berorientasi obyek dengan kode prosedural dapat dilihat dari bagaimana tanggung jawab responsibility didistribusikan. Kode prosedural akan berupa urut-urutan perintah dan method calls. Kode pemanggil controlling code cenderung bertanggung jawab untuk menghandle pengecekan kondisi if, then, else dst. Kontrol top-down ini – dalam pengembangan aplikasi– dapat menghasilkan duplikasi kode dan saling ketergantungan lintas antar proyek. Kode berorientasi obyek mencoba untuk meminimalisasi ketergantungan ini dengan cara memindahakan responsibility untuk meng-handle tugas-tugas dari client code ke dalam obyek-obyek di dalam system.

15.3. Pemrograman berorientasi objek

Objek adalah kumpulan variabel dan method fungsi yang saling berkaitan. Mungkin kita pernah menggunakan struct dalam C atau record dalam PascalDelphi? Dalam struct dan record, kita bisa mengumpulkan tipe-tipe variabel yang berlainan. Nah, objek adalah perkembangan dari struct. Dalam objek, kita bisa mengumpulkan variabel-2 dengan tipe yang boleh berbeda-2 dan fungsi-2 yang disebut method. Objek sebenarnya meniru konsep alam. Ilustrasinya seperti ini. Sebutlah suatu objek, misalnya anjing. Anjing memiliki kondisi: warna, tinggi, lapar, sakit, dll. Selain itu anjing juga memiliki hal-hal yang biasa dilakukan, seperti: menggonggong, menggigit, goyang ekor, dan lain-lain. Jadi kondisi pada alam misal anjing ditiru dengan Variabel sedangkan hal-hal yang biasa dilakukan ditiru dengan Method. penggabungan antara Variabel dan Method itulah yang disebut Enkapsulasi. Hal penting berikutnya dalam OOP adalah Message. Antara objek satu dengan objek yang lain berkomunikasi melalui Message. Ketika objek A ingin objek B melakukan sesuatu, maka objek A mengirim Message ke objek B. Contoh: Misalnya objek A adalah ICT. Objek B adalah Sepeda. Jika ICT ingin memindahkan gigi sepedanya ke gigi 5, maka ICT akan mengirim Message ke Sepeda