SlideShare a Scribd company logo
1 of 29
TUTORIAL BORLAND C++
MINGGU, 15 JANUARI 2012
Tugas Borland C++
RANGKUMAN CLASS UNTUK OBJECT
ORIENTED PROGRAMMING ( OOP )
PENYUSUN
1. Yogi Anggoro (18112523)
2. Deden Yona Anggara (18111996)
3. Arzyah Sulthony Ering (18112106)
4. Mohamad Alfian Maulanna (18112000)
5. Adris Surrisal (18110796)
.
1. Pengertian Object Oriented Programming (OOP)
Object Oriented Programming atau yang lebih dikenal dengan OOP adalah
pemrograman yang menitikberatkan kepada objek-objek untuk menyelesaikan tugas
atau proses dari program tersebut. Sedangkan penitikberatkan ini dimaksudkan
adanya interaksi pengiriman nilai, pesan atau pernyataan antar objek. Kemudian
objek yang merespon hasil dari interaksi tersebut akan membentuk suatu tindakan
atau aksi (methode).
Class
Calss merupakan gambaran atau abstraksi karakter dan sifat dari suatu objek. Class
juga dapat mendefinisikan ciri dan perilaku objek tersebut.
Object
Object (objek) adalah suatu data atau entitas yang berwujud maupun tidak berwujud,
memiliki sifat (karakteristik) tertentu sesuai dengan kondisi atau status dari
penggunaannya. Data atau entitas di dalam pemrograman dapat disebut blok
fungsi.
Contoh mobil adalah suatu objek yang memiliki attribute (karakter,ciri-ciri) merk, warna,
harga, CC dan lain-lain.
Methode
Methode merupakan tata cara objek tersebut diperlakukan, atau penggunaan atau
manfaat dari objek tersebut.
Mobil juga memiliki methode (perilaku) seperti diservis, dicuci, dijual dan lain-lain.
Keuntungan Penggunaan OOP
Adapun keuntungan atau manfaat dari penggunaan OOP adalah:
1. Natural
OOP dapat melakukan pendekatan terhadap objek yang menggambarkan segala
sesuatu yang nyata, seperti sifat suatu benda maupun kegunaan dari benda
tersebut.
2. Modular
Objek yang sudah dibentuk dapat dikelompokkan kembali dengan objek-objek
yang lain, seperti kelompok motor yang dapat dikelompokkan kembali dengan
kelompok motor sport, kelompok motor bebek dan lain-lain.
3. Mudah diperbaharui
Dikarenakan sifat jangkauan dari objek memiliki bagian private dan public, maka
Jika bagian private ingin digunakan pada objek-objek lain dapat diperbaharui
dengan menempatkan objek lain tersebut di bagian public.
4. Dapat didaur ulang
Suatu objek yang telah didefinisikan baik jenis, bentuk, ciri maupun perilaku
dapat didefinisikan kembali dengan objek yang lain. Misalkan objek hotel yang
memiliki ciri umum ada pintunya, jendelanya, atapnya, temboknya dan lain-lain,
dapat didefinisikan kembali ciri-ciri tersebut dengan menyebutkan cirinya masingmasing
seperti pintunya yang memiliki ciri jenisnya, ketebalannya, warna catnya dan lain-lain.
Tata Cara Penggunaan Pemrograman Berbasis
Obyek:
1. Fungsi dan data menjadi satu kesatuan yang disebut obyek
2. Obyek-obyek dalam OOP bersifat aktif
3. Cara pandang : program bukan urut-urutan instruksi tapi diselesaikan oleh
obyek-obyek yang bekerjasama untuk menyelesaikan masalah
Pernyataan diatas digunakan untuk mendefinisikan variabel bernama sport.
Pada C++ variabel seperti sport berkedudukan sebagai 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 kelas sudah private.
A. Public pada kelas
Public (public) menyatakan bahwa deklarasi variabel atau item-item yang ada di
dalam kelas dapat diakses dari luar kelas.
Contoh-1
//Penggunaan public pada class
#include<iostream.h>
#include<conio.h>
#include<stdio>
garis( )
{
cout<<"==============================n";
}
class mahasiswa
{
public :
char nim[10],nama[30];
float nilai;
};
main( )
{
clrscr( );
mahasiswa kampus;
garis( );cout<<endl;
cout<<"t Program Nilai Mahasiswa"<<endl
<<"t -------------------"<<endl;
cout<<" Input NIM = ";cin>>kampus.nim;
cout<<" Input Nama Mahasiswa = ";gets(kampus.nama);
cout<<" Input Nilai Akhir = ";cin>>kampus.nilai;
clrscr( );
garis( );cout<<endl;
cout<<"t Nilai Mahasiswa"<<endl
<<"t ---------------"<<endl<<endl
<<" NIM = "<<kampus.nim<<endl
<<" Nama Mahasiswa = "<<kampus.nama<<endl
<<" Nilai Akhir = "<<kampus.nilai<<endl;
garis( );
getch( );
}
Output yang dihasilkan dari program contoh-1 di atas adalah:
Gambar diatas adalah hasil contoh 1 (layar input).
Gambar diatas adalah hasil contoh 1 (layar output).
B. Private pada Kelas
Private digunakan pada kelas untuk memproteksi anggota-anggota tertentunya agar
tidak dapat diakses dari luar kelas secara langsung.
Contoh-2
//Penggunaan private pada class
#include <conio.h>
#include <iostream.h>
#define pi 3.14
class tabung
{
int j,t;
float v,k;
public :
tabung( );
void keluaran( );
};
void main( )
{
clrscr( );
tabung s;
s.keluaran( );
getch( );
}
tabung :: tabung( )
{
cout<<"n Menghitung Tabung"<<endl
<<" -----------------"<<endl<<endl;
cout<<" Masukan Jari-jari = ";cin>>j;
cout<<" Masukan Tinggi = ";cin>>t;
v=(pi*j*j)*t;
k=(2*(pi*2*j))+t;
}
void tabung :: keluaran( )
{
cout<<endl
<<" Volume Tabung = "<<v<<endl
<<" Keliling Tabung = "<<k<<endl;
}
Output yang dihasilkan dari program contoh-2 di atas adalah:
Gambar hasil contoh 2.
12.2. Konstruktor
Konstruktor (constructor) merupakan suatu fungsi dari anggota suatu kelas
yang memiliki nama yang sama dengan nama kelas fungsi itu berada.
Konstruktor ini digunakan untuk mengalokasikan ruang untuk suatu objek dan untuk
memberikan nilai awal.
Berikut contoh pendeklarasian suatu konstruktor di dalam sebuah kelas:
class hitung
{
private:
int a;
int b;
public:
int inta( );
int intb( );
hitung(int mudah); //deklarasi constructor
};
Contoh-3 //Konstruktor
#include <conio.h>
#include <iostream.h>
class bilangan
{
private :
int bulat;
double nyata;
public :
bilangan( ); //konstruktor
void info( );
};
void main( )
{
clrscr( );
bilangan a;
a.info( );
bilangan b;
b.info( );
getch( );
}
bilangan :: bilangan( )
{
cout<<"n Konstruktor dijalankan ... "<<endl;
bulat = 5.2;
nyata = 3.6;
}
void bilangan :: info( )
{
cout<<"n Jenis Bilangan: "<<endl
<<" Bulat = "<<bulat<<endl
<<" Nyata = "<<nyata<<endl;
}
Output yang dihasilkan dari program contoh-3 di atas adalah:
Gambar 12.4 Hasil Contoh-3
12.3. Destruktor
Destruktor merupakan suatu fungsi anggota yang dijalankan secara otomatis
manakala suatu objek akan terbebas dari memori karena lingkup keberadaannya telah
menyelesaikan tugasnya.
Destruktor harus mempunyai nama yang sama dengan kelas dan diawali
karakter tilde(~) atau karakter tak terhingga.
Destruktor digunakan secara khusus manakala suatu objek menggunakan
memori dinamis selama keberadaannya dan kemudian melepaskan memori itu
setelah tidak menggunakannya lagi.
Contoh-4 //Destruktor
#include <conio.h>
#include <iostream.h>
#include <string.h>
class motor
{
private :
char *merk;
float cc_mesin; long harga;
public :
motor(char *nama, float cc, long hrg);//konstruktor
~motor();//destruktor
void keterangan( );
};
void main( )
{
clrscr( );
motor sport("Honda CBR",500,30500000);
motor matic("Honda Vario",125,14500000);
sport.keterangan( );
matic.keterangan( );
getch( );
}
motor :: motor(char *nama, float cc, long hrg)
{
merk = new char[25];//merubah data karakter menjadi string
strcpy(merk,nama);
cc_mesin=cc;
harga=hrg;
}
motor :: ~motor( )
{
delete [ ] merk;//menghapus memori karakter pd merk
}
void motor :: keterangan( )
{
cout<<"n Informasi Motor:"<<endl
<<" Merk = "<<merk<<endl
<<" CC Mesin = "<<cc_mesin<<endl
<<" Harga = "<<harga<<endl<<endl;
}
Output yang dihasilkan dari program contoh-4 di atas adalah:
Gambar 12.5 Hasil Contoh-4
12.4. Array pada Kelas
Anggota dari suatu kelas dapat pula berupa array. Berikut ini contoh anggota
dari suatu kelas yang berupa array.
Contoh-5
//Class dg Array & Fungsi
#include <conio.h>
#include <iostream.h>
class kerja
{
public :
char nik[10],nm[25];
int jam; long total;
float lembur(int l);
};
main( )
{
int x,y,a=1,b=1;
long grand=0;
kerja kary[15];
cout<<endl<<"Jumlah Data : ";cin>>y;
for(x=0;x<y;x++)
{
cout<<endl<<" Data Ke- "<<a++<<endl;
cout<<" NIK : ";cin>>kary[x].nik;
cout<<" Nama Karyawan : ";cin>>kary[x].nm;
cout<<" Jumlah Jam : ";cin>>kary[x].jam;
}
clrscr( );
gotoxy(14,3);cout<<"Daftar Gaji Mingguann";
gotoxy(16,4);cout<<"Karyawan Honorern";
cout<<" --------------------------------------------------------------n"
<<" No. NIK Nama Jumlah Upah Totaln"
<<" Karyawan Jam Lembur Gajin"
<<" ---------------------------------------------------------------n";
for(x=0;x<y;x++)
{
gotoxy(3,wherey());cout<<b++<<".";
gotoxy(7,wherey());cout<<kary[x].nik;
gotoxy(19,wherey());cout<<kary[x].nm;
gotoxy(33,wherey());cout<<kary[x].jam;
gotoxy(43,wherey());cout<<kary[x].lembur(kary[x].jam);
kary[x].total=(40*20000)+kary[x].lembur(kary[x].jam);
gotoxy(58,wherey());cout<<kary[x].total<<endl;
grand=grand+kary[x].total;
}
cout<<" ---------------------------------------------------------------n";
cout<<" Total Keseluruhan Karyawan :";
gotoxy(58,wherey());cout<<grand<<endl;
getch( );
}
float kerja::lembur(int l)
{
if (l>40)
return(l-40)*30000;
else
return 0;
}
Output yang dihasilkan dari program contoh-5 di atas adalah:
Gambar 12.6 Hasil Contoh-5 (Layar Input)
Gambar 12.7 Hasil Contoh-5 (Layar Output)
12.5. Karakterisitk OOP
Di dalam penggunaan konsep pemrograman yang berbasis objek atau yang
disebut Object Oriented Pemrograman (OOP), haruslah memiliki karakteristik.
Adapun karakteristik tersebut adalah memiliki sifat turunan atau pewarisan
(Inheritance), satu nama memiliki banayak sifat atau perilaku (Polymorphism),
pembungkusan sifat dari objek yang berbeda (Encapsulation). Berikut akan
dijelaskan karakteristik OOP tersebut:
12.5.1. Inheritance
Inheritance memungkinkan programmer untuk "menurunkan" sebuah class
menjadi class lain yang lebih spesifik dan memiliki fungsi yang lebih komplit.
Inheritance merepresentasikan hubungan "seperti" atau "sejenis" (a kind of). Sebagai
contoh, sebuah sepeda motor adalah seperti sepeda namun dengan kemampuan lebih,
yakni memiliki motor. Contoh lain adalah kendaraan jenis mobil (sebagai super
class) dan memiliki tipe sport (sebagai subclass), bila digabung menjadi mobil sport.
Ketika kita menurunkan sebuah class dari class yang lain, class yang baru
akan mewarisi semua attribute dan method dari class yang sudah ada. Class yang
sudah ada disebut dengan base class atau super class atau parent class dan class
yang baru disebut dengan derived class atau subclass, atau child class.
Tanpa inheritance, kelas merupakan sebuah unit yang berdiri sendiri.
Inheritance akan membentuk suatu konsep dimana jika konsep yang diatas berubah
maka perubahan akan juga berlaku pada yang ada dibawahnya. Inheritance sangat mirip
dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan,
semua anggota data dan fungsi juga akan menerima warisan, walalupun tidak
semuanya akan dapat di akses oleh anggota fungsi dari kelas.
Di dalam C++ penentuan akses pada inheritance ada tiga macam, yaitu :
1. Public
Penentuan akses berbasis public menyebabkan anggota dari public dari sebuah
kelas utama akan menjadi anggota public kelas turunan dan menyebabkan juga
anggota protect kelas utama menjadi anggota protect kelas turunan, namun untuk
anggota kelas private tetap pada private kelas utama.
2. Private
Penentu akses berbasis private menyebabkan anggota dari anggota public dari
kelas utama akan menjadi anggota protect kelas turunan, dan menyebabkan
anggota dari kelas utama menjadi anggota protect kelas turunan, namun untuk
anggota kelas private tetap pada private kelas utama.
3. Protected
Penentu akses berbasis protect menyebabkan anggota dari anggota protect dan
public dari kelas utama akan menjadi anggota private dari kelas turunan.
Anggota private dari kelas utama selalu menjadi anggota private kelas utama.
Pada waktu mendeklarasikan suatu kelas, anda dapat menandai bahwa suatu
kelas berasal dari mana, yaitu dengan tanda titik dua (:) setelah nama kelas, tipe
asalnya bias berupa public atau yang lainnya dan dari kelas mana berasal. Berikut
penulisan sintaksisnya:
Class kucing_besar : Public predator
Contoh-6 //pengunaan inheritance
#include <iostream.h>
#include <conio.h>
enum KETURUNAN { PUMA, TUTUL, SINGA, MACAN };
class Predator
{
public:
// constructors
Predator( ):Usianya(10), Bobotnya(5){}
~Predator( ) {}
//accessors
int Umurnya( ) const {return Usianya; }
void SetUmur (int Umur) { Usianya = Umur; }
int Beratnya ( ) const { return Bobotnya; }
void SetBerat(int Berat) { Bobotnya=Berat; }
// method lainnya
void Meraung( ) const { cout<< "Meraung ... suara
Predator!n";}
void Tidur( ) const {cout<< "ssshhh… Predator Tidur.n";}
protected:
int Usianya;
int Bobotnya;
};
class Kucing_besar : public Predator
{
public:
//constructors
Kucing_besar ( ) : Keturunannya (SINGA) {}
~Kucing_besar( ) {}
//Accessors
KETURUNAN DptKeturunan() const {
return Keturunannya; }
void setKeturunan(KETURUNAN keturunan) {
Keturunannya = keturunan; }
//other methods
void Melompat( ) { cout<<" Melompat ...n"; }
void Berburu( ) { cout<<" Berburu ... ingin makan n"; }
private:
KETURUNAN Keturunannya;
};
int main( )
{
Kucing_besar Sibelang;
Sibelang.Meraung( );
Sibelang.Berburu( );
cout<<" Umur Raja Hutan adalah: "<<Sibelang.Umurnya();
cout<<" Tahun Usianya n";
getch( );
}
Output yang dihasilkan dari program contoh-6 di atas adalah:
Gambar 12.7 Hasil Contoh-6
12.5.2. Polymorphism
Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk
merespon pesan permintaan yang sama dalam suatu cara yang unik. Contoh, saya
melatih lumba-lumba saya dengan perintah untuk meloncat dan juga saya melatih
burung untuk merespon perintah saya untuk berkicau. Saya lakukan latihan untuk
merespon kepada mereka dengan perintah lisan. Melalui polymorphism saya tahu
bahwa anjing dan burung akan merespon dengan gonggongan atau kicauan.
Dengan cara dan kemampuan seperti ini, jenis akses tertentu dapat
diterapakan dengan berbagai cara oleh objek-objek yang memiliki tipe yang berbeda
atau memiliki banyak bentuk. Fungsi virtual merupakan dasar dari polymorphism
yang berkerja hanya dengan pointer-pointer dan referensi dan hanya
mendeklarasikan method sebagai virtual.
Adapun aturan dari virtual function sebagai berikut:
1. Virtual function harus anggota class.
2. Anggota class bukan anggota yang bersifat statis.
3. Anggota class dapat diakses dengan pointer objek.
4. Virtual function tidak dapat memiliki virtual constructor, akan tetapi dapat
berupa virtual destructor.
Contoh-7 //Penggunaan Polymorphism
#include <iostream.h>
#include <conio.h>
class HewanPeliharaan
{
public:
void lucu( )
{
cout<<" Lucunya hewan peliharaan"<<endl;
}
virtual void makan( )// anggota class
{
cout<<" Makan... dibutuhkan hewan peliharaan"<<endl;
}
};
class Jinak : public HewanPeliharaan
{
public:
void lucu( )
{
cout<<" Lucu dan Jinak"<<endl;
}
virtual void makan( )
{
cout<<" Diberi makan agar jinak"<<endl;
}
};
class Kucing : public Jinak
{
public:
void lucu( )
{
cout<<" Lucunya kucing"<<endl;
}
virtual void makan( )
{
cout<<" Makanan dibutuhkan Kucing"<<endl;
}
};
void main( )
{
//definisi Objek Jinak dan Kucing puma
Jinak jinak;
Kucing puma;
//definisi pointer ke objek
HewanPeliharaan *hewan;
hewan=&jinak;
hewan->lucu( );
hewan->makan( );
cout<<" -----------------------------"<<endl;
hewan = &puma;
hewan->lucu( );
hewan->makan( );
getch();
}
Output yang dihasilkan dari program contoh-7 di atas adalah:
Gambar 12.8 Hasil Contoh-7
12.5.3. Encapsulation
Ciri penting lainnya dari OOP adalah encapsulation. Encapsulation adalah
sebuah proses dimana tidak ada akses langsung ke data yang diberikan, bahkan
hidden. Jika ingin mendapat data, maka harus berinteraksi dengan objek yang
bertanggung jawab atas dara tersebut. Berikut cirri dari encapsulation:
1. Variabel dan method dalam suatu obyek dibungkus agar terlindungi
2. Untuk mengakses, variabel dan method yang sudah dibungkus tadi perlu
interface
3. Setelah variabel dan method dibungkus, hak akses terhadapnya dapat ditentukan.
4. Konsep pembungkusan ini pada dasarnya merupakan perluasan dari tipe data
struktur
Dua hal dalam enkapsulasi :
1. Information hiding
2. Menyediakan perantara (method) untuk mengakses data
Pada intinya, encapsulation adalah pemisahan antara bagian private dan
public pada sebuah objek. Atau, dapat dipandang sebagai pemisahan antara interface
(bagian private) dan implementation (bagian public).
Objek-objek lain yang hendak berinteraksi dengan objek ini akan mengirimkan
sebuah pesan (message) dan objek ini akan mengerjakan sesuatu dan mengirimkan
pesan balik sebagai jawaban jika diperlukan.
Keuntungan utama dari encapsulation tentu saja adalah penyembunyian
implementasi (implementation hiding). Dengan implementation hiding, kita dapat
memperbaiki bagaimana objek kita bekerja tanpa harus khawatir bagaimana
menginformasikan perubahan tersebut ke objek-objek yang lain. Selama kita tidak
merubah interface dari objek kita, objek-objek yang lain akan tetap dapat
menggunkan objek kita.
Contoh-8 //penggunaan encapsulation
#include <conio.h>
#include <iostream.h>
class satu_kandang
{
int kandang;
public:
void atur(int nilai);
int hasil(void);
};
void satu_kandang :: atur(int nilai)
{
kandang = nilai;
}
int satu_kandang :: hasil(void)
{
return kandang;
}
void main( )
{
satu_kandang ayam1, ayam2, ayam3;
int bebek;
ayam1.atur(5);
ayam2.atur(7);
ayam3.atur(2);
bebek=20;
cout<<" Nilai dari ayam1 adalah "<<ayam1.hasil()<<endl;
cout<<" Nilai dari ayam2 adalah "<<ayam2.hasil()<<endl;
cout<<" Nilai dari ayam3 adalah "<<ayam3.hasil()<<endl;
cout<<" Nilai dari bebek adalah "<<bebek<<endl;
getch( );
}
Output yang dihasilkan dari program contoh-8 di atas adalah:
Gambar 12.9 Hasil Contoh-8
12.6 Latihan
Seorang manager ingin dibuatkan sebuah program perhitungan gaji pegawai
staff honor sederhana. Anda sebagai staff programmer harus membuatkan program
tersebut.
Adapun ketentuan perhitungan gaji pegawai honorer adalah sebagai berikut :
Honorer per hari yang diterima pegawai honorer sebesar Rp. 25.000
Jam kerja selama 8 Jam setiap harinya
Jam bekerja lebih dari 8 jam, maka kelebihan jam dikalikan dengan honor
lembur perjam sebesar Rp. 1.500.
Petunjuk : Gunakan kelas pegawai.
Desain masukan yang diinginkan adalah sebagai berikut
PT. Meriang Gembira
Jumlah :………………..
Tanggal Input :………………..
----------------------------------------------------------------------------------------
Data Ke-1
Nama Pegawai :…………………..
Jumlah Jam Kerja :………………Jam
Data Ke-2
Nama Pegawai :…………………..
Jumlah Jam Kerja :………………Jam
………….
………….
<terus mengulang sesuai jumlah pegawai yang diinputkan>
Desain keluaran yang diingkinkan adalah sebagai berikut :
PT. Meriang Gembira
Tanggal : ………………..
==========================================================
No. Nama Honor Jumlah Honor Total
Pegawai Jam Kerja Lembur Honor
==========================================================
… ……………….. ………… …………….. ………….. …………..
… ……………….. ………… …………….. ………….. …………..
… ……………….. ………… …………….. ………….. …………..
Total Honor Pegawai Sebesar
Studi Kasus Pra - UAS
Buatlah sebuah program aplikasi bertemakan bisnis secara berkelompok. Adapun isi
program yang dibuat harus memuat materi UAS : Array, kondisi, looping, label,
fungsi, structure dan Class. Lalu buatkan bentuk rancangannya seperti contoh
berikut:
Bentuk Menu Utama
Bentuk Input
Bentuk Output
Kunci Jawaban Latihan dan Studi Kasus Pra – UAS versi jawaban kami :
1. Latihan
#include<conio>
#include<iostream>
#include<stdio>
garis1()
{
cout<<" ------------------------------------------------------------------------n";
}
garis2()
{
cout<<"
=====================================================================
===n";
}
class kerja
{
public :
char nama[25];
int jam; long total;
float lembur(long l);
};kerja pegawai[100];
main( )
{
char tgl[15],maning;
int i,jml,a=1,b=1;
long tot_honor=0,honor=25000;
nduwur:
clrscr();
puts(" PT. Meriang Gembiran");
cout<<"n Jumlah : ";cin>>jml;
cout<<" Tanggal Input : ";cin>>tgl;
garis1();
for(i=0;i<jml;i++)
{
cout<<" Data Ke- "<<a++<<endl;
cout<<" Nama Pegawai : ";gets(pegawai[i].nama);
cout<<" Jumlah Jam Kerja : ";cin>>pegawai[i].jam;
}
clrscr( );
puts(" PT. Meriang Gembiran");
cout<<"n Tanggal : "<<tgl<<endl;
garis2();
cout<<" No. Nama Honor Jumlah Honor Totaln";
cout<<" Pegawai Jam Kerja Lembur Honorn";
garis2();
for(i=0;i<jml;i++)
{
gotoxy(2,wherey());cout<<b++<<".";
gotoxy(9,wherey());cout<<pegawai[i].nama;
gotoxy(33,wherey());cout<<honor;
gotoxy(46,wherey());cout<<pegawai[i].jam;
gotoxy(58,wherey());cout<<pegawai[i].lembur(pegawai[i].jam);
pegawai[i].total=honor+pegawai[i].lembur(pegawai[i].jam);
gotoxy(69,wherey());cout<<pegawai[i].total<<endl;
tot_honor=tot_honor+pegawai[i].total;
}
garis2();
cout<<" Total Honor Pegawai Sebesar :";
gotoxy(69,wherey());cout<<tot_honor<<endl;
puts(" nnnMATUR THANK YOUn");
cout<<"nBadhe Hitung Again?? [Y/T] : ";
cin>>maning;
if (maning == 'Y' || maning == 'y')
goto nduwur;
getch( );
}
float kerja::lembur(long l)
{
if (l>8)
return(l-8)*1500;
else
return 0;
}
Output yang dihasilkan dari program latihan di atas adalah:
Gambar Latihan (layar input).
Gambar Latihan (layar output).
2. Studi Kasus Pra – UAS
KET : “ MAAF UNTUK MENU UTAMA MASIH DALAM PROSES”
#include<conio>
#include<stdio>
#include<iostream>
#include<string.h>
hiasan1()
{
cout<<" * * * * * * * * * * * * * * * * n" ;
}
hiasan2()
{
cout<<" ********************************************************************n";
}
data()
{
cout<<" PENYEWAAN PAKAIAN ADAT NASIONALn";
cout<<" CHONIO DISTROn";
cout<<" * * * * * * * * * * * * * * * *n"<<endl;
}
class pakaian
{
public:
char kode[5],*np,ukuran;
int sewa,sb,hrg,sub(int s,int h);
};pakaian baju[10];
main()
{
atas:
int lama,i,jml,tb=0;
long byr,kembali;
char lg,nm[30];
data();
cout<<" NAMA PENYEWA : ";gets(nm);
cout<<" INPUT LAMA SEWA : ";cin>>lama;
cout<<" INPUT JUMLAH DATA : ";cin>>jml;
hiasan1();
for(i=1;i<=jml;i++)
{
cout<<" DATA KE - "<<i<<endl;
cout<<" INPUT KODE PAKET BAJU [JB/JT/SB] : ";cin>>baju[i].kode;
cout<<" INPUT KODE UKURAN BAJU [S/M/L] : ";cin>>baju[i].ukuran;
cout<<" JUMLAH SEWA : ";cin>>baju[i].sewa;
if (strcmp(baju[i].kode,"JB")==0||strcmp(baju[i].kode,"jb")==0)
{baju[i].np="JAWA BARAT";
baju[i].hrg=200000;
}
else if(strcmp(baju[i].kode,"JT")==0||strcmp(baju[i].kode,"jt")==0)
{baju[i].np="JAWA TENGAH";
baju[i].hrg=255000;
}
else if(strcmp(baju[i].kode,"SB")==0||strcmp(baju[i].kode,"sb")==0)
{baju[i].np="SUMATERA BARAT";
baju[i].hrg=300000;
}
else
{
clrscr();
hiasan2();
cout<<"t* WARNING !!! *"<<endl;
cout<<"t* ANDA SALAH MASUKKAN INPUTANNYA TUUUHH !!! *"<<endl;
hiasan2();cout<<endl;
goto atas;
}
}
clrscr();
data();
cout<<" NAMA PENYEWA : "<<nm<<endl;
cout<<"n DATA BAJU YANG DISEWA"<<endl;
hiasan2();
cout<<" No. Nama Paket Harga Jumlah Sewa Subtotaln";
hiasan2();
for(i=1;i<=jml;i++)
{
gotoxy(3,wherey());cout<<i<<".";
gotoxy(9,wherey());cout<<baju[i].np;
gotoxy(29,wherey());cout<<baju[i].hrg;
gotoxy(45,wherey());cout<<baju[i].sewa;
gotoxy(59,wherey());cout<<baju[i].sub(baju[i].sewa,baju[i].hrg)<<endl;
tb+=baju[i]. sub(baju[i].sewa,baju[i].hrg);
}
hiasan2();
cout<<" Total Bayar : Rp. "<<tb<<endl;
cout<<" Uang Bayar : Rp. ";cin>>byr;
kembali=byr-tb;
cout<<" Uang Kembali : Rp. "<<kembali;
cout<<"nnnnnt TERIMA KASIHn";
cout<<"n INPUT DATA LAGI [Y/T] : ";cin>>lg;
clrscr();
if (lg=='y'||lg=='Y')
goto atas;
else
cout<<"nnn"<<endl;
hiasan2();
cout<<"t* *"<<endl;
cout<<"t* PROGRAM INI DIBUAT OLEH PROGRAMER *"<<endl;
cout<<"t* CHONIO DISTRO !!! *"<<endl;
cout<<"t* MAHASISWA BSI KELAS 12.1C.21 YOGI ANGGORO *"<<endl;
cout<<"t* *"<<endl;
hiasan2();
cout<<"nnt SELESAI dan TERIMA KASIH....."<<endl;
cout<<"nt PENCET CHAR APA AJA YANG ADA DI KEYBOARD....."<<endl;
getch();
}
pakaian::sub(int s,int h)
{
return (s*h);
}
Gambar Studi layar input
Gambar kondisi jika salah memasukkan inputan dalam hal ini input kode paket baju.
Gambar Studi layar output.
Gambar Kondisi apabila menekan karakter selain ‘Y’ or ‘y’.
. “ Terima kasih buat Ibu dosen kelas 1C mata kuliah Algoritma dan Pemogramman
1,karena berkat beliau kami bisa buat program walaupun masih sangat sederhana sekali dan
masih harus belajar lagi. Maaf apabila dalam 1 semester kami banyak salah.
Sekali lagi kami banyak terima kasih”.
Diposkan oleh Yogi Anggoro di 20.14 Tidak ada komentar:
Kirimkan Ini lewat EmailBlogThis!Berbagi ke TwitterBerbagi ke FacebookBagikan ke Pinterest
Posting LamaBeranda
Langganan: Entri (Atom)
PENGIKUT
ARSIP BLOG
 ▼ 2012 (2)
o ▼ Januari (2)
 Tugas Borland C++
 Tugas Borland C++
MENGENAI SAYA
Yogi Anggoro
Lihat profil lengkapku
Template Picture Window. Diberdayakan oleh Blogger.

More Related Content

What's hot

Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11Ekha Cahya Nugraha
 
modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)Reza Pramana
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15Ekha Cahya Nugraha
 
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam JavaJeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam JavaIndividual Consultants
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10Ekha Cahya Nugraha
 
