BAB 12 PEWARISAN SIFAT OBJEK

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB 12 PEWARISAN SIFAT OBJEK"

Transkripsi

1 BAB 12 PEWARISAN SIFAT OBJEK 12.1 Pendahuluan Salah satu ciri dari OOP yang sebelumnya telah kita singgung pada bab sebelumnya adalah kemampuan suatu objek atau kelas untuk mewariskan sifat-sifat yang terdapat di dalamnya ke kelas turunannya. Hal ini dinamakan dengan inheritance. Konsep ini kelihatannya mudah, tapi sebenarnya banyak detil tersembunyi yang harus diperhatikan. Walaupun demikian, hal yang paling utama ditekankan dalam proses penurunan sebuah kelas adalah pemberian hak akses terhadap kelas-kelas turunan. Bahasa C + + merupakan bahasa pemrograman yang mendukung penuh tentang konsep-konsep OOP sehingga di dalamnya juga banyak terdapat fitur yang tersedia untuk proses penurunan sebuah kelas yang harus dipelajari. Pada bagian ini kita akan membahas semua hal tersebut secara rinci melalui contoh-contoh program Kelas Dasar dan Kelas Turunan Kelas dasar yang dimaksud di sini adalah sebuah kelas yang akan dijadikan sebagai induk dari kelas lain. Kelas dasar ini masih lebih dikenal dengan istilah dalam bahasa asing, yaitu Jbase class. Sedangkan kelas baru yang merupakan hasil dari proses penurunan Bab 12: Pewarisan Sifat Objek

