11 CLASS 10.1 KELAS DAN STRUKTUR Kelas merupakan struktur data dari objek. Untuk menjelaskan tentang kelas, akan kita bandingkan bentuk antara struktur dan kelas. Suatu kelas (class) merupakan suatu metode logis untuk mengorganisasikan data dan fungsi di dalam struktur yang sama. Suatu kelas tidak terlepas dari pada suatu objek. Objek merupakan penerjemahan dari subgroup-subgroup sehingga menjadi unit-unit. Suatu objek di dalam c++ merupakan suatu kode program untuk memanipulasi data. Pendeklarasian suatu kelas hampir sama dengan pendeklarasian suatu structure, yaitu sebagai berikut: Bentuk Umum : class nama_class Data elemen_class ; Data elemen_class ;... Public : Data elemen_class ; Data elemen_class ;.. nama_object; BENTUK KELAS class nama_class private : anggota_data; STRUKTUR struct nama_struct anggota_data; ;
public : ; fungsi_anggota; Terlihat perbedaan antara kelas dan struktur, yaitu : PERBEDAAN KELAS Terdapat anggota data dan fungsi anggota. Anggota data biasanya berupa variabel dan fungsi anggota biasanya berupa fungsi. Terdapat kata-kata kunci private dan public yang menentukan hak akses bagi anggota-anggota di dalam kelas. Private dapat digunakan di dalam kelas untuk memproteksi anggotaanggota tertentu dari kelas, agar tidak dapat diakses dari luar kelas secara langsung. Private merupakan default dari kelas. Public mengizinkan anggota-anggota yang berada didalamnya bebas di akses dari luar kelas STRUKTUR Hanya terdapat anggota data Hak akses pada struktur sama seperti hak akses public pada kelas Contoh deklarasi: Nama Class Class motor char merk [50] ; char jenis [35] ; float harga ; int stok ; ] ;
motor sport ; Pendefinisikan Object Pernyataan diatas digunakan untuk mendefinisikan variable bernama sport. Pada C++ variable seperti sport berkedudukan sebagai variable kelas yang disebut dengan objek. Pada sebuah kelas, item-item di dalamnya bisa bersifat private atau public. Secara default, semua item di dalam kelas bersifat private. Jadi tanpa menuliskan kata kunci private, semua item di dalam teks sudah private. 10.2 KELAS SECARA UMUM Konsep penggabungan data dan fungsi seperti diatas disebut encapsulasi, yang diterapkan dalam C++ dengan tipe turunan. Contoh Kelas : 1. Fungsi didefinisikan di dalam kelas #include <string.h> class penduduk private: int id; char nama[80]; public: void tampilkan(void) cout<< No. KTP : <<id<<endl; cout<< Nama : <<nama<<endl; void set(int idn, char *n) id = idn;
; strcpy(nama,n); void main() penduduk saya; saya.set(1234, Andi ); saya.tampilkan(); 2. Fungsi anggota didefinisikan diluar kelas #include <string.h> class penduduk private: int id; char nama[80]; public: void tampilkan(); void set(int idn, char *n); ; void main() penduduk saya; saya.set(1234, Andi ); saya.tampilkan(); void penduduk :: tampilkan(void) cout<< No. KTP : <<id<<endl;
cout<< Nama : <<nama<<endl; void penduduk :: set(int idn, char *n) id = idn; strcpy(nama,n); Keluaran kedua contoh diatas sama saja, yaitu : No. KTP : 1234 Nama : Andi Penjelasan : Saya merupakan objek dari class penduduk. Pada contoh 2 fungsi didefinisikan diluar, oleh karena itu pada pendefinisian fungsi harus memiliki bentuk : tipe_return_fungsi nama_kelas :: nama_fungsi (parameter) Hal ini untuk memberitahu kompiler bahwa fungsi tersebut merupakan anggota dari kelas nama_kelas. Simbol ( :: ) merupakan operator resolusi lingkup. 10.3 PEMAKAIAN CLASS Pemakaian Class dapat digunakan dengan modifikasi bersama array dan fungsi. a. Publik pada Kelas Publik (public) menyatakan bahwa deklarasi variable atau item-item yang ada di dalam kelas dapat diakses dari luar kelas. Contoh program class : #include <conio.h> main() class kereta
public: int no, jum; char nama[10],jur[15],kls[10]; float hrg,jumbay; ; clrscr(); kereta train; cout<<"nomor Kereta : "; cin>>train.no; cout<<"nama Kereta : "; cin>>train.nama; cout<<"kota Tujuan : "; cin>>train.jur; cout<<"kelas Kereta : "; cin>>train.kls; cout<<"harga Tiket : "; cin>>train.hrg; cout<<"jumlah Penumpang : "; cin>>train.jum; train.jumbay=train.hrg*train.jum; clrscr(); cout<<"nomor kereta : "<<train.no<<endl; cout<<"nama kereta : "<<train.nama<<endl; cout<<"kota tujuan : "<<train.jur<<endl; cout<<"kelas kereta : "<<train.kls<<endl; cout<<"harga tiket : "<<train.hrg<<endl; cout<<"jumlah Bayar : "<<train.jumbay<<endl; return 0; b. Class dan Array Contoh program class dengan array : #include <conio.h> class krj public: int nik; char nama[20]; int jam; ;
main() krj pgw[10]; int n,i; cout<<"jumlah Data : "; cin>>n; for(i=1;i<=n;i++) cout<<"=========================="<<endl; cout<<"program Hitung Lembur Karyawan"<<endl; cout<<"=========================="<<endl; cout<<"data ke : "<<i<<endl; cout<<"nik : "; cin>>pgw[i].nik; cout<<"nama : "; cin>>pgw[i].nama; cout<<"jumlah Jam lembur : "; cin>>pgw[i].jam; cout<<"=========================="<<endl; return 0; c. Class dan Fungsi Contoh program class dan fungsi : #include <conio.h> #include <string.h> main() char ket[15]; float nilai; class mhs public: char nim[8],nama[20]; ; clrscr();
mhs umb; cout<<"masukkan nim : "; cin>>umb.nim; cout<<"masukkan nama : "; cin>>umb.nama; cout<<"masukkan nilai : "; cin>>nilai; if(nilai>65) strcpy(ket,"lulus"); else strcpy(ket,"tidak lulus"); clrscr(); cout<<"nim anda : "<<umb.nim<<endl; cout<<"nama anda : "<<umb.nama<<endl; cout<<"nilai anda : "<<nilai<<endl; cout<<"anda dinyatakan : "<<ket<<endl; return 0; Latihan: 1. Buatlah program dengan menggunakan kelas dengan fungsi yang di definisikan di dalam kelas, dengan tampilan sebagai berikut: NIM : 1234 Nama : Andi Jurusan :Teknik Informatika Alamat : Meruya Selatan 2. Buatlah program dengan menggunakan kelas dengan fungsi yang di definisikan di luar kelas, dengan tampilan sebagai berikut: Merek : Honda GL Pro Tahun : 2007 No Polisi : B1669OK Warna : Hitam