10 pemrograman berorientasi objek di php
10 pemrograman berorientasi objek di php10 pemrograman berorientasi objek di php
10 pemrograman berorientasi objek di phpJamil Jamil
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloadingwahyuniwulan
 
Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep InheritanceRiski_kiki
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10Ekha Cahya Nugraha
 
Cara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaCara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaDevandy Enda
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010SabilaAulia
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Ekha Cahya Nugraha
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Debby Ummul
 
Materi pelatihan java_fundamental
Materi pelatihan java_fundamentalMateri pelatihan java_fundamental
Materi pelatihan java_fundamentalLaode ADB Ali
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)Debby Ummul
 

What's hot (20)

Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11Laporan praktikum Algoritma dan Pemrograman pertemuan 11
Laporan praktikum Algoritma dan Pemrograman pertemuan 11
 
modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)modul Java dasar fundamental (OOP)
modul Java dasar fundamental (OOP)
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15Laporan praktikum Algoritma dan Pemrograman pertemuan 15
Laporan praktikum Algoritma dan Pemrograman pertemuan 15
 
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam JavaJeni Intro2 Bab01 Review Konsep Dasar Dalam Java
Jeni Intro2 Bab01 Review Konsep Dasar Dalam Java
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
Laporan praktikum Algoritma dan Pemrograman pertemuan 9&10
 