2 tersebut disebut dengan kelas turunan, atau sering juga disebut dengan derived class. Dalam mempelajari materi ini sebenarnya sama seperti mempelajari ilmu biologi yang membahas tentang klasifikasi sebuah tumbuhan. Dalam ilmu biologi, suatu tumbuhan berasal dari suatu kelas (tipe) tertentu sehingga tumbuhan tersebut akan mewarisi sifat-sifat yang terdapat pada kelas pendahulunya. Begitupun dalam program, suatu kelas dapat dijadikan sebagai kelas dasar (induk) untuk kemudian diturunkan menjadi kelas-kelas selanjutnya. Misalnya terdapat kelas A yang diturunkan menjadi kelas B, selanjutnya kelas B diturunkan lagi menjadi kelas C, begitu seterusnya. Di sini, kelas B dan kelas C tentu akan memiliki sifat-sifat yang terdapat pada kelas A. Begitu juga kelas C, pasti akan mewarisi sifat-sifat yang terdapat pada kelas B. Secara umum, di dalam C + +, penurunan sebuah kelas dapat dilambangkan dengan gambar di bawah ini. kelas dasar. Berikut ini bentuk umum dari pembuatan sebuah kelas turunan di dalam C + +. class nama kelas_turunant hak_akses naoa_kelas dasar { // data-data dan fungsi-fungsi Agar dapat lebih memahaminya, perhatikan contoh program berikut dimana di dalamnya terdapat pendefinisian sebuah kelas turunan. #include <iostream> Kode Program 12-1 // Membuat kelas dasar dengan nama INDUK class INDUK { int X; public : void SetX(int XX) { X = XX; int GetXO { return X? // Membuat kelas turunan dengan nama TURUNAN class TURUNAN: public INDUK { void SetY(int YY) { Y = YY; Seperti yang kita lihat di atas bahwa sebuah kelas dasar dapat diturunkan menjadi beberapa kelas yang berbeda. Selanjutnya masing-masing kelas turunan tersebut dapat diturunkan lagi menjadi kelas-kelas turunan berikutnya, begitu seterusnya Membuat Kelas Turunan Untuk membuat sebuah kelas turunan sebenarnya sama seperti pada saat kita membuat kelas-kelas biasa, perbedaannya hanya di sini terdapat pendefinisian nama kelas yang akan dijadikan sebagai int GetYO { return Y; // Melakukan instansiasi terhadap kelas INDUK INDUK A ; // Memanggil fungsi-fungsi milik kelas INDUK dari kelas INDL A.SetX(12) ; cout«"nilai X yang dipanggil dari kelas INDUK cout«a. GetX ( ) «endl ; cout«' \n' ; Bab 12: Pewarisan Sifat Objek

3 I / MelatitlESirTnstansia^^prhadap kelas TURUNAN *4^Br 'URUNAN B; // Melakukan pemanggilan fungsi-fungsi // yang terdapat pada kelas TURUNAN B.SetY(40); cout<<"nilai Y yang terdapat pada kelas TURUNAN : v cout«b. GetY () «endl ; cout«' \n' ; // Tl B.set ti-fungsi milik kelas INDUK dari kelas cout«"nilai X yang dipanggil dari kelas TURUNAN : "; cout«b.getx()«end turunan juga dapat menjadi induk dari kelas-kelas yang lainnya. Berikut ini program yang menunjukkan hal tersebut. tinclude <iostream> Kode Program 12-2 // Membuat kelas dasar dengan nama INDUK class INDUK { int X; void SetX (int XX) { X = XX; int GetX() { return X; return Hasil yang akan diberikan dari program di atas adalah sebagai berikut: Nilai X yang dipanggil dari kelas INDUK : 12 Nilai Y yang terdapat pada kelas TURUNAN : 40 Nilai X yang dipanggil dari kelas TURUNAN : 35 Dari hasil di atas dapat kita simpulkan bahwa kelas TURUNAN telah mewarisi sifat-sifat yang dimiliki oleh kelas INDUK. Sebagai bukti pernyataan ini, di atas kita dapat menggunakan fungsi SetX () dan GetX() di dalam objek B yang merupakan instance dari kelas TURUNAN. Sedangkan apabila kita amati, fungsi-fungsi tersebut adalah milik dari kelas INDUK. Sebenarnya, setelah proses penurunan kelas di atas, kelas INDUK akan mewariskan fungsi SetX () dan GetX () kepada kelas TURUNAN, ini berarti bahwa sekarang kelas TURUNAN juga telah mempunyai fungsi yang bernama SetX () dan GetX (). Dalam program, hal inilah yang dinamakan dengan konsep pewarisan sifat objek. Pada program di atas, kita baru melakukan satu kali proses penurunan. Sekarang kita akan mem'buktikan bahwa sebuah kelas // Membuat kelas turunan dari kelas INDUK dengan nama TURUNAN1 class TURUNAN1: public INDUK { public : void SetY(int YY) { Y = YY; int GetYO { return Y; // Membuat kelas turunan dari kelas TURUNANl dengan nama // TURUNAN2 class TURUNAN2: public TURUNANl { int Z; void SetZ(int ZZ) { Z = ZZ; int GetZO { return Z; // Melakukan instansiasi terhadap kelas TURUNAN2 TURUNAN2 A; Bab 12: Pewarisan Sifat Objek

4 // Melakukan pengesetan nilai X, Y dan Z melalui kelas // TURUNAN2 A.SetX{20); A.SetY(30); A.SetZ(40); // Menampilkan nilai X, Y dan Z melalui kelas TURUNAN2 cout«"nilai X yang dipanggil dari kelas TURUNAN2 : "; cout«a. GetX () «endl ; cout«"nilai Y yang dipanggil dari kelas TURUNAN2 : "; cout«a. GetY () «endl ; cout«"nilai Z yang dipanggil dari kelas TURUNAN2 : cout«a. GetZ () «endl ; return 0; Hasil yang akan diberikan dari program di atas adalah sebagai berikut: Nilai X yang dipanggil dari kelas TURUNAN2 : 20 Nilai Y yang dipanggil dari kelas TURUNAN2 : 30 Nilai Z yang dipanggil dari kelas TURUNAN2 : 40 Hasil di atas memmjukkan bahwa kelas TURUNAN2 akan memiliki fungsi-fungsi yang dimiliki oleh kelas induknya (kelas TURUNAN1), yaitu fungsi SetY () dan GetY (). Namun perlu diperhatikan, di sini kelas TURUNAN1 adalah turunan dari kelas INDUK, maka dari itu secara otomatis kelas TURUNAN2 juga akan memiliki fungsifungsi yang dimiliki oleh kelas INDUK, yaitu fungsi SetX () dan GetX (). Walaupun demikian, sebuah kelas turunan tetap tidak dapat mewarisi data atau fungsi-fungsi yang bersifat private pada kelas induknya. Bagian public yang terdapat pada kelas induk tetap akan menjadi bagian public pada kelas turunannya. Bagian protected yang terdapat pada kelas induk tetap akan menjadi bagian protected pada kelas turunannya. Bagian private yang terdapat pada kelas induk tetap tidak dapat diakses oleh kelas turunannya. Apabila kelas diturunkan sebagai private dari kelas induknya, maka: Bagian public yang terdapat pada kelas induk akan menjadi bagian private pada kelas turunannya. Bagian protected yang terdapat pada kelas induk akan menjadi bagian private pada kelas turunannya. Bagian private yang terdapat pada kelas induk tetap tidak dapat diakses oleh kelas turunannya. Berikut ini contoh program di atas yang dituliskan kembali. Maksudnya adalah untuk menjelaskan konsep pembuatan kelas yang diturunkan sebagai public oleh kelas induknya. tinclude <iostream> Kode Program 12-3 // Membuat kelas dasar dengan nama INDUK class INDUK { int X; void SetX{int XX) { X = XX; int GetX() { return X; 12.4 Hak Akses pada Proses Pewarisan Dalam proses penurunan sebuah kelas, kita harus benar-benar pandai dalam memberikan hak akses data atau fungsi terhadap kelas turunan. Berikut ini hal-hal yang perlu Anda ketahui dalam membuat sebuah kelas turunan. Apabila kelas diturunkan sebagai public dari kelas induknya, maka : // Membuat kelas TURUNANl yang diturunkan sebagai public // dari kelas INDUK class TURUNANl: public INDUK { void SetY(int YY) { Y = YY; int GetYO { return Y; Bab 12: Pewarisan Sifat Objek

5 // Membuat kelas TURUNAN2 yang diturunkan // dari kelas TURUNANl Class TURUNAN2: public TURUNANl { int Z; void SetZ(intZZ) {, Z = ZZ; j int GetZ() { return Z; // Melakukan in TURUNAN2 A; terhadap kelas TURUNAN2 //Melakukan pengesetan nilai X, Y dan Z melalui kelas // TURUNAN2 A.SetX(20) ; A.SetY(30); A. SetZ(40); // Menampilkan nilai X, Y dan Z melalui kelas TURUNAN2 cout«"nilai X yang dipanggil dari kelas TURUNAN2 : "; cout«a. GetX {) «endl ; cout«"nilai Y yang dipanggil dari kelas TURUNAN2 : "; cout«a.gety () «endl,- cout«"nilai Z yang dipanggil dari kelas TURUNAN2 : "; cout«a. GetZ () «endl ; return Apabila kita analisis program di atas, bagian public dari kelas INDUK (yaitu fungsi SetX () dan GetX ()) tetap akan menjadi bagian public pada kelas TURUNANl, sedangkan variabel X yang terdapat pada bagian private tetap tidak dapat diakses oleh kelas TURUNANl. Sampai di sini, berarti kelas TURUNANl telah mempunyai empat buah fungsi yang bersifat public (yaitu fungsi SetYO, GetY(), SetX() dan GetX ()). Selanjutnya kelas TURUNANl akan diturunkan lagi secara public terhadap kelas TURUNAN2. Hal ini menyebabkan bagian public yang terdapat pada kelas TURUNANl akan diwariskan semuanya kepada kelas TURUNAN2 sehingga kelas TURUNAN2 akan mempunyai enam buah fungsi yang bersifat public (yaitu fungsi SetZ (), GetZ (), SetY (), GetY (), SetX () dan GetX ()). Itulah sebabnya pada program di atas kita dapat mengakses fungsi-fungsi yang terdapat pada kelas INDUK dan kelas TURUNANl melalui suatu objek (instance) dari kelas TURUNAN2. Sekarang kita akan mencoba untuk membuat suatu kelas yang diturunkan sebagai private dari kelas induknya, yaitu dengan cara memodifikasi program di atas. Adapun sintaks programnya adalah sebagai berikut: #include <iostream> Kode Program 12-4 // Membuat kelas dasar dengan nama INDUK class INDUK { int X; void SetX(int XX) { X = XX; int GetX{) { return X; // Membuat kelas TURUNANl yang diturunkan sebagai private // dari kelas INDUK class TURUNANl: private INDUK { void SetY(int YY) { Y = YY; int GetY() { return Y; // Membuat kelas TURUNAN2 yang diturunkan sebagai private // dari kelas TURUNANl class TURUNAN2: private TURUNANl { int Z; void SetZ(int ZZ) { Z = ZZ; int GetZ() { return Z; Bab 12: Pewarisan Sifat Objek

6 ini 'gsi u tama :'na // Melakukan instansiasi terhadap kelas TURUNAN2 TURUNAN2 A; // Melakukan pengesetan nilai X, Y dan Z melalui kelas // TURUNAN2 A.SetX(20); // SALAH, tidak diizinkan oleh compiler A.SetY(30); // SALAH, tidak diizinkan oleh compiler A.SetZ(40);.;// Statesmen di bawah ini SALAH, karena mengakses bagian // private cout«"nilai X yang dipanggil dari kelas TURUNAN2 cout«a.getx()«endl; // Statemen di bawah ini SALAH, karena mengakses bagian // private cout«"nilai Y yang dipanggil dari kelas TURUNAN2 cout«a.gety( ) «endl ; cout«"nilai Z yang dipanggil dari kelas TURUNAN2 cout«a. GetZ { ) «endl ; Program di atas tidak dapat dijalankan, karena terdapat beberapa kesalahan di dalamnya. Apabila kita analisis, bagian public dari kelas INDUK tentu akan menjadi bagian private pada kelas TURUNAN1, sedangkan bagian public dari kelas TURUNAN1 akan menjadi bagian private pada kelas TURUNAN2. Hal inilah yang menyebabkan kesalahan pada program di atas karena terdapat usaha untuk mengakses bagian private dari suatu kelas Multiple Inheritance Salah satu kelebihan dari C++ dibandingkan bahasa-bahasa pemrograman lain yang juga mendukung OOP adalah karena C + + mendukung adanya multiple inheritance. Adapun multiple inheritance yang dimaksud di sini adalah suatu proses pembuatan kelas baru dimana kelas tersebut diturunkan dari dua kelas induk atau lebih. Sebagai contoh, kita memiliki kelas A dan B yang masing-masing berdiri sendiri. Kemudian kita ingin membuat kelas C yang merupakan turunan dari kelas A dan B. Dengan demikian, kelas C tentu akan mewarisi sifat-sifat yang terdapat pada kelas A dan kelas B. Sebenarnya kita bisa juga melakukannya dengan proses yang berulang, yaitu dengan menurunkan kelas A menjadi kelas B, kemudian baru menurunkan kelas B menjadi kelas C. Namun hal ini tentu akan memakan waktu yang cukup lama dibandingkan kita menurunkannya dari beberapa induk secara langsung. Berikut ini gambar yang akan mengilustrasikan proses multiple inheritance. Kelas_.Indukl t Kelas_ Indukl i KelasJ'urunan Kelas_IndukN (' Adapun bentuk umum dari pembuatan kelas melalui proses multiple inheritance adalah sebagai berikut : class nama^kelas turunan: hak akses nama_kelas_indukl f hak_akses nama kelas_induk2, hak_akses nama_kelas_indukn { // data-data dan fwagsi-fungsi Berikut ini contoh program yang mengimplementasikan konsep di atas. #include <iostream> Kode Program 12-5 // Membuat kelas dengan nama INDUK1 class INDUK1 { int X; publi c: void SetXfint XX) { X = XX; int GetXO { return X; Bab 12: Pewarisan Sifat Objek

7 // Membuat kelas dengan nama INDUK2 y«3g tidak berkaitan //dengan kelas INDUK1 class INDUK2 { void SetY(int YY) { Y = YY; ; int GetYO { return Y; // Membuat kelas TURUNAN yang merupakan turunan // dari kelas INDUK1 dan INDUK2 class TURUNAN: public INDUKl, public INDUK2 { int Z; void SetZ(int ZZ) { Z = ZZ; int GetZO { return ZZ; // Melakukan instansiasi terhadap kelas TURUNAN TURUNAN A; // Memanggil fungsi-fungsi yang terdapat pada kelas TURUNAN A.S.etX(lOO) ; A.SetY(200); A.SetZOOO) ; // Menampikan ni <.ai yang telah diset cout«"nilai X : "«A.GetX()«endl; cout«"nilai Y : "«A.GetY( )«endl; cout«"nila^fc!sl : "«A.GetZO; return 0 ; Apabila dijalankan, program di atas akan memberikan hasil seperti di bawah ini. Nilai X Nilai Y Nilai Z : 100 :200 :300 Seperti yang kita lihat di atas bahwa kelas TURUNAN akan memiliki fungsi-fungsi yang terdapat di bagian public atau protected pada kelas-kelas induknya. Pada contoh ini, fungsi-fungsi yang akan dimiliki oleh kelas TURUNAN adalah fungsi SetX (), GetX (), SetY(), GetY(), SetZ() dan GetZ() Constructor pada Proses Penurunan Kelas Pada bab sebelumnya kita telah mempelajari bagaimana membuat fungsi constructor untuk suatu kelas dasar. Sebenarnya tidak terdapat perbedaan sintaks antara constructor pada kelas dasar dan kelas turunan. Namun, hal yang perlu diperhatikan adalah: apabila kita ingin melakukan inisialisasi nilai yang terdapat pada kelas induk melalui constructor kelas turunan, maka kita dapat memanggil constructor kelas induk tersebut dari dalam constructor kelas turunan. Perhatikan contoh potongan sintaks berikut: class INDUK { int X; public; // constructor kelas INDUK INDUK(int XX) { X = XX; // fungsi lain... ;.,. Selanjutnya, apabila kita ingin melakukan inisialisasi terhadap nilai X di atas dari sebuah kelas turunan (misalkan dengan nama TURUNAN), maka kita dapat memanggil constructor kelas INDUK pada saat kita membuat constructor kelas TURUNAN, seperti yang terlihat pada sintaks berikut: class TURUNAN: public INDUK { // constructor kelas TURUNAN TURUNAN(int XX, int YY) { INDUK(XX); // memanggil constructor kelas INDUK^ Y = YY; // mengeset nilai Y // fungsi lain.,. Kode di atas dapat juga dituliskan seperti berikut: Bab 12: Pewarisan Sifat Objek

8 class TURUNAN: public INDUK { // constructor kelas TURUNAN TURUNAN(int XX, int YY) : INDUK(XX) { Y = YY; // mengeset nilai Y // fungsi lain... Berikut ini contoh program yang menunjukkan bagaimana cara membuat constructor pada kelas turunan. ttinclude <iostream> Kode Program 12-6 class INDUK { int X; public : I// Constructor pada kelas INDUK INDUK (int XX) { X = XX; cput«"constructor kelas INDUK "<<endl; '.// Membuat fungsi GetX int GetXO { return X; class TURUNAN: public INDUK { // Constructor pada kelas TURUNAN TURUNAN(int XX, int YY): INDUK(XX) { Y = YY; cout«"constructor kelas TURUNAN"«endl; // Membuat fungsi GetY int GetYO { return Y;. cout«"nilai Y : "«A.GetY() return 0; Hasil yang akan diberikan dari program di atas adalah sebagai berikut: Constructor kelas INDUK Constructor kelas TURUNAN Nilai X : 10 Nilai Y : 20 Apabila kita analisis hasil di atas, pada saat sebuah objek turunan dibuat di dalam memori, maka sebenarnya akan dibuat kelas induk terlebih dahulu. Sekarang, apabila kita akan membuat suatu constructor pada kelas yang diturunkan melalui proses multiple inheritance, maka kita akan menyebutkan constructor dari semua kelas induknya. Berikut ini contoh program yang akan menunjukkan hal tersebut. tinclude <iostream> Kode Program 12-7 // Membua t kelas INDUKl class INDUKl { int X; // Constructor pada kelas INDUKl INDUKl(int XX) { X = XX; cout«"constructor kelas INDUKl"«endl // Membuat fungsi GetX int GetXO { return X; // Melakukan instansiasi terhadap kelas TURUNAN TURUNAN A(10, 20); // Melakukan pemanggilan fungsi melalui objek A cout«"nilai X : "«A.GetX () «endl ; Pemrograman CM // Membuat kelas INDUK2 class INDUK2 { // Constructor pada kelas INDUK2!NDUK2(int YY) {!;' Y = YY; cout«"constructor kelas INDUK2"«endl, Bab 12: Pewarisan Sifat Objek

9 // M int GetY() { return Y; gsi GetY // Membuat Jcelas TURUNAN // yang diturunkan dri kelas INDUK1 dan INDUK2 class TURUNAN: public INDUK1, public INDUK2 { int Z; BAB 13 VIRTUAL DAN POLIMORFISME // Constructor pada kelas TURUNAN TURUNANfint XX, int YY, int ZZ) : INDUKl(XX), INDUK2(YY) Z = ZZ; cout«"constructor kelas TURUNAN" «endl; // Membuat fungsi GetZ int GetZO { return Z;.// Melakukan instansiasi terhadap kelas TURUNAN TURUNAN A(10, 20, 30); // Melakukan pemanggilan fungsi melalui objek A cout«"nilai X : "«A.GetX () «endl; cout«"nilai Y : "«A.GetY() «endl; COUt«"Nilai Z : "«A.GetZ(); return 0; ; Apabila dijalankan, program di atas akan memberikan hasil sebagai berikut: 13.1 Pendahuluan Polimorfisme merupakan ciri OOP yang keempat setelah abstraksi, pembungkusan atau pengkapsulan dan pewarisan (inheritance). Pada bagian ini kita akan membahas tentang apa yang dimaksud dengan polimorfisme dan implementasinya dalam pembuatan kelas di dalam C + +. Namun, sebelum itu kita akan membahas mengenai hal yang mutlak diperlukan dalam mempelajari polimorfisme terlebih dahulu, yaitu fungsi virtual. Constructor kelas INDUK1 Constructor kelas INDUK2 Constructor kelas TURUNAN Nilai X : 10 Nilai Y : 20 Nilai Z : 30 Pemrograman 13.2 Fungsi Virtual Fungsi virtual adalah fungsi yang mendukung adanya polymorphic function, artinya fungsi tersebut dapat didefinisikan ulang pada kelas-kelas turunannya. Fungsi virtual ini biasanya terdapat pada kelas-kelas dasar. Walaupun demikian, kita juga dapat mendeklarasikan fungsi virtual pada kelas-kelas turunan yang akan dijadikan sebagai kelas dasar bagi kelas-kelas lainnya. Dalam C+ +, untuk mendefinisikan fungsi sebagai fungsi virtual adalah dengan Bab 13: Virtual dan Polimorfisme

10 menggunakan kata kunci virtual, yaitu dengan menempatkannya di depan pendeklarasian fungsi tersebut. Pendefinisian fungsi virtual yang terdapat pada kelas dasar biasanya tidak begitu berarti, artinya kode-kode yang terdapat di dalamnya masih bersifat general. Selanjutnya setiap kelas turunan akan mendefinisikan ulang fungsi virtual itu dengan mengisikan perintah-perintah yang sudah spesifik sesuai dengan kebutuhan dari kelas turunan tersebut. Untuk lebih memahaminya berikut ini contoh pembuatan sebuah fungsi virtual yang terdapat dalam kelas dasar. class MANUSIA { char* nama; int tinggi; int berat; void SetNama(char* N) { nama = N; void SetTinggi(int T) { tinggi = T; void SetBerat(int B) { berat = B; char* GetNamaO { return nama; int GetTinggi() { return tinggi; int GetBerat() { return berat; // Membuat fungsi virtual virtual void BerjalanO { cout«"ber jalan"«endl ; virtual void Berpakaian() { cout«"berpakaian" «endl Seperti yang kita lihat di atas bahwa kita telah membuat dua buah fungsi virtual, yaitu fungsi BerjalanO dan Berpakaian(). Fungsi-fungsi ini selanjutnya dapat didefinisikan ulang dengan implementasi yang berbeda pada setiap kelas turunannya Override Seperti yang telah dikemukakan di atas bahwa fungsi virtual dapat didefinisikan ulang pada kelas turunannya. Hal ini tentu memungkinkan untuk terjadinya proses pembaharuan dari definisi suatu fungsi. Dalam OOP, proses pembaharuan tersebut disebut dengan istilah override. Untuk lebih jelasnya, perhatikan contoh program di bawah ini. #include <iostream> class MANUSIA { char * nama; int tinggi; int berat; void SetNama(char* N) { nama = N; void SetTinggi(int T) { (tinggi = T; void SetBerat(int berat = B; char* GetNamaO { return nama; int GetTinggi() { return tinggi,- int GetBeratO { return berat; // Membuat fungsi virtual virtual void BerjalanO { cout«"berjalan"«endl; virtual void Berpakaian() { cout«" Berpakaian" «endl Kode Program 13-1 class MAHASISWA: public MANUSIA { char* universitas; char* jurusan; Bab 13: Virtual dan Polimorfisme

11 int semester; iblic : void SetUniversitas (c universitas = U; void Set Jurusan{ char* J) { jurusan = J; void SetSemester (int smt) { semester = smt; char* GetUnlversitas () { return universitas; char* GetJurusanO { return jurusan; int GetSemesterO { return semester; // Melakukan override terhadap fungsi Berjalan void BerjalanO ( cout«"berjalan dengan cara SANTAI"«endl; // Melakukan override terhadap fungsi Berpakaian void Berpakaian() { cout«"berpakaian dengan baju BEBAS"«endl; class TENTARA: public MANUSIA { char* pangkat; char* kesatuan; public : void Set Pangkat (char* pkt) { pangkat = pkt; void SetKesatuan(char* kstn) { kesatuan = kstn; schar* GetPangkatO { return pangkat; char* GetKesatuan ( ) { return kesatuan; // Melakukan override terhadap fungsi Berjalan void Berjalan( ) { cout«"berjalan dengan cara TEGAP"«endl; // Melakukan override terhadap fungsi Berpakaian void Berpakaian ( ) { cout«"berpakaian dengan baju SERAGAM"«endl; Pemrograman //Melakukan instansiasi terhadap kelas MANUS MANUSIA M; // Melakukan instansiasi terhadap kelas MAHASISWA MAHASISWA MHS; // Melakukan instansiasi terhadap kelas TENTARA TENTARA TTR; // Memanggil fungsi Berjalan dari masing-masing keli M.BerjalanO ; MHS.BerjalanO ; TTR.BerjalanO ; cout«' \n' ; // Memanggil fungsi Berpakaian dari masing-masing kelai M.Berpakaian(); MHS. Berpakaian (); TTR. Berpakaian (); return 0; Apabila dijalankan, hasil yang akan diberikan dari program di atas adalah sebagai berikut: Berjalan Berjalan dengan cara SANTAI Berjalan dengan cara TEGAP Berpakaian Berpakaian dengan baju BEBAS Berpakaian dengan baju SERAGAM Dari hasil di atas dapat kita amati bahwa dengan mendefinisikan fungsi BerjalanO sebagai fungsi virtual, kita dapat melakukan override terhadap fungsi tersebut. Di atas, fungsi BerjalanO akan diimplementasikan berdasarkan kelas masing-masing, begitu juga dengan fungsi Berpakaian (). Bab 13: Virtual dan Polimorfisme

12 13.4 Perbedaan Override dengan Overload Terdapat kemiripan istilah antara override dan overload. Anda tidak perlu bingung karena keduanya memang dua hal yang sangat berbeda. Pada proses override kita tidak dapat mengubah parameter dari fungsi (yang didefinisikan sebagai fungsi virtual) yang terdapat pada kelas induk, baik itu tipe data ataupun jumlah dari parameter tersebut. Sedangkan overload adalah pembuatan fungsi-fungsi dengan nama sama tetapi jumlah parameter dari fungsi-fungsi tersebut berbeda Dengan demikian, override bukanlah overload. Agar dapat lebih menyerap konsep yang ada, berikut ini contoh program yang akan membedakan kedua istilah di atas. #include <iostream> Kode Program 13-2 Class KARYAWAN { char* NIP; char* nama; double GajiPokok; void SetNIPfchar* Nolnduk) { NIP = Nolnduk; void SetNama(char* run) { nama = nm; void SetGajiPokok(double GP) { GajiPokok = GP; char* GetNIPO { return NIP; har* GetNamaO { return nama; ouble GetGajiPokok() { return GajiPokok; // Membuat fungsi virtual virtual void Bekerja() { cout«"bekerja"«endl ; // Membuat kelas PROGRAMMER yang diturunkan dari kelas KARYAl class PROGRAMMER: public KARYAWAN { double bonus; // Melakukan overload pada fungsi constructor kelas // PROGRAMMER PROGRAMMER() { bonus = 0; PROGRAMMER(double bns) { bonus = bns; fdouble GetBonus() { return bonus; j// Melakukan override terhadap fungsi Bekerja yoid Bekerja() { cout«"bekerja dengan cara membuat program " \ "menggunakan komputer"; cout«endl; class GURU: public KARYAWAN { char* MateriAjar; void SetMateriAjar(char* MA) { MateriAjar = MA; char* GetMateriAjar() { return MateriAjar; // Melakukan override terhadap fungsi Bekerja void Bekerja() { cout«"bekerja dengan cara mengajar di depan kelas' cout«' \n' ; // Melakukan instansiasi terhadap kelas PROGRAMMER // dengan mengeset bonus sebesar PROGRAMMER P(IOOOOOO); // Melakukan instansiasi terhadap kelas GURU GURU G; // Memanggil fungsi bekerja untuk kelas PROGRAMMER dan GURU P.BekerjaO ; G.Bekerj a(); Bab 13: Virtual dan Polimorfisme

13 Hasil yang akan diperoleh dari program di atas adalah sebagai berikut: Bekerja dengan cara membuat program menggunakan komputer Bekerja dengan cara mengajar di depan kelas Perhatikan proses contructor pada kelas PROGRAMMER di atas, di situ terdapat proses overload terhadap fungsi constructor. Fungsi contructor dibuat dua kali, yaitu dengan menggunakan parameter dan tanpa parameter. Sedangkan yang dimaksud dengan override pada program di atas adalah pendefinisian fungsi Beker j a () yang terdapat pada kelas PROGRAMMER dan kelas GURU Fungsi Virtual Murni (Pure Virtual Function) Setelah mengetahui definisi fungsi virtual, maka di sini kita akan membahas mengenai fungsi virtual murni atau yang lebih dikenal dengan pure virtual function. Adapun yang dimaksud dengan fungsi virtual murni adalah fungsi yang murni tidak mempunyai definisi sama sekali. Artinya fungsi tersebut baru didefinisikan pada kelas turunannya. Dalam C+ +, untuk mendefinisikan fungsi sebagai fungsi virtual murni adalah dengan cara mengisikan nilai 0 ke dalam fungsi tersebut. Berikut ini bentuk umum pembuatan sebuah fungsi virtual murni. virtual tipe_data nana^fungsifparameter1, parameter^...; = Q; Berikut ini contoh program yang menunjukkan pembuatan fungsi virtual murni dalam sebuah kelas dasar. ^include <iostream> using namespace s class MANUSIA { char riarna; int tinggi - "int be Kode Program 13-3 Pemrograman ablic: /// Membuat fungsi virtual murni,.?// artinya tanpa definisi/impleme^s^i [^virtual void BerjalanO» 0; [virtual void BerpakaianO = 0; ivoid SetNama(char* N) { nama = N; [xvoid SetTinggi (int T) { tinggi = T; cvoid SetBerat(int B) { berat = B; Jihar* GetNama () { return nama; int GetTinggi() { return tinggi; [lint GetBerat () { return berat; class MAHASISWA: public MANUSIA { char* universitas; char* jurusan; int semester; void SetUniversitas(char* U) { universitas = U; void SetJurusan(char* J) { jurusan = J; void SetSemester(int smt) { semester = smt; [char* GetUniversitas() { return universitas; jchar* GetJurusan() { return jurusan; int GetSemester() { return semester; >^ // Mendefinisikan fungsi Berjalan untuk kelas MAHASISWA void BerjalanO { cout«"mahasiswa berjalan dengan cara SANTAI"«endl; T. Bab 13: Virtual dan Polimorfisme

14 // Mendefinisikan fungsi Berpakaian untuk kelas MAHASISWA void Berpakaian() { cout«"mahasiswa berpakaian dengan baju BEBAS"«endl; class TENTARA: public MANUSIA { char* pangkat,- char* kesatuan; void SetPangkat(char* pkt) { pangkat = pkt; void SetKesatuan(char* kstn) { kesatuan = kstn; char* GetPangkat() { return pangkat; char* GetKesatuanf) { return kesatuan; // Mendefinisikan fungsi Berjalan untuk kelas TENTARA void BerjalanO { cout«"tentara berjalan dengan cara TEGAP"«endl; // Mendefinisikan fungsi Berpakaian untuk kelas TEA void Berpakaian() { cout«"tentara berpakaian dengan baju SERAGAM"«int main{ { //; Melakukan instansiasi terhadap kelas TENTARA TENTARA T; // Memanggil fungsi Berjalan dari masing-masing kelas M.BerjalanO ; T.BerjalanO ; cout«endl ; // Memanggil fungsi Berpakaian dari masing-masing kelas M. Berpakaian. Berpakaian (); rn 0; Hasil yang akan diberikan dari program di atas adalah sebagai berikut: Pemrograman Mahasiswa berjalan dengan cara SANTAI Tentara berjalan dengan cara TEGAP Mahasiswa berpakaian dengan baju BEBAS Tentara berpakaian dengan baju SERAGAM Seperti yang kita lihat di atas bahwa fungsi BerjalanO dan Berpakaian () hanya mempunyai implementasi pada kelas turunannya saja (kelas MAHASISWA dan TENTARA), sedangkan pada kelas dasar (kelas MANUSIA), fungsi-fungsi tersebut tidak mempunyai implementasi sama sekali Virtual Dectructor C++ merupakan bahasa yang mendukung adanya virtual destructor pada sebuah kelas. Hal ini bertujuan untuk menghindari terjadinya memory leak. Apabila kita mempunyai sebuah pointer yang bertipe kelas induk, dan pointer tersebut ditunjukkan ke kelas turunan, maka pada saat kita menghapus pointer tersebut, yang akan terhapus dari memori hanyalah objek induknya saja, sedangkan objek turunannya sebenarnya masih terdapat di dalam memori. Kita tentu tidak menginginkan hal ini terjadi bukan? Untuk lebih memahaminya perhatikan contoh program di bawah ini dimana kita menggunakan destructor bias a (bukan virtual). ttinclude <iostream> Kode Program 13-4 class INDUK { -INDUK() { cout«"destructor kelas INDUK"«endl; class TURUNAN: public INDUK { -TURUNAN() { cout«"destructor kelas TURUNAN"«endl Bab 13: Virtual dan Polimorfisme

15 // Mendeklarasikan pointer yang bertipe kelas INDUK INDUK *PI; // Mengalokasikan ruang untuk menempatkan objek TURUNAN PI = new TURUNAN; // Menghapus pointer PI delete PI; return 0; Hasil yang akan diberikan dari program di atas adalah sebagai berikut: Destructor kelas INDUK Seperti yang terlihat di atas bahwa objek dari kelas TURUNAN tidak ikut didestruksi. Maka dari itu, pada kasus ini kita harus menggunakan virtual destructor pada kelas induk. Adapun sintaks programnya akan berubah menjadi seperti di bawah ini. tinclu.de <iostream> Kode Program 13-5 class INDUK { // Membuat virtual destructor virtual -INDUK() { cout«"destructor kelas INDUK"«endl; // Mendeklarasikan pointer yang bertipe kelas INDUK INDUK *PI;. // Mengalokasikan ruang untuk menempatkan objek TURUNAN PI = new TURUNAN; // Menghapus pointer PI delete PI; return 0; Sekarang, apabila program tersebut dijalankan, maka hasil yang akan diberikan adalah sebagai berikut: Destructor kelas TURUNAN Destructor kelas INDUK Mungkin Anda bingung kenapa program akan mendestruksi kelas TURUNAN terlebih dahulu? Jawabnya mudah, dalam pemrograman, setiap constructor sebuah objek, maka program akan melakukan constructor terhadap induk dari objek tersebut terlebih dahulu. Sedangkan untuk destructor, merupakan kebalikan dari proses constructor. Artinya yang akan dihapus terlebih dahulu dari memori adalah objek turunannya, baru kemudian objek-objek induknya Kelas Abstrak Kelas abstrak adalah sebuah kelas yang mempunyai fungsi virtual murni di dalamnya. Maka dari itu kita juga tidak diizinkan untuk melakukan instansiasi dari kelas abstrak. Sebenarnya pada program-program di atas, secara tidak langsung kita sudah membuat kelas abstrak, namun kita akan membahasnya lebih detil pada sub bab ini. Berikut ini contoh program yang tidak diizinkan. tihclude <iostream> Class KARYAWAN { virtual void Bekerjaf Pemrograman Bab 13: Virtual dan Polimorfisme

16 Lass PROGR xlic: void BekerjaO { cout«"bekerja dengan cara membu : "menggunakan komputer",- cout«endl; class GURU: public KARYAWAN { void Bekerja() { cout«"bekerja dengan cara mengajar di depan kelas cout«endl ; //- Fungsi utama int main {) { // Melakukan instansiasi terhadap kelas KARYAWAN KARYAWAN A; // SALAH, tidak diizinkan oleh kompiler // Melakukan instansiasi terhadap kelas PROGRAMMER PROGRAMMER B; // Melakukan instansiasi terhadap kelas GURU GURU C; Apabila program di atas dijalankan maka akan terdapat error, karena pada program tersebut terdapat instansiasi dari kelas abstrak, yaitu kelas KARYAWAN Polimorfisme Setelah pembahasan-pembahasan di atas sekarang kita akan menginjak ke pembahasan pokok pada bab ini, yaitu polimorfisme, yang merupakan salah satu ciri utama dari OOP. Secara definisi, polimorfisme dapat diartikan sebagai kemampuan mengungkap suatu hal yang berbeda melalui satu cara yang sama. Untuk mengetahui konsep yang terdapat di dalamnya, perhatikan kembali program di atas (pada sub bab kelas abstrak). Pada program tersebut kita tidak dapat melakukan instansiasi pada kelas KARYAWAN, sehingga untuk mengakses fungsi Beker j a () yang terdapat pada kelas-kelas turunan (kelas PROGRAMMER dan GURU), terpaksa kita harus tetap melakukan instansiasi terhadap kelaskelas turunan tersebut. Hal ini tentu tidak efisien, maka dari itu C++ menyediakan suatu cara untuk dapat mengakses fungsifungsi di dalam kelas turunan hanya dengan mendeklarasikan sebuah pointer yang bertipe kelas induk. Selanjutnya pointer tersebut akan dapat menunjuk ke tipe-tipe kelas turunan yang ada. Sebagai contoh, perhatikan contoh program di bawah ini dimana di dalamnya terdapat adanya konsep polimorfisme. ftinclude <iostream> class KARYAWAN { public : virtual void BekerjaO = Kode Program 13-7 Class PROGRAMMER: publ i C KARYAWAN { : rublic void Beker ja{) { cout«"bekerja dengan cara membuat program w \ ; "menggunakan komputer"; cout«endl; class GURU: public KARYAWAN { public : void Beker ja( ) { c out«" Beker j a dengan cara mengajar di depan kelas"; cout«endl ; // Mendeklarasikan pointer yang bertipe kelas KARYAWAN KARYAWAN *P; P = new PROGRAMMER; P->Bekerja(); delete P; // Menghapus pointer P Bab 13: Virtual dan Polimorfisme

17 // yang menunjuk ke tipe PROGRAMMER P = new GURU; P->Bekerja(); return 0; Apabila dijalankan, program di atas akan memberikan hasil seperti yang tampak di bawah ini. Bekerja dengan cara membuat program menggunakan komputer Bekerja dengan cara mengajar di depan kelas Coba Anda amati program di atas. Pada program tersebut kita hanya melakukan pendeklarasian pointer terhadap kelas KARYAWAN (yang merupakan kelas induk), namun kita dapat mengakses fungsi-fungsi yang terdapat di dalam kelas PROGRAMMER dan kelas GURU (yang merupakan kelas-kelas turunan). Perhatikan juga statemen srjao; Dengan menggunakan statemen tersebut, kita dapat mengungkap dua hal yang berbeda. Hal ini tentu tergantung dari nilai P yang ada pada waktu itu. Artinya, jika P sedang menunjuk ke tipe PROGRAMMER, maka statemen di atas akan mengakses fungsi Beker j a () yang terdapat pada kelas PROGRAMMER. Sebaliknya jika P menunjuk ke tipe GURU, maka yang akan diakses adalah fungsi Bekerja() yang terdapat dalam kelas GURU. Hal itulah yang menyebabkan statemen di atas dapat memberikan hasil yang berbeda. Konsep seperti inilah yang dinamakan dengan polimorfisme. BAGIAN III PEMROGRAMAN TINGKAT LANJUT Pemrograman

VIRTUAL & POLIMORFISME

VIRTUAL & POLIMORFISME VIRTUAL & POLIMORFISME 1. FUNGSI VIRTUAL ; class MANUSIA { char* nama; int tinggi; int berat; void SetNama(char* N) { nama = N; void SetTinggi(int T) { tinggi = T; void SetBerat(int B) { berat = B; char*

Lebih terperinci

TAMBAHAN MATERI BAB 15 BUKU DIKLAT PEMROGRAMAN KOMPUTER 2

TAMBAHAN MATERI BAB 15 BUKU DIKLAT PEMROGRAMAN KOMPUTER 2 TAMBAHAN MATERI BAB 15 BUKU DIKLAT PEMROGRAMAN KOMPUTER 2 1. Class Inheritance / Kelas Turunan / Pewarisan Sifat Objek Hak Akses pada kelas turunan: Apabila diturunkan Public dari kelas Induknya maka:

Lebih terperinci

Inheritance dan Polimorfisme

Inheritance dan Polimorfisme PEMROGRAMAN BERORIENTASI OBJEK Inheritance dan Polimorfisme Budhi Irawan, S.Si, M.T PENDAHULUAN Salah satu ciri dari PBO adalah kemampuan suatu objek atau kelas untuk mewariskan sifat-sifat yang terdapat

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA Hal 1 dari 8 A. KOMPETENSI 1. Memahami pengertian kelas dan objek 2. Mampu mendefinisikan kelas 3. Mampu mendeklarasikan objek 4. Memahami constructor dan destructor B. ALAT DAN BAHAN 1. PC/ Laptop 2.

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO

PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO PEMROGRAMAN BERORIENTASI OBJEK KONSEP PBO Budhi Irawan, S.Si, M.T 1 PENDAHULUAN Meskipun bahasa C adalah bahasa pemrograman yang berkekuatan tinggi (powerful) atau bisa digunakan untuk membuat program

Lebih terperinci

Pemrograman C++ BAGIAN II PEMROGRAMAN BERORIENTASI OBJEK

Pemrograman C++ BAGIAN II PEMROGRAMAN BERORIENTASI OBJEK BAGIAN II PEMROGRAMAN BERORIENTASI OBJEK BAB 10 KONSEP DASAR OOP 10.1 Pendahuluan Salah satu alasan Bjarne Stroustrup menciptakan bahasa C + + adalah untuk menambahkan kemampuan OOP (Object Oriented Programming)

Lebih terperinci

KELAS DAN OBJEK KELAS

KELAS DAN OBJEK KELAS KELAS DAN OBJEK KELAS Adalah bentuk penyederhanaan dari suatu permasalahan yang berkaitan dengan objek yang digunakan untuk merepresentasikan sebuah objek tertentu sehingga akan membantu dalam proses penyelesaian

Lebih terperinci

Inheritance dan Polimorfisme

Inheritance dan Polimorfisme PEMROGRAMAN BERORIENTASI OBJEK Inheritance dan Polimorfisme Budhi Irawan, S.Si, M.T PENDAHULUAN Apa itu Inheritance, Derived Class, dan Base class? Pasti untuk seorang yang baru mengenal bahasa pemrograman

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK OBJECT

PEMROGRAMAN BERORIENTASI OBJEK OBJECT PEMROGRAMAN BERORIENTASI OBJEK OBJECT Budhi Irawan, S.Si, M.T OBJEK SEBAGAI PARAMETER DALAM SEBUAH FUNGSI Dalam C++, objek dapat juga berperan sebagai parameter dalam pendefinisian sebuah fungsi. Objek

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS

PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS PEMROGRAMAN BERORIENTASI OBJEK STRUCTURE & CLASS Budhi Irawan, S.Si, M.T PENDAHULUAN Dalam C++, struktur dan kelas adalah dua hal yang sebenarnya saling memiliki hubungan, artinya dapat dibuat kelas dengan

Lebih terperinci

Pointer dan Referensi

Pointer dan Referensi PEMROGRAMAN BERORIENTASI OBJEK Pointer dan Referensi Budhi Irawan, S.Si, M.T PENDAHULUAN Pointer merupakan salah satu fitur C++ yang relatif cukup berbahaya karena dapat mengakibatkan sistem operasi pada

Lebih terperinci

Pertemuan 11 Object Oriented Program

Pertemuan 11 Object Oriented Program Pertemuan 11 Object Oriented Program OOP Pengertian OOP Pemrograman yang menitikberatkan kepada objek-objek (Seperti Pengiriman Nilai, Pesan atau Pernyataan Objek) untuk menyelesaikan tugas atau proses

Lebih terperinci

PEWARISAN D E W I S A R T I K A, M. K O M

PEWARISAN D E W I S A R T I K A, M. K O M PEWARISAN D E W I S A R T I K A, M. K O M PENDAHULUAN Pewarisan (inheritance) merupakan suatu hubungan antara dua buah kelas atau lebih, dimana ada kelas yang memiliki atribut dan method yang sama dengan

Lebih terperinci

Sebagai contoh misalnya akan dibuat kelas turunan Silinder dari kelas dasar Lingkaran, maka dapat dituliskan :

Sebagai contoh misalnya akan dibuat kelas turunan Silinder dari kelas dasar Lingkaran, maka dapat dituliskan : Chapter 7 Inheritance Pewarisan (Inheritance) Pemrograman Berorientasi Objek mempunyai fitur penting yang memudahkan pemrogram dalam membuat program yaitu pewarisan (inheritance). Aspek penting pewarisan

Lebih terperinci

Kurikulum Qt. Chapter 8 - Polymorphism. Polimorfisme. Problema Pewarisan Tunggal (Single Inheritance)

Kurikulum Qt. Chapter 8 - Polymorphism. Polimorfisme. Problema Pewarisan Tunggal (Single Inheritance) Chapter 8 - Polymorphism Polimorfisme Secara teknis polimorfisme merupakan suatu konsep untuk merelasikan diatara kelas-kelas C++ melalui overriding metode-metode virtual, sehingga dengan demikian satu

Lebih terperinci

STRUKTUR DENGAN ARRAY DAN FUNCTION

STRUKTUR DENGAN ARRAY DAN FUNCTION STRUKTUR Struktur digunakan untuk mengelompokan sejumlah data yang mempunyai tipe data yang berbeda. Variabel-variabel yang membentuk sebuah struktur dinamakan elemen struktur. DEKLARASI STRUKTUR STRUKTUR

Lebih terperinci

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari

ALGORITMA DAN PEMROGRAMAN 2. 3 SKS By : Sri Rezeki Candra Nursari ALGORITMA DAN PEMROGRAMAN 2 3 SKS By : Sri Rezeki Candra Nursari MATERI Teks/string Pointer File Struktur Kelas/Class Konstruktor dan Destruktor Kelas dan Obyek Overloading Operator Inheritance (Pewarisan)

Lebih terperinci

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs

Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs Pemrograman Berorientasi Objek / Object Oriented Programming / (OOP) Nur Hasanah, M.Cs Object Oriented Programming (OOP) adalah inti dari pemrograman Java. Dalam OOP, setiap objek didefinisikan sebagai

Lebih terperinci

PEMROGRAMAN BERORIENTASI OBJEK

PEMROGRAMAN BERORIENTASI OBJEK PEMROGRAMAN BERORIENTASI OBJEK Fungsi Budhi Irawan, S.Si, M.T 10/27/2017 9:12:31 AM 1 PENDAHULUAN Fungsi merupakan kumpulan statemen yang dikelompokan menjadi satu bagian kode (blok program) untuk menyelesaikan

Lebih terperinci

BAB 6 POINTER DAN REFERENCE

BAB 6 POINTER DAN REFERENCE BAB 6 POINTER DAN REFERENCE. 6.1 Pendahuluan Salah satu kelebihan dari bahasa C/C++ adalah karena bahasa ini mendukung sepenuhnya untuk pemanipulasian memori dengan menggunakan pointer. Namun di balik

Lebih terperinci

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O PERTEMUAN 2 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O PENGERTIAN Secara logika kelas dalam dunia pemrograman dapat kita bayangkan seperti halnya kelas-kelas yang ada pada sekolah dasar. Kelas digunakan untuk

Lebih terperinci

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id 1 MODUL PEMOGRAMAN WEB II Oleh: CHALIFA CHAZAR 2 MODUL 9 Kelas dan Objek Tujuan: Mahasiswa memahami penggunaan model pemograman berorintasi objek (OOP - Object Oriented Programming) untuk menyelesaikan

Lebih terperinci

BAB 14 OPERATOR OVERLOADING

BAB 14 OPERATOR OVERLOADING BAB 14 OPERATOR OVERLOADING 14.1 Pendahuluan Seperti halnya pada fungsi, C++ juga mengizinkan kita untuk melakukan overload terhadap operator. Ini berarti bahwa operator tersebut dapat kita gunakan sesuai

Lebih terperinci

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel

Kurikulum Qt. Chapter 5 Pointer dan References. Agenda. Apa itu Pointer? Memory Komputer. Mengambil Alamat Memory dari Variabel Chapter 5 Pointer dan References Agenda Pada chapter ini kita akan membahas beberapa topik yang berhubungan dengan pointer dan reference yaitu: Penggunaan Pointer. Pointer dan Array. Mengalokasikan memory

Lebih terperinci

Konsep Array dalam PBO

Konsep Array dalam PBO PEMROGRAMAN BERORIENTASI OBJEK Konsep Array dalam PBO Budhi Irawan, S.Si, M.T PENDAHULUAN Array (Larik) merupakan hal fundamental yang sering dijumpai dalam banyak kasus didunia pemrograman, maka dari

Lebih terperinci

Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP

Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP Praktikum Minggu VI 1 dan 2 Dasar-dasar Object Oriented Programming PHP 6.1. Tujuan Mahasiswa dapat membuat aplikasi web base dengan menggunakan pendekatan OOP. 6.2. Bahan 1. Dreamweaver 2. Browser 3.

Lebih terperinci

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013

Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013 Pemrograman Berorientasi Obyek (C++) Departemen Ilmu Komputer FMIPA IPB 2013 C++ C diambil sebagai landasan dari C++ Mendukung Pemrograman Berorientasi Obyek (PBO) Bersifat Reusability (kemudahan untuk

Lebih terperinci

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom E-Book PEMROGRAMAN BERORIENTASI OBJEK Disusun Oleh: Arfian Hidayat, S.Kom http://arfianhidayat.com FAKULTAS ILMU KOMPUTER UNIVERSITAS DIAN NUSWANTORO SEMARANG 2013 Daftar Isi Daftar Isi... i Daftar Gambar...

Lebih terperinci

Pewarisan Sifat Objek. Nur Hasanah, M.Cs

Pewarisan Sifat Objek. Nur Hasanah, M.Cs Pewarisan Sifat Objek Nur Hasanah, M.Cs Membuat Kelas Turunan (Subclass) Java menyediakan kata kunci extends yang digunakan untuk penurunan terhadap kelas. Dalam terminologi Java, kelas induk yang diturunkan

Lebih terperinci

Pemrograman Berorientasi. Abstract & Interface

Pemrograman Berorientasi. Abstract & Interface Pemrograman Berorientasi Obyek Abstract & Interface anton@ukdw.ac.id Latar Belakang Kita sudah mengenal pewarisan, bahwa class anak akan selalu mendapat warisan atribut dan behavior dari class induk Class

Lebih terperinci

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword

5/23/12. Inheritance. Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword Inheritance Topik Pengertian inheritance Deklarasi inheritance Single inheritance Multilevel inheritance Access Control super keyword 1 Pengertian Dasar Inheritance Inheritance (Pewarisan) merupakan salah

Lebih terperinci

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id

MODUL PEMOGRAMAN WEB II STMIK IM BANDUNG MODUL PEMOGRAMAN WEB II. Oleh: CHALIFA CHAZAR. Chalifa Chazar edu.script.id 1 MODUL PEMOGRAMAN WEB II Oleh: CHALIFA CHAZAR 2 MODUL 9 Kelas dan Objek Tujuan: Mahasiswa memahami penggunaan model pemograman berorintasi objek (OOP - Object Oriented Programming) untuk menyelesaikan

Lebih terperinci

Object Oriented Programming LOGO

Object Oriented Programming LOGO Object Oriented Programming LOGO Apa itu OOP? Dalam Bahasa Indonesia, OOP diterjemahkan sebagai pemrograman berarah atau berorientasi objek. Sebuah metodologi dalam pemrograman yang diciptakan untuk memodelkan

Lebih terperinci

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut:

KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut: KARAKTERISTIK PEMROGRAMAN BERORIENTASI OBJEK (OOP) Pemrograman berorientasi Objek mempunyai karakterisitik sebagai berikut: a. Abstraksi (abstraction) b. Pembungkusan (encapsulation) c. Pewarisan (inheritence)

Lebih terperinci

BAB VI OBYEK DAN KELAS

BAB VI OBYEK DAN KELAS BAB VI OBYEK DAN KELAS Dalam C dan bahasa pemrograman prosedural lainnya, pemrogramannya berorientasi kepada aksi, sedangkan pemrograman C++ cenderung berorientasi pada obyek. Disamping itu, unit program

Lebih terperinci

BAB VI OBYEK DAN KELAS

BAB VI OBYEK DAN KELAS BAB VI OBYEK DAN KELAS Dalam C dan bahasa pemrograman prosedural lainnya, pemrogramannya berorientasi kepada aksi, sedangkan pemrograman C++ cenderung berorientasi pada obyek. Disamping itu, unit program

Lebih terperinci

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016

TIM ASISTEN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN 2016 MODUL 5 FUNGSI DAN PROSEDUR A. TUJUAN Setelah menyelesaikan modul ini diharapkan mahasiswa akan mampu: 1. Mahasiswa mampu memahami fungsi dan prosedur. 2. Mahasiswa mampu mendeklarasikan dan mendefinisikan

Lebih terperinci

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK

E STRUKTUR DATA & E PRAKTIK STRUKTUR DATA. Pointer & Function. Alfa Faridh Suni, S.T., M.T. PTIK E3024015 - STRUKTUR DATA & E3024016 PRAKTIK STRUKTUR DATA Pointer & Function Alfa Faridh Suni, S.T., M.T. PTIK - 2014 Pointer Pointer adalah suatu variabel penunjuk, berisi nilai yang menunjuk alamat suatu

Lebih terperinci

Paradigma Pemrograman Berorientasi Objek

Paradigma Pemrograman Berorientasi Objek Paradigma Pemrograman Berorientasi Objek Oleh : Agus Priyanto, M.Kom Tujuan Pembelajaran Mengetahui konsep pemrograman berorientasi obyek Mengetahui perbedaan antara pemrograman berorientasi obyek dan

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION POINTER POINTER ADALAH SUATU VARIABEL PENUNJUK, BERISI NILAI YANG MENUNJUK ALAMAT SUATU LOKASI MEMORI TERTENTU. JADI POINTER TIDAK BERISI NILAI DATA, MELAINKAN

Lebih terperinci

Penggunaan Private dan Public dalam C++

Penggunaan Private dan Public dalam C++ Penggunaan Private dan Public dalam C++ Oleh: Rizka Reza Pahlevi Objek dalam C++ sering disebut dengan kelas. Kelas adalah sebuah wadah yang mengandung beberapa prosedur dan atau fungsi untuk memproses

Lebih terperinci

BAB X. Struct Dalam C++, kita dapat membuat sebuah tipe data baru. Maka penulisan variabel baru kita akan menjadi:

BAB X. Struct Dalam C++, kita dapat membuat sebuah tipe data baru. Maka penulisan variabel baru kita akan menjadi: Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut

Lebih terperinci

Inheritance dan Kata Kunci static

Inheritance dan Kata Kunci static Inheritance dan Kata Kunci static PEWARISAN (INHERITANCE) Salah satu fitur yang paling kuat dalam OOP adalah penggunaan kode kembali (code reuse). Sekali sebuah prosedur dibuat, maka kita bisa menggunakannya

Lebih terperinci

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut MI1274 Algoritma & Pemrograman Lanjut Genap 2015-2016 PEWARISAN Disusun Oleh: Reza Budiawan Untuk: Tim Dosen Algoritma & Pemrograman Lanjut Hanya dipergunakan untuk kepentingan pengajaran di lingkungan

Lebih terperinci

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LABSHEET ALGORITMA DAN STRUKTUR DATA Hal 1 dari 6 A. KOMPETENSI 1. Memahami pengertian pemrograman berorientasi objek 2. Memahami perbedaan pemrograman prosedural dan pemrograman berorientasi objek 3. Memahami karakteristik pemrograman berorientasi

Lebih terperinci

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom

MEMBUAT KELAS SENDIRI. Dewi Sartika, M.Kom MEMBUAT KELAS SENDIRI Dewi Sartika, M.Kom MENDEFINISIKAN KELAS SENDIRI class ...... DEKLARASI ATRIBUT [=]; Contoh Instance variable : private

Lebih terperinci

int fungsi_2() { int main() { fungsi_1(); fungsi_2(); return 0;

int fungsi_2() { int main() { fungsi_1(); fungsi_2(); return 0; Bab 6 Sub Rutin A. Pengertian Sub Rutin Suatu program komputer biasanya merupakan suatu sistem besar yang terdiri dari sub sistem - sub sistem yang mempunyai tugas sendiri-sendiri, saling bekerja sama

Lebih terperinci

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas

Pemograman Berorientasi Objek. Week 3 Abstrak dan Interface dalam suatu kelas Pemograman Berorientasi Objek c# Week 3 Abstrak dan Interface dalam suatu kelas Kompetensi Dasar Setelah mengikuti mata kuliah ini diharapkan mahasiswa memiliki kemampuan untuk: 1. Menguraikan konsep dasar

Lebih terperinci

Komentar, Identifier, Konstanta dan Variabel

Komentar, Identifier, Konstanta dan Variabel PEMROGRAMAN BERORIENTASI OBJEK Komentar, Identifier, Konstanta dan Variabel Budhi Irawan, S.Si, M.T KOMENTAR PROGRAM Dalam proses pengembangan sebuah program, pasti akan disibukan dengan penulisan kode-kode

Lebih terperinci

Inheritance (Pewarisan) Pengertian dasar inheritance

Inheritance (Pewarisan) Pengertian dasar inheritance Inheritance (Pewarisan) Pengertian dasar inheritance Inheritance (Pewarisan) merupakan salah satu dari tiga konsep dasar OOP. Konsep inheritance ini mengadopsi dunia riil dimana suatu entitas/obyek dapat

Lebih terperinci

Notasi Algoritma Separator Special Character Kesalahan pada program Yoannita

Notasi Algoritma Separator Special Character Kesalahan pada program Yoannita DASAR PEMROGRAMAN Notasi Algoritma Separator Special Character Kesalahan pada program Yoannita Algoritma Program mengandung suatu algoritma (method yang digunakan untuk menyelesaikan suatu permasalahan)

Lebih terperinci

MODUL VI OBJECT ORIENTED PROGRAMMING (OOP)

MODUL VI OBJECT ORIENTED PROGRAMMING (OOP) MODUL VI OBJECT ORIENTED PROGRAMMING (OOP) I. TUJUAN 1. Mahasiswa akan dapat membandingkan pemrograman terstruktur dengan pemrograman berorientasi objek dengan membuat program dalam bahasa C++ 2. Mahasiswa

Lebih terperinci

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA

Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA Satuan Acara Perkuliahan (SAP) UNIVERSITAS GUNADARMA Mata : Algoritma Pemrograman 2B ( C++ ) Program Studi : Teknik Komputerr Kompetensi : mampu membuat program dengan bahasa C++ Minggu Pokok Bahasan ke

Lebih terperinci

SL 1201 Materi tentang Fungsi

SL 1201 Materi tentang Fungsi SL 1201 Materi tentang Fungsi Program merupakan kumpulan dari fungsi-fungsi baik yang didefinisikan langsung maupun yang disimpan dalam file header. Dalam program C++ selalu terdapat fungsi utama yang

Lebih terperinci

Game Technology Design Course College of Multi Media Yogyakarta Spring Tri Anggraeni, S.Kom., M.Sc.

Game Technology Design Course College of Multi Media Yogyakarta Spring Tri Anggraeni, S.Kom., M.Sc. Meeting 12 & 13 Class, String, set & get Function Game Technology Design Course College of Multi Media Yogyakarta Spring 2016-2017 Tri Anggraeni, S.Kom., M.Sc. Reference : Deitel, P. & Deitel, H. (2014).

Lebih terperinci

Kurikulum Qt. { Basic OOP } Chapter 4. Function

Kurikulum Qt. { Basic OOP } Chapter 4. Function Kurikulum Qt { Basic OOP } Chapter 4 Function. Agenda Fungsi Konsep Dasar Fungsi Mendefinisikan Fungsi Deklarasi Fungsi (Prototype) Hasil Balik Fungsi Ruang Lingkup Variabel Variable Lokal Variable Global

Lebih terperinci

MINGGU VI : PBO (LANJUTAN)

MINGGU VI : PBO (LANJUTAN) MINGGU VI : PBO (LANJUTAN) Pertemuan minggi ini membahas topik tambahan dalam konsep PBO di C#. Topik tambahan tersebut meliputi kelas method dan properti statis, kelas Object, Automatic Property, Struct

Lebih terperinci

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut

Kisi-Kisi Ujian Akhir Semester Algoritma dan Pemrograman Lanjut Kisi-Kisi Ujian Akhir Semester 2015.2 Algoritma dan Pemrograman Lanjut A. Materi Ujian Tengah Semester 1. Array Array adalah kumpulan data yang bertipe sama yang menggunakan nama yang sama. Dengan menggunakan

Lebih terperinci

TUGAS RESUME C++ Dosen pembimbing : Taufiqurrahman. Di susun Oleh : Ahmad Faisal Akbar ( ) Ahmad Tarjianto ( )

TUGAS RESUME C++ Dosen pembimbing : Taufiqurrahman. Di susun Oleh : Ahmad Faisal Akbar ( ) Ahmad Tarjianto ( ) tarji_anto@tahoo.com TUGAS RESUME C++ Dosen pembimbing : Taufiqurrahman Di susun Oleh : Ahmad Faisal Akbar (08010829) Ahmad Tarjianto (08010836) SEKOLAH TINGGI TEKNOLOGI NURUL JADID PAITON-PROBOLINGGO

Lebih terperinci

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK

MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK MINGGU IV : PEMROGRAMAN BERORIENTASI OBJEK Pertemuan ini bertujuan untuk memperkenalkan konsep dasar pemrograman berorientasi objek. Bahasan pada pertemuan ini meliputi konsep dasar Pemrograman Berorientasi

Lebih terperinci

INHERITANCE. Oleh: Rasim ILKOM-FPMIPA-UPI

INHERITANCE. Oleh: Rasim ILKOM-FPMIPA-UPI INHERITANCE Oleh: Rasim ILKOM-FPMIPA-UPI Selayang oop Konsep-konsep yang berkaitan erat dengan pemrograman berorientasi objek adalah: objek, kelas, pewarisan (inheritance), polymorphism, dynamic binding

Lebih terperinci

MODUL V POINTER DAN STRING

MODUL V POINTER DAN STRING MODUL V POINTER DAN STRING I TUJUAN 1 Mahasiswa dapat menjelaskan tentang konsep dari variabel pointer 2 Mahasiswa dapat menjelaskan tentang pointer dan string 3 Mahasiswa dapat menjelaskan tentang pointer

Lebih terperinci

OBJECT ORIENTED PROGRAMMING DENGAN PHP. Janitra Panji

OBJECT ORIENTED PROGRAMMING DENGAN PHP. Janitra Panji OBJECT ORIENTED PROGRAMMING DENGAN PHP Janitra Panji Overview Class Properti / Atribut Method Visibilitas Member Object Constructor & Destructor Inheritance Definisi Class Class disusun berdasarkan karakteristik

Lebih terperinci

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation

Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation Praktikum 4 Konsep Inheritance, Polymorphism, dan Encapsulation Dosen : Ir. Nanang Syahroni M.Kom Pokok Bahasan Konsep pewarisan dan deklarasi pewarisan dalam bahasa Java Konsep polimospisme dan deklarasi

Lebih terperinci

Konsep Pemrograman Berbasis Obyek

Konsep Pemrograman Berbasis Obyek Konsep Pemrograman Berbasis Obyek Tujuan Pembelajaran Memahami konsep Pemrograman Berbasis Obyek atau Object Oriented Programming (OOP) Memahami perbedaan antara pemrograman OOP dengan pemrograman prosedural

Lebih terperinci

Notasi Algoritma Separator Special Character. Dasar Pemrograman. Yoannita, S.Kom.

Notasi Algoritma Separator Special Character. Dasar Pemrograman. Yoannita, S.Kom. Notasi Algoritma Separator Special Character Dasar Pemrograman. Algoritma Algoritma adalah: penyusunaan aspek proses logika dari suatu pemecahan masalah tanpa melihat karakteristik bahasa pemrograman yang

Lebih terperinci

PENGENALAN DAN PENERAPAN OOP PADA C++

PENGENALAN DAN PENERAPAN OOP PADA C++ PENGENALAN DAN PENERAPAN OOP PADA C++ A. Tujuan Praktikum 1. Dapat Membedakan Antara Class dan Object 2. Memahami fungsi Construction dan Destruction 3. Dapat melakukan operasi-operasi terhadap member

Lebih terperinci

Pemrograman Berbasis Objek (Polimorfisme)

Pemrograman Berbasis Objek (Polimorfisme) Pemrograman Berbasis Objek (Polimorfisme) Kelompok 9 : Irwan Nugraha (53412824) M. Furqon Rahawarin (54412958) Niken Annisa (55412313) Prasetyo Nugroho (55412692) BAB I PENDAHULUAN I.1 Latar belakang Dalam

Lebih terperinci

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN BAB 6 ABSTRACTION Disusun Oleh : NAMA : FARIDATUS SHOFIYAH NRP : 13.06.311.00112 KELOMPOK : C1 DOSEN PENGAMPU : MEDIKA RISNASARI, MT ASISTEN : AGUS PRIYONO Disetujui

Lebih terperinci

Mengenal Object Oriented Programming (OOP)

Mengenal Object Oriented Programming (OOP) Mengenal Object Oriented Programming (OOP) Dalam dunia pemrograman, terdapat istilah yang dikenal dengan Object- Oriented Programming (disingkat OOP). Tipe pemrograman ini adalah berbasis object. Maksudnya

Lebih terperinci

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno Pemrograman Lanjut Jurusan S1 Teknik Informatika 9/17/2012 Ratno Object Oriented Programming Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip

Lebih terperinci

Pemrograman Lanjut Review Class dan Object PTIIK

Pemrograman Lanjut Review Class dan Object PTIIK Pemrograman Lanjut Review Class dan Object PTIIK - 2013 Objectives Mengingat kembali tentang Class dan Object Class Class adalah template atau blueprint dari objectobject yang dibuat. Class mempunyai:

Lebih terperinci

OBJECT ORIENTED PROGRAMMINGS

OBJECT ORIENTED PROGRAMMINGS OOP bukanlah sebuah bahasa pemrograman melainkan sebuah cara untuk menjadikan program yang kita buat lebih modular karena suatu permasalahan akan dikumpulkan dalam suatu objek, yang selanjutnya akan disebut

Lebih terperinci

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK

BAB 1 PEMROGRAMAN BERORIENTASI OBJEK BAB 1 PEMROGRAMAN BERORIENTASI OBJEK Pemrograman berorientasi objek (Inggris: object-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan

Lebih terperinci

Kurikulum Qt. Chapter 4 Function. Fungsi

Kurikulum Qt. Chapter 4 Function. Fungsi Chapter 4 Function Fungsi Fungsi (Function) adalah sekumpulan program yang diberi nama, sehingga dengan demikain jika program itu diperlukan dapat dipanggil kembali. Walaupun Pemrograman Berorientasi Objek

Lebih terperinci

Pemrograman Berorientasi. Class dan Obyek 2

Pemrograman Berorientasi. Class dan Obyek 2 Pemrograman Berorientasi Obyek Class dan Obyek 2 anton@ukdw.ac.id Method main pada Java public static void main(string[] args) Merupakan bagian yang dieksekusi oleh program Java Sifat: public, static,

Lebih terperinci

Konsep Dasar Pemrograman Dan Pengenalan C++

Konsep Dasar Pemrograman Dan Pengenalan C++ PRAKTIKUM 1 DAN 2 Konsep Dasar Pemrograman Dan Pengenalan C++ I. KONSEP DASAR PEMROGRAMAN Program adalah deretan instruksi yang digunakan untuk mengendalikan komputer, sehingga komputer dapat melakukan

Lebih terperinci

Michael Lionardi

Michael Lionardi Memahami Konsep OOP dengan C++ lionardi@web.de Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan

Lebih terperinci

BAB VII PEWARISAN FUNGSI VIRTUAL

BAB VII PEWARISAN FUNGSI VIRTUAL BAB VII PEWARISAN Untuk mendapatkan subtipe dari suatu tipe, dapat digunakan mekanisme inheritansi atau pewarisan (inheritance). Sebagai contoh, kita dapat membuat IntArrayRC sebagai suatu subtipe dari

Lebih terperinci

INTERAKSI ANTAR OBJECT

INTERAKSI ANTAR OBJECT INTERAKSI ANTAR OBJECT Farah Zakiyah Rahmanti, M.T 2015 Overview Constructor Overloading Constructor Hak Akses (public, protected, private) Contoh Static Class Constructor (konstruktor) Constructor adalah

Lebih terperinci

Pemrograman Berorientasi. Inheritance

Pemrograman Berorientasi. Inheritance Pemrograman Berorientasi Obyek Inheritance anton@ukdw.ac.id Inheritance Silsilah Pohon Keluarga Relasi is-a Selain melakukan kategorisasi terhadap objek yang memiliki sekumpulan atribut dan perilaku yang

Lebih terperinci

Variabel Class. Pertemuan 5

Variabel Class. Pertemuan 5 Variabel Class Pertemuan 5 Outline Classes Implementing Member Functions Constructors Provided by Compiler Inline Implementation Classes with Other Classes as Member Data Deklarasi Class Untuk mendeklarasikan

Lebih terperinci

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI

LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI LAPORAN RESMI PRAKTIKUM PEMROGRAMAN BERBASIS OBJEK MODUL 3 ABSTRAKSI Disusun Oleh : TANGGAL PRAKTIKUM : 02 NOVEMBER 2015 NAMA : IMAM HASAN NRP : 140411100099 KELOMPOK : D 2 DOSEN PENGAMPU : HERMAWAN, S.T.,

Lebih terperinci

BAB VII PEWARISAN. Dengan demikian, kesalahan indeks dalam program berikut akan terdeteksi:

BAB VII PEWARISAN. Dengan demikian, kesalahan indeks dalam program berikut akan terdeteksi: BAB VII PEWARISAN Untuk mendapatkan subtipe dari suatu tipe, dapat digunakan mekanisme inheritansi atau pewarisan (inheritance). Sebagai contoh, kita dapat membuat IntArrayRC sebagai suatu subtipe dari

Lebih terperinci

PEMBUATAN APLIKASI PERHITUNGAN TRANSAKSI DENGAN JAVA

PEMBUATAN APLIKASI PERHITUNGAN TRANSAKSI DENGAN JAVA PEMBUATAN APLIKASI PERHITUNGAN TRANSAKSI DENGAN JAVA Disusun untuk memenuhi tugas matakuliah Pemrogramam Visual III Disusun Oleh : Nama : Lies Gandhi Yuniarti NPM : 1142205 Jurusan : Teknik Informatika

Lebih terperinci

Dasar Pemrograman Java. H. Risdiandri Iskandar, SKom,MM 1

Dasar Pemrograman Java. H. Risdiandri Iskandar, SKom,MM 1 Dasar Pemrograman Java H. Risdiandri Iskandar, SKom,MM 1 Perbedaan Java dengan C++ Java dirancang untuk menjadi bahasa yang sederhana, meminimalkan kesalahan, namun tangguh. Suatu aplikasi Java ditulis

Lebih terperinci

Bab 8. Dasar-Dasar OOP

Bab 8. Dasar-Dasar OOP Bab 8. Dasar-Dasar OOP Pemrograman Berorientasi Obyek Politeknik Elektronika Negeri Surabaya 2007 Overview Introduction Encapsulation Information Hiding Interface to access data Constructor Overloading

Lebih terperinci

MODUL MATA KULIAH PEMROGRAMAN KOMPUTER

MODUL MATA KULIAH PEMROGRAMAN KOMPUTER MODUL MATA KULIAH PEMROGRAMAN KOMPUTER JURUSAN PENDIDIKAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA 2006 MODUL KULIAH PEMROGRAMAN KOMPUTER DAFTAR ISI BAB 1. PENDAHULUAN BAHASA C++ 1.1

Lebih terperinci

Bahasa Pemrograman 2.

Bahasa Pemrograman 2. Bahasa Pemrograman 2 Abstract & Interface anton@ukdw.ac.id Abstract t Class [1] Saat kita membuat sebuah superclass, kita tahu bahwa kita dapat menurunkan semua metode yang dimilikinya pada class anaknya.

Lebih terperinci

MODUL 3 PEWARISAN TUJUAN DASAR TEORI

MODUL 3 PEWARISAN TUJUAN DASAR TEORI MODUL 3 PEWARISAN TUJUAN Setelah menyelesaikan modul ini, praktikan dapat: Memahami pewarisan tunggal dan jamak dalam pemrograman java. Mampu mengimplementasikan pewarisan tunggal dalam bahasa pemrograman

Lebih terperinci

PEWARISAN SIFAT OBYEK

PEWARISAN SIFAT OBYEK PEWARISAN SIFAT OBYEK MUH. IZZUDDIN MAHALI, M.CS. 1 MEMBUAT KELAS TURUNAN (SUBCLASS) JAVA MENYEDIAKAN KATA KUNCI EXTENDS YANG DIGUNAKAN UNTUK PENURUNAN TERHADAP KELAS. DALAM TERMINOLOGI JAVA, KELAS INDUK

Lebih terperinci

Fungsi 1. Ekohariadi FT Unesa

Fungsi 1. Ekohariadi FT Unesa Fungsi 1 Ekohariadi FT Unesa Fungsi Pustaka Standar Pustaka C Standar merupakan kumpulan fungsi yang sudah ditentukan yang diases melalui file header. Fungsi matematika yang umum didefinisikan di header

Lebih terperinci

Modul 4: Lebih Dalam lagi tentang Class, Objek dan Method

Modul 4: Lebih Dalam lagi tentang Class, Objek dan Method Modul 4: Lebih Dalam lagi tentang Class, Objek dan Method Setelah mengikuti mata kuliah ini mahasiswa dapat memperdalam lagi bagaimana mendefinisikan class, membuat objek, mendefinisikan method 1 Pengantar

Lebih terperinci

Pewarisan atau Inheritance

Pewarisan atau Inheritance Pewarisan atau Inheritance Oleh : Agus Priyanto, M.Kom Tujuan Kuliah Mengerti tentang pewarisan Mengerti gagasan tentang kelas dasar dan kelas turunan Mampu membuat kelas baru dari kelas yang sudah ada

Lebih terperinci

PERTEMUAN 3 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O

PERTEMUAN 3 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O PERTEMUAN 3 PEMOGRAMAN BERORIENTASI OBJEK L/O/G/O Pengertian Pewarisan (Inheritance) yaitu Hubungan dua buah kelas atau lebih dimana ada kelas yang memiliki atribut dan metode yang sama dengan kelas lain

Lebih terperinci

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING A. TUJUAN 1. Konstruktor 2. Overloading terhadap konstruktor 3. Overloading pada metode B. DASAR TEORI Deklarasi contructor (konstruktor) Contructor (konstruktor)

Lebih terperinci

Pengenalan Polimorfisme Implementasi Polimorfisme

Pengenalan Polimorfisme Implementasi Polimorfisme POLIMORFISME Topik Pengenalan Polimorfisme Implementasi Polimorfisme Virtual Method Invocation Hetegoneous Collection Polimorphic Arguments Instance of Operator Object Conversion (Casting Object) PENGENALAN

Lebih terperinci

BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT

BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT BAB II TEORI DAN KONSEP PEMROGRAMAN BERBASIS OBJECT 2.1 Kompetensi Dasar Kompetensi dasar secara umum dalam materi ini adalah agar mahasiswa dapat mendeskripsikan penggunaan konsep pemrograman berbasis

Lebih terperinci

FENOMENA ALAM DI DALAM DIMENSI PEMBUATAN PROGRAM DENGAN MENGGUNAKAN OBJECT ORIENTED PROGRAMMING

FENOMENA ALAM DI DALAM DIMENSI PEMBUATAN PROGRAM DENGAN MENGGUNAKAN OBJECT ORIENTED PROGRAMMING FENOMENA ALAM DI DALAM DIMENSI PEMBUATAN PROGRAM DENGAN MENGGUNAKAN OBJECT ORIENTED PROGRAMMING Ditdit N. Utama Dosen FASILKOM - UIEU ditdit.nugraha@indonusa.ac.id Abstrak Empat era pengembangan program

Lebih terperinci

Array (Larik) Modul 7

Array (Larik) Modul 7 Array (Larik) Modul 7 Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu, elemen-elemen array tersusun secara

Lebih terperinci