Silabus :
1. Struktur Program, Variable, Operator
2. Stream Masukan Dan Keluaran
3. Struktur Kendali Pemilihan
4. Struktur Kendali Perulangan
5. Array
6. Struktur Record
7. Pointer
8. Function Dan Paratemer Passing
9. Paradigma Orientasi Obyek
- Obyek Dan Class
- Inheritance
- Polimorphism
10. File Dan Stream, multifile
BAB I
Struktur Program, Variable, Operator
Preprocessor
void main()
{
Deklarasi variabel ;
Statement-1;
Statement-2;
.
Statement-n;
}
Contoh :
void main()
{
}
Variabel (identifier)
Adalah pengenal (yang didefinisikan pemrogram) yang akan digunakan dalam
program. Beberapa syarat pemberian nama variable yaitu :
1. Dapat terdiri atas gabungan huruf dan angka tapi harus diawali dengan huruf
2. Tidak boleh mengandung spasi atau karakter khusus kecuali garis bawah
3. Tidak boleh menggunakan key-word C++
Tipe Data
Operator
1. Operator arithmatika
* Perkalian
/ Pembagian
% Sisa Pembagian
+ Penjumlahan
- Pengurangan
2. Operator Relasi
> Besar dari
< Kecil dari
>= Besar sama dengan
<= Kecil sama dengan
== Sama dengan
!= Tidak sama dengan
3. Operator Logika
&& and
|| atau
! tidak
4. Operator Penugasan
= Sama dengan
Contoh : x += 2
BAB II
Stream Masukan Dan Keluaran /
Statemen input output
Stream merupakan suatu abstraksi untuk menangani aliran data dari suatu sumber
ke tujuan lain. Baik sumber maupun tujuan dapat berupa buffer dimemori, string, file atau
layar monitor.
Stream Output
Untuk stream output kelayar monitor digunakan stream cout
Contoh :
#include <iostream.h>
void main()
{
cout << Turbo C++;
}
Stream Input
Untuk stream input digunakan stream cin
Contoh :
#include <iostream.h>
#include <conio.h>
void main()
{
clrscr();
int bil;
cout << input sebuah bilangan :;
cin >> bil;
cout << bilangan yang diinputkan adalah :<< bil;
getch()
}
statement input
- cin>>
- scanf()
- getch()// input data character
- gets()// input data string
statement output
- cout<<
- printf()
Operasi arithmatik
Dalam operasi arithmatik akan selalu berhubungan dengan penggunaan operator
arithmatik, perlu diingat bahwa setiap operator pada operasi arithmatik mempunyai
derajat yang berbeda. Dalam suatu proses arithmatik operator dengan derajat yang lebih
tinggi akan lebih dahulu diproses dibandingkan dengan operator dengan derajat yang
lebih rendah. Tanda kurung dapat digunakan untuk merubah prioritas operasi pengerjaan.
Contoh :
#include <conio.h>
#include <iostream.h>
main()
{
int a,b,c, Total;
cout <<"Input Nilai A"<<endl;
cin>>a;
cout <<"Input Nilai B"<<endl;
cin>>b;
cout <<"Input Nilai C"<<endl;
cin>>c;
Total = a+b+c;
cout <<"Total "<< Total<<endl;
getch();
return 0;
}
Contoh :
# include <iostream.h>
# include <conio.h>
# include <iomanip.h>
# include <math.h>
void main()
{
clrscr();
float x;
int a,c;
cout << "input nilai A :";
cin >> a;
cout << "input nilai B :";
cin >> c;
x = 4*a*c;
cout <<" hasil:"<< sqrt(x);
getch();
}
Manipulator
Digunakan untuk mengatur tampilan data, ada beberapa manipulator yang
disediakan oleh C++, manipulator ini disimpan dalam file header iomanip.h, adapun
operator-operator ini yaitu :
Manipulator Keterangan
Dec Menampilkan bilangan dalam basis decimal (basis 10)
Endl Menyisipkan baris baru dan mengosongkan stream
Ends Menyisipkan karakter akhir string
Flush Mengosongkan ostream
Hex Menampilkan bilangan dalam basis hexadesimal
Oct Menampilkan bilangan dalam basis octal
Setbase (int n) Mengubah basis bilangan
Mengatur derajat ketelitian untuk bilangan floating
Setprecision (int n)
point
Setw (int n) Mengatur lebar output
Setfill(int c) Menyetel karakter pemenuh berupa c
Setiosflags(long f) Menyetel format tampilan (lihat tabel setiosflags)
Tabel 2: Manipulator
Contoh :
#include <iomanip.h>
#include <conio.h>
#include <iostream.h>
void main()
{
int x = 4321;
cout << nilai x dalam hexadecimal :;<<hex<<x<<endl;
cout << nilai x dalam octal : <<oct<<x;
getch();
}
contoh :
# include <iostream.h>
# include <conio.h>
# include <iomanip.h>
# include <math.h>
void main()
{
clrscr();
double x;
x = 9876.5436;
cout << "tampilan 4 presisi :"<< setw(20)<<setprecision(4)<<x;<<endl;
cout << "tampilan 5 presisi :"<< setw(20)<<setprecision(5)<<x;<<endl;
cout << "tampilan 6 presisi :"<< setw(20)<<setprecision(6)<<x;<<endl;
getch();
}
Jika program diatas dikompilasi dan kemudian dijalankan hasilnya adalah sebagai
berikut :
Contoh :
# include <iostream.h>
# include <conio.h>
# include <iomanip.h>
# include <math.h>
void main()
{
clrscr();
double x;
x = 9876.5436;
cout << "tampilan 2 presisi :";
cout << setw(20)<<setprecision(2)<<setiosflags(ios::left)<<x<<endl;
cout << "tampilan 3 presisi :";
cout << setw(20)<<setprecision(3)<<setiosflags(ios::left)<<x<<endl;
cout << "tampilan 4 presisi :";
cout << setw(20)<<setprecision(4)<<setiosflags(ios::left)<<x<<endl;
getch();
}
1. x = ab
2. y = a5 sin(b)
cos(c)
BAB III
Struktur Kendali Pemilihan
Perintah percabangan / Penyeleksian kondisi
Statement ini digunakan untuk menyeleksi satu kondisi atau lebih, ada beberapa
stetement percabangan yang disediakan oleh C++ yaitu :
1. if
Digunakan untuk menyeleksi satu kemungkinan kondisi, baik kondisi benilai benar
atau bernilai salah
Sintaks :
If (kondisi )
{
statement_1;
statement_2;
.
staement_n;
}
Contoh :
#include <.h>
void main()
{
clrscr();
int n_angka;
char ket[5];
cout <<"input nilai angka :";cin>>n_angka;
if (n_angka >= 60)
strcpy(ket,"lulus");
cout <<"keterangan :";cout<<ket;
getch();
}
2. if..else..if
Digunakan untuk menyeleksi dua kemungkinan atau lebih, dimana masing-masing
kondisi baik bernilai benar atau bernilai salah akan melakukan suatu aksi
Sintaks :
If (kondisi_1)
{
statement_1;
statement_2;
.
staement_n;
}
else
If (kondisi_2 )
{
statement_1;
statement_2;
.
staement_n;
}
Contoh :
#include <.h>
void main()
{
clrscr();
int n_angka;
char ket;
cout <<"input nilai angka :";cin>>n_angka;
if (n_angka >= 60)
strcpy(ket,"lulus");
else
strcpy(ket,"gagal");
cout <<"keterangan :";cout<<ket;
getch();
}
latihan :
1. mencari titik kuadran
y
2
II I
1
x
-2 -1 0 1 2 3
III IV
-1
layout :
mencari posisi kuadran
input titik (p,x) :
input titik (p,y) :
titik p(x,y) :
Sintaks :
switch(kondisi)
{
case 1 : statement_1;
break;
case 2 : statement_2;
break;
default : statement_n;
break;
}
Contoh :
#include <.h>
void main()
{
clrscr();
int bobot;
gotoxy(20,5);cout <<"input nilai huruf :";cin>>n_huruf;
switch(n_huruf)
{
case 'a' : bobot = 4;
break;
case 'b' : bobot = 3;
break;
case 'c' : bobot = 2;
break;
case 'd' : bobot = 1;
break;
case 'e' : bobot = 0;
}
gotoxy(20,6);cout <<"bobot nilai :";cout<<bobot;
getch();
}
BAB IV
STRUKTUR KENDALI PERULANGAN / LOOPING
Digunakan untuk mengulang satu statemen atau satu blok statemen. C++
menyediakan tiga statement perulangan yaitu, for, while dan do..while.
1. for
Biasanya digunakan untuk perulangan yang bersifat tetap atau konstan (sudah
diketahui jumlah perulangannya.)
Contoh :
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
void main()
{
clrscr();
int x;
x = 0;
for(x=5;x>=0;x--)
cout << x <<endl;
getch();
}
2. do while
Biasanya digunakan untuk perulangan yang bersifat tetap atau tidak
tetap.
void main()
{
clrscr();
int x=1;
do
{
cout << x <<endl;
x++;
}
while (x<=5);
getch();
}
3. while
Biasanya digunakan untuk perulangan yang bersifat tetap atau tidak
tetap.
File adalah operasi untuk menyimpan data yang kita inputkan secara permanen.
Selanjutnya data yang kita simpan tersebut dapat kita panggil lagi jika di perlukan. Oprasi
dasar pada file umumnya terbagi atas 3 tahap, yaitu:
- membuka atau mengaktifkan file
- melaksanakan pemrosesan file
- menutup file
Membuka file
Sebelum file dapat diproses, file harus dibuka terlebih dahulu, bentuk
pernyataannya yaitu
fstream file;
file.open("nama_file.rtf",ios::app|ios::out|ios::in);
Menulis ke file
Salah satu bentuk pemrosesan pada file adalah menulis atau merekam data ke file,
bentuk pernyataannya yaitu :
file.write((char*)&obj,sizeof(obj));
Menutup file
Setelah pemrosesan file berakhir, file perlu ditutup, bentuk pernyataannya yaitu :
file.close()
Contoh :
// File obyek
#include <iostream.h>
#include <conio.h>
#include <fstream>
#include <process.h>
#include <iomanip.h>
char n_huruf;
class mahasiswa
{
public :
char nobp[10];
char nama[10];
int n_angka;
public:
void entri_data();
void info();
};
void main()
{
mahasiswa mhs;
int pilih=0;
char mad;
while (pilih < 3)
{
clrscr();
fstream file;
file.open("data.dat",ios::app|ios::out|ios::in);
cout<<"\nmenu utama";
cout<<"\n[1].entri data";
cout<<"\n[2].info";
cout<<"\n[3].exit";
cout<<"\ninput pilihan :";cin>>pilih;
switch(pilih)
{
case 1 :
do
{
mhs.entri_data();
file.write((char*)&mhs,sizeof(mhs));
cout<<"\nmasih ada data :";cin>>mad;
} while (mad =='y');
break;
case 2 :
clrscr();
cout<<"data mahasiswa ";
cout<<"\n+-----------------------------------------+";
cout<<"\n| nobp | nama | n.angka | n.huruf |";
cout<<"\n+-----------------------------------------+";
file.seekg(0);
file.read((char*)&mhs,sizeof(mhs));
while (!file.eof())
{
mhs.info();
file.read((char*)&mhs,sizeof(mhs));
}
getch();
break;
case 3 : exit;
file.close();
}
}
getch();
}
BAB V
FUNGSI
Sebuah fungsi berisi sejumlah pernyataan yang dikemas dalam sebuah nama. Nama
ini selanjutnya dapat dipanggil beberapa kali di beberapa tempat dalam program
Tujuan fungsi antara lain yaitu :
- Mempermudah dalam pengembangan program
- Menghemat dalam ukuran program
fungsi main()
Contoh :
#include <..>
void garis();
void main()
{
clrscr();
garis();
cout<<endl;
cout <<"c++ programming";
cout<<endl;
garis();
getch();
return ;
}
void garis()
{
for (int I=0;I<=15;I++)
cout<<"-";
}
Sebelum suatu fungsi dibuat, fungsi tersebut terlebih dahulu harus dideklarasikan
yang disebut dengan prototype fungsi. Prototype ini berupa :
- Nama fungsi
- Tipe nilai balik fungsi
- Jumlah dan type argumen
Contoh prototype fungsi
- void garis();
Contoh
void segitiga();
void lingkaran();
void main()
{
int pilih;
clrscr;
gotoxy(20,5) ;cout<<"menu utama";
gotoxy(20,7) ;cout<<"[1].segitiga ";
gotoxy(20,8) ;cout<<"[2].lingkaran";
gotoxy(20,9) ;cout<<"[3].exit";
gotoxy(20,10);cout<<"input pilihan :"; cin>>pilih;
switch(pilih)
{
case 1 : segitiga();
break;
case 2 : lingkaran();
break;
default : exit;
}
getch();
}
void segitiga()
{
clrscr();
int alas,tgi;
float luas;
gotoxy(20,5) ;cout<<"input alas :";cin>>alas;
gotoxy(20,6) ;cout<<"input tinggi :";cin>>tgi;
luas = 0.5*alas*tgi;
gotoxy(20,7) ;cout<<"luas segitiga:";cout<<luas;
}
void lingkaran()
{
clrscr();
float luas_link;
int r;
gotoxy(20,5) ;cout<<"input jari-jari :";cin>>r;
luas_l = 3.14*r*r
gotoxy(20,7) ;cout<<"luas lingkaran :";cout<<luas_link;
}
Ada kalanya sebuah fungsi membutuhkan pertukaran informasi dengan fungsi lain,
pertukaran informasi ini dapat dilakukan dengan cara pertukaran nilai antar parameter.
Dalam pertukaran nilai antar parameter ini dapat dilakukan dengan dua cara yaitu secara
nilai(by value) atau secara acuan (by reference)
1. Pertukaran secara nilai
- Menyalin nilai dari parameter aktual ke parameter formal
- Pertukaran nilai ini bersifat satu arah yaitu dari parameter aktual ke parameter
formal, akibatnya jika terjadi perubahan nilai pada parameter aktual akan
mempengaruhi nilai pada parameter formal, tapi tidak untuk sebaliknya.
Contoh :
#include <.>
input nilai x :2
input nilai y :2
hasil :4
Contoh :
#include <>
Lingkup variabel
Lingkup variabel menentukan keberadaan suatu variabel tertentu dalam fungsi.
Ada tiga jenis variabel pada suatu fungsi :
1. Variabel otomatis atau disebut juga variabel lokal, variabel ini mempunyai sifat
- Variabel hanya diciptakan saat fungsi dipanggil dan saat fungsi berakhir (selesai
dieksekusi) maka variabel akan sirna
- Hanya dapat diakses pada fungsi yang mendefenisikannya
2. Variabel eksternal atau disebut juga variabel global, variabel ini mempunyai sifat
- Variabel ini mempunyai durasi selama program dieksekusi, dengan kata lain,
memori yang digunakan untuk variabel ini tetap dipertahankan selama program
belum berakhir
- Variabel ini dapat diakses pada semua fungsi
3. Variabel static, variabel ini mempunyai sifat
- Jika variabel lokal yang dibuat statis, maka variabel ini tetap hanya dapat diakses
pada fungsi yang mendefenisikannya, akan tetapi nilainya tidak hilang saat eksekusi
fungsi berakhir
- Jika variabel eksternal yang dibuat static, variabel ini dapat diakses oleh semua file
yang mendefenisikan pada file yang sama dengan variabel eksternal tsb (kode
program ditaruh pada beberapa file)
BAB VI
ARRAY
Array adalah kumpulan data yang bertipe sama yang menggunakan nama yang
sama. Setiap data ditandai dengan sebuah indeks, dan setiap data diakses melalui
indeksnya. Indeks array harus bertipe numerik bilangan bulat. C++ secara otomatis akan
memberi nilai awal nol terhadap array yang bersifat global. Tidak demikian halnya kalau
array didefenisikan secara lokal. Pemrogram harus mengatur sendiri nilai awal array
lokal.
Contoh :
#include <..>
void main()
{
clrscr();
char nobp[5][10];
char nama[5][15];
int n_angka[5];
int x,i
x= 0;
do
{
gotoxy(20,5);cout<<"input nobp :";cin>>nobp[x];
gotoxy(20,6);cout<<"input nama :";cin>>nama[x];
gotoxy(20,7);cout<<"nilai angka :";cin>>n_angka[x];
x++;
gotoxy(20,9);cout<<"masih ada data :";cin>>mad;
}
while (mad =='y');
getch();
clrscr();
gotoxy(10,5);cout<<"+-------------------------------------+";
gotoxy(10,6);cout<<"| no | nobp | nama | n angka |";
gotoxy(10,7);cout<<"+-------------------------------------+";
/* 01234567890123456789012345678901234567890 */
/* 1 2 3 4 5 */
baris = 7;
for (i=0;i<x;i++)
{
baris++;
gotoxy(10,baris);cout<<"|";
gotoxy(12,baris);cout<<i;
gotoxy(15,baris);cout<<"|";
gotoxy(18,baris);cout<<nobp[i];
gotoxy(26,baris);cout<<"|";
gotoxy(28,baris);cout<<nama[i];
gotoxy(38,baris);cout<<"|";
gotoxy(40,baris);cout<<n_angka[i];
gotoxy(48,baris);cout<<"|";
}
getch();
return;
}
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
clrscr();
char nobp[5][10];
char nama[5][15];
int n_angka[5];
char mad;
int x,i ;
x= 0;
do
{
cout<<"input nobp :";cin>>nobp[x];
cout<<"input nama :";cin>>nama[x];
cout<<"nilai angka :";cin>>n_angka[x];
x++;
cout<<"masih ada data :";cin>>mad;
}
while (mad =='y');
getch();
clrscr();
gotoxy(10,5);cout<<"+-------------------------------------+";
gotoxy(10,6);cout<<"| no | nobp | nama | n angka |";
gotoxy(10,7);cout<<"+-------------------------------------+";
/* 01234567890123456789012345678901234567890 */
/* 1 2 3 4 5 */
for (i=0;i<x;i++)
{
cout<<"\n"<<setw(10)<<"|"<<setw(4)<<i<<"|"<<setw(10)<<nobp[i]<<"|"
<<nama[i]<<"|"<<n_angka[i]<<"|";
}
getch();
return;
}
BAB VII
STRUCTUR RECORD
Tipe
data
Struct data
{
char nobp[10];
char nama[20];
int nilai;
}; data mhs;
Contoh :
#include <stdio.h>
struct data
{
char nobp[10];
char nama[15];
int n_angka;
}; data mhs;
char mad;
void main()
{
do
{
clrscr();
gotoxy(20,5) ;cout<<"input nobp :";cin>>mhs.nobp;
gotoxy(20,6) ;cout<<"input nama :";cin>>mhs.nama;
gotoxy(20,7) ;cout<<"nilai angka :";cin>>mhs.n_angka;
if (mhs.n_angka >= 80)
n_huruf = 'A';
else
if (mhs.n_angka >= 65)
n_huruf = 'B';
else
if (mhs.n_angka >= 55)
n_huruf = 'C';
else
if (mhs.n_angka >= 40)
n_huruf = 'D';
else
n_huruf = 'E';
gotoxy(20,8) ;cout<<"nilai huruf :";cout<<n_huruf
gotoxy(20,10);cout<<"masih ada data :";cin>>mad;
}
while (mad =='y');
getch();
}
BAB VIII.a
OBJECT ORIENTED PROGRAMMING (OOP)
Pengertian Obyek
Dalam kehidupan sehari-hari yang dimaksud dengan obyek adalah sesuatu,
sesuatu itu dapat berupa benda hidup dan benda mati, misalnya orang, mobil, meja dsb.
Dibidang biologi terdapat obyek hewan, obyek mobil, obyek sel dsb. Dibidang otomotif
ada obyek, mobil, obyek busi, obyek roda dsb.
Bila diperhatikan setiap obyek memiliki data dan metoda (fungsi). Sebagai
contoh, orang memiliki data tingi badan , berat badan, warna kulit dsb. Metoda(fungsi)
yang dapat dilakukan orang adalah bekerja, makan, tidur dsb.
Dibidang pemrograman yang dimaksud dengan obyek sebenarnya adalah metode
pemrograman yang menirukan keadaan dunia yang sebenarnya, yaitu dengan membuat
obyek-obyek untuk masalah yang dihadapi.
Metodologi OOP
Ada 3 metodologi atau konsep dasar dari OOP, yaitu :
1. Pemodulan (Encapsulation)
Adalah metoda untuk menggabungkan data dengan fungsi. Dalam konsep
pemodulan, data dan fungsi digabung menjadi satu kesatuan yang disebut dengan
obyek.
Konsep pemodulan ini erat kaitannya dengan konsep penyembunyian informasi
(information hiding). Apa yang dimaksud information hiding ?, contoh :
Mobil adalah sebuah obyek, seorang pengendara mobil tidak harus tahu
bagaimana proses kerja mesin mobil, sehingga mobil tersebut bisa berjalan. Dia tidak
harus tahu bagaimana proses pembakaran bahan bakar, pemindahan transmisi dsb.
Seorang pengendara hanya tahu bahwa setir untuk mengendalikan jalannnya mobil,
gas untuk menambah kecepatan, rem untuk mengurangi kecepatan dsb. Singkatnya
seorang pengendara hanya tahu bahwa mobilnya berjalan dengan baik.
Dari contoh diatas terlihat bahwa seseorang hanya tahu obyek tersebut digunakan
untuk apa dan bukan apa yang menyebabkan obyek tersebut bisa berbuat demikian.
2. Penurunan (Inheritance)
Penurunan merupakan metodologi OOP yang sangat penting. Dari konsep
penurunan ini sebuah obyek dapat diturunkan menjadi obyek baru yang mewarisi
sifat-sifat orang tuanya. Sebagai contoh, obyek dari kendaraan bermotor dapat
diturunkan beberapa obyek baru, misalnya sepeda motor, sedan, mini bus dsb.
Masing-masing kendaraan bermotor ini memiliki beberapa data yang sama, seperti
gigi persneling, kecepatan putaran mesin dsb. Namun masing-masing obyek baru ini
memiliki data dan metoda baru. Contoh sedan memiliki data AC, sedangkan sepeda
motor tidak. Karena sedan memiliki data AC maka terdapat juga metoda-metoda yang
berhubungan dengan AC, seperti menyalakan AC, mengubah suhu dsb.
3. Polimorfisme (Polymorphism)
Polimorfisme (Polymorphism) berarti obyek-obyek yang berbeda tapi berasal dari
satu orang tua dapat mempunyai metoda yang sama tapi cara pelaksanaannya
berbeda-beda.
Contoh pada obyek kendaraan bermotor dan obyek kendaraan tak bermotor,
masing-masing obyek ini memiliki fungsi untuk jalan. Pada kendaraan bermotor
fungsi ini dilakukan oleh mesin, sedangkan pada kendaraan tak bermotor fungsi ini
dikerjakan oleh tenaga manusia atau hewan.
Contoh program berikut akan menghasilkan layout yang sama, sedangkan untuk
membuat program menggunakan metoda yang berbeda.
Program 1:
#include <..>
struct data
{
char judul[20];
char pengarang[20];
int jumlah;
}buku;
void input_data()
{
cout<<"input judul :"; cin >>buku.judul;
cout<<"input pengarang :"; cin >> buku.pengarang;
cout<<"input jumlah :"; cin >> buku.jumlah;
cout<< endl;
}
void info()
{
cout <<"judul buku :"; cout << buku.judul<<endl;
cout <<"pengarang :"; cout << buku.pengarang<<endl;
cout <<"jumlah buku :"; cout << buku.jumlah<<endl;
cout << endl;
}
void main()
{
clrscr();
input_data();
info();
getch();
}
Program 2:
#include <.>
class buku
{
public:
char judul[20];
char pengarang[20];
int jumlah;
public:
void input_data()
{
cout<<"input judul :"; cin>> judul;
cout<<"input pengarang :"; cin>> pengarang;
cout<<"input jumlah :"; cin>> jumlah;
return;
}
void info()
{
cout <<"judul buku :"; cout<< judul<<endl;
cout <<"pengarang :"; cout<< pengarang<<endl;
cout <<"jumlah buku :"; cout<< jumlah<<endl;
return;
}
};
void main()
{
clrscr();
buku novel;
novel.input_data();
novel.info();
getch();
}
Program 3:
#include <>
class buku
{
public:
char judul[20];
char pengarang[20];
int jumlah;
public:
void input_data();
void info();
};
void buku::input_data()
{
cout<<"input judul :";
cin >>judul;
cout<<"input pengarang :";
cin >> pengarang;
cout<<"input jumlah :";
cin >> jumlah;
return;
}
void buku::info()
{
cout <<"judul buku :";
cout << judul<<endl;
cout <<"pengarang :";
cout << pengarang<<endl;
cout <<"jumlah buku :";
cout << jumlah<<endl;
return;
}
void main()
{
clrscr();
buku novel;
novel.input_data();
novel.info();
getch();
}
Pada program 2 dan 3 menggunakan metoda OOP. Dalam program ini dibuat
sebuah class yang bernama buku, dari class buku ini selanjutnya akan dibuat sebuah
obyek yang bernama novel. terlihat bahwa data dan fungsi-fungsi yang berhubungan
dengan obyek novel dijadikan satu kesatuan (class).
OBJECT DALAM BENTUK ARRAY
int br = 9;
char n_huruf;
class mahasiswa
{
public :
char nobp[10];
char nama[10];
int n_angka;
public:
void entri_data();
void info();
};
gotoxy(44,br);cout<<n_huruf;
gotoxy(52,br);cout<<'|';
}
void main()
{
mahasiswa *mhs;
mhs = new mahasiswa[50];
clrscr();
int x=0;
char mad;
do
{
mhs[x].entri_data();
x++;
gotoxy(20,9);cout<<"masih ada data :";cin>>mad;
} while (mad =='y');
clrscr();
gotoxy(10,4);cout<<"data mahasiswa ";
gotoxy(10,6);cout<<"+-----------------------------------------+";cout<<endl;
gotoxy(10,7);cout<<"| nobp | nama | n.angka | n.huruf |";cout<<endl;
gotoxy(10,8);cout<<"+-----------------------------------------+";cout<<endl;
/* 01234567890123456789012345678901234567890123 */
/* 1 2 3 4 5 */
mahasiswa *mhs
mhs = new mahasiswa[50]
objek
array
mhs
0
1
2
...
49
BAB X
INHERITANCE (PEWARISAN / PENURUNAN)
C++ memungkinkan suatu kelas mewarisi data ataupun fungsi anggota kelas lain.
Sifat seperti ini disebut pewarisan (inheritance). Kelas yang mewarisi kelas lain disebut
kelas turunan (derived class), sedangkan kelas yang mewariskan sifat ke kelas lain
disebut kelas dasar (base class).
Kelas dasar
Sifat A
Sifat B
Kelas Turunan
Sifat A
Sifat B
Sifat C
Contoh :
// turunan dengan pointer menunjuk obyek dinamis
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int br = 10;
class mahasiswa
{
private:
char nobp[10];
char nama[10];
public:
void entri_data_mhs()
{
clrscr();
gotoxy(20,4);cout<<"entri data mahasiswa";
gotoxy(20,5);cout<<"nobp :";cin>>nobp;
gotoxy(20,6);cout<<"nama :";cin>>nama;
}
void info_mhs()
{
gotoxy(13,br);cout<<'|';
gotoxy(14,br);cout<<nobp;
gotoxy(21,br);cout<<'|';
gotoxy(22,br);cout<<nama;
}
};
void info_data_nilai()
{
mahasiswa::info_mhs();
gotoxy(31,br);cout<<'|';
gotoxy(32,br);cout<<kode_mtk;
gotoxy(38,br);cout<<'|';
gotoxy(39,br);cout<<n_angka;
if (n_angka >= 80)
n_huruf = 'A';
else
if (n_angka >= 65)
n_huruf = 'B';
else
if (n_angka >= 55)
n_huruf = 'C';
else
if (n_angka >= 40)
n_huruf = 'D';
else
n_huruf = 'E';
gotoxy(45,br);cout<<"|";
gotoxy(46,br);cout<<n_huruf;
gotoxy(51,br);cout<<"|";
}
};
main()
{
nilai *nl;
nl = new nilai[50];
clrscr();
int x=1;
char mad;
do
{
nl[x].entri_data_nilai();
x++;
gotoxy(20,13);cout<<"masih ada data :";cin>>mad;
} while (mad =='y');
clrscr();
gotoxy(10,4);cout<<"data mahasiswa ";
gotoxy(10,6);cout<<"+----------------------------------------+";
gotoxy(10,7);cout<<"|no|nobp | nama | kode |nilai |nilai|";
gotoxy(10,8);cout<<"| | | | mtk |angka |huruf|";
gotoxy(10,9);cout<<"+----------------------------------------+";
/* 012345678901234567890123456789012345678901234567890123 */
/* 1 2 3 4 5 */