5475 1 review konsep pbo
5475 1 review konsep pbo5475 1 review konsep pbo
5475 1 review konsep pbo
 
10 pemrograman berorientasi objek di php
10 pemrograman berorientasi objek di php10 pemrograman berorientasi objek di php
10 pemrograman berorientasi objek di php
 
Modul prak2 constructor dan overloading
Modul prak2   constructor dan overloadingModul prak2   constructor dan overloading
Modul prak2 constructor dan overloading
 
Konsep Inheritance
Konsep InheritanceKonsep Inheritance
Konsep Inheritance
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
 
9150 8 interface
9150 8  interface9150 8  interface
9150 8 interface
 
Cara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada javaCara membuat fungsi dan prosedur pada java
Cara membuat fungsi dan prosedur pada java
 
Nelly
NellyNelly
Nelly
 
Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010Romi oop-02-javafundamentals-29agustus2010
Romi oop-02-javafundamentals-29agustus2010
 
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
 
Muhammad Firdaus
Muhammad FirdausMuhammad Firdaus
Muhammad Firdaus
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.1-6)
 
Materi pelatihan java_fundamental
Materi pelatihan java_fundamentalMateri pelatihan java_fundamental
Materi pelatihan java_fundamental
 
Materi pelatihan java fundamental
Materi pelatihan java fundamentalMateri pelatihan java fundamental
Materi pelatihan java fundamental
 
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
Modul Praktikum Pemrograman Berorientasi Objek (Chap.11)
 

