Class Object
Class Object
A. Class
Class adalah suatu frame yang merupakan definisi yang memuat data dan metod pengolah data. Menurut Wikipedia Class adalah kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya. Class juga dapat diartikan sebagai tempat untuk membuat obyek. Di dalam class dideklarasikan variable dan method yang dimiliki oleh obyek. Proses pembuatan obyek dari sebuah class disebut dengan instantiation. Jadi obyek merupakan hasil instansiasi dari class. Obyek disebut juga dengan instance. Class memiliki anggota yang disebut Anggota Class (class member). Anggota Class terdiri dari : Atribut adalah Berbagai variable yang mengitari class, dengan nilai datanya bisa ditentukan di object. Method implementasi dari bagaimana bekerjanya sebuah class.
Tiap anggota class memiliki kontrol pengaksesan tersendiri, artinya apakah anggota tersebut dapat diakses dengan bebas (tipe public) atau hanya dapat diakses melalui sebuah interface. Class adalah tipe data baru seperti halnya struct yang merupakan representasi sebuah objek yang nantinya sangat berguna dalam OOP (Object Oriented Programming). Seperti halnya object, class juga memiliki properties (bagian-bagian) dan method (metode yang digunakan untuk mengubah properties tertentu). Namun representasinya dalam class properties-nya sendiri dibuat bertipe data primitif(char, int, float, double, bool, maupun enum), sedangkan methodnya berupa fungsi yang digunakan untuk merubah properties object itu sendiri. Class hampir sama dengan struct, bedanya jika stuct semua elemennya bisa diakses langsung dari fungsi main(), class tidak, karena tipe pengaksesan elemen class atau yang sering disebut access modifier ada beberapa macam, antara lain public, private dan protected. Dalam class elemen yang dapat diakses langsung dari fungsi main() adalah elemen public. Sedangkan protected hanya bisa diakses dari derivate(turunan class) yaitu class yang lebih spesific dari class utama yang memiliki ciri khas tertentu namun masih memiliki beberapa sifat yang ada pada class
1
utama. Misalnya class utama merepresentasikan object kue, class derivate-nya mungkin merepresentasikan object donat, bolu atau jenis kue yang lainnya. Dalam class, ada 2 bagian yang harus selalu ada : 1. Constructor Constructor berfungsi membuat objek. Melalui constructor properties object diset dengan nilai tertentu. Jika properties berupa array atau pointer atau reference, melalui constructor, properties tersebut diberi alokasi memory sesuai yang dibutuhkan. Nama constructor selalu sama dengan nama class. 2. Destructor Destructor berfungsi menghilangkan(destroy) objek. Jika properties berupa array atau pointer atau reference, melalui constructor, alokasi memory properties tersebut dihapus/dibebaskan.
B. Object
Sebuah objek adalah sesuatu yang mempunyai keadaan, kelakuan dan identitas. Keadaan dari objek adalah satu dari kondisi yang memungkinkan dimana objek dapat muncul, dan dapat secara normal berubah berdasarkan waktu. Keadaan dari objek biasanya diimplementasikan dengan kelompok propertinya (disebut atribut), berisi nilai dari properti tersebut, ditambah keterhubungan objek yang mungkin dengan objek lainnya. Kelakuan menentukan bagaimana sebuah objek beraksi dan bereaksi terhadap permintaan dari objek lainnya. Direpresentasikan dengan kelompok pesan yang direspon oleh objek (operasi yang dilakukan oleh objek). Kelakuan dari objek mendeskripsikan segala sesuatu yang dapat kita lakukan terhadap objek tersebut dan segala sesuatu yang dapat dilakukan oleh objek untuk kita. Dan menurut Wikipedia Object adalah membungkus data dan fungsi bersama menjadi suatu unit dalam sebuah program komputer, objek merupakan dasar dari modularitas dan struktur dalam sebuah program komputer berorientasi objek. Objek merepresentasikan sebuah entitas, baik secara fisik, konsep ataupun secara perangkat lunak. Definisi yang formal dari objek adalah sebuah konsep, abstraksi atau sesuatu yang diberi batasan jelas dalam hal ini dimaksudkan untuk sebuah aplikasi. Objek merupakan instance (wujud nyata) dari Class. Perilaku dari dua buah Objek yang bertipe sama dapat dibedakan dari Property yang dimilikinya; artinya, Setiap objek mempunyai identitas yang unik. Identitas yang unik ini membuat kita dapat membedakan dua objek yang berdeda, walaupun kedua objek tersebut mempunyai keadaan dan nilai yang sama pada atributnya.
Elemen Object Setiap object memiliki suatu keadaan (state) dan behaviour yang dapat mengubah state tersebut. Sebagai contoh, manusia memiliki state: umur, tinggi, berat badan, dan sebagainya. Demikian pula behaviour yang dimiliki oleh manusia dapat berupa: makan, tidur, bekerja, menua, dan sebagainya. Behaviour ini dapat mengubah atau tidak sama sekali state yang dimiliki oleh suatu objek, baik secara langsung maupun tidak langsung. Secara sederhanan, state dapat dianggap sebagai suatu kata benda karena sifatnya yang pasif, karena state tidak melakukan operasi, tetapi justru kepadanya dilakukan suatu operasi. Demikian juga untuk behaviour, dapat dianggap sebagai kata kerja karena behaviour berfungsi untuk melakukan operasi, bertindak atau mengerjakan sesuatu. Dalam implementasi pemrograman berorientasi objek, state akan lebih dikenal dengan nama properties atau field, sedangkan behaviour akan dikenal dengan nama method. Siklus Hidup Object Objek mengalami Siklus kehidupan yang disebut siklus hidup objek (object life cycle), yaitu objek setelah dedeklarasikan akan mengalami penciptaan, penggunaan, dan penghancuran/pemusnahan. (Constructor & Destructor).
Bagian II CONTOH CODING CLASS DAN OBJECT PADA C++ DAN JAVA
A. CLASS DAN OBJECT PADA C++ Contoh 1:
class CKotak { public: double m_panjang; double m_lebar; double m_tinggi; };
// panjang dari suatu kotak // lebar dari suatu kotak // tinggi dari suatu kotak
void main() { CKotak kotak1; // deklarasikan kotak pertama CKotak kotak2; // deklarasikan kotak kedua //simpan hasil perhitungan luasan permukaan kotak double Luas_Kotak = 0.0; //simpan hasil perhitungan volume kotak double Volume_Kotak = 0.0; //definisikan dimensi masing-masing kotak kotak1.m_panjang = 15.0; kotak1.m_lebar = 12.0; kotak1.m_tinggi = 6.0; kotak2.m_panjang = 20.0; kotak2.m_lebar = 10.0; kotak2.m_tinggi = 5.0; //hitung luas permukaan kotak1 Luas_Kotak = 2*(kotak1.m_panjang * kotak1.m_lebar) + 2*(kotak1.m_panjang * kotak1.m_tinggi) + 2 * (kotak1.m_lebar * kotak1.m_tinggi); //hitung volume kotak2 Volume_Kotak = kotak2.m_panjang * kotak2.m_lebar * kotak2.m_tinggi; cout << endl << Luas Permukaan kotak1 = << Luas_Kotak; cout << endl << Volume kotak2 = << Volume_Kotak; cout << << << << endl Suatu objek dari CKotak akan menempati memori sebesar: sizeof kotak1 << bytes endl;
return;
Contoh 2:
#include<iostream.h> #include<string.h> #include<ctype.h> class biodata { private : char nama[50]; int umur; public : biodata() { strcpy(nama,"no name"); umur=0; } void setNama(char nama[]); void setUmur(int umur); char* getNama() { return nama; } int getUmur() { return umur; } ~biodata(){} }; void biodata::setNama(char nama[]) { strcpy(this->nama,nama); } void biodata::setUmur(int umur) { this->umur=umur; } void menu() { cout << "1. Masukkan Nama" << endl; cout << "2. Masukkan Umur" << endl; cout << "3. Tampilkan Biodata" << endl; cout << "4. Exit" << endl; cout << "Masukkan Pilihan : "; } void clrscr() { for(int i=0;i<25;i++) { cout << endl; } } int cekhuruf(char nama[50]) {
for(int i=0;i<strlen(nama);i++) { if(isdigit(nama[i])) { return 1; } } return 0; } void tampil(biodata &obj) { cout << "Nama Anda : " << obj.getNama() << endl; cout << "Umur Anda : " << obj.getUmur() << endl; } void main() { int tekan; char nama[50]; int umur; biodata obj; do { menu(); tekan=cin.get(); cin.sync();cin.clear(); switch(tekan) { case '1' : clrscr(); do { cout << "Masukkan Nama [5..50 char] :"; cin.getline(nama,20); cin.sync();cin.clear(); } while(strlen(nama)<5 ||strlen(nama) >50 || cekhuruf(nama)); obj.setNama(nama); cin.get(); clrscr(); break; case '2' : do clrscr(); { cout << "Masukkan umur [1..100]:"; cin >> umur ; cin.sync();cin.clear(); } while(umur<1 || umur>100); obj.setUmur(umur); cin.get();
clrscr(); break; case '3' : clrscr(); tampil(obj); cin.get(); clrscr(); break; } } while(tekan!='4'); cin.get(); cin.get(); }
{ String String String String public { nip=109392408; nama=Andi Malarangeng; alamat=Brebes; gaji=3.000.000; void tampilbiodata() System.out.println(NIP : +nip); System.out.println(Nama : +nama); System.out.println(Alamat : +alamat); System.out.println(Gaji : +gaji); } }
Contoh 2:
public class Kucing{ /* attributes * mendeklarasikan atribut (variable) yang dimiliki kucing */ String nama; String warna; String suara; /* methods * mendeklarasikan tingkah laku (method) yang dimiliki kucing */ public void makan(){ System.out.println("kucing bernama "+nama+" yang berwarna "+warna+" sedang makan"); } public void tidur(){ System.out.println("kucing bernama "+nama+" yang berwarna "+warna+" sedang tidur"); } public void mengeong(){ System.out.println("kucing bernama "+nama+" yang berwarna "+warna+" bersuara "+suara); } /* *memulai method main atau fungsi utama */ public static void main (String[] args) { //membuat object kucingku dan kucingmu bertipe class Kucing Kucing kucingku = new Kucing(); Kucing kucingmu = new Kucing(); //mengisikan value ke dalam attribut kucingku.nama="mocin"; kucingku.warna="putih"; kucingku.suara="meoong"; kucingmu.nama="karin"; kucingmu.warna="hitam"; kucingmu.suara="miauuw"; //memanggil method dari object kucingku.makan();
10