Upload
aan-junior
View
242
Download
7
Embed Size (px)
DESCRIPTION
Contoh laporan Dasar Pemrograman C++
Citation preview
Modul 6 Struct
MODUL VISTRUCT
A. Tujuan1. Mahasiswa dapat memahami definisi dan kegunaan struct2. Mahasiswa dapat mengetahui bagaimana mengimplementasikan struct dalam
program.
B. Dasar TeoriStruktur data digunakan untuk menyimpan paket (sekumpulan) data ke dalam
satu buah nama variabel saja. Kumpulan data tersebut diikat sedemikian rupa
menjadi satu. Kumpulan data di dalam sebuah struct bisa mempunyai tipe data dasar
yang beraneka ragam. Kumpulan data dalam sebuah struct sangat dianjurkan
membentuk sebuah kesatuan makna berkaitan dengan nama struct-nya.Dalam
operasi struct yang umum digunakan adalah penambahan data, penampilan data,
pencarian data, edit serta hapus data.
Deklarasi StrukturStruktur dideklarasikan dengan menggunakan kata kunci struct. Bentuk
umum deklarasi struct adalah:struct nama_struktur{
tipe variabel_1;tipe variabel_2;
};
Struct dapat dipandang sebagai sebuah tipe data, sehingga dapat
dideklarasikan sebagai sebuah variable biasa, variabel pointer, variabel array, dan
sebagainya.
Nested StructMerupakan suatu struct yang dapat digunakan didalam struct lainnya dengan cara
mendeklarasikannya kembali kedalam struct tersebut.
#include <iostream>#include <conio>
main(){ struct dtmhs { char nama[20], nim[10]; }; struct {
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 1
Modul 6 Struct
struct dtmhs mhs; char dtpraktikan[20]; }praktikan; char kembali; cout<<"\n\t##### DATA PRAKTIKAN #####\n\n"; cout<<" #Input Data\n"; cout<<" Masukkan Nama : ";cin>>praktikan.mhs.nama; cout<<" Masukkan NIM : ";cin>>praktikan.mhs.nim; cout<<" Praktikum : ";cin>>praktikan.dtpraktikan; cout<<"\n\n #Output Data\n"; cout<<" Nama : "<<praktikan.mhs.nama<<endl; cout<<" NIM : "<<praktikan.mhs.nim<<endl; cout<<" Praktikum : "<<praktikan.dtpraktikan<<endl;getch();}
Cara Mengakses Anggota StructBila struct dideklarasikan sebagai sebuah variable biasa, maka cara. pen-
gaksesan anggota struct menggunakan tanda titik (.). Bila struct dideklarasikan se-
bagai sebuah variabel pointer, maka cara pengaksesan anggota struct menggu-
nakan tanda (->). Bila struct dideklarasikan sebagai pointer sebagai array, maka
cara pengaksesan anggota structmenggunakan tanda titik (.).
Contoh 1:Program berikut adalah struct sebagai sebuah variable biasa.
#include <iostream.h>#include <string.h>#include <conio.h>void main(){
//deklarasistrukturPersonal person;//mengisianggotastrukturstrcpy(person.nama,"Zafrullah");strcpy(person.alamat,"Jl. Tapon No. 62");person.telepon=123456;strcpy(person.kota,"Praya");person.kodepos=83562;cout<<"nama : "<<person.nama<<endl;cout<<"alamat : "<<person.alamat<<endl;cout<<"telepon : "<<person.telepon<<endl;cout<<"kota : "<<person.kota<<endl;cout<<"kodepos : "<<person.kodepos;
getch();}struct Personal{
char nama[20];char alamat[40];long int telepon;char kota[40];long int kodepos;
};
Contoh 2:
Program berikut adalah struct sebagai sebuah variabel pointer.
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 2
Modul 6 Struct
#include <iostream.h>#include <string.h>
void main(){//deklarasi struktur personal sebagai pointerPersonal* person=new Personal;//mengisi anggota strukturstrcpy(person->nama,"Zafrullah");strcpy(person->alamat,"Jl. Tapon No. 62");person->telepon=123456;cout<<"nama : "<<person->nama<<endl;cout<<"alamat : "<<person->alamat<<endl;cout<<"telepon : "<<person->telepon<<endl;cout<<"kota : "<<person->kota<<endl;cout<<"kodepos : "<<person->kodepos;getch();}struct Personal{
char nama[20];char alamat[40];long int telepon;char kota[40];long int kodepos;
};
Contoh 3:
Program berikut adalah pengisian nilai mahasiswa dengan menggunakan struct pointer sebagai array.#include <iostream.h>#include <conio.h>void Input(Mahasiswa *mhs, int jumData);void ProsesData(Mahasiswa *mhs, int jumData);void main(){ int jumData; Mahasiswa *mhs; cout<<"Masukkanjumlah data : "; cin>>jumData; mhs=new Mahasiswa[jumData]; Input(mhs, jumData); ProsesData(mhs, jumData); Cetak(mhs, jumData);}struct Mahasiswa{ int No; char Nama[20], Nim[15], Nilai; float Tugas, UTS, UAS;};void Input(Mahasiswa *mhs, int jumData){ cout<<endl; for(int i=0; i<jumData; i++) {
cout<<"No\t\t: "<<(i+1)<<endl;
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 3
Modul 6 Struct
mhs[i].No=i+1;cout<<"Nama\t\t: ";cin>>mhs[i].Nama;cout<<"Nim\t\t: ";cin>>mhs[i].Nim;cout<<"Nilai Tugas\t: ";cin>>mhs[i].Tugas;cout<<"Nilai UTS\t: ";cin>>mhs[i].UTS;cout<<"Nilai UAS\t: ";cin>>mhs[i].UAS;mhs[i].Nilai='\0';cout<<endl;
}}void ProsesData(Mahasiswa *mhs, int jumData){ float nilai; for(int i=0; i<jumData; i++) { nilai=(mhs[i].Tugas*0.3) + (mhs[i].UTS*0.3) + (mhs[i].UAS*0.4); if(nilai>85) {
mhs[i].Nilai='\A'; } else if (nilai<85 && nilai>=75) {
mhs[i].Nilai='\B'; } else if (nilai<75 && nilai>=60) { mhs[i].Nilai='\C'; } else if (nilai<60 && nilai>=50) { mhs[i].Nilai='\D'; } else if (nilai<50) {
mhs[i].Nilai='\E'; } }}void Cetak(Mahasiswa *mhs, int jumData){ clrscr(); cout<<"--------------------------------------------------------\n"; cout<<"No Nim Nama Tugas UTS UAS Nilai\n"; cout<<"--------------------------------------------------------\n"; int y=4; for(int i=0; i<jumData; i++) {
cout<<mhs[i].No;
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 4
Modul 6 Struct
gotoxy(5,y);cout<<mhs[i].Nim;gotoxy(15,y);cout<<mhs[i].Nama;gotoxy(30,y);cout<<mhs[i].Tugas;gotoxy(38,y);cout<<mhs[i].UTS;gotoxy(46,y);cout<<mhs[i].UAS;gotoxy(54,y);cout<<mhs[i].Nilai<<endl;y++;
} cout<<"--------------------------------------------------------\n";}
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 5
Modul 6 Struct
C. Permasalahan
Membuat struct menu swalayan.
Script:#include <iostream>#include <conio>#include <string>#include <iomanip>
struct Barang{
string id[6], namaBarang[6]; double harga[6], jumlah[6];};struct Pembeli{
char nama[30], alamat[30]; double jumlahBarang, bayarTotal, uang;};int pilih, jenis, i;Barang barang;Pembeli pembeli;double bayar(double a, double b);double kembalian(double a, double b);void input(){
cout<<" Berapa Jenis menu yang ingin dibeli : "; cin>>jenis; cout<<endl; for(i=0; i<jenis;i++) { cout<<" Pilihan Ke-"<<(i+1)<<" : ";cin>>pilih; switch(pilih) { case 1: barang.id[i] = "B001"; barang.namaBarang[i] = "ikan bakar"; barang.harga[i] = 12000; cout<<" Jumlah menu : "; cin>>barang.jumlah[i]; break; case 2: barang.id[i] = "B002"; barang.namaBarang[i] = "nasi goreng"; barang.harga[i] = 15000; cout<<" Jumlah menu : "; cin>>barang.jumlah[i]; break; case 3: barang.id[i] = "B003"; barang.namaBarang[i] = "nasi goreng spesial"; barang.harga[i] = 20000; cout<<" Jumlah menu : "; cin>>barang.jumlah[i]; break; } cout<<endl;
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 6
Modul 6 Struct
pembeli.bayarTotal += bayar(barang.jumlah[i], barang.harga[i]); pembeli.jumlahBarang += barang.jumlah[i]; } cout<<"\n\tBiodata Pembeli\n\n"; cout<<" Nama : ";cin>>pembeli.nama; cout<<" Alamat : ";cin>>pembeli.alamat;}void output(){
clrscr(); cout<<"\n\t\t##### STRUCT PEMBELIAN #####\n\n"; cout<<" +====+======+================+=================+========+\n"; cout<<" | "<<setiosflags(ios::left)<<setw(3)<<"No"; cout<<"| "<<setiosflags(ios::left)<<setw(5)<<"ID"; cout<<"| "<<setiosflags(ios::left)<<setw(15)<<"Nama Barang"; cout<<"| "<<setiosflags(ios::left)<<setw(15)<<"Harga Barang"; cout<<" | "<<setiosflags(ios::left)<<setw(5)<<"Jumlah |\n"; cout<<" +====+======+================+=================+========+\n"; for(i=0; i<jenis; i++) { cout<<" | "<<setiosflags(ios::left)<<setw(3)<<(i+1); cout<<"| "<<setiosflags(ios::left)<<setw(5)<<barang.id[i]; cout<<"| "<<setiosflags(ios::left)<<setw(12)<<barang.namaBarang[i]; cout<<"| Rp."<<setiosflags(ios::left)<<setw(3)<<barang.harga[i]; cout<<" | "<<setiosflags(ios::left)<<setw(5)<<barang.jumlah[i]<<" |\n"; } cout<<" +====+======+================+=================+========+\n"; cout<<" | Total Pembayaran | Rp. "<<setiosflags(ios::right)<<setw(15)<<pembeli.bayarTotal<<" |\n"; cout<<" +============================+==========================+\n\n"; cout<<" Nama : "<<pembeli.nama<<endl; cout<<" Alamat : "<<pembeli.alamat<<endl; cout<<" Jumlah Barang : "<<pembeli.jumlahBarang<<endl; cout<<" ===============================\n";
}main()
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 7
Modul 6 Struct
{ char kembali; Barang barang; Pembeli pembeli; pembeli.jumlahBarang = 0; pembeli.bayarTotal = 0; do { clrscr(); cout<<"\n\t ##### layanan swalayan #####\n\n"; cout<<"\tmenu layanan\n\n"; cout<<" [1] ikan bakar\n [2] nasi goreng\n"; cout<<" [3] nasi goreng spesial\n"; input(); output(); getch(); cout<<"\n\n Apakah Anda ingin membeli lagi [Y/N] ? ";cin>>kembali; }while(kembali=='Y' || kembali=='y');}
double bayar(double a, double b){
return(a*b);}double kembalian(double a, double b){
return(a-b);}
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 8
Modul 6 Struct
Hasil run:
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 9
Start
Deklarasi Struct menu dan Pembeli
jumlahBarang = 0bayarTotal = 0
input()
Kembali = ‘Y’
End
output()
Y
Y
Modul 6 Struct
Fowchart
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 10
input()
Input pilih
pilih = 1
pilih = 2
pilih = 3
id; namaBarang; harga
Input jumlah
bayarTotal += bayar;jumlahBarang += barang.jumlah;
Y
Y
Y
T
T
T
Input jenis
i = 0; i<jenis
Input nama, alamat
Modul 6 Struct
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 11
output()
i = 0; i<jenis
Menampilkan Data Pembelian
End
Modul 6 Struct
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 12
Modul 6 Struct
D. Analisa Data
#include <iostream>#include <conio>#include <string>#include <iomanip>
Script program diatas merupakan bagian header dari program yang merupakan
bagian library dari program C++ dimana pada bagian header ini dideklarasikan 2
buah header yang mendeklarasikan sejumlah statement yang ada pada program.
Berikut penjelasan masing-masing header : #include <iostream>
Merupakan bagian header yang berguna mendeklarasikan statement "cout" dan "cin" yakni statement yang bertugas sebagai operator input-an dan keluaran data pada program.
#include <conio>
Merupakan bagian header yang berguna mendeklarasikan statement "getch()"yakni statement yang berguna sebagai penunda agar saat
program di compile tidak langsung tertutup. #include <string>
Merupakan file header yang berguna untuk pemroresan string. #include <iomanip>
Merupakan file header yang umum digunakan untuk mengatur tampilan layar
dengan mendeklarasikan
a. “setw()“ yang berguna untuk mengatur lebar tampilan dilayar dari
suatu nilai variabel. Contoh: setw(4); yang berarti data memiliki lebar
tampilan 4.
b. “setiosflags()” berguna untuk ,engatur sejumlah format keluaran
data. ios::left digunakan untuk mengatur perataan kiri. ios::right
digunakan untuk mengatur perataan kanan.struct Barang{
string id[6], namaBarang[6];double harga[6], jumlah[6];
};struct Pembeli{
char nama[30], alamat[30];double jumlahBarang, bayarTotal, uang;
};
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 13
Modul 6 Struct
Script di atas digunakan untuk mendeklarasikan struct dimana struct pertama
untuk Barang. Didalam struct Barang terdapat variabel id dan
namaBarang dengan tipe string. Serta variabel harga dan jumlah yang
bertipe data double. Tiap variable pada struct Barang dideklarasikan
sebagai variable array dengan indeks maksimal 6. Pada tiap struct diakhiri
oleh tanda “;” agar program tersebut dapat berjalan.
Pada struct kedua adalah struct Pembeli, pada struct Pembeli terdapat nama dan alamat yang bertipe data char dengan panjang karakter
30 serta variabel jumlahBarang, bayarTotal, dan uang dengan tipe data
double.
Barang barang;Pembeli pembeli;int pilih, jenis, i;
Script diatas digunakan untuk mendeklarasikan variabel sebagai variabel
global dimana penulisannya diletakkan diluar fungsi. Variabel tersebut dapat
digunakan dalam fungsi yang berbeda sehingga tidak perlu di deklarasikan
lagi. Terdapat struct Barang yang di deklarasikan sebagai barang dan struct
Pembeli sebagai pembeli. pilih, jenis dan i yang bertipe data integer.
pilih digunakan sebagai variabel untuk memilih barang, jenis digunakan
untuk memilih jumlah barang, i digunakan sebagai statement awal
perulangan.double bayar(double a, double b);double kembalian(double a, double b);
Script diatas digunakan 2 fungsi yaitu fungsi bayar dengan parameter a dan
parameter b dengan tipe data double pula serta fungsi kembalian dengan
tipe data double. Fungsi bayar() digunakan untuk pembeli agar
mengetahui jumlah uang yang harus dibayarkan. Fungsi kembalian digunakan
untuk mengetahui sisa uang pembeli yang telah dibayarkan untuk membeli
barang. Dari paramater di atas dapat diketahui bila parameter yang digunakan
adalah parameter formal.
void input(){cout<<" Berapa Jenis menu yang ingin dibeli : ";cin>>jenis;cout<<endl;
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 14
Modul 6 Struct
Script diatas merupakan deklarasi untuk fungsi input() tanpa nilai balik.
Pada fungsi input() kita diminta untuk memasukkan nilai pada variabel je-
nis.
for(i=0; i<jenis;i++){cout<<" Pilihan Ke-"<<(i+1)<<" : ";cin>>pilih;}
Perulangan di atas digunakan untuk memilih berapa jenis barang yang ingin
dibeli. Program akan melakukan perulangan berdasarkan jumlah jenis barang
yang akan dibeli.Switch(pilih){ case 1: barang.id[i] = “B001”; barang.namaBarang[i] = “ikan bakar”; barang.harga[i] = 12000; cout<<” Jumlah Barang : “; cin>>barang.jumlah[i]; break; case 2: barang.id[i] = "B002"; barang.namaBarang[i] = "nasi goreng"; barang.harga[i] = 15000; cout<<" Jumlah Barang : "; cin>>barang.jumlah[i]; break; case 3: barang.id[i] = "B003"; barang.namaBarang[i] = "nasi goreng spesial"; barang.harga[i] = 20000; cout<<" Jumlah Barang : "; cin>>barang.jumlah[i]; break; break; }
Script diatas merupakan perintah pengkondisian untuk variabel pilih dimana
jika nilai variabel pilih adalah 1, maka perintah pada case 1 yang akan di-
jalankan oleh program dan jika nilai variabel pilih adalah 3, maka perintah
pada case 3 yang akan dijalankan oleh program begitupun selanjutnya.Pada
masing-masing case terdapat perintah untuk memberikan nilai pada struct
menu berdasarkan nilai indeks array. Nilai indeks array ditentukan oleh peru-
langan. Contoh, pada case 1 atau kondisi jika variabel pilih bernilai 1
maka struct barang.id akan bernilai “B001”, barang.namaBarang
bernilai “ikan bakar”, dan barang.harga bernilai “12000”. Kemudian
pembeli diminta untuk menginputkan nilai pada variabel barang.jumlah. Ni-
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 15
Modul 6 Struct
lai pada struct barang tergantung kondisi pada variabel pilih seperti
pada script diatas.
pembeli.bayarTotal += bayar(barang.jumlah[i], barang.harga[i]);pembeli.jumlahBarang += barang.jumlah[i];}
Script di atas termasuk dalam perulangan, dimana pembeli.bayarTotal
merupakan Total uang yang harus dibayarkan oleh pembeli dengan
mengkalikan harga barang yang dibeli dengan jumlah barang kemudian
hasilnya akan dijumlahkan dengan fungsi bayar .
pembeli.jumlahBarang merupakan nilai pembeli.jumlahBarang awal
yaitu 0 dijumlahkan dengan jumlah barang yang dibeli.
cout<<"\n\tBiodata Pembeli\n\n";cout<<" Nama : ";cin>>pembeli.nama;cout<<" Alamat : ";cin>>pembeli.alamat;clrscr();
Script di atas digunakan untuk memasukkan biodata pembeli yaitu nama
pembeli dan alamat pembeli dimana nilai yang dimasukkan akan menjadi nilai
pada struct pembeli.
void output(){clrscr();
Script diatas merupakan deklarasi untuk fungsi output() tanpa nilai balik.
Pada fungsi output() terdapat perintah clrscr() yang digunakan untuk
membersihkan layar sebelum data ditampilkan.
cout<<"\n\t\t##### STRUCT PEMBELIAN #####\n\n";cout<<" +====+======+================+=================+========+\n"; cout<<" | "<<setiosflags(ios::left)<<setw(3)<<"No"; cout<<"| "<<setiosflags(ios::left)<<setw(5)<<"ID"; cout<<"| "<<setiosflags(ios::left)<<setw(15)<<"Nama Barang"; cout<<"| "<<setiosflags(ios::left)<<setw(15)<<"Harga Barang"; cout<<" | "<<setiosflags(ios::left)<<setw(5)<<"Jumlah |\n"; cout<<" +====+======+================+=================+========+\n"; for(i=0; i<jenis; i++) { cout<<" |
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 16
Modul 6 Struct
"<<setiosflags(ios::left)<<setw(3)<<(i+1); cout<<"| "<<setiosflags(ios::left)<<setw(5)<<barang.id[i]; cout<<"| "<<setiosflags(ios::left)<<setw(12)<<barang.namaBarang[i]; cout<<"| Rp."<<setiosflags(ios::left)<<setw(3)<<barang.harga[i]; cout<<" | "<<setiosflags(ios::left)<<setw(5)<<barang.jumlah[i]<<" |\n"; } cout<<" +====+======+================+=================+========+\n"; cout<<" | Total Pembayaran | Rp. "<<setiosflags(ios::right)<<setw(15)<<pembeli.bayarTotal<<" |\n"; cout<<" +============================+==========================+\n\n"; cout<<" Nama : "<<pembeli.nama<<endl; cout<<" Alamat : "<<pembeli.alamat<<endl; cout<<" Jumlah Barang : "<<pembeli.jumlahBarang<<endl; cout<<" ===============================\n";
Script di atas merupakan output yang akan ditampilkan dengan mengatur
lebar tampilan data menggunakan perintah setw() dan perataan menggu-
nakan perintah setiosflags(ios::left). Serta pemanggilan nilai array
berdasarkan indeks ditandai dengan perintah (contoh) <<barang.id[i];
dimana nilai i akan bertambah sesuai perulangan.
double bayar(double a, double b){
return(a*b);}double kembalian(double a, double b){
return(a-b);}
Penggunaan return () diikuti oleh argumen yang berupa nilai perkalian
return(a*b)dari fungsi bayar() dan pengurangan return(a-b)dari
fungsi kembalian().
main(){ char kembali; pembeli.jumlahBarang = 0; pembeli.bayarTotal = 0;
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 17
Modul 6 Struct
Script diatas adalah fungsi main () yang termasuk fungsi utama dimana fungsi
tersebut yang dijalankan pertama kali oleh program. Terdapat variabel
kembali dengan tipe data karakter yang digunakan untuk variabel dalam
perulangan do-while. Pemberian nilai awal pada struct
pembeli.jumlahBarang yang bernilai 0. Pembelian nilai awal juga pada
struct pembeli.bayarTotal dengan nilai 0.
Perulangan do-WhileDo{ Statement;} while(kembali=='Y' || kembali=='y');
Perulangan di atas digunakan apabila pembeli ingin membeli barang lagi
dengan cara menginputkan nilai ‘Y’ atau ‘y’ pada variabel kembali.
input();output();getch();
Script diatas digunakan pada fungsi main() untuk memanggil fungsi in-
put() dan output() dimana perintah yang ada pada kedua fungsi
tersebut akan dijalankan. Terdapat perintah getch() yang digunakan se-
bagai penunda agar saat program di jalankan tidak langsung tertutup
ketika proses selesai.
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 18
Modul 6 Struct
E. Kesimpulan1. Struct data adalah penggabungan satu atau lebih variabel data menjadi satu
variabel saja sehingga tata letak variabel data menjadi terstruktur.
2. Deklarasi struct:struct nama_struktur{
tipe variabel_1;
tipe variabel_2;
tipe variabel_3;
};
3. Variabel-variabel pada struct disebut anggota struct (struct members).4. Setiap baris dari kumpulan kolom-kolom tersebut dinamakan catatan (record).
5. Struktur dideklarasikan dengan menggunakan kata kunci struct.
6. Pemanggilan struct dilakukan dengan mendeklarasikan nama variable yang akan
diberikan sifat struct diikuti dengan nama anggota struct yang memberikan sifat-
nya.Barang barang;Pembeli pembeli;
7. Pembentukan object struct dilakukan dengan cara menuliskan nama struct yang
telah dideklarasikan diikuti dengan nama variabel yang akan diberikan sifat struct.8. Struct yang dibuat di luar fungsi harus dideklarasikan kembali didalam fungsi agar
dapat digunakan.
9. Struct juga dapat berisi variabel array dimana nilai indeks pada variabel dapat
dideklarasikan di dalam anggota variabel struct
struct Barang{
string id[6], namaBarang[6]; double harga[6], jumlah[6];};
Daftar Pustaka
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 19
Modul 6 Struct
Fandi junianto Pratama . 2012 . tipe data struct dalam c++ . html .
http://fandijuniantopratama.blogspot.com/2012/03/tipe-data-struct-structe-dalam-
c.html diakses pada 22 Juni 2015
Utama, Didit N. Widayanti, Riya. 2005. Algoritma & Pemrograman dengan Borland C++,Graha Ilmu – Yogyakarta.
Kadir, Abdul. 2004. Pemrograman C++, Andi Offset – Yogyakarta.
Frieyadie. 2007. Pemrograman C++ dengan Borland C++ 5.02. Jakarta.
Praktikum Algoritma dan Pemrograman 2015 Modul VI - 20