Similar to Tutorial borland c tea.

Dasar pemrograman C++
Dasar pemrograman C++Dasar pemrograman C++
Dasar pemrograman C++Andan Sperrow
 
Modul pratikum pbo - Class dan Object
Modul pratikum pbo - Class dan ObjectModul pratikum pbo - Class dan Object
Modul pratikum pbo - Class dan Objectrahmantoyuri
 
Class dan object
Class dan objectClass dan object
Class dan objectHardini_HD
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekWahyu Widodo
 
CCIT OOP Pertemuan 1
CCIT OOP Pertemuan 1CCIT OOP Pertemuan 1
CCIT OOP Pertemuan 1giamuhammad
 
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028iis dahlia
 
Modularisasi – function dalam c++
Modularisasi – function dalam c++Modularisasi – function dalam c++
Modularisasi – function dalam c++Akmal Fajar
 
Algoritma dan Struktur Data
Algoritma dan Struktur DataAlgoritma dan Struktur Data
Algoritma dan Struktur DataAs Faizin
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1zisgoo
 
Soal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSoal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSaprudin Eskom
 
Algoritma dan Pemrograman C++ (Program Structure)
Algoritma dan Pemrograman C++ (Program Structure)Algoritma dan Pemrograman C++ (Program Structure)
Algoritma dan Pemrograman C++ (Program Structure)Nabil Muhammad Firdaus
 
