Disusun oleh :
2015
1
KATA PENGANTAR
Puji dan syukur kehadirat Allah SWT atas petunjuk rahmat dan hidayah-Nya.
Penyusun dapat menyelesaikan Modul ini tanpa ada halangan apapun sesuai dengan waktu
yang telah ditentukan.
Penyusun
2
DAFTAR ISI
BAB I
PENDAHULUAN ................................................................................................................ 1
A. Sekilas Perkembangan Bahasa C ................................................................................ 1
B. Sekilas Tentang C++ ...................................................................................................1
C. Perbedaan antara C dan C++ ....................................................................................... 1
D. Pengenalan IDE Borland C++ ......................................................................................... 2
BAB II
TIPE DATA .......................................................................................................................... 3
A. Pengertian Tipe Data ....................................................................................................3
B. Jenis Jenis Tipe Data ...................................................................................................4
BAB III
OPERATOR STRING.........................................................................................................13
A. Operator Aritmatika ....................................................................................................13
B. Ekspresi Aritmatika .....................................................................................................13
C. Operator Penambah dan Pengurang ...........................................................................14
D. Operator Relasi / Perbandingan ....................................................................................... 15
E. Operator Logika ...........................................................................................................15
F. Operator Bitwise ..........................................................................................................16
G. Operasi String .............................................................................................................. 18
BAB IV
IF ELSE ................................................................................................................................ 20
A. Pengertian IF ................................................................................................................ 20
BAB V
PERULANGAN ................................................................................................................... 26
A. Statement For .............................................................................................................. 26
B. Pernyataan Nested-for .................................................................................................27
C. Perulangan Tak Hingga ................................................................................................ 29
D. Pernyataan While ...........................................................................................................30
E. Statement Do...While Karakteristik .............................................................................30
F. Pernyataan Break .........................................................................................................31
BAB VI
ARRAY .................................................................................................................................33
A. Array ............................................................................................................................ 33
B. Sorting ......................................................................................................................... 38
BAB VII
POINTER ............................................................................................................................. 49
A. Pengertian Pointer ........................................................................................................49
3
B. Deklarasi Variabel Pointer ........................................................................................... 49
C. Pointer dan Array .........................................................................................................50
D. Pointer dan String ...........................................................................................................51
E. Pointer dan Pointer .......................................................................................................51
BAB VII
FILE HEADER & MACRO ............................................................................................... 54
A. Preprocessor Directives ................................................................................................ 54
BAB IX
FUNGSI ................................................................................................................................ 63
A. Pengertian Fungsi .........................................................................................................63
B. Struktur Fungsi .............................................................................................................63
C. Pointer dan Array .........................................................................................................50
D. Pointer dan String ...........................................................................................................51
E. Pointer dan Pointer .......................................................................................................51
BAB X
STRUCTURE ....................................................................................................................... 69
4
BAB 1
SEJARAH
6
BAB 2
TIPE DATA
A. Pengertian
Tipe data merupakan tempat untuk menentukan pemberian nilai terhadap suatu
variabel yang diberikan oleh user. Selain itu tipe data juga dapat diartikan sebagai
batasan terhadap fungsi tanda pengenal terhadap semua nilai yang diterima. Tipe data
dalam variable menentukan tipe data yang bisa disimpan didalamnya, format data yang
disimpan, dan berapa banyak memori yang dialokasikan untuk menyimpan data
Dalam bahasa C++ terdapat lima tipe data dasar, yaitu: int, char, float, double,
dan void. Tipe data memiliki 3 jenis variabel yaitu variabel Numerik, variabel Text,
dan Boolean.
Variabel Numerik : Memungkinkan kita untuk menyimpan data dalam bentuk bilangan.
Variabel numerik dapat dibagi menjadi beberapa bagian yaitu : Bilangan bulat (Integer
“int”), Bilangan Desimal Berpresisi Tunggal (Floating point “float”), Bilangan Desimal
Berpresisi ganda (Double Precision “double”)
Variabel Text : memungkinkan kita untuk menyimpan datadalam bentuk karakter.
Bahasa pemograman C++ menyediakan beberapa tipe data dasar seperti char
(character / karakter Tunggal ) dan String (kumpulan karakter dan kata)
Boolean : pada bahasa Pemograman c++ ditulis dengan menuliskan “bool” merupakan
jenis yang hanya dapat mewakili satu dari dua pilihan yaitu 1 (true) atau (false).
7
Tipe Data Bentuk Penulisan
Boolean Bool
Character Char
Integer Int
String String
Valueless Void
Dari Tipe data diatas bisa kita modifikasi menggunakan modifiers type untuk
memberikan fungsi lebih kepada variabel.
Modifiers Type
Gambar 2.1
Float adalah salah satu tipe data yang bersifat menyatakan bilangan pecahan /
real / mengandung angka dibelakang koma, maupun eksponensial. Tipe data float dapat
menyatakan bilangan real dengan ketelitian relatif lebih rendah jika dibanding double
(hingga 7 digit di belakang koma).
float NamaVariabel;
9
Contoh 2
#include <iostream>
int main(){
float jarijari, luas;
const float p = 3.14;
cout<<"Masukan Jari-Jari Lingkaran = ";cin>>jarijari;
luas = p * (jarijari*jarijari);
cout<<"Luas Lingkaran = 3,14 X "<<jarijari<<" X "<<jarijari<<" = "<<luas;
return 0;
getch();
}
Hasil Output :
Gambar 2.2
Sama seperti float, Double merupakan salah satu tipe data yang bersifat
menyatakan bilangan pecahan / real / mengandung angka dibelakang koma, maupun
eksponensial. Perbedaan double dengan float hanya pada ukuran memori, jangkauan
nilai yang dapat disimpan dan tipe data double dapat menyatakan bilangan real dengan
ketelitian tinggi (hingga 15 digit di belakang koma).
double NamaVariabel;
Contoh deklarasi
double nilai = 92,50;
Contoh 3.
10
#include <iostream
int main(){
double jarijari, luas;
const float p = 3.14;
cout<<"Masukan Jari-Jari Lingkaran = ";cin>>jarijari;
luas = p * (jarijari*jarijari);
cout<<"Luas Lingkaran = 3,14 X "<<jarijari<<" X "<<jarijari<<" = "<<luas;
return 0;
}
Hasil Output :
Gambar 2.3
4. Karakter (Char)
Char Adalah salah satu tipe data sembarang huruf, angka dan tanda baca
tunggal. Dalam C++, tipe karakter dinyatakan dalam "char.
Dalam C++, tipe karakter selalu diapit oleh petik tunggal. Sedangkan satu
karakter yang diapit oleh tanda petik ganda akan dianggap sebagai string. Sebagai
contoh 'A' adalah karakter, sedangkan "A" adalah string yang terdiri dari satu karakter.
String sendiri terbentuk dari minimal satu tipe data char dan akan dibahas setelah ini.
Bentuk Umum Penulisan
char NamaVariabel;
Contoh deklarasi
char IndeksNilai = 'A';
Contoh 4
#include <iostream>
int main(){
// Deklarasi variabel IndeksNilai
// Dengan tipe data char
11
// dan mengisinya dengan nilai 'A'
char IndeksNilai = 'A';
cout<<"Indek Nilai = "<<IndeksNilai;
return 0;
}
Hasil Output :
Gambar 2.4
5. String
Tipe ini digunakan untuk merepresentasikan data yang berupa teks (kumpulan
karakter), tipe data string biasa disebut array of character / array dari tipe data char /
kumpulan dari char. Contoh data string adalah "Andi" , "Belajar C++" , dan sebagainya.
Bentuk Umum Penulisan
char NamaVariabel[nilai];
6. Boolean (bool)
Boolean adalah salah satu tipe data pilihan yang hanya memiliki dua nilai
yaitu True (Benar) atau False (Salah). Tipe data ini merepresentasikan data-data yang
hanya mengandung dua buah nilai, yaitu nilai logika (boolean). Nilai logika itu sendiri
hanya terdiri dari nilai benar (biasanya direpresentasikan dengan nilai selain 0 ,
biasanya dengan nilai 1) dan salah (direpresentasikan dengan nilai 0).
Bentuk Umum Penulisan
bool NamaVariabel;
Contoh Deklarasi
bool benar = 0; //yang berarti false
Contoh 5
#include <iostream>
int main(){
// Mendeklarasikan variabel benar
// Variabel benar menggunakan tipe data bool
12
bool benar;
// Meminta input dari user
int a, b;
cout<<"Masukkan nilai a : ";cin>>a;
cout<<"Masukkan nilai b : ";cin>>b;
// Melakukan assigment terhadap variabel benar
benar = a > b;
if(benar == true){ // Dapat ditulis: if(benar){
cout<<"\na lebih besar dari b";
} else{
cout<<"\na lebih kecil / sama dengan b";
}
return 0;
}
Hasil Output
Gambar 2.5
7. Perintah Keluaran
Perintah standar output yang disediakan oleh Borland C++, diantaranya adalah :
printf( )
puts( )
putchar( )
cout( )
13
printf( ) Fungsi printf( ) merupakan fungsi keluaran yang paling umum digunakan
untuk menampilkan informasi kelayar.
1. Penggunaan Penentu Lebar Field
2. Penggunaan Escape Sequences.
puts( ) Perintah puts( ) sebenarnya sama dengan printf(), yaitu digunakan untuk
mencetak string ke layar. puts( ) berasal dari kata PUT STRING.
1. putchar( )
2. cout
3. Fungsi Manipulator
- endl
- end
- flush( )
- dec( )
- hex( )
- oct( )
- setbase( )
- setw( )
- setfill( )
- setprecision( )
- setosflags( )
8. Perintah Masukan
printf( ) puts( )
Harus menentukan tipe data untuk data Tidak Perlu penentu tipe data string, karena
string, yaitu %s fungsi ini khusus untuk tipe data string.
Untuk mencetak pindah baris, memerlukan Untuk mencetak pindah baris tidak perlu
notasi ‘ \n ‘ notasi ‘ \n ‘ , karena sudah dibeikan secara
otomatis.
14
Tabel 3.4. Tipe Data (16 bit) Dalam C.
UKURAN
TIPE JANGKAUAN NILAI
MEMORI
unsigned char 8 bit 0 ‐ 255
Char 8 bit ‐128 ‐127
Enum 16 bit ‐32768 ‐ 32767
unsigned int 16 bit 0 ‐ 65535
short int 16 bit ‐32768 ‐ 32767
Int 16 bit ‐32768 ‐ 32767
unsigned long 32 bit 0 ‐ 4294967295
Long 32 bit 2147483648 ‐ 2147483647
Float 32 bit 3.4E‐38 ‐ 3.4E+38
Double 64 bit 1.7E‐308 ‐ 1.7E+308
long double 80 bit 3.4E‐4932 ‐ 1.1E+4932
Void 0 bit
neir(pointer) 16 bit
Far(pointer) 32 bit
Char %c Karakter/string
15
LATIHAN 2
Kerjakan tampilan Berikut : dengan menggunakan deklarasi variabel dan sintaks input
(gets,scanf,cin) dan output(printf&cout)
16
BAB 3
OPERATOR DAN OPERASI STRING
Operator merupakan simbol yang dilibatkan dalam program untuk melakukan
operasi atau untuk memanipulasi , dalam hal Penjumlahan dua buah nilai, memberikan
nilai ke variable, membandingkan kesamaan dua nilai.
Berdasarkan sifatnya, operator dapat dibedakan menjadi tiga macam, yaitu :
1) Unary
Operator yang melibatkan sebuah operand
Contoh = -7
2) Binary
Operator yang melibatkan dua operand
Contoh = 6+9
3) Ternary
Operator yang melibatkan tiga operand
Contoh = (20 % 4) +4 +6
A. Operator Aritmatika
Operator aritmatika adalah operator yang digunakan untuk melakukan operasi
operasi aritmatika. Digunakan untuk mengoperasikan data-data numerik, seperti
penjumlahan, pengurangan, perkalian, pembagian, dll.
- Pengurangan 6-3=3
* Perkalian 5*5=25
/ Pembagian 8/4=2
B. Ekspresi aritmatika
Ekspresi yang baik operand-nya bertipe numerik dan hasilnya juga bertipe
numeric Ekspresi aritmatika memakai operator aritmatika.
Pada ekspresi aritmetik terdapat 2 buah operator yaitu :
17
Hierarki Operator Aritmatika
Aritmatika harus dimulai dari operator yang memiliki hirarki/tingkatan yang
tertinggi kemudian ke operator berikutnya yang mempunyai tingkatan yang lebih
rendah
Berikut ini urutan/hirarki operator aritmatika dari urutan tertinggi ke urutan terendah:
Operator Keterangan
Contoh :
X=8+4*2/4
Operator Keterangan
*= Perkalian
/= Pembagian
%= Sisa pembagian
+= Penjumlahan
-= Pengurangan
Operator Keterangan
++ Penambahan
– Pengurangan
18
D. Operator Relasi / Perbandingan
Operator Relasi digunakan untuk menguji hubungan antara nilai dan atau
variabel. Operator ini digunakan dalam suatu statement bersyarat yang selalu
menghasilkan nilai true atau false.
Jenis-jenis operator relasi
Operator Keterangan
== Sama dengan (bukan penugasan)
!= Tidak sama dengan
> Lebih dari
< Kurang dari
>= Lebih dari atau sama dengan
<= Kurang dari atau sama dengan
E. Operator Logika
Operator Logika digunakan untuk membandingkan dua nilai variabel atau
lebih. Hasil dari operasi ini adalah nilai boolean true atau false. Asumsikan variabel a
bernilai true, b bernilai false dan c bernilai true, lalu perhatikan tabel berikut:
X Y X || Y
1 1 1
1 0 0
0 0 0
0 1 0
19
Operator Logika OR
Operator logika OR digunakan untuk menggabungkan dua atau lebih ekspresi
relasi untuk mendapatkan hasil rasional tunggal, operator / operasi OR dilambangkan
dengan menggunakan simbol "||", operasi OR hanya akan menghasilkan nilai 0 (salah)
jika semua ekspresi relasi yang dihubungkan bernilai salah, namun jika tidak, maka
operasi tersebut akan menghasilkan nilai 1 (benar). Berikut ini tabel yang menunjukkan
hasil dari operator OR.
X Y X || Y
1 1 1
1 0 1
0 0 0
0 1 1
Nilai yang dihasilkan dari operasi NOT adalah kebalikan dari nilai yang
dikandung dari ekspresi yang dituliskan. Jika nilai awal adalah 1 (benar), maka setelah
operasi NOT maka nilainya menjadi 0 (salah), begitu juga sebaliknya jika nilai awal
adalah 0 (salah), maka setelah operasi NOT maka nilainya menjadi 1 (benar).
Contoh:
Ekspresi Relasi A + 8 < 12
Jika menggunakan Operator Logika NOT, maka relasi diatas menjadi:
!(A+8 < 12)
Jika nilai A = 5, maka ekspresi tersebut memiliki nilai:
A + 8 < 12 → 5 + 8 < 12 → 13 < 12 → SALAH
Jika dilihat dari ekspresi diatas, karena hasil ekspresi mempunyai nilai SALAH, maka
jika digunakan operator logika NOT, ekspresi tersebut akan bernilai BENAR
!(A+8 < 12) → !(SALAH) → BENAR → 1
F. Operator Bitwise
Operator Bitwise adalah operator yang digunakan untuk memanipulasi data
dalam bentuk bit yang mewakili nilai-nilai yang mereka simpan. atau Operator Bitwise
juga dikenal sebagai operator yang berguna untuk melakukan operasi-operasi yang
berhubungan dengan manipulasi bit.
Yang termasuk dalam operator bitwise dalam C++ adalah seperti yang tampak
pada tabel dibawah ini:
Operator Jenis Operasi Contoh
| OR 1|0=1
& AND 1&0=0
^ Exclusive OR (XOR) 1^1=0
~ NOT ~1=0
>> Shift Right 16 >> 2 = 4
<< Shift Left 1 << 2 = 4
20
Operator Bitwise | (OR)
X Y X || Y
1 1 1
1 0 1
0 0 0
0 1 1
X Y X || Y
1 1 1
1 0 0
0 0 0
0 1 0
X Y X || Y
1 1 0
1 0 1
0 0 0
0 1 1
Bit Operand / X ~X
1 0
0 1
21
Operator Bitwise >> (Shift Right)
G. Operasi String
- Fungsi Strcat
- Fungsi Strcmp
Fungsi ini digunakan untuk membandingkan string pertama dengan string kedua. Hasil
dari fungsi ini bertipe data integer (int).
- Fungsi Strlen
Fungsi strlen digunakan untuk menghitung panjang karakter pada suatu string. Strlen
adalah fungsi yang bertipe data integer.
- Fungsi Strcpy
- Fungsi Strupr
Fungsi strupr digunakan untuk mengubah semua karakter huruf yang terdapat pada
suatu variabel menjadi huruf besar semua (Uppercase).
- Fungsi Strlwr
Fungsi strlwr digunakan untuk mengubah semua karakter huruf yang terdapat pada
suatu variable menjadi huruf kecil semua (Lowercase).
22
- Fungsi atof
Digunakan untuk mengubah string(teks) angka menjadi sebuah bilangan numerik float.
Biasanya header yang digunakan untuk fungsi atof ini adalah : math.h.
- Fungsi atoi
Digunakan untuk mengubah string, angka menjadi sebuah bilangan numerik integer.
Header yang digunakan dalam menggunakan fungsi atoi ini adalah : stdlib.h.
- Fungsi atol
Digunakan untuk mengubah string(teks) angka menjadi sebuah bilangan numerik long
integer. Adapun header yang yang digunakan dalam fungsi atol adalah: stdlib.h.
- Fungsi strlwr
Fungsi strlwr ini biasanya digunakan untuk mengubah huruf kapital(huruf besar) dalam
string menjadi huruf kecil. Header yang harus anda tambahkan dalam menggunakan
fungsi strlwr adalah: string.h
- Fungsi strupr
Merupakan sebuah fungsi yang digunakan untuk mengubah setiap huruf kecil dalam
string menjadi huruf kapital. Header digunakan dalam menggunakan fungsi strupr
adalah string.h.
LATIHAN 3
Tentukan apa hasil numerik dari ekspresi relasi dan logika dibawah ini. Diberikan nilai
A = 4; B = 7 ; C = 3 ; K = 6; L = 5; M = 4
a. D = (5+ 3 > A && B – 3 > 4 + 3 || B + 3 <= 7 + 3)
b. D=K + 6 < M || (C * M < L && 3 * M – L > 0)
c. D=L + 6 < * 4 <= 3 * M + B
d. D=K + M || C * K < L && 3 * K – L > 0
e. D=A * 5<= 4 * M + B
f. D=K + 11 > A && L – 3 > 5* C
23
BAB 4
Operasi Penyeleksian Kondisi
Pernyataan Percabangan digunakan untuk memecahkan persoalan untuk
mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk keperluan
pengambilan keputusan, Borland
A. Pengertian IF
Fungsi if dalam bahasa pemograman bahasa c++ adalah untuk menjalankan
(mengeksekusi suatu program) yang apabila syaratnya atau syarat tertentu telah
terpenuhi yang mana bias terdiri atas satu keadaan (syarat) atau banyak keadaan
tergantung dari program tersebut.
1. Contoh Program Perintah IF Pada C++
Sebagai contoh, kita ambil kasus yang kemarin kita bahas , yaitu bagaimana
caranya agar suatu program dapat mengidentifikasi angka , dimana jika angka itu genap
maka program akan meng-output-kan "Angka genap ".
Berikut Listing Programnya
#include <iostream>
using namespace std;
int main()
{
int angka1;
cout <<"Masukkan angka = ";cin >> angka1;
if(angka1%2 ==0)
{cout<<angka1 << " adalah angka genap";}
cout <<"\nSelesai\n";
}
Berikut Penampakan Programnya:
Output program IF
Gambar 4.1
24
Penjelasan :
Cara kerja dari program tersebut, adalah JIKA setiap angka yang dimasukkan dibagi 2
dan mempunyai sisa pembagian 0, maka angka tersebut adalah angka genap. dan
setelah itu program akan meng-output-kan "Selesai", alur ini berjalan ketika kondisi
dalam perintah IF bernilai Benar (Gambar kiri). Namun jika kondisi bernilai salah atau
sisa pembagian tidak bernilai 0, maka program akan langsung meng-output-kan
"Selesai" (Gambar yang kanan). tanda "%" pada program, adalah tanda untuk operator
"mod" atau operator untuk mencari sisa hasil pembagian.
Gambar 4.
25
Penjelasan :
Dengan menggunakan program sebelumnya, kita tinggal menambahkan perintah "else"
dibawahnya, kemudian menambahkan setiap angka yang bukan genap, maka dia adalah
angka ganjil.
26
Gambar 4. 4
Penjelasan :
Pada program di atas, untuk mengidentifikasi angka itu positif atau negatif, cukup
mudah yaitu kita tambahkan perinta IF dengan kondisi jika angka kurang dari 0 maka
angka itu pasti negatif, dan selain itu pasti angka positif. Maka untuk menggabungkan
antara identifikasi positif/negatif dengan identifikasi genap/ganjil, Kita tambahkan if
bertingkat, Pada Listing di atas, kode yang berwana hijau adalah perintah IF untuk
mengidentifikasi positif atau negatif, sedangkan yang berwarna kuning dan coklat
adalah perintah IF untuk mengidentifikasi genap atau ganjil.
switch(nrhari){
case 1:
cout<<"\nHari ke-"<<nrhari<<" adalah SENIN";
cout<<"\nMeskipun SENIN Tetap Semangat Ya";
27
break;
case 2:
cout<<"\nHari ke-"<<nrhari<<" adalah SELASA";
cout<<"\nSemangat Untuk Hari SELASA";
break;
case 3:
cout<<"\nHari ke-"<<nrhari<<" adalah RABU";
cout<<"\nUdah Hari RABU, Tetep Produktif Ya";
break;
case 4:
cout<<"\n Hari ke-"<<nrhari<<" adalah KAMIS";
cout<<"\nOrang Manis Terlahir Dihari KAMIS";
break;
case 5:
cout<<"\nHari ke-"<<nrhari<<" adalah JUMAT";
cout<<"\nUdah Hari JUMAT, Siap Mudik ?";
break;
case 6:
cout<<"\nHari ke-"<<nrhari<<" adalah SAPTU";
cout<<"\nHari SAPTU Mau Liburan Kemana ?";
break;
case 7:
cout<<"\nHari ke-"<<nrhari<<" adalah MINGGU";
cout<<"\nMari Tidur Seharian di Hari MINGGU";
break;
default:
cout<<"\nTidak terdapat nama hari ke-"<<nrhari;
cout<<"\nMungkin Kamu Kurang Piknik";
}
return 0;
getch();
}
Berikut Penampakan Programnya :
28
Output Program IF bertingkat
Gambar 4.5
Penjelasan: tipe data dari pernyataan harus karakter atau intenger.default
mengekspresikan statement alternatife yaitu jika nilai yang di masukan tidak sesuai
dengan nilai-nilai konstan yang telah didefinisikan.
LATIHAN 4
1. Buatlah program untuk menghitung nilai rata-rata dari seorang peserta, dengan
ketentuan sebagai berikut :
Nama Peserta, Nilai I, Nilai II, diinput.
Nilai Rata-rata merupakan hasil dari Nilai I, dan II dibagi dengan 2
Ketentuan Juara
a) Jika nilai rata-rata yang dihasilkan lebih besar dari 80, maka menjadi Juara Umum
b) Jika nilai rata-rata yang dihasilkan lebih besar dari 75, maka menjadi Juara Kelas
c) Jika nilai rata-rata yang dihasilkan lebih besar dari 65, maka menjadi Juara
Harapan
d) Selain itu tidak juara
Tampilan yang diinginkan sebagai berikut:
Layar Masukkan
PROGRAM HITUNG NILAI RATA-RATA
Nama Peserta :
Nilai I :
Nilai II :
Layar Keluaran
Siswa yang bernama ...
Memperoleh nilai rata-rata ... dan menjadi juara -... dari hasil pertandingan yang
diikutinya.
29
BAB 5
PROSES PERULANGAN
A. Statement FOR
Jika FOR lebih dari satu maka harus di letakan di dalam tanda kurung pernyataan:
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
{
pernyataan / perintah;
pernyataan / perintah;
pernyataan / perintah;
}
Inisialisas : Merupakan bagian untuk memberikan nilai awal untuk variable
variabel tertentu.
Syarat Pengulangan : Memegang kontrol terhadap pengulangan, karena bagian ini
yang akan menentukan suatu perulangan diteruskan atau dihentikan.
Pengubah Nilai Pencacah : Mengatur kenaikan atau penurunan nilai pencacah.
Contoh-1
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
int a;
clrscr( );
for(a = 1; a <= 5; ++a)
cout<<"RISSA YUNISTIA MAULIDA"<<endl;
30
getch( );
}
Maka tampilan nya akan seperti ini :
Gambar 5.1
Contoh-2
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main( )
{
int a;
clrscr( );
for(a = 1; a <= 30; ++a)
cout<<a;
getch( ); }
Hasil Outputnya :
Gambar 5.2
#include<stdio.h>
#include<conio.h>
main( )
{
int a, b;
clrscr( );
for(a = 1; a <= 10; a++)
{
printf("\n");
for(b = a; b <= 10; b++)
printf(" %d ",a);
}
getch(); }
Maka tampilanya akan seperti ini
Gambar 5.3
32
C. Perulangan Tak Berhingga
Perulangan tak berhingga merupakan perulangan ( loop ) yang tak pernah
berhenti atau mengulang terus, hal ini sering terjadi disebabkan adanya kesalahan
penanganan kondisi yang dipakai untuk keluar dari loop.
Contoh -4
#include<stdio.h>
#include<conio.h>
main( )
{
int bil;
clrscr( );
for (bil = 100; bil >=10; bil--)
printf("%d", bil);
getch( );
}
Maka yang akan di tampilkan nya :
Gambar 5.4
Pada pernyataan ini tidak akan berhenti untuk menampilkan bilangan
menurun, kesalahan terjadi pada pengubah nilai pencacah, seharusnya penulisan yang
benar berupa
bil - -
Akan tetapi yang ditulis adalah :
bil ++
33
D. Pernyataan While
Pernyataan while merupakan salah satu pernyataan yang berguna untuk
memproses suatu pernyataan atau beberapa pernyataan beberapa kali. Pernyataan while
memungkinkan statemen-statemen yang ada didalamnya tidak diakukan sama
while ( syarat )
{
Pernyataan / perintah ;
Pernyataan / perintah ;
}
Contoh-5
#include <stdio.h>
#include <conio.h>
main( )
{
int bil=5;
clrscr( );
while(bil<=30)
{
printf(" %d ",bil);
bil+=5; }
getch( ); }
Maka akan di tampilkan nya :
Gambar 5.5
E. Statement Do...While Karakteristik
a. Perulangan akan dilakukan minimal 1x terlebih dahulu, kemudian baru dilakukan
pengecekan terhadap kondisi, jika kondisi benar maka perulangan masih akan tetap
dilakukan.
b. Perulangan dengan do...while() akan dilakukan sampai kondisi false
Contoh-6
34
#include <stdio.h>
#include <conio.h>
main( )
{
int bil=1;
clrscr( );
while(bil<=20)
{
printf(" %d ",bil);
++bil; }
getch( ); }
Output yang akan dihasilkan :
Gambar 5.6
F. Pernyataan Break
Pernyataan break ini berfungsi untuk keluar dari struktur switch. Dan
pernyataan break juga berfungsi keluar dari perulangan ( for, while dan do-while ).
Contoh-7
#include <stdio.h>
#include <conio.h>
main( )
{
int bil = 1;
clrscr( );
do
{
if (bil >= 6)
break;
printf(" %d ",bil);
}
35
while(bil++);
getch( );
}
Gambar 5.7
LATIHAN 5
1. Buatlah program untuk menampilkan bilangan ganjil dari kecil ke besar sampai batas
tertentu sampai menemukan break, program selesai.
36
BAB 6
ARRAY & SORTING
A. ARRAY
Variabel Larik atau lebih dikenal dengan ARRAY adalah Tipe terstruktur yang
terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama. Suatu
Array mempunyai jumlah komponen yang banyaknya tetap. Banyaknya komponen
dalam suatu larik ditunjukan oleh suatu indek untuk membedakan variabel yang satu
dengan variabel yang lainnya.
Array adalah kumpulan dari nilai-nilai data bertipe sama dalam urutan
tertentu yang menggunakan sebuah nama yang sama. Nilai-nilai data di suatu larik
disebut dengan elemen-elemen larik.
Letak urutan dari suatu elemen larik ditunjukkan oleh suatu subscript atau suatu index.
Tipe_array nama_array[ukuran]
37
Contoh-1 :
#include <iostream.h>
#include <conio.h>
main()
{
int angka[4]={94,61,25,14};
for(int a=0;a<4;a++)
{
cout<<" Indeks Angka [ "<<a<<" ] = "<<angka[a];
cout<<endl;
}
getch();
}
Hasilnya :
Gambar 6.1
38
Contoh-2 :
#include <iostream.h>
#include <conio.h>
main()
{
char
mem[9][20]={"Xiumin","Lay","Suho","Baekhyun","Chen","Chanyeol","D.o","Kai","S
ehun"};
getch();
}
Hasilnya
Gambar 6.2
39
2. Array dua dimensi
Array dimensi dua tersusun dalam bentuk baris dan kolom, dimana indeks
pertama menunjukan baris dan indeks kedua menunjukan kolom. Array dimensi dua
dapat digunakan seperti pendatan penjualan, pendataan nilai dan lain sebagainya.
Array dua dimensi merupakan array yang terdiri dari m buah baris dan n buah
buah kolom bentuknya dapat berupa matriks atau tabel.
Contoh-1 :
#include <iostream.h>
#include <conio.h>
main()
{
int a,b;
int angka[3][3]={ {24,25,94},
{12,14,61},
{ 4, 7,88}, };
for(a=0;a<3;a++)
{
for(b=0;b<3;b++)
{
cout<<" Indeks Angka [ "<<a<<" ][ "<<b<<" ] = "<<angka[a][b]<<endl;
}
}
getch();}
Hasilnya :
40
Gambar 6.3
Contoh-2 :
#include <iostream.h>
#include <conio.h>
main()
{
char nama[2][3][20]={ {"Park","Ooh","Kim"},
{"Chanyeol","Sehun","JongIn"}, };
cout<<endl<<nama[0][0]<<" "<<nama[1][0]<<endl;
cout<<nama[0][1]<<" "<<nama[1][1]<<endl;
cout<<nama[0][2]<<" "<<nama[1][2]<<endl;
getch();}
Hasilnya :
Gambar 6.4
41
B. SORTING
Sorting adalah suatu proses pengurutan data yang sebelumnya disusun secara
acak atau tidak teratur menjadi urut dan teratur menurut suatu aturan tertentu.
Contoh Ascending :
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main(){
int A[5];
int j,k,i,temp;
int jmax,u=4;
for(j=0;j<5;j++)
{
jmax=0;
for(k=1;k<=u;k++)
if (A[k]>A[jmax])
jmax=k;
temp=A[u];
42
A[u]=A[jmax];
A[jmax]=temp;
u--;
}
for(i=0;i<5;i++)
cout<<A[i]<<" ";
getch();
}
Hasilnya :
Gambar 6.5
Contoh Descending :
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
int main(){
43
int A[5];
int j,k,i,temp;
int jmin,u=4;
for(j=0;j<5;j++)
{
jmin=0;
for(k=1;k<=u;k++)
if (A[k]<A[jmin])
jmin=k;
temp=A[u];
A[u]=A[jmin];
A[jmin]=temp;
u--;
}
for(i=0;i<5;i++)
cout<<A[i]<<" ";
getch();
}
44
Hasilnya :
Gambar 6.6
Jenis-jenis Sorting
a. Selection Sort
Tehnik pengurutan dengan cara pemilihan elemen atau proses kerja dengan
memilih elemen data terkecil untuk kemudian dibandingkan & ditukarkan dengan
elemen pada data awal, dan seterusnya sampai seluruh elemen shg akan menghasilkan
pola data yg telah disort.
45
Contoh :
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
#include <iomanip.h>
main()
{
int a[10],i,tmp,minindex,j;
cout<<"Selection Sort"<<endl<<endl;
cout<<" Masukkan data A :\n";
for(i=0;i<5;i++)
{
cout<<" A [ "<<i<<" ] = ";cin>>a[i];
}
cout<<"\n Data yang akan disorting : ";
for(i=0;i<5;i++)
{
cout<<setw(4)<<a[i];
}
for(i=0;i<5-1;i++) //perulangan iterasi
{
minindex=i;
for(j=i+1;j<5;j++) //perulangan membandingkan data
{
if(a[minindex]>a[j])
{
minindex=j;
}
}
tmp=a[i];
46
a[i]=a[minindex];
a[minindex]=tmp;
}
cout<<"\n\n Hasil Sorting : ";
for(i=0;i<5;i++)
{
cout<<setw(4)<<a[i];
}
getch();
}
Hasilnya :
Gambar 6.7
b. Bubble Sort
47
Contoh :
#include <iostream>
#include <conio.h>
int data[10],data2[10];
int d;
void tukar(int a,int b)
{
int t;
t=data[b];
data[b]=data[a];
data[a]=t;
}
void Input()
{
cout<<"Masukkan jumlah data = ";cin>>d;
cout<<endl;
for(int i=0;i<d;i++)
{
cout<<"Masukkan data ke - "<<(i+1)<<" = ";cin>>data[i];
data2[i]=data[i];
}
cout<<endl;
}
void Tampil()
{
for(int i=0;i<d;i++)
{
cout<<data[i]<<" ";
}
48
cout<<endl<<endl;
}
void bubble_sort()
{
for(int i=1;i<d;i++)
{ for(int j=d-1;j>=i;j--)
{
if(data[j]<data[j-1]) tukar(j,j-1); }
Tampil();
}
cout<<endl; }
main()
{
cout<<" Bubble Sort"<<endl<<endl;
Input();
cout<<"Proses"<<endl<<endl;
Tampil();
bubble_sort();
getch(); }
Hasilnya :
Gambar 6.8
49
c. Insertion Sort
#include <iostream.h>
#include <conio.h>
int data[10],data2[10];
int n;
void tukar(int a, int b)
{
int t;
t = data[b];
data[b] = data[a];
data[a] = t;
}
void insertion_sort()
{
int temp,i,j;
for(i=1;i<=n;i++)
{
temp = data[i];
j = i -1;
while(data[j]>temp && j>=0)
{
data[j+1] = data[j];
j--;
50
}
data[j+1] = temp;
}
}
void main()
{
cout<<"INSERTION SORT"<<endl;
cout<<endl;
cout<<" Masukkan Jumlah Data : ";cin>>n;
for(int i=1;i<=n;i++)
{
cout<<" Masukkan data ke "<<i<<" : ";
cin>>data[i];
data2[i]=data[i];}
insertion_sort();
cout<<endl<<endl;
cout<<" Data Setelah di Sort : ";
for(int i=1; i<=n; i++)
{
cout<<" "<<data[i];}
getch();}
Hasilnya :
Gambar 6.9
51
LATIHAN 6
Buatlah sebuah program berupa memasukkan nilai dari 10 orang mahasiswa dengan
menggunakan array.
52
BAB 7
POINTER
A. PENGERTIAN POINTER
Suatu pointer (variable penunjuk) adalah suatu variable yang berisi dengan alamat
lokasi, yaitu suatu memori tertentu.
tipe * nama_variabel_pointer;
Tipe merupakan tipe data yang akan ditunjuk oleh variabel, bukan tipe data dari pointer
tersebut.
53
Contoh 7.1
#include <iostream.h>
#include <conio.h>
main ()
{
int value1 = 5, value2 = 15;
int *mypointer;
mypointer = &value1;
*mypointer = 10;
mypointer = &value2;
*mypointer = 20;
cout << "value1==" << value1 << "\n value2==" << value2;
getch();
}
Hasil Output :
Gambar 7.1
Gambar 7.2
Contoh 7.3
#include <iostream.h>
#include <conio.h>
main( )
{
char *kantor = "Sedang Rapat";
cout<<endl;
cout<<" String yang muncul di ruangan adalah : "<<kantor<<endl;
getch();
}
Hasil Output:
Gambar 7.3
Suatu pointer bisa saja menunjuk ke pointer lain. Gambar berikut memberikan
contoh mengenai pointer menunjuk pointer.
55
Pointer Variabel
Alamat Nilai
Pada Single Inderection, pointer langsung menunjukkan ke alamat dari suatu variabel.
Pada Multi Inderction, terdapat pointer yang menunjukkan ke pointer yang sedang
menunjukkan ke alamat dari suatu variabel. Untuk mendeklarasikan pointer ke pointer,
digunakan tanda asterisk sebanyak dua kali (“ “).
Contoh 7.4
main()
{
int X = 40;
int *n1;
int **n2;
n1 = &X;
n2 = &n1;
Gambar 7.6
LATIHAN 7
57
BAB 8
A. Preprocessor Directives
Preprocessor Directivies adalah perintah-perintah khusus yang ditujukan untuk
preprocessor. Semua penggunaan preprocessor directivies dimulai dengan tanda #.
Karena preprocessor adalah perintah untuk preprocessornya C++ maka preprocessor
directivities tidak diakhiri dengan titik koma (;) seperti yang biasanya.
Preprocessor directivies ini akan mengubah program pada saat di compile saja,
jadi perubahannnya hanya bersifat sementara. Setelah selesai maka program akan
kembali seperti semula. Beberapa perintah preprocessor akan dibahas dibagian ini :
8.1.1. #define
Digunakan untuk mendefinisikan suatu identifier atau nilai tertentu kepada suatu
karakter konstanta. Bentuk umum dari preprocessor ini adalah :
#define nama_konstanta teks
Contoh :
#define NILAI 80
Ket : NILAI merupakan nama_konstanta
80 merupakan Teks
Dalam penulisan nama_konstanta sebaiknya ditulis dengan huruf besar untuk
membedakannya dengan nama_variabel dan Teks merupakan nilai dari nama_konstanta
tersebut. Teks dapat berupa numerik, karakter, string, pernyataan, fungsi sederhana.
Dalam contoh diatas diketahui untuk nama_konstanta adalah NILAI dan teks
adalah 80 dan itu merupakan nilai tetap. Artinya, di dalam program jika kita
memasukkan kata NILAI, maka akan otomatis keluar angka 80.
58
main()
{
clrscr();
int nilai;
nilai=NILAI;
cout<<”Nilai Taehyung adalah “<<nilai<<endl;
getch();
}
Dan tampilan output programnya :
Gambar 8.1
59
cetak<<"Masukkan Total Pengeluaran = ";isi>>peng;
hitung_laba = HITUNG_LABA;
cetak<<"Hasil Laba adalah : "<<hitung_laba;
tahan();
akhir
Gambar 8.2
8.1.2. #include
Digunakan untuk memasukkan/menyertakan file-file header ke dalam program
yang akan dibuat. Penulisan #include ada 2 macam yaitu :
1. #include “file_header”
Jika meng compile, maka pertama kali si compiler akan mencari file header yang telah
disebutkan pada directori yang aktif dan jika tidak ditemukan akan mencari lagi pada
directori file header tersebut berada. Contoh #include“iostream.h” #include“conio.h”
2. #include <file_header>
Compiler akan mencari file header yang disebutkan pada directori yang ada file
headernya, kecuali pada directori yang sedang aktif. Contoh #include<conio.h>
#include<stdio.h>
Gambar 8.3
8.1.4. #if - #else - #endif
Digunakan untuk meng kompilasi jika pernyataan kondisi pada #if bernilai
benar, jika #if bernilai salah maka pernyataan #else dikompilasi. Penggunaan
preprocessor ini sama hal nya dengan pnggunaan if-else pada program biasa.
Pernyataan kondisinya berupa ekspresi konstanta yang di deklarasikan menggunakan
#define.
Bentuk Penulisan #if ekspresi-konstanta
Penyataan1;
#else
Penyataan2;
#endif
#include <iostream.h>
#include <conio.h>
#define NILAI 80
main()
{
#if NILAI > 75
61
cout <<"Selamat Anda LULUS"<<endl;
#else
cout <<"Maaf, Anda Tidak LULUS"<<endl;
#endif
getch(); }
Hasil output programnya :
Gambar 8.4
8.1.5. #elif
Digunakan untuk mengkompilasi dari pernyataan bertingkat. Dalam hal ini
#elif sama halnya seperti #elseif yang merupakan kombinasi dari #if dan #else. Perintah
dijalankan sesuai dengan kondisi yang telah ditentukan, Hasil hanya dapat dijalankan
sesuai dengan ketentuan yang benar. Bentuk #elif diikuti oleh ekspresi-konstanta.
Bentuk Penulisan #if ekspresi-konstanta-1
penyataan-1;
#elif ekspresi-konstanta-2
penyataan-2;
# elif ekspresi-konstanta-n
penyataan-n;
#endif
#include <conio.h>
#define B 7
main( )
{
#if B > 12
cout<<"Lebih Besar dari Dua Belas"<<endl;
#elif B == 12
cout<<"Sama Dengan Dua Belas"<<endl;
62
#else B < 12
cout<<"Lebih Kecil dari Dua Belas"<<endl;
#endif
getch(); }
Gambar 8.5
8.1.6. #undef
Digunakan untuk menghilangkan nilai yang telah didefiniskan dari daftar suatu definisi.
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#define HUTANG_PENJ 10000000
#if HUTANG_PENJ>20000000
#undef HUTANG_PENJ //--> menghilangkan HUTANG_PENJ
#define HUTANG_PENJ 20000000
#elsif HUTANG_PENJ <50000
#undef HUTANG_PENJ //--> menghilangkan HUTANG_PENJ
#define HUTANG_PENJ 50000
#else
#undef HUTANG_PENJ //--> menghilangkan HUTANG_PENJ
#define HUTANG_PENJ 50000
#endif
main( )
{
char str[HUTANG_PENJ];
cout<<HUTANG_PENJ;
63
getch();}
Hasil output programnya :
Gambar 8.6
8.1.7. #ifdef - # ifndef
Preprocessor ini memberikan bagian dari program yang akan di compile, hal
ini dapat dilakukan jika sudah konstanta didefiniskan pada bagian #define, hal ini
merupakan suatu parameter (ukuran yang harus diperkirakan) yang khusus yang harus
terdefinisi. Bentuk umum penulisan sebagai berikut:
#ifdef
nama-konstanta pernyataan;
#endif
Ket: nama-konstanta harus terdefinisi, jika tidak pernyataan akan diabaikan.
64
#endif
getch();
}
Contoh output programnya :
Gambar 8.7
8.1.8. Pembuatan File Header
File header adalah suatu file yang berisikan deklarasi fungsi dan definisi
konstanta, dan file yang berakhiran .h . Walaupun C++ menyediakan file-file header, kita
juga bisa membuat file header sendiri, dengan cara yang sama seperti saat kita membuat
file editor. Saat kita membuat file header, jangan lupa menyimpan file header tersebut
menggunakan akhiran .h .
65
3. Lalu buatlah program, kemudian gunakan file header yang sudah anda buat dan simpan
dengan nama hasil.cpp
Contoh-9 /* program dengan file header sendiri */
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#include"coba.h"
go( )
first
int angka;
hapus( );
warna(8);
tampil("\nPROGRAM MEMBER BTS\n");
cetak<<endl;
cetak<<"1. Kim Taehyung"<<endl;
cetak<<"2. Park Jimin"<<endl;
cetak<<"\nMasukkan Pilihan Anda : ";isi>>angka;
jika(angka==1)
{cetak<<"\nAnda memilih Kim Taehyung";}
lain jika(angka==2)
{cetak<<"\nAnda memilih Park Jimin";}
lain
{cetak<<"\nPilihan yang anda masukan salah";}
tahan;
last
Hasil output programnya :
Gambar 8.9
66
BAB 9
FUNGSI ( Function )
A. Pengertian Fungsi
Fungsi (Function) merupakan blok dari kode yang dirancang untuk
melaksanakan tugas khusus. Kegunaan dari fungsi ini adalah untuk:
- Mengurangi pengulangan penulisan program yang berulangan atau sama.
- Program menjadi lebih terstruktur, sehingga mudah dipahami dan dapat lebih
dikembangkan.
Fungsi-fungsi yang sudah kita kenal sebelumnya adalah fungsi main(), yang
bersifat mutlak, karena fungsi ini program akan dimulai, sebagai contoh yang lainnya
fungsi printf(), cout() yang mempunyai tugas untuk menampilkan informasi atau data
kelayar dan masih banyak lainnya
B. Stuktur Fungsi
Sebuah fungsi sederhana mempunyai bentuk tulisan berikut :
nama_fungsi(argumen)
{
..... pernyataan/perintah;
..... pernyataan/perintah;
..... pernyataan/perintah;
}
Keterangan:
- Nama fungsi, boleh dituliskan secara bebas dengan ketentuan, tidak
menggunakan spasi dan nama-nama fungsi yang mempunyai arti sendiri.
- Argumen, diletakan diantara tanda kurung “( )” yang terletak dibelakang nama
fungsi. Argumen boleh diisi dengan suatu data atau dibiarkan kosong.
- Pernyataan / perintah, diletakan diantara tanda kurung ‘{ }’.
Sejauh ini kamu telah berlatih dengan membuat program dalam fungsi utama
alias fungsi main(). Bagaimana jika program yang kamu buat merupakan program yang
kompleks? Apakah kamu akan menggunakan fungsi main saja untuk semua tugas?
tentu saja ini akan membuat kamu mengalami kesulitan dalam melakukan
pengembangan serta pada saat membaca struktur program di tahap debugging.
Untuk mengatasi masalah tersebut, dalam pemrograman C++ menggunakan
pendekatan fungsi, dimana fungsi digunakan untuk membagi program berdasarkan
bagian-bagian tertentu yang memiliki tugasnya masing-masing. Tentu saja semua
fungsi yang bakalan kamu buat tidak akan berjalan sendiri-sendiri namun bekerja atas
dasar panggilan atau koordinasi fungsi utama atau fungsi main().
Nah, fungsi dalam pemrograman C++ dapat kamu deklarasikan dengan menggunakan sintaks
berikut ini:
67
Komponen dalam sebuah fungsi itu:
1. Suatu fungsi jelas memiliki tipe. Tipe suatu fungsi menentukan nilai kembalian dari
fungsi tersebut. Suatu fungsi dengan tipe int (integer) akan memberikan kembalian/
return berupa nilai bertipe integer dari pemrosesan yang sudah dilakukannya. Berbeda
dengan tipe void, dimana tipe fungsi ini tidak memiliki nilai kembalian atau dapat
dikatakan fungsi void hanya menjalankan rutin program saja.
2. Nama_fungsi merupakan pengenal suatu fungsi. Nama_fungsi akan sangat berguna
dan wajib disertakan karena sebagai basis pemanggilan.
3. Parameter merupakan variabel penampung input suatu fungsi. Dapat dikatakan bahwa
parameter merupakan satu-satunya gerbang input dan pertukaran nilai antara suatu
fungsi dengan dunia luar (fungsi main).
4. Return merupakan instruksi yang berguna mengembalikan hasil kerja suatu fungsi,
untuk dapat digunakan di dunia luar (fungsi main).
Agar kamu semakin paham dengan apa yang sudah di jelaskan di atas, maka perhatikan
contoh berikut ini:
//Contoh Fungsi Luas & Lebar Lingkaran
#include <conio.h>
#include <iostream.h>
int hitung_luas (int panjang, int lebar){
int luas = panjang*lebar;
return luas;
}
int main()
{
int a,b,hasil;
cout<<endl;
cout<<" Program Hitung Luas Persegi Panjang"<<endl;
cout<<" --------------------------------------"<<endl;
cout<<" Masukan Nilai Panjang : ";cin>>a;
cout<<" Masukan Nilai Lebar : ";cin>>b;
hasil = hitung_luas(a,b);
cout<<" Luas Persegi Panjang Adalah : "<<hasil<<endl;
getch(); }
68
Program di atas merupakan program yang berfungsi menghitung luas persegi
panjang, dengan memanfaatkan sebuah fungsi. Kita buat fungsi hitung_luas dengan tipe
int (integer). Parameter yang terdapat pada fungsi hutung_luas adalah panjang, dan
lebar dengan masing-masing bertipe data integer. Variabel luas kita deklarasikan di
dalam fungsi dan memiliki nilai berupa perkalian panjang dan lebar. Nilai luas
kemudian diumpan sebagai nilai akhir pemrosesan dengan menggunakan instruksi
return pada baris ke-enam.
Pada baris ke-17 yaitu di dalam fungsi main(), kita panggil fungsi hitung_luas
dan diberikan nilai parameter berupa variabel a, dan b. Nilai variabel a dan b pada baris
sebelumnya menampung nilai panjang dan lebar yang diinputkan user. Pada baris 17
pula, hasil umpan balik (return) fungsi hitung_luas, mimin tampung pada variabel hasil
untuk kemudian dicetak pada baris ke-18 untuk melihat hasilnya.
Berikut adalah hasil output program:
Gambar 9.1
Fungsi Void
Seperti yang sudah Kita jelaskan di atas, terdapat fungsi dengan tipe void,
Fungsi dengan tipe void tidak akan mengembalikan nilai apapun seperti fungsi yang
sudah kita contohkan di atas. Fungsi void biasanya digunakan untuk menjalankan rutin
program tertentu saja.
Berikut contoh kode programnya:
#include <iostream>
#include <stdio.h>
#include <string>
#include <conio.h>
int cetak (string kata){
cout<<kata<<endl;
}
main()
{
string input;
cout<<endl;
cout<<"Masukkan kata : ";cin>>input;
cetak(input);
69
getch();
}
Program di atas, merupakan program yang memanfaatkan fungsi void untuk mencetak data
yang kamu masukkan. Kamu bisa lihat tidak ada instruksi return dalam fungsi cetak tersebut.
Gambar 9.2
Fungsi Overload
Suatu fungsi dalam program yang kamu buat bisa memiliki nama yang sama.
Terus bagaimana cara manggilnya ?, kalau namanya aja sama? Apa nanti fungsi utama
tidak bingung dalam melakukan pemanggilan? Oke, gini jadi yang membedakan suatu
fungsi adalah parameternya, sehingga program utama atau main() tidak akan salah
panggil dan mendapatkan nilai yang salah walaupun namanya sama. Nih buat lebih
memperjelas,
Berikut contohkan kode programnya:
#include <stdio.h>
#include <conio.h>
#include <iostream>
void fungsiOverload (void){
cout<<endl;
cout<<" Ini Merupakan fungsi overload"<<endl;}
int fungsiOverload (int bil1, int bil2){
int operasi;
operasi = bil1*bil2;
return operasi;}
int main()
{ fungsiOverload();
cout<<" Hasil : "<<fungsiOverload(3,5)<<endl;
getch();
}
Pada program di atas, kita membuat dua buah fungsi dengan nama yang sama yaitu
“fungsiOverload”. Fungsi pertama berfungsi mencetak kata “Ini Merupakan fungsi overload“,
sedangkan fungsi kedua bertugas melakukan perkalian dua buah bilangan. Kamu bisa lihat pada
baris 14 dan 15 bagaimana kedua fungsi yang memiliki nama beda namun dipanggil dengan
cara yang berbeda yaitu dari parameternya.
70
Berikut adalah hasil output programnya:
Gambar 9.3
Fungsi Prototype
Fungsi prototype atau prototype function sebenarnya merupakan sebuah
variasi gaya dalam mendeklarasikan sebuah fungsi. Nah coba kamu perhatikan semua
fungsi yang sudah kita jabarkan dan jelaskan panjang kali lebar di atas, hehehe. Semua
fungsi tersebut dideklarasikan sebelum fungsi main(). Nah kenapa kok harus
dideklarasikan di awal atau sebelum fungsi main()? Suatu sub fungsi dideklarasikan
diawal suatu fungsi main() dengan tujuan agar fungsi main dapat mengenali fungsi-
fungsi yang ada. Bagaimana kalau suatu fungsi berada sesudah fungsi main()? jelas
bahwa error akan terjadi karena fungsi main tidak mengenali suatu fungsi yang hendak
dipanggil dalam fungsi utama.
Untuk menanggulangi hal tersebut, dalam pemrograman C++ dikenal
istilah prototype fungction, dimana kamu wajib mendelarasikan nama fungsi, jenis
fungsi, dan parameternya saja sebelum fungsi main agar dikenali oleh program utama.
Untuk selanjutnya kamu bebas menyusun isi suatu fungsi mengenai apa saja yang
hendak dilakukan dengan fungsi tersebut serta meletakanya setelah fungsi main().
Berikut contohnya kita gunakan fungsi yang sudah ada di atas:
#include <iostream.h>
#include <conio.h>
#include <stdio.h>
int hitung_luas (int panjang, int lebar); // Prototype Funcion
int hitung_luas (int panjang, int lebar){
int luas = panjang*lebar;
return luas; }
int main()
{
int a,b,hasil;
cout<<endl;
cout<<" Program Hitung Luas Persegi Panjang"<<endl;
cout<<" -----------------------------------"<<endl;
cout<<" Masukkan nilai panjang : "; cin>>a;
cout<<" Masukkan nilai lebar : "; cin>>b;
hasil = hitung_luas(a,b);
cout<<" Luas persegi panjang adalah : "<<hasil<<endl;
getch();
}
71
Hasil Output :
Gambar 9.5
Fungsi Inline
Fungsi inline merupakan metode yang digunakan untuk mempercepat
pemanggilan suatu fungsi. Biasanya fungsi yang diberikan atribut inline merupakan
fungsi yang berada di dalam loop atau dipanggil secara berulang kali. Dengan
metode inline, suatu fungsi akan aktif dalam memori sehingga mempercepat
pemanggilan blok fungsi untuk diproses. Untuk mengaplikasikan fungsi inline cukup
mudah yaitu dengan menambahkan atribut inline sebelum tipe fungsi. Berikut adalah
sintaksnya:
LATIHAN 9
1. Buatlah program untuk menghitung besarnya Diskon yang diberikan atas besanya
sejumlah pembelian, dengan ketentuan sebagai berikut :
i. Jika belanja dibawah Rp. 2,000,000 , maka tidak mendapat diskon.
ii. Jika belanja dimulai dari Rp. 2,000,000 , sampai dengan Rp. 10.000.000, maka
mendapat diskon sebesar 15%.
iii. Jika belanja diatas Rp. 4.000.000, maka mendapat diskon sebesar 30%.
Fungsi yang harus dibuat potong() untuk menghitung besar potongan yang akan
diberikan. Dengan tampilan yang diinginkan sebagai berikut:
72
BAB 10
STRUKTUR
MENDEKLARASIKAN STRUCT
struct struct
nama_tipe_struktur {
{ elemen_struktur;
elemen_struktur;
.....
.....
atau .....
.....
} nama_tipe_struktur;
};
CONTOH
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
struct
{
char nik[10];
char nama[15];
float nilai;
} karyawan;
clrscr();
cout<<"masukan NIK = ";cin>>karyawan.nik;
cout<<"masukan Nama = ";cin>>karyawan.nama;
cout<<"masukan Nilai Test = ";cin>>karyawan.nilai;
cout<<”\n\nData Yang di Inputkan adalah : \n\n”;
cout<<"NIK = "<<karyawan.nik<<endl;
cout<<"Nama = "<<karyawan.nama<<endl;
cout<<"Nilai Test = "<<karyawan.nilai<<endl;
getch();
}
73
Output yang akan dihasilkan, dari program contoh diatas adalah :
Gambar 10.1
CONTOH #include<conio.h>
#include<stdio.h>
#include<iostream.h>
main( )
{
struct data
{
char nik[10],nama[15];
char prestasi[20];
};
clrscr( );
data karyawan;
cout<<"masukan NIK : ";cin>>karyawan.nik;
cout<<"masukan NAMA : ";cin>>karyawan.nama;
cout<<"masukan PRESTASI : ";cin>>karyawan.prestasi;
cout<<"\n\n Data yang Anda Inputkan Adalah : "<<endl<<endl;
cout<<"NIK : "<<karyawan.nik<<endl;
cout<<"NAMA: "<<karyawan.nama<<endl;
cout<<"PRESTASI: "<<karyawan.prestasi<<endl;
getch( ); }
Gambar 10.2
74
NESTED STRUCTURE
Nested Structure merupakan suatu Structure dapat digunakan didalam
structure yang lainnya, atau biasa disebut dengan structure di dalam structure.
CONTOH
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
main()
{
struct dtmhs
{
char nim[5],nama[15];
};
struct dtnil
{
float nil1;
float nil2;
};
struct
{
struct dtmhs mhs;
struct dtnil nil;
} nilai;
clrscr();
cout<<"masukan NIM = "; cin>>nilai.mhs.nim;
cout<<"masukan Nama = "; cin>>nilai.mhs.nama;
cout<<"masukan Nilai UTS = "; cin>>nilai.nil.nil1;
cout<<"masukan Nilai UAS = "; cin>>nilai.nil.nil2;
cout<<”\n\nData yang di Inputkan adalah : \n\n”;
cout<<"NIM = "<<nilai.mhs.nim<<endl;
cout<<"Nama = "<<nilai.mhs.nama<<endl;
cout<<"Nilai UTS = "<<nilai.nil.nil1<<endl;
cout<<"Nilai UAS = "<<nilai.nil.nil2<<endl;
cout<<endl;
getch();
return(0);
}
75
Output yang akan dihasilkan, dari program contoh diatas adalah :
Gambar 10.3
Sebuah struct yang di dalamnya tedapat variable dengan tipe data array.
struct
{
elemen_struktur ;
…………………. ;
} nama_tipe_struktur[jml_index];
#include<stdio.h>
CONTOH
#include<conio.h>
#include<iostream.h>
main()
{
int i;
struct
{
char nim[5];
char nama[15];
float nilai;
} mhs[5];
76
clrscr();
for(i=1; i<=2; i++)
{
cout<<"masukan NIM = "; cin>>mhs[i].nim;
cout<<"masukan Nama = "; cin>>mhs[i].nama;
cout<<"masukan Nilai Akhir = "; cin>>mhs[i].nilai;
}
cout<<endl;
cout<<"data Mahasiswa"<<endl;
for(i=1; i<=2; i++)
{
cout<<"Data Ke - "<<i<<endl;
cout<<"NIM = "<<mhs[i].nim<<endl;
cout<<"Nama = "<<mhs[i].nama<<endl;
cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;
cout<<endl;
}
getch();
}
Gambar 10.4
77
STRUCTURE DENGAN FUNGTION
#include<stdio.h> cout<<endl;
#include<conio.h> }
#include<iostream.h>
char* ket(float n); getch();
main() }
{ char* ket(float n)
int i, j=1, k=1; {
struct if(n > 65)
{ cout<< "Lulus";
char nim[5]; else
char nama[15]; cout<< "Gagal";
float nilai; }
} mhs[5];
clrscr();
for(i=0; i<2; i++)
{ cout<<"Data Ke - "<<j++<<endl;
cout<<"masukan NIM = ";
cin>>mhs[i].nim;
cout<<"masukan Nama = ";
cin>>mhs[i].nama;
cout<<"masukan Nilai Akhir = ";
cin>>mhs[i].nilai;
cout<<endl; }
clrscr();
for(i=0; i<2; i++)
{ cout<<"Data Ke - "<<k++<<endl;
cout<<"NIM = "<<mhs[i].nim<<endl;
cout<<"Nama = "<<mhs[i].nama<<endl;
cout<<"Nilai Akhir =
"<<mhs[i].nilai<<endl;
cout<<"Keterangan yang didapat = ";
cout<<ket(mhs[i].nilai)<<endl;
78
Output yang akan dihasilkan, dari program contoh diatas adalah :
LATIHAN 10
1. Buatlah program menggunakan function untuk menentukan selisih antara dua waktu
(jam). Misalkan selisih antara pukul 4.30 dengan 6.00 adalah 90 menit.
Terdapat 2 argumen function yaitu jam pertama dan jam kedua (lebih besar dari jam
pertama).
79
DAFTAR PUSTAKA
Al Fatta, Hanif, S.k om. 2006. Dasar Pemrograman C++. Andi Offset. Yogyakarta
Frieyadie. 2006. Panduan Pemrograman C++. Andi Offset. Yogyakarta
Kadir, Abdul. 2001. Pemrograman C++ menggunakan turbo C++ dan borland C++.
Andi Offset. Yogyakarta.
Nugroho, Adi, ST., MMSI. Pemrograman Berorientasi Objek. Informatika. Bandung
80