Anda di halaman 1dari 9

DEPARTEMEN PENDIDIKAN NASIONAL

LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS ANDALAS

MODUL IV
Struct dan Object Oriented Programming

I. Tujuan
• Praktikan dapat memahami konsep struct, classs, constructor, destructor, inheritance,
dan polimorfisme.
• Praktikan dapat mengerti perbedaan class tipe public, private, dan protected dan cara
penggunaannya.
• Praktikan dapat mengimplementasikan struct, classs, constructor, destructor,
inheritance, dan polimorfisme dalam memecahkan masalah.

II. Teori
1. Struct
Struct merupakan keyword yang memungkinkan untuk membuat sebuah
deklarasi untuk membuat pengelompokan variabel dengan tipe data yang
berbeda. Berikut merupakan cara untuk mendeklarasikan struct.
Struct nama_struct {
tipe_data variabel_1;
tipe_data variabel_2;
...
tipe_data variabel_n;
}nama_objek;
Suatu struct harus diawali oleh keyword struct dan diikuti oleh nama struct.
nama_objek merupakan deklarasi yang menggunakan struct tersebut menjadi
tipe data. Pada suatu program dapat mendirikan banyak objek yang dipisahkan
dengan tanda koma. Objek diletakkan setelah penutup block dan sebelum
semicolon.
#include<iostream>
using namespace std;
struct mahasiswa{
int nim;
string nama;
float nilai;
};
DEPARTEMEN PENDIDIKAN NASIONAL
LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS ANDALAS

int main(){
mahasiswa rudi, rizky; //deklerasi object di luar struct

rudi.nim = 2110953017;
rudi.nama = "Rudi Kurnia";
rudi.nilai = 90.3;

rizky.nim = 2110951025;
rizky.nama = "Rizky Pratama";
rizky.nilai = 75.4;

cout<<rudi.nama<<" ("<<rudi.nim<<") mendapatkan nilai


"<<rudi.nilai<<endl;
cout<<rizky.nama<<" ("<<rizky.nim<<") mendapatkan nilai
"<<rizky.nilai<<endl;
return 0;
}

Objek dapat dideklarasikan di luar struct dengan menuliskan nama struct


disusul dengan nama objek. Variabel pada struct dapat dipanggil dengan
menggunakan tanda titik diantara nama objek dengan nama variabel.
2. Class
Class merupakan suatu struktur data yang dapat beranggotakan suatu data dan
fungsi. Class sering digunakan sebagai pendukung program berorientasi objek.
Suatu class dibuat dengan menggunakan keyword class, yang memiliki tujuan
yang mirip dengan struct namun class memungkinkan untuk memiliki anggota
selain data. Berikut merupakan cara untuk mendeklarasikan class.
class nama_class {
permission_label1:
member1;
permission_label2:
member2;
...
permission_label3:
member3;
}nama_objek;
DEPARTEMEN PENDIDIKAN NASIONAL
LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS ANDALAS

Member pada class dapat berupa suatu deklarasi data atau sebuah fungsi.
Permission_label dapat berupa salah satu dari private, public, dan protected.
Contoh:
#include<iostream>
using namespace std;

class mahasiswa{
private:
int nim;
string nama;
float nilai;
public:
void printData(){
cout<<"Nama\t: "<<nama<<endl;
cout<<"NIM\t: "<<nim<<endl;
cout<<"nilai\t: "<<nilai<<endl;
}
}anton;

3. Enkapsulasi
Enkapsulasi merupakan cara pembungkusan suatu data atau fungsi yang
menyusun suatu class dan sebagai cara untuk menyembunyikan informasi detail
dari suatu class dalam OOP. Enkapsulasi penting untuk keamanan serta
menghindari kesalahan pada program, pembungkus ini bertujuan untuk
menjaga anggotanya supaya tidak dapat diakses secara sembarang oleh
program lain. Terdapat 3 jenis enkapsulasi yaitu private, protected, dan public.
3.1 Private
Merupakan suatu permission label yang membatasi anggota member hanya
dapat diakses oleh class itu sendiri atau class friend. Jenis ini merupakan
enkapsulasi yang paling ketat.
3.2 Protected
Merupakan suatu permission label yang hanya dapat diakses oleh class itu
sendiri, class friend, dan class turunannya. Suatu class dapat dibuat
berdasarkan class lainnya. Class turunan akan mewarisi sifat-sifat dari kelas
dasarnya. Class turunan dapat mengakses anggota class utamanya jika
menggunakan hak ases terproteksi.
DEPARTEMEN PENDIDIKAN NASIONAL
LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS ANDALAS

3.3 Public
Merupakan permission label yang dapat diakses oleh class apapun, fungsi
utama, dan fungsi lain. Jika suatu classi ingin diakses oleh fungsi utama
maka class tersebut harus memiliki hak akses public.
4. Constructors dan Destructor
Konstruktor biasanya digunakan untuk menginisiasi variabel atau memori
dinamis saat sebuah objek dibuat. Suatu konstruktor dibuat dengan
menggunakan nama yang sama dengan nama classnya. Konstruktor secara
otomatis akan dijalankan saat suatu objek dibuat.
Destruktor merupakan kebalikan dari konstruktor. Destruktor akan dipanggil
ketika program telah selesai dijalankan. Suatu destruktor dibuat dengan nama
yang sama dengan class namun diawali oleh tanda tilde(~).
Contoh
#include<iostream>
using namespace std;

class mahasiswa{
private:
int nim;
string nama;
float nilai;
public:
mahasiswa(); //konstruktor
~mahasiswa(); //destruktor
void printData();
}anton;

5. Inheritance
Inheritance merupakan suatu subclass dari class utam dan mewarisi member-
member dari class utama. Inheritace digunakan untuk menghindari terjadinya
duplikasi pada suatu program.
Pada suatu inheritance terdapat istilah class induk dan class anak. Class anak
akan mewarisi sifat-sifat atau fungsi-fungsi dari kelas induk, namun dengan
batasan tertentu. Selain mewarisi, class anak juga dapat menambahkan
membernya sendiri. Inheritance memiliki bentuk umum sebagai berikut.
class nama_class_anak : penentu_warisan nama_class_induk
DEPARTEMEN PENDIDIKAN NASIONAL
LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS ANDALAS

ketentuan pewarisan sebagai berikut.


Penentu warisan Hak akses pada class Hak akses baru di class
induk anak
private Private Tidak diwariskan
Protected Private
Public Private
protected Private Tidak diwariskan
Protected Protected
Public Protected
public Private Tidak diwariskan
Protected Protected
Public Public
Penentu warisan berpengaruh untuk menentukan hak akses dari member induk.
Jika penentu berupa private maka hak akses protected dan public akan menjadi
private pada class anak. Jika protected, maka hak akses public akan berubah
menjadi protected. Jika Public, maka hak ases akan tetap sama seperti class
induk.
Contoh:
#include<iostream>
using namespace std;

class induk {
protected:
int panjang, lebar;
public:
void input(float p, float l);
};

void induk :: input(float p, float l){


panjang = p;
lebar = l;
}

class anak:public induk{


public:
float luas(){
DEPARTEMEN PENDIDIKAN NASIONAL
LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS ANDALAS

return panjang*lebar;
}
};

int main(){
anak persegi_panjang;
persegi_panjang.input(4,3);
cout<<persegi_panjang.luas();
return 0;
}

6. Polimorfisme
Polimorfime merupakan suatu konsep sesuatu yang sama dapat memilii sifat
dan perilaku yang berbeda. Pada OOP, Hal ini berarti bahwa suatu pengenal
data, metode, dan bahkan nama fungsi dapat dibuat dengan nama yang sama
namun untuk kegunaan yang berbeda.
Penggunaan polimorfisme pada C++ dikenal dengan istilah overriding.
Pewarisan pada OOP membuat class anak dari class induk yang memungkinkan
class anak untuk mewarisi isi dari class induk. Jika terdapat fungsi dengan nama
yang sama pada class anak dan class induk lalu fungsi dipanggil melalui objek
dari class anak maka fungsi yang akan dieksekusi merupakan fungsi dari class
anak. Jika ingin memanggil fungsi dari class induk melalui objek anak tersebut
maka menggunakan operator ( :: ) .
Contoh:
#include <iostream>
using namespace std;

class Induk {
public:
void print() {
cout << "Fungsi Induk" << endl;
}
};

class Anak : public Induk {


public:
DEPARTEMEN PENDIDIKAN NASIONAL
LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS ANDALAS

void print() {
cout << "Fungsi anak" << endl;
}
};

int main() {
Anak anak1, anak2;
anak1.print();

// mengakses print dari class induk


anak2.Induk::print();
return 0;
}
Dengna output sebagai berikut
DEPARTEMEN PENDIDIKAN NASIONAL
LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS ANDALAS

III. Prosedur Percobaan


1. Buatlah alogritma, flowchart, dan program untuk menghasilkan software dengan
input dan output sebagai berikut.
Input

Output

2. Buatlah alogritma, flowchart, dan program untuk menghasilkan software dengan


input dan output sebagai berikut.
Input
DEPARTEMEN PENDIDIKAN NASIONAL
LABORATORIUM KOMPUTER
JURUSAN TEKNIK ELEKTRO
FAKULTAS TEKNIK UNIVERSITAS ANDALAS

Output

Anda mungkin juga menyukai