Modul xiii dan xiv algo
Modul xiii dan xiv algoModul xiii dan xiv algo
Modul xiii dan xiv algoSTMIK AKAKOM
 
Materi kuliah 18 fungsi part 1
Materi kuliah 18   fungsi part 1Materi kuliah 18   fungsi part 1
Materi kuliah 18 fungsi part 1Budi Yono
 

Similar to Tutorial borland c tea. (20)

Dasar pemrograman C++
Dasar pemrograman C++Dasar pemrograman C++
Dasar pemrograman C++
 
Modul pratikum pbo - Class dan Object
Modul pratikum pbo - Class dan ObjectModul pratikum pbo - Class dan Object
Modul pratikum pbo - Class dan Object
 
Modul Object Oriented Programming
Modul Object Oriented ProgrammingModul Object Oriented Programming
Modul Object Oriented Programming
 
Class dan object
Class dan objectClass dan object
Class dan object
 
Delphi
DelphiDelphi
Delphi
 
Blog.yuna
Blog.yuna Blog.yuna
Blog.yuna
 
Modul PBO Bab-03 - Kelas & Objek
Modul PBO Bab-03 - Kelas & ObjekModul PBO Bab-03 - Kelas & Objek
Modul PBO Bab-03 - Kelas & Objek
 
Modul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi ObjekModul Pemrograman Berorientasi Objek
Modul Pemrograman Berorientasi Objek
 
CCIT OOP Pertemuan 1
CCIT OOP Pertemuan 1CCIT OOP Pertemuan 1
CCIT OOP Pertemuan 1
 
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
Konsep oop pada php dan mvc pada php framework, 1200631047 1200631018 1200631028
 
Modularisasi – function dalam c++
Modularisasi – function dalam c++Modularisasi – function dalam c++
Modularisasi – function dalam c++
 
Praktikum
PraktikumPraktikum
Praktikum
 
Algoritma dan Struktur Data
Algoritma dan Struktur DataAlgoritma dan Struktur Data
Algoritma dan Struktur Data
 
Pertemuan 1
Pertemuan 1Pertemuan 1
Pertemuan 1
 
Materi delphi
Materi delphiMateri delphi
Materi delphi
 
Soal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docxSoal + jawaban PAT PBO Kelas XI RPL 2021.docx
Soal + jawaban PAT PBO Kelas XI RPL 2021.docx
 
Algoritma dan Pemrograman C++ (Program Structure)
Algoritma dan Pemrograman C++ (Program Structure)Algoritma dan Pemrograman C++ (Program Structure)
Algoritma dan Pemrograman C++ (Program Structure)
 
Tugas sp algo
Tugas sp algoTugas sp algo
Tugas sp algo
 
Modul xiii dan xiv algo
Modul xiii dan xiv algoModul xiii dan xiv algo
Modul xiii dan xiv algo
 
Materi kuliah 18 fungsi part 1
Materi kuliah 18   fungsi part 1Materi kuliah 18   fungsi part 1
Materi kuliah 18 fungsi part 1
 

Tutorial borland c tea.

  • 1. TUTORIAL BORLAND C++ MINGGU, 15 JANUARI 2012 Tugas Borland C++ RANGKUMAN CLASS UNTUK OBJECT ORIENTED PROGRAMMING ( OOP ) PENYUSUN 1. Yogi Anggoro (18112523) 2. Deden Yona Anggara (18111996) 3. Arzyah Sulthony Ering (18112106) 4. Mohamad Alfian Maulanna (18112000) 5. Adris Surrisal (18110796)
  • 2. . 1. Pengertian Object Oriented Programming (OOP) Object Oriented Programming atau yang lebih dikenal dengan OOP adalah pemrograman yang menitikberatkan kepada objek-objek untuk menyelesaikan tugas atau proses dari program tersebut. Sedangkan penitikberatkan ini dimaksudkan adanya interaksi pengiriman nilai, pesan atau pernyataan antar objek. Kemudian objek yang merespon hasil dari interaksi tersebut akan membentuk suatu tindakan atau aksi (methode). Class Calss merupakan gambaran atau abstraksi karakter dan sifat dari suatu objek. Class juga dapat mendefinisikan ciri dan perilaku objek tersebut. Object Object (objek) adalah suatu data atau entitas yang berwujud maupun tidak berwujud, memiliki sifat (karakteristik) tertentu sesuai dengan kondisi atau status dari penggunaannya. Data atau entitas di dalam pemrograman dapat disebut blok fungsi. Contoh mobil adalah suatu objek yang memiliki attribute (karakter,ciri-ciri) merk, warna, harga, CC dan lain-lain. Methode Methode merupakan tata cara objek tersebut diperlakukan, atau penggunaan atau manfaat dari objek tersebut. Mobil juga memiliki methode (perilaku) seperti diservis, dicuci, dijual dan lain-lain. Keuntungan Penggunaan OOP Adapun keuntungan atau manfaat dari penggunaan OOP adalah: 1. Natural OOP dapat melakukan pendekatan terhadap objek yang menggambarkan segala sesuatu yang nyata, seperti sifat suatu benda maupun kegunaan dari benda tersebut. 2. Modular Objek yang sudah dibentuk dapat dikelompokkan kembali dengan objek-objek yang lain, seperti kelompok motor yang dapat dikelompokkan kembali dengan kelompok motor sport, kelompok motor bebek dan lain-lain. 3. Mudah diperbaharui Dikarenakan sifat jangkauan dari objek memiliki bagian private dan public, maka Jika bagian private ingin digunakan pada objek-objek lain dapat diperbaharui dengan menempatkan objek lain tersebut di bagian public. 4. Dapat didaur ulang Suatu objek yang telah didefinisikan baik jenis, bentuk, ciri maupun perilaku dapat didefinisikan kembali dengan objek yang lain. Misalkan objek hotel yang
  • 3. memiliki ciri umum ada pintunya, jendelanya, atapnya, temboknya dan lain-lain, dapat didefinisikan kembali ciri-ciri tersebut dengan menyebutkan cirinya masingmasing seperti pintunya yang memiliki ciri jenisnya, ketebalannya, warna catnya dan lain-lain. Tata Cara Penggunaan Pemrograman Berbasis Obyek: 1. Fungsi dan data menjadi satu kesatuan yang disebut obyek 2. Obyek-obyek dalam OOP bersifat aktif 3. Cara pandang : program bukan urut-urutan instruksi tapi diselesaikan oleh obyek-obyek yang bekerjasama untuk menyelesaikan masalah Pernyataan diatas digunakan untuk mendefinisikan variabel bernama sport. Pada C++ variabel seperti sport berkedudukan sebagai 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 kelas sudah private. A. Public pada kelas Public (public) menyatakan bahwa deklarasi variabel atau item-item yang ada di dalam kelas dapat diakses dari luar kelas. Contoh-1 //Penggunaan public pada class #include<iostream.h>
  • 4. #include<conio.h> #include<stdio> garis( ) { cout<<"==============================n"; } class mahasiswa { public : char nim[10],nama[30]; float nilai; }; main( ) { clrscr( ); mahasiswa kampus; garis( );cout<<endl; cout<<"t Program Nilai Mahasiswa"<<endl <<"t -------------------"<<endl; cout<<" Input NIM = ";cin>>kampus.nim; cout<<" Input Nama Mahasiswa = ";gets(kampus.nama); cout<<" Input Nilai Akhir = ";cin>>kampus.nilai; clrscr( ); garis( );cout<<endl; cout<<"t Nilai Mahasiswa"<<endl <<"t ---------------"<<endl<<endl <<" NIM = "<<kampus.nim<<endl <<" Nama Mahasiswa = "<<kampus.nama<<endl <<" Nilai Akhir = "<<kampus.nilai<<endl; garis( ); getch( ); } Output yang dihasilkan dari program contoh-1 di atas adalah:
  • 5. Gambar diatas adalah hasil contoh 1 (layar input). Gambar diatas adalah hasil contoh 1 (layar output). B. Private pada Kelas Private digunakan pada kelas untuk memproteksi anggota-anggota tertentunya agar tidak dapat diakses dari luar kelas secara langsung. Contoh-2 //Penggunaan private pada class #include <conio.h> #include <iostream.h> #define pi 3.14 class tabung { int j,t; float v,k; public : tabung( ); void keluaran( ); }; void main( )
  • 6. { clrscr( ); tabung s; s.keluaran( ); getch( ); } tabung :: tabung( ) { cout<<"n Menghitung Tabung"<<endl <<" -----------------"<<endl<<endl; cout<<" Masukan Jari-jari = ";cin>>j; cout<<" Masukan Tinggi = ";cin>>t; v=(pi*j*j)*t; k=(2*(pi*2*j))+t; } void tabung :: keluaran( ) { cout<<endl <<" Volume Tabung = "<<v<<endl <<" Keliling Tabung = "<<k<<endl; } Output yang dihasilkan dari program contoh-2 di atas adalah:
  • 7. Gambar hasil contoh 2. 12.2. Konstruktor Konstruktor (constructor) merupakan suatu fungsi dari anggota suatu kelas yang memiliki nama yang sama dengan nama kelas fungsi itu berada. Konstruktor ini digunakan untuk mengalokasikan ruang untuk suatu objek dan untuk memberikan nilai awal. Berikut contoh pendeklarasian suatu konstruktor di dalam sebuah kelas: class hitung { private: int a; int b; public: int inta( ); int intb( ); hitung(int mudah); //deklarasi constructor }; Contoh-3 //Konstruktor #include <conio.h> #include <iostream.h> class bilangan { private : int bulat; double nyata; public : bilangan( ); //konstruktor void info( ); }; void main( ) { clrscr( ); bilangan a; a.info( ); bilangan b; b.info( ); getch( ); } bilangan :: bilangan( ) { cout<<"n Konstruktor dijalankan ... "<<endl; bulat = 5.2; nyata = 3.6; } void bilangan :: info( ) {
  • 8. cout<<"n Jenis Bilangan: "<<endl <<" Bulat = "<<bulat<<endl <<" Nyata = "<<nyata<<endl; } Output yang dihasilkan dari program contoh-3 di atas adalah: Gambar 12.4 Hasil Contoh-3 12.3. Destruktor Destruktor merupakan suatu fungsi anggota yang dijalankan secara otomatis manakala suatu objek akan terbebas dari memori karena lingkup keberadaannya telah menyelesaikan tugasnya. Destruktor harus mempunyai nama yang sama dengan kelas dan diawali karakter tilde(~) atau karakter tak terhingga. Destruktor digunakan secara khusus manakala suatu objek menggunakan memori dinamis selama keberadaannya dan kemudian melepaskan memori itu setelah tidak menggunakannya lagi. Contoh-4 //Destruktor
  • 9. #include <conio.h> #include <iostream.h> #include <string.h> class motor { private : char *merk; float cc_mesin; long harga; public : motor(char *nama, float cc, long hrg);//konstruktor ~motor();//destruktor void keterangan( ); }; void main( ) { clrscr( ); motor sport("Honda CBR",500,30500000); motor matic("Honda Vario",125,14500000); sport.keterangan( ); matic.keterangan( ); getch( ); } motor :: motor(char *nama, float cc, long hrg) { merk = new char[25];//merubah data karakter menjadi string strcpy(merk,nama); cc_mesin=cc; harga=hrg; } motor :: ~motor( ) { delete [ ] merk;//menghapus memori karakter pd merk } void motor :: keterangan( ) { cout<<"n Informasi Motor:"<<endl <<" Merk = "<<merk<<endl <<" CC Mesin = "<<cc_mesin<<endl <<" Harga = "<<harga<<endl<<endl; } Output yang dihasilkan dari program contoh-4 di atas adalah:
  • 10. Gambar 12.5 Hasil Contoh-4 12.4. Array pada Kelas Anggota dari suatu kelas dapat pula berupa array. Berikut ini contoh anggota dari suatu kelas yang berupa array. Contoh-5 //Class dg Array & Fungsi #include <conio.h> #include <iostream.h> class kerja { public : char nik[10],nm[25]; int jam; long total; float lembur(int l); }; main( ) { int x,y,a=1,b=1; long grand=0; kerja kary[15]; cout<<endl<<"Jumlah Data : ";cin>>y; for(x=0;x<y;x++) { cout<<endl<<" Data Ke- "<<a++<<endl; cout<<" NIK : ";cin>>kary[x].nik; cout<<" Nama Karyawan : ";cin>>kary[x].nm; cout<<" Jumlah Jam : ";cin>>kary[x].jam;
  • 11. } clrscr( ); gotoxy(14,3);cout<<"Daftar Gaji Mingguann"; gotoxy(16,4);cout<<"Karyawan Honorern"; cout<<" --------------------------------------------------------------n" <<" No. NIK Nama Jumlah Upah Totaln" <<" Karyawan Jam Lembur Gajin" <<" ---------------------------------------------------------------n"; for(x=0;x<y;x++) { gotoxy(3,wherey());cout<<b++<<"."; gotoxy(7,wherey());cout<<kary[x].nik; gotoxy(19,wherey());cout<<kary[x].nm; gotoxy(33,wherey());cout<<kary[x].jam; gotoxy(43,wherey());cout<<kary[x].lembur(kary[x].jam); kary[x].total=(40*20000)+kary[x].lembur(kary[x].jam); gotoxy(58,wherey());cout<<kary[x].total<<endl; grand=grand+kary[x].total; } cout<<" ---------------------------------------------------------------n"; cout<<" Total Keseluruhan Karyawan :"; gotoxy(58,wherey());cout<<grand<<endl; getch( ); } float kerja::lembur(int l) { if (l>40) return(l-40)*30000; else return 0; } Output yang dihasilkan dari program contoh-5 di atas adalah:
  • 12. Gambar 12.6 Hasil Contoh-5 (Layar Input) Gambar 12.7 Hasil Contoh-5 (Layar Output) 12.5. Karakterisitk OOP Di dalam penggunaan konsep pemrograman yang berbasis objek atau yang disebut Object Oriented Pemrograman (OOP), haruslah memiliki karakteristik. Adapun karakteristik tersebut adalah memiliki sifat turunan atau pewarisan (Inheritance), satu nama memiliki banayak sifat atau perilaku (Polymorphism), pembungkusan sifat dari objek yang berbeda (Encapsulation). Berikut akan dijelaskan karakteristik OOP tersebut: 12.5.1. Inheritance Inheritance memungkinkan programmer untuk "menurunkan" sebuah class
  • 13. menjadi class lain yang lebih spesifik dan memiliki fungsi yang lebih komplit. Inheritance merepresentasikan hubungan "seperti" atau "sejenis" (a kind of). Sebagai contoh, sebuah sepeda motor adalah seperti sepeda namun dengan kemampuan lebih, yakni memiliki motor. Contoh lain adalah kendaraan jenis mobil (sebagai super class) dan memiliki tipe sport (sebagai subclass), bila digabung menjadi mobil sport. Ketika kita menurunkan sebuah class dari class yang lain, class yang baru akan mewarisi semua attribute dan method dari class yang sudah ada. Class yang sudah ada disebut dengan base class atau super class atau parent class dan class yang baru disebut dengan derived class atau subclass, atau child class. Tanpa inheritance, kelas merupakan sebuah unit yang berdiri sendiri. Inheritance akan membentuk suatu konsep dimana jika konsep yang diatas berubah maka perubahan akan juga berlaku pada yang ada dibawahnya. Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan, semua anggota data dan fungsi juga akan menerima warisan, walalupun tidak semuanya akan dapat di akses oleh anggota fungsi dari kelas. Di dalam C++ penentuan akses pada inheritance ada tiga macam, yaitu : 1. Public Penentuan akses berbasis public menyebabkan anggota dari public dari sebuah kelas utama akan menjadi anggota public kelas turunan dan menyebabkan juga anggota protect kelas utama menjadi anggota protect kelas turunan, namun untuk anggota kelas private tetap pada private kelas utama. 2. Private Penentu akses berbasis private menyebabkan anggota dari anggota public dari kelas utama akan menjadi anggota protect kelas turunan, dan menyebabkan anggota dari kelas utama menjadi anggota protect kelas turunan, namun untuk anggota kelas private tetap pada private kelas utama. 3. Protected Penentu akses berbasis protect menyebabkan anggota dari anggota protect dan public dari kelas utama akan menjadi anggota private dari kelas turunan. Anggota private dari kelas utama selalu menjadi anggota private kelas utama. Pada waktu mendeklarasikan suatu kelas, anda dapat menandai bahwa suatu kelas berasal dari mana, yaitu dengan tanda titik dua (:) setelah nama kelas, tipe asalnya bias berupa public atau yang lainnya dan dari kelas mana berasal. Berikut penulisan sintaksisnya: Class kucing_besar : Public predator Contoh-6 //pengunaan inheritance #include <iostream.h> #include <conio.h> enum KETURUNAN { PUMA, TUTUL, SINGA, MACAN }; class Predator { public: // constructors Predator( ):Usianya(10), Bobotnya(5){} ~Predator( ) {} //accessors
  • 14. int Umurnya( ) const {return Usianya; } void SetUmur (int Umur) { Usianya = Umur; } int Beratnya ( ) const { return Bobotnya; } void SetBerat(int Berat) { Bobotnya=Berat; } // method lainnya void Meraung( ) const { cout<< "Meraung ... suara Predator!n";} void Tidur( ) const {cout<< "ssshhh… Predator Tidur.n";} protected: int Usianya; int Bobotnya; }; class Kucing_besar : public Predator { public: //constructors Kucing_besar ( ) : Keturunannya (SINGA) {} ~Kucing_besar( ) {} //Accessors KETURUNAN DptKeturunan() const { return Keturunannya; } void setKeturunan(KETURUNAN keturunan) { Keturunannya = keturunan; } //other methods void Melompat( ) { cout<<" Melompat ...n"; } void Berburu( ) { cout<<" Berburu ... ingin makan n"; } private: KETURUNAN Keturunannya; }; int main( ) { Kucing_besar Sibelang; Sibelang.Meraung( ); Sibelang.Berburu( ); cout<<" Umur Raja Hutan adalah: "<<Sibelang.Umurnya(); cout<<" Tahun Usianya n"; getch( ); } Output yang dihasilkan dari program contoh-6 di atas adalah:
  • 15. Gambar 12.7 Hasil Contoh-6 12.5.2. Polymorphism Polymorphisms adalah kemampuan 2 buah object yang berbeda untuk merespon pesan permintaan yang sama dalam suatu cara yang unik. Contoh, saya melatih lumba-lumba saya dengan perintah untuk meloncat dan juga saya melatih burung untuk merespon perintah saya untuk berkicau. Saya lakukan latihan untuk merespon kepada mereka dengan perintah lisan. Melalui polymorphism saya tahu bahwa anjing dan burung akan merespon dengan gonggongan atau kicauan. Dengan cara dan kemampuan seperti ini, jenis akses tertentu dapat diterapakan dengan berbagai cara oleh objek-objek yang memiliki tipe yang berbeda atau memiliki banyak bentuk. Fungsi virtual merupakan dasar dari polymorphism yang berkerja hanya dengan pointer-pointer dan referensi dan hanya mendeklarasikan method sebagai virtual. Adapun aturan dari virtual function sebagai berikut: 1. Virtual function harus anggota class. 2. Anggota class bukan anggota yang bersifat statis. 3. Anggota class dapat diakses dengan pointer objek. 4. Virtual function tidak dapat memiliki virtual constructor, akan tetapi dapat berupa virtual destructor. Contoh-7 //Penggunaan Polymorphism #include <iostream.h> #include <conio.h> class HewanPeliharaan { public: void lucu( ) { cout<<" Lucunya hewan peliharaan"<<endl; } virtual void makan( )// anggota class { cout<<" Makan... dibutuhkan hewan peliharaan"<<endl; } }; class Jinak : public HewanPeliharaan { public: void lucu( ) { cout<<" Lucu dan Jinak"<<endl; }
  • 16. virtual void makan( ) { cout<<" Diberi makan agar jinak"<<endl; } }; class Kucing : public Jinak { public: void lucu( ) { cout<<" Lucunya kucing"<<endl; } virtual void makan( ) { cout<<" Makanan dibutuhkan Kucing"<<endl; } }; void main( ) { //definisi Objek Jinak dan Kucing puma Jinak jinak; Kucing puma; //definisi pointer ke objek HewanPeliharaan *hewan; hewan=&jinak; hewan->lucu( ); hewan->makan( ); cout<<" -----------------------------"<<endl; hewan = &puma; hewan->lucu( ); hewan->makan( ); getch(); } Output yang dihasilkan dari program contoh-7 di atas adalah:
  • 17. Gambar 12.8 Hasil Contoh-7 12.5.3. Encapsulation Ciri penting lainnya dari OOP adalah encapsulation. Encapsulation adalah sebuah proses dimana tidak ada akses langsung ke data yang diberikan, bahkan hidden. Jika ingin mendapat data, maka harus berinteraksi dengan objek yang bertanggung jawab atas dara tersebut. Berikut cirri dari encapsulation: 1. Variabel dan method dalam suatu obyek dibungkus agar terlindungi 2. Untuk mengakses, variabel dan method yang sudah dibungkus tadi perlu interface 3. Setelah variabel dan method dibungkus, hak akses terhadapnya dapat ditentukan. 4. Konsep pembungkusan ini pada dasarnya merupakan perluasan dari tipe data struktur Dua hal dalam enkapsulasi : 1. Information hiding 2. Menyediakan perantara (method) untuk mengakses data Pada intinya, encapsulation adalah pemisahan antara bagian private dan public pada sebuah objek. Atau, dapat dipandang sebagai pemisahan antara interface (bagian private) dan implementation (bagian public). Objek-objek lain yang hendak berinteraksi dengan objek ini akan mengirimkan sebuah pesan (message) dan objek ini akan mengerjakan sesuatu dan mengirimkan pesan balik sebagai jawaban jika diperlukan. Keuntungan utama dari encapsulation tentu saja adalah penyembunyian implementasi (implementation hiding). Dengan implementation hiding, kita dapat memperbaiki bagaimana objek kita bekerja tanpa harus khawatir bagaimana menginformasikan perubahan tersebut ke objek-objek yang lain. Selama kita tidak merubah interface dari objek kita, objek-objek yang lain akan tetap dapat menggunkan objek kita. Contoh-8 //penggunaan encapsulation #include <conio.h> #include <iostream.h> class satu_kandang { int kandang; public: void atur(int nilai); int hasil(void); }; void satu_kandang :: atur(int nilai) { kandang = nilai;
  • 18. } int satu_kandang :: hasil(void) { return kandang; } void main( ) { satu_kandang ayam1, ayam2, ayam3; int bebek; ayam1.atur(5); ayam2.atur(7); ayam3.atur(2); bebek=20; cout<<" Nilai dari ayam1 adalah "<<ayam1.hasil()<<endl; cout<<" Nilai dari ayam2 adalah "<<ayam2.hasil()<<endl; cout<<" Nilai dari ayam3 adalah "<<ayam3.hasil()<<endl; cout<<" Nilai dari bebek adalah "<<bebek<<endl; getch( ); } Output yang dihasilkan dari program contoh-8 di atas adalah: Gambar 12.9 Hasil Contoh-8 12.6 Latihan Seorang manager ingin dibuatkan sebuah program perhitungan gaji pegawai staff honor sederhana. Anda sebagai staff programmer harus membuatkan program tersebut. Adapun ketentuan perhitungan gaji pegawai honorer adalah sebagai berikut : Honorer per hari yang diterima pegawai honorer sebesar Rp. 25.000
  • 19. Jam kerja selama 8 Jam setiap harinya Jam bekerja lebih dari 8 jam, maka kelebihan jam dikalikan dengan honor lembur perjam sebesar Rp. 1.500. Petunjuk : Gunakan kelas pegawai. Desain masukan yang diinginkan adalah sebagai berikut PT. Meriang Gembira Jumlah :……………….. Tanggal Input :……………….. ---------------------------------------------------------------------------------------- Data Ke-1 Nama Pegawai :………………….. Jumlah Jam Kerja :………………Jam Data Ke-2 Nama Pegawai :………………….. Jumlah Jam Kerja :………………Jam …………. …………. <terus mengulang sesuai jumlah pegawai yang diinputkan> Desain keluaran yang diingkinkan adalah sebagai berikut : PT. Meriang Gembira Tanggal : ……………….. ========================================================== No. Nama Honor Jumlah Honor Total Pegawai Jam Kerja Lembur Honor ========================================================== … ……………….. ………… …………….. ………….. ………….. … ……………….. ………… …………….. ………….. ………….. … ……………….. ………… …………….. ………….. ………….. Total Honor Pegawai Sebesar Studi Kasus Pra - UAS Buatlah sebuah program aplikasi bertemakan bisnis secara berkelompok. Adapun isi program yang dibuat harus memuat materi UAS : Array, kondisi, looping, label, fungsi, structure dan Class. Lalu buatkan bentuk rancangannya seperti contoh berikut: Bentuk Menu Utama
  • 21. Kunci Jawaban Latihan dan Studi Kasus Pra – UAS versi jawaban kami : 1. Latihan #include<conio> #include<iostream> #include<stdio> garis1() { cout<<" ------------------------------------------------------------------------n"; } garis2() { cout<<" ===================================================================== ===n"; } class kerja { public : char nama[25]; int jam; long total; float lembur(long l); };kerja pegawai[100]; main( ) { char tgl[15],maning; int i,jml,a=1,b=1; long tot_honor=0,honor=25000; nduwur: clrscr(); puts(" PT. Meriang Gembiran"); cout<<"n Jumlah : ";cin>>jml; cout<<" Tanggal Input : ";cin>>tgl; garis1(); for(i=0;i<jml;i++) { cout<<" Data Ke- "<<a++<<endl; cout<<" Nama Pegawai : ";gets(pegawai[i].nama); cout<<" Jumlah Jam Kerja : ";cin>>pegawai[i].jam; } clrscr( ); puts(" PT. Meriang Gembiran");
  • 22. cout<<"n Tanggal : "<<tgl<<endl; garis2(); cout<<" No. Nama Honor Jumlah Honor Totaln"; cout<<" Pegawai Jam Kerja Lembur Honorn"; garis2(); for(i=0;i<jml;i++) { gotoxy(2,wherey());cout<<b++<<"."; gotoxy(9,wherey());cout<<pegawai[i].nama; gotoxy(33,wherey());cout<<honor; gotoxy(46,wherey());cout<<pegawai[i].jam; gotoxy(58,wherey());cout<<pegawai[i].lembur(pegawai[i].jam); pegawai[i].total=honor+pegawai[i].lembur(pegawai[i].jam); gotoxy(69,wherey());cout<<pegawai[i].total<<endl; tot_honor=tot_honor+pegawai[i].total; } garis2(); cout<<" Total Honor Pegawai Sebesar :"; gotoxy(69,wherey());cout<<tot_honor<<endl; puts(" nnnMATUR THANK YOUn"); cout<<"nBadhe Hitung Again?? [Y/T] : "; cin>>maning; if (maning == 'Y' || maning == 'y') goto nduwur; getch( ); } float kerja::lembur(long l) { if (l>8) return(l-8)*1500; else return 0; } Output yang dihasilkan dari program latihan di atas adalah:
  • 23. Gambar Latihan (layar input). Gambar Latihan (layar output). 2. Studi Kasus Pra – UAS KET : “ MAAF UNTUK MENU UTAMA MASIH DALAM PROSES” #include<conio> #include<stdio> #include<iostream>
  • 24. #include<string.h> hiasan1() { cout<<" * * * * * * * * * * * * * * * * n" ; } hiasan2() { cout<<" ********************************************************************n"; } data() { cout<<" PENYEWAAN PAKAIAN ADAT NASIONALn"; cout<<" CHONIO DISTROn"; cout<<" * * * * * * * * * * * * * * * *n"<<endl; } class pakaian { public: char kode[5],*np,ukuran; int sewa,sb,hrg,sub(int s,int h); };pakaian baju[10]; main() { atas: int lama,i,jml,tb=0; long byr,kembali; char lg,nm[30]; data(); cout<<" NAMA PENYEWA : ";gets(nm); cout<<" INPUT LAMA SEWA : ";cin>>lama; cout<<" INPUT JUMLAH DATA : ";cin>>jml; hiasan1(); for(i=1;i<=jml;i++) { cout<<" DATA KE - "<<i<<endl; cout<<" INPUT KODE PAKET BAJU [JB/JT/SB] : ";cin>>baju[i].kode; cout<<" INPUT KODE UKURAN BAJU [S/M/L] : ";cin>>baju[i].ukuran; cout<<" JUMLAH SEWA : ";cin>>baju[i].sewa; if (strcmp(baju[i].kode,"JB")==0||strcmp(baju[i].kode,"jb")==0) {baju[i].np="JAWA BARAT";
  • 25. baju[i].hrg=200000; } else if(strcmp(baju[i].kode,"JT")==0||strcmp(baju[i].kode,"jt")==0) {baju[i].np="JAWA TENGAH"; baju[i].hrg=255000; } else if(strcmp(baju[i].kode,"SB")==0||strcmp(baju[i].kode,"sb")==0) {baju[i].np="SUMATERA BARAT"; baju[i].hrg=300000; } else { clrscr(); hiasan2(); cout<<"t* WARNING !!! *"<<endl; cout<<"t* ANDA SALAH MASUKKAN INPUTANNYA TUUUHH !!! *"<<endl; hiasan2();cout<<endl; goto atas; } } clrscr(); data(); cout<<" NAMA PENYEWA : "<<nm<<endl; cout<<"n DATA BAJU YANG DISEWA"<<endl; hiasan2(); cout<<" No. Nama Paket Harga Jumlah Sewa Subtotaln"; hiasan2(); for(i=1;i<=jml;i++) { gotoxy(3,wherey());cout<<i<<"."; gotoxy(9,wherey());cout<<baju[i].np; gotoxy(29,wherey());cout<<baju[i].hrg; gotoxy(45,wherey());cout<<baju[i].sewa; gotoxy(59,wherey());cout<<baju[i].sub(baju[i].sewa,baju[i].hrg)<<endl; tb+=baju[i]. sub(baju[i].sewa,baju[i].hrg); } hiasan2(); cout<<" Total Bayar : Rp. "<<tb<<endl; cout<<" Uang Bayar : Rp. ";cin>>byr; kembali=byr-tb; cout<<" Uang Kembali : Rp. "<<kembali;
  • 26. cout<<"nnnnnt TERIMA KASIHn"; cout<<"n INPUT DATA LAGI [Y/T] : ";cin>>lg; clrscr(); if (lg=='y'||lg=='Y') goto atas; else cout<<"nnn"<<endl; hiasan2(); cout<<"t* *"<<endl; cout<<"t* PROGRAM INI DIBUAT OLEH PROGRAMER *"<<endl; cout<<"t* CHONIO DISTRO !!! *"<<endl; cout<<"t* MAHASISWA BSI KELAS 12.1C.21 YOGI ANGGORO *"<<endl; cout<<"t* *"<<endl; hiasan2(); cout<<"nnt SELESAI dan TERIMA KASIH....."<<endl; cout<<"nt PENCET CHAR APA AJA YANG ADA DI KEYBOARD....."<<endl; getch(); } pakaian::sub(int s,int h) { return (s*h); } Gambar Studi layar input
  • 27. Gambar kondisi jika salah memasukkan inputan dalam hal ini input kode paket baju.
  • 28. Gambar Studi layar output. Gambar Kondisi apabila menekan karakter selain ‘Y’ or ‘y’. . “ Terima kasih buat Ibu dosen kelas 1C mata kuliah Algoritma dan Pemogramman 1,karena berkat beliau kami bisa buat program walaupun masih sangat sederhana sekali dan masih harus belajar lagi. Maaf apabila dalam 1 semester kami banyak salah. Sekali lagi kami banyak terima kasih”. Diposkan oleh Yogi Anggoro di 20.14 Tidak ada komentar: Kirimkan Ini lewat EmailBlogThis!Berbagi ke TwitterBerbagi ke FacebookBagikan ke Pinterest Posting LamaBeranda Langganan: Entri (Atom) PENGIKUT ARSIP BLOG  ▼ 2012 (2) o ▼ Januari (2)  Tugas Borland C++  Tugas Borland C++ MENGENAI SAYA Yogi Anggoro Lihat profil lengkapku
  • 29. Template Picture Window. Diberdayakan oleh Blogger.