Algoritma Dan Pemrograman Menggunakan C++
Algoritma Dan Pemrograman Menggunakan C++
Puji syukur penulis panjatkan ke hadirat Allah SWT yang telah melimpahkan rahmat
dan hidayahnya sehingga penulis dapat menyelesaikan penyusunan petunjuk
praktikum sesuai dengan rencana.
Petunjuk praktikum ini berfungsi sebagai panduan pelaksanaan praktikum bagi
mahasiswa kegiatan demi kegiatan, dimana untuk setiap materi tugas yang harus
dilaksanakan dilengkapi dengan uraian teori secara ringkas yang berkaitan dengan
materi tugas yang harus dilaksanakan.
Akhir kata, penulis berharap petunjuk praktikum ini benar-benar dapat memberikan
manfaat kepada mahasiswa dalam melaksanakan tugas praktikum. Kritik dan saran
yang konstruktif sangat penulis harapkan untuk penyempurnaan petunjuk praktikum
ini.
1
I. Pendahuluan
Mengingat terbatasnya waktu praktikum yang tersedia maka acara praktikum dibatasi
sejumlah enam acara. Materi dari acara praktikum meliputi variabel dan tipe data,
operator dan statement I/O, pencabangan, pengulangan, fungsi dan larik. Materi yang
dipilih merupakan materi yang penting dan mendasar yang betul-betul dibutuhkan dalam
mempelajari materi yang lebih lanjut kelas dan fiturnya.
Konsep ringkas mengenai variabel dan tipe data yang meliputi pengertian dan cara
pendefinisian variabel, dan tipe data serta tugas praktikum yang terkait disajikan pada bab
III. Konsep singkat mengenai operator dan statement I/O serta tugas praktikum yang terkait
disajikan pada bab IV. Konsep ringkas mengenai pencabangan yang meliputi
pencabangan dengan if dan switch serta tugas praktikum yang terkait disajikan pada bab V.
Konsep tentang pengulangan yang meliputi penngulangan dengan while, do-while dan for
serta tugas praktikum yang terkait disajikan pada bab VI. Konsep tentang fungsi serta tugas
praktikum yang terkait disajikan pada bab VII. Materi terakhir mengenai larik yang meliputi
pengertian larik, deklarasi dan representasi larik, dan larik sebagai argument fungsi
disajikan pada bab VIII.
Tugas praktikum berupa tugas pembuatan program yang merupakan implementasi
dari konsep yang telah dibahas. Struktur program yang harus dibuat merupakan
pengembangan dari contoh program yang telah diberikan, dengan demikian diharapkan
praktikan tidak akan mengalami banyak kesulitan dalam membuatnya dan akan lebih
memantapkan pemahaman mereka terhadap implementasi dari konsep yang dibahas.
2
DAFTAR ISI
Halaman
Kata Pengantar 1
Daftar Isi 2
I. Pendahuluan 3
II. Pengenalan C++ 6
III. Variabel dan Tipe Data 8
3.1 Variabel 8
3.2 Deklarasi 8
3.3 Tipe Data 10
Tugas Praktikum 13
IV. Operator dan Statement I/O 14
4.1 Operator 14
4.2 Statement I/O 21
Tugas Praktikum 23
V. Pencabangan 24
5.1 Pernyataan if 24
5.2 Pernyataan switch 27
Tugas Praktikum 30
VI. Pengulangan 31
6.1 Pernyataan while 31
6.2 Pernyataan do-while 32
6.3 Pernyataan for 33
6,4 Pernyataan continue dan break 34
6.5 Pernyataan goto 35
Tugas Praktikum 36
VII. Fungsi 37
7.1 Pengertian Fungsi 37
Tugas Praktikum 47
VIII. Larik 48
8.1 Pengertian Larik 48
8.2 Representasi Larik 48
8.3 Menghitung Jumlah Elemen Larik 49
8.4 Melewatkan Larik sebagai Argumen Fungsi 50
Tugas Praktikum 50
Daftar Pustaka 51
3
I. PENDAHULUAN
1. 1 ALGORITMA
Algoritma adalah prosedur yang didefinisikan dengan jelas dan terdiri dari langkah-
langkah yang banyaknya terhingga, digunakan untuk menyelesaikan suatu permasalahan.
Algoritma dapat dinyatakan dengan berbagai cara, antara lain menggunakan bahasa
alami, diagram alir (flowchart), atau menggunakan bahasa pemograman komputer.
4
2. Tuliskan kode program (source code)
Source code C++ ditulis pada text editor Borland C++ yaitu pada kotak putih sebelah kiri.
Setelah source code selesai ditulis, maka source code harus disimpan dengan cara mengklik
submenu Save as dari menu File, sehingga akan muncul kotak dialog Save File As sebagai
berikut:
Tuliskan nama file pada kotak File name dan kemudian klik tombol kanan mouse pada kotak
Open.
5
4. Jalankan Program
Setelah program kita jalan dengan cara mengklik submenu Run pada menu Debug atau
dengan menekan tombol Ctrl dan F9 secara bersamaan (Ctrl+F9), maka program akan
dijalankan dan juga akan dihasilkan file yang executable.
Jika anda ingin membuka file program yang sudah ada maka langkah-langkahnya adalah
sebagai berikut:
1. Pada menu utama Borland C++ klik submenu Open pada menu File maka akan muncul
kotak dialog sebagai berikut:
2. Cari file yang ingin dibuka dengan cara mengklik folder dimana file yang dimaksud
disimpan. Setelah file yang dimaksud telah ditemukan klik ganda pada nama file tersebut
maka nama file tersebut akan muncul pada kotak File Name, kemudian klik tombol OK.
3. Kode program tampil pada text editor dan selanjutnya proses modifikasi atau eksekusi
program dapat dilakukan.
6
II. PENGENALAN C++
# prepocessor directive
void main()
{
// Batang Tubuh Program Utama
}
Penjelasan :
1. Include
Adalah salah satu pengarah prepocessor (prepocessor directive) yang tersedia pada C++.
Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Bentuk
umumnya :
# include <nama_file>
Pengarah preprocessor tidak diakhiri dengan tanda semicolon, karena bentuk tersebut
bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directive. Baris tersebut
menginstrusikan kepada compiler yang menyisipkan file lain dalam hal ini file yang
berakhiran .h (file header) yaitu file yang berisi deklarasi, contohnya:
2. Fungsi main ()
Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah nama judul fungsi.
Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama
berada didalam fungsi main( ). Berarti dalam setiap pembuatan program utama, maka dapat
7
dipastikan seorang pemrogram menggunakan minimal sebuah fungsi. Pembahasan lebih
lanjut mengenai fungsi akan diterangkan kemudian. Yang sekarang coba ditekankan adalah
kita menuliskan program utama kita didalam sebuah fungsi main().
3. Komentar
Komentar tidak pernah dicompile oleh compiler. Dalam C++ terdapat 2 jenis komentar,
yaitu:
Jenis 1 : /* Komentar anda diletakkan di dalam ini
Bisa mengapit lebih dari satu baris */
Jenis 2 : // Komentar anda diletakkan disini ( hanya bisa perbaris )
4.Tanda Semicolon
Tanda semicolon “ ; ” digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan
harus diakhiri dengan sebuah tanda semicolon.
8
III. VARIABEL DAN TIPE DATA
3.1 VARIABEL
Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai
tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai
dari suatu variable bisa diubah-ubah sesuai kebutuhan. Untuk memperoleh nilai dari suatu
variable digunakan pernyataan penugasan (assignment statement), yang mempunyai sintaks
sebagai berikut :
variable = ekspresi;
Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai
berikut :
1. Terdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf.
Bahasa C ++ bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi
antara nim, NIM dan Nim dianggap berbeda.
2. Tidak boleh mengandung spasi.
3. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang
termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -,
+, =dsb.
4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.
3.2 DEKLARASI
Deklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program.
Identifier dapat berupa variable, konstanta dan fungsi.
9
3.2.1 DEKLARASI VARIABEL
Bentuk umumnya :
Tipe nama_variabel;
Contoh :
int x; // Deklarasi x bertipe integer
char y, huruf, nim[10]; // Deklarasi variable bertipe char
float nilai; // Deklarasi variable bertipe float
double beta; // Deklarasi variable bertipe double
int array[5][4]; // Deklarasi array bertipe integer
Contoh :
#include <iostream.h>
int main (void)
{
int workDays;
float workHours, payRate, weeklyPay;
workDays = 5;
workHours = 7.5;
payRate = 38.55;
weeklyPay = workDays * workHours * payRate;
cout << "Weekly Pay = ";
cout << weeklyPay;
cout << '\n';
}
Outputnya :
Weekly Pay = 1445.625
10
3.3 TIPE DATA
Tipe data dapat dikelompokkan menjadi atas dua macam :
1. Tipe Dasar.
2. Tipe Bentukan.
NB : Untuk mengetahui ukuran memori dari suatu tipe digunakan fungsi sizeof(tipe). Tipe
data dapat diubah ( type cast ), misalkan:
float x = 3.345;
int p = int(x);
maka nilai p adalah 3 ( terjadi truncating ).
Tipe data yang berhubungan dengan bilangan bulat adalah char, int, long. Sedangkan lain-
nya berhubungan dengan bilangan bulat dan juga pecahan.
Jika variable tidak diinisialisasi, namun nilai keluarannya diminta, maka compiler dengan
bijak akan menampilkan nilai acak yang nilainya tergantung dari jenis compilernya.
11
Contoh :
#include <iostream.h>
#include <string.h>
int main(void)
{
cout<<strlen(“Belajar C++\n”)<<’\n’;
cout<< strlen(“Teknik Informatika UNSOED”);
}
Outputnya:
12
25
Perhatikan, bahwa disetiap akhir baris pernyataan diakhiri dengan tanda titik koma “;”
(semicolon).
Perhatikan, bahwa :
‘ \n ‘ dihitung satu karakter. \n disebut newline karakter
Endl juga merupakan newline karakter ( sama kegunaannya seperti \n ).
Dalam C++, selain \n terdapat juga beberapa karakter khusus yang biasa disebut escape
sequence characters, yaitu
Karakter Keterangan:
\0 Karakter ber-ASCII nol ( karakter null )
\a Karakter bell
\b Karakter backspace
\f Karakter ganti halaman ( formfeed )
\n Karakter baris baru ( newline )
\r Karakter carriage return ( ke awal baris )
\t Karakter tab horizontal
\v Karakter tab vertikal
\\ Karakter \
\’ Karakter ‘
\” Karakter “
12
\? Karakter ?
\ooo Karakter yang nilai oktalnya adalah ooo ( 3 digit octal )
\xhh Karakter yang nilai heksadesimalnya adalah hh (2 digit heksadesimal )
13
3.3.2.1 TIPE STRUKTUR
Suatu tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri dari data
yang disebut field. Field – field tersebut digabungkan menjadi satu tujuan untuk kemudahan
dalam operasi.
Bentuk umumnya :
typedef struct{ tipe nama_field1;
tipe nama_field2;
tipe nama_field3;
. . . .
tipe nama_fieldn}nama_variabel;
Contoh :
#include <iostream.h>
typedef struct{char* nama;
char* nim;} data_mhs;
int main(void)
{
data_mhs mahasiswa;
mahasiswa.nama=”Satriawan”;
mahasiswa.nim=”H1A123008”;
cout<<”Nama : “<<mahasiswa.nama<<’\n’<<
“NIM :”<<mahasiswa.nim<<’\n’;
}
Perhatikan bahwa pada akhir dari typedef struct diberi tanda semicolon.
Tugas Praktikum :
1. Buatlah program dengan menggunakan define untuk menghitung volume Tabung (Rumus
Volume Tabung : phi x jari-jari x jari-jari x tinggi) dan Luas Tabung (Rumus Luas
tabung : 2 x phi x jari-jari x tinggi ) dimana jari-jari 7 dan tinggi 24.
2. Buatlah program untuk mencatat data mahasiswa yang terdiri dari field nama, nim dan
nilai.
14
IV. OPERATOR DAN STATEMEN I/O
4.1 OPERATOR
Operator adalah simbol yang biasa dilibatkan dalam program untuk melakukan sesuatu
operasi atau manipulasi.
NB: Operator seperti operator negasi (-) disebut unary operator, karena membutuhkan hanya
satu buah operand. Operator % (modulus) digunakan untuk mencari sisa pembagian antara
dua bilangan. Misalnya : 9 % 2 = 1, 9 % 3 = 0.
15
Contoh :
Output :
Karena tipe datanya adalah int, maka 82/26=3, supaya dapat merepresentasikan nilai yang
sebenarnya, gunakan tipe data float.
Cara lain penulisan dengan menggunakan operator aritmatika :
m = m + n dituliskan m += n
m = m - n dituliskan m -= n
m = m * n dituliskan m *= n
m = m / n dituliskan m /= n
m = m % n dituliskan m %= n
16
Contoh:
Outputnya :
Outputnya :
Terlihat bahwa operator pre-increment dan post-increment memiliki akibat yang sama, yaitu
manambah nilai satu pada m dan memasukkan nilai tersebut kembali ke m (m=m+1). Hal
yang sama juga terjadi pada operator pre-decrement dan post-decrement yang memberikan
akibat yang sama, yaitu mengurangi nilai satu dari n ( n = n - 1). Tetapi bila digunakan
17
sebagai sub-ekspresi, operator post-increment dan preincrement menunjukkan hasil yang
berbeda.
Contoh :
Outputnya :
Penjelasan :
Dalam penugasan yang pertama, m adalah pre-increment, menaikkan nilainya menjadi 67,
yang selanjutnya dimasukkan ke n. Dalam penugasan kedua, m adalah post-increment,
sehingga 67 dimasukkan dahulu ke n baru kemudian nilai m-nya dinaikkan, itu sebabnya
mengapa nilai m = 68 dan n = 67. Dalam penugasan ketiga, m adalah post-increment,
sehingga nilai m ( = 68 ) ditampilkan dahulu ( ke layar ) baru kemudian nilai m dinaikkan
menjadi 69. Dalam penugasan keempat, m adalah pre-increment, sehingga nilai m dinaikkan
dahulu menjadi 70 baru kemudian ditampilkan ke layar. Supaya lebih paham, perhatikan
pula contoh berikut ini.
18
Contoh :
Penjelasan :
Dalam penugasan untuk n, pertama kali m dinaikkan (++m) menjadi 6, kemudian m
diturunkan kembali menjadi 5, karena adanya --m. Sehingga nilai m sekarang adalah 5 dan
nilai m = 5 inilah yang dievaluasi pada saat penugasanperkalian dilakukan. Pada baris
terakhir, ketiga sub-ekspresi dievaluasi dari kanan ke kiri.
NB: Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau char.
Berikut ini diberikan tabel kebenaran untuk operator logika P = A operator B
19
Contoh :
Penjelasan :
Nilai keluaran diatas, tergantung dari jenis compiler yang digunakan. Hasil diatas
merupakan keluaran dari compiler Turbo C++. Pada Turbo C++ besar dari integer adalah 2
byte atau sama dengan 16 bit, untuk mengetahuinya digunakan perintah
cout<<sizeof(int)<<endl; // Untuk mengetahui besar dari int, maka :
8210 = 00000000010100102 dan 2610 = 00000000000110102
20
Sehingga :
82 << 2 0000000101001000 2 = 32810
82 >> 2 0000000000010100 2 = 20 10
82 & 26 0000000001010010 2
0000000000011010 2
------------------------------------------ &
0000000000010010 2 = 18 10
dan begitu juga untuk operasi OR dan XOR.
~82 digunakan 2’s complement, yaitu 8210 = 00000000010100102 lalu dinegasikan tiap
bitnya menjadi 1111111110101101 2 kemudian LSB ditambah 1 menjadi 1111111110101110
= 6545410 , nilai ini melebihi jangkauan maksimum int yang berkisar di -32768 sampai
32767, sehingga nilai yang keluar yaitu -83.
Cara lain penulisan dengan menggunakan operator bitwise :
m = m << n ditulis m <<= n
m = m >> n ditulis m >>= n
m = m & n ditulis m &= n
m = m | n ditulis m |= n
m = m ^ n ditulis m ^= n
Contoh:
&& merupakan operator logic AND, dengan sintaks: m && n
|| merupakan operator logic OR, dengan sintaks: m ||n
! merupakan operator logic NOT, dengan sintaks: !m
21
Contoh :
Penjelasan :
Hasil keluaran dari operator logika adalah 0 dan 1. 0 jika keluarannya salah dan 1 jika
keluarannya benar.
22
inputing device (keyboard/mouse), contoh : cout (character out)
b. Statemen Output adalah Statemen yang digunakan untuk menuliskan data ke layar
monitor, contoh : cin (character in)
Contoh 1:
Contoh 2:
23
Tugas Praktikum:
1. Buatlah program untuk menghitung luas bangunan geometri (bujursangkar, lingkaran,
segitiga dan trapesium). Data masukkan dibaca dari piranti masukkan dan luas bangun
ditampilkan sebagai keluaran.
2. Buatlah program untuk menghitung harga total suatu barang, dimana jumlah barangnya
5, harga perunit 5203.02.
3. Buatlah program untuk penggunaan operasi aritmatika yaitu penjumlahan, pembagian,
perkalian, dan pengurangan dengan variabel yang diinputkan.
4. Mencetak sejumlah deret bilangan ganjil antara 1 sampai N, dimana N dimasukkan oleh
user.
24
V. PENCABANGAN
Suatu struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentu dimana sebuah
instruksi dilaksanakan jika sebuah kondisi/persyaratan terpenuhi. Ada beberapa bentuk
struktur dasar percabangan ini :
5.1 PERNYATAAN if
Sebuah pernyataan yang dapat dipakai untuk mengambil keputusan berdasarkan suatu
kondisi. Bentuk pernyataan ini ada dua macam :
- if saja dan
- if dan else
Outputnya :
25
Penjelesan :
Tampak bahwa kalau usia yang dimasukkan lebih dari atau sama dengan 17, program tidak
menghasilkan apa-apa.
26
Contoh 1:
Contoh 2:
Penjelesan :
Terlihat bahwa kalau usia yang dimasukkan lebih dari 17, program akan memberi pesan
Selamat Menonton. Selain dari if … else, juga dikenal bentuk if … else if. Adapun
perbedaannya diilustrasikan oleh dua contoh dibawah ini.
27
Contoh 3 :
Contoh 4 :
28
Bentuk Umumnya :
switch (ekspresi)
{
case konstanta1: pernyataan1;
break ;
case konstanta2: pernyataan2;
break ;
case konstanta3: pernyataan3;
break ;
:
:
case konstanta n: pernyataan n;
break ;
default: pernyataan lain;
}
Hal – hal yang perlu diperhatikan adalah :
1. Dibelakang keyword case harus diikuti oleh sebuah konstanta, tidak boleh diikuti oleh
ekspresi ataupun variable.
2. Konstanta yang digunakan bertipe int atau char.
3. Jika bentuknya seperti diatas maka apabila ekspresi sesuai dengan konstanta2 maka
pernyataan2, pernyataan3 sampai dengan pernyataanlain dieksekusi. Untuk mencegah
hal tersebut, gunakan keyword break;. Jika keyword break digunakan maka setelah
pernyataan2 dieksekusi program langsung keluar dari pernyataan switch. Selain
digunakan dalam switch, keyword break banyak digunakan untuk keluar dari pernyataan
yang berulang (looping).
4. Pernyataanlain dieksekusi jika konstanta 1 sampai konstanta N tidak ada yang memenuhi
ekspresi.
29
Contoh :
Output :
30
Tugas Praktikum :
1. Buatlah program untuk mencari apakah bilangan tersebut ganjil atau genap, dimana
bilangan merupakan piranti masukkan
2. Buatlah program untuk menseleksi suatu bilangan dengan ketentuan sebagai berikut :
0<=nilai <30 : Nilai rendah
30<=nilai < 60 : Nilai sedang
60<=nilai<=100 : Nilai tinggi
3. Buatlah program dalam bentuk menu yang mampu menghitung :
a. Luas dan Keliling Bujur sangkar
b. Luas dan Keliling persegi panjang
c. Luas dan keliling lingkaran
31
VI. PENGULANGAN
Sebuah atau sekelompok instruksi diulang untuk jumlah pengulangan tertentu. Baik yang
terdifinisikan sebelumnya ataupun tidak. Struktur pengulangan terdiri atas dua bagian :
1. Kondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan
pengulangan
2. Isi atau badan pengulangan yaitu satu atau lebih pernyataan (aksi) yang akan diulang.
Perintah atau notasi dalam struktur pengulangan adalah :
1. Pernyataan while
2. Pernyataan do..while
3. Pernyataan for
4. Pernyataan continue dan break
5. Pernyataan go to
Bentuk Umumnya :
while (kondisi)
{
pernyataan ;
}
Contoh:
32
Penjelasan :
Program diatas digunakan untuk mengulangan tulisan sebanyak 10 kali
Bentuk Umumnya :
do
{
pernyatan ;
} while(kondisi);
33
Contoh :
34
Bagaimana jika program diatas diubah menjadi Program diatas akan menampilkan bilangan
yang banyaknya tak terhingga sehingga dapat membuat komputer anda berhenti bekerja.
Contoh diatas juga merupakan prinsip membuat bom program ( contohnya : bom mail ).
Pernyataan for dapat berada di dalam pernyataan for lainnya yang biasa disebut nested for.
Contoh :
35
Contoh :
Penjelasan :
Dari program diatas, dapat dilihat perulangan dari suatu bilangan sebanyak 10 kali. Tetapi,
pada perulangan i=4, ada perintah continue. Dengan perintah ini, maka program langsung
meloncat ke loop berikutnya dan ketika sampai perulangan i = 6, ada perintah break.
Otomatis program akan berhenti dan tidak sampai ke i=10. Dan program akan mencetak
bilangan 0, bilangan 1, bilangan 2, bilangan 3, bilangan 5, bilangan 6.
6.5 PERNYATAAN go to
Pernyataan goto, diperlukan untuk melakukan suatu lompatan ke suatu pernyataan
berlabel yang ditandai dengan tanda “ : “.
Bentuk Umumnya :
goto bawah;
pernyataan1;
pernyataan2;
bawah: pernyataan 3;
36
Pada contoh diatas, pada saat goto ditemukan maka program akan melompat pernyataan
berlabel bawah dan melakukan pernyataan 3.
Contoh :
Tugas Praktikum:
1. Buatlah program untuk mencetak deret 10 9 8 7 6 5 4 3 2 1
2. Buatlah program untuk mencetak (gunakan perulangan while atau for)
****
***
**
*
3. Buatlah program yang menampilkan 5 buah bilangan, yaitu mulai dari bilangan ke 5
sampai bilangan ke 1 dengan nilai awal bilangan 8. Tampilan bilangan tersebut adalah
menurun dan contohnya adalah : bilangan ke 5, i=3 (diperoleh dari 8-5)dan seterusnya
sampai bilangan 1, i=7 (diperoleh dari 8-1=7)
37
VII. FUNGSI
7.1. FUNGSI
Fungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input
dan dapat memberikan hasil output yang dapat berupa nilai ataupun sebuah hasil operasi.
Hasil akhir fungsi akan berupa sebuah nilai balik (return) Nama fungsi yang didefinisikan
sendiri oleh pemrogram tidak boleh sama dengan nama build-in function pada compiler
C++.
Fungsi digunakan agar pemrogram dapat menghindari penulisan bagian program (kode)
berulang-ulang, dapat menyusun kode program agar terlihat lebih rapi dan kemudahan
dalam debugging program. Parameter adalah nama-nama peubah yang dideklarsikan pada
bagian header fungsi. Pemrogram dapat membuat fungsi yang didefinisikan sendiri olehnya.
Bentuk umumnya :
Deklarasi parameter
{
Isi fungsi
}
38
1. Nama Fungsi
2. Tipe nilai fungsi
3. Jumlah dan tipe argumen
Dan diakhiri dengan titik koma, sebagaimana pada pendeklarasian variabel. Sebagai contoh:
1. long kuadrat (long l) ;
Pada contoh pertama, fungsi kuadrat ( ) mempunyai argumen bertipe long dan nilai balik
bertipe long.
2. void garis ( );
Pada contoh kedua, fungsi garis ( ) tidakmemiliki argumen dan nilai baliknya tidak ada
(void).
3. double maks (double x, double y)
Pada contoh ketiga, fungsi maks( ) mempunyai dua buah argumen, dengan masing-
masing argumen bertipe double.
Contoh :
39
Penjelasan :
// Fungsi Perkalian
// tipe_return nama_fungsi (tipe_argument argumen)
Fungsi yang didefinisikan oleh pemrogram terdiri atas dua bagian, yaitu judul (header) dan
isi (body). Judul dari sebuah fungsi terdiri dari tipe return (double), nama fungsi (hasil) dan
list parameter ( int A, int B). Jadi, judul untuk fungsi hasil adalah double hasil (int A, int
B).
Isi dari sebuah fungsi adalah blok kode yang mengikuti judulnya. Berisi kode yang
menjalankan aksi dari fungsi, termasuk pernyataan return yang memuat nilai fungsi yang
akan dikembalikan ke yang memanggilnya, Isi dari fungsi hasil ( ) adalah
{
return A * B;
}
Biasanya isi dari fungsi cukup besar. Meskipun demikian, judulnya tetap hanya berada
dalam satu baris. Isi dari sebuah fungsi dapat memanggil fungsi itu sendiri (disebut rekursif)
atau memanggil fungsi lainnya.
Pernyataan return dari sebuah fungsi mempunyai dua manfaat, yaitu akan mengakhiri fungsi
dan mengembalikan nilainya ke program pemanggil.
40
Contoh :
41
Penjelasan :
Dalam pemograman tersebut terdapat variabel lokal dan variabel eksternal yang namanya
sama yaitu data. Dalam fungsi main ( ) dan fungsi_satu ( ) terdapat variabel lokal dengan
nama sama tetapi sebetulnya lokasi penyimpanannya dalam memori berbeda, sehingga dua
variabel itu berbeda dan tidak saling mengenal. Fungsi_satu ( ) sebetulnya mengenal
variabel eksternal data yang nilainya 100, tetapi karena dalam fungsi tedapat variabel lokal
data yang bernilai 300, maka diprioritaskan untuk diproses dalam fungsi tersebut adalah
variabel lokalnya. Jika dalam fungsi terdapat variabel lokal dan variabel eksternal yang
42
sama, maka diprioritaskan untuk diproses variabel lokal. Dalam fungsi_dua( ) tidak terdapat
variabel lokal sehingga yang diproses pada fungsi tersebut adalah variabel eksternalnya.
7.1.3 PARAMETER
Parameter adalah sarana komunikasi antar fungsi. Pengertian antar fungsi adalah antara
fungsi dengan fungsi lain termasuk antara fungsi dengan fungsi utama. Dalam pemograman
yang melibatkan fungsi, diusahakan agar fumgsi bersifat independen artinya tidak
tergantung pada fungsi lain. Setiap fungsi hanya mengerjakan satu tugas tertentu.
Antar fungsi saling berkomunikasi menggunakan parameter. Terdapat dua macam bentuk
parameter dalam hubungannya dengan penggunan fungsi dalam program yaitu :
- Parameter Formal : parameter yang diberi nilai. Parameter formal merupakan parameter
yang terdapat dalam daftar parameter fungsi.
- Parameter Aktual : parameter yang memberi nilai. Parameter fungsi dan digunakan untuk
memberi nilai pada parameter formal.
Dalam contoh program perkalian di atas parameter formal terdapat pada pendefinisan fungsi
:
double hasil(int A, int B) // parameter formal
{
return (A * B);
}
Sedangkan parameter aktual terdapat pada pemanggilan fungsi :
void main()
{ ……………
…………..
z = hasil(x,y); // parameter aktual
…………..
}
43
b) Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari
datanya.
c) Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai
aslinya yang digunakan oleh bagian program yang memanggil fungsi.
d) Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli di bagian
program yang memanggilnya.
e) Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program
yang memanggil fungsi ke fungsi yang dipanggil.
f) Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah
variabel, elemen array atau konstanta saja.
Contoh :
44
2. Pemanggilan Secara Referensi (Call by Reference)
a) Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari suatu
variabel ke dalam fungsi.
b) Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai datanya.
c) Fungsi yang menerima kiriman alamat ini maka menggunakan alamat yang sama untuk
mendapatkan nilai datanya.
d) Perubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil
fungsi.
e) Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari fungsi
pemanggil ke fungsi yang dipanggil dan juga sebaliknya.
f) Pengiriman secara acuan tidak dapat bdilakukan untuk suatu ungkapan.
Contoh :
45
7.1.4 NILAI BAWAAN UNTUK ARGUMEN FUNGSI
Salah satu keistimewaan C++ yang sangat bermanfaat dalam pemrograman adalah adanya
kemampuan untuk menyetel nilai default Argumen fungsi. Argumen-argumen yang
mempunyai nilai bawaan nantinya dapat tidak disertakan di dalam pemanggilan fungsi dan
dengan sendirinya C++ akan menggunakan nilai bawaan dari argumen yang tidak
disertakan.
46
Contoh :
Penjelasan :
Jika pada program, argumen sayHello tidak diberikan, maka program akan menampilkan
sebanyak satu kali, namun jika argumen pada fungsi sayHello diberikan, misalkan
sayHello(4), maka program akan menampilkan 4 kali. Itulah yang disebut dengan nilai
default pada fungsi.
7.1.5 REKURSI
Merupakan suatu fungsi dapat memanggil fungsi yang merupakan dirinya sendiri. Penerapan
rekursi diantaranya untuk menghitung nilai : xn .
47
Contoh:
Tugas Praktikum:
1. Buatlah fungsi untuk menghitung luas segitiga?
2. Buatlah program rekursi untuk mencari Nilai n faktorial
3. Buatlah program dengan cara rekursi untuk menampilkan perkalian 3 buah bilangan
tersebut nilainya diinputkan
48
VIII. LARIK (ARRAY)
49
Empat pernyataan diatas memberikan nilai kepada array ujian. Tetapi sebelum kita
memberikan nilai kepada array, kita harus mendeklarasikannya terlebih dahulu, yaitu :
int ujian[4];
Perhatikan bahwa nilai 4 yang berada didalam tanda kurung menujukkan jumlah elemen
larik, bukan menunjukkan elemen larik yang ke-4. Jadi elemen larik ujian dimulai dari
angka 0 sampai 3. Pemrogram juga dapat menginisialisasi larik sekaligus mendeklarasi-
kannya, sebagai
contoh :
int ujian[4] = {90,95,78,85};
Elemen terakhir dari larik diisi dengan karakter ‘\0’. Karakter ini memberitahu kompiler
bahwa akhir dari elemen larik telah dicapai. Walaupun pemrogram tidak dapat melihat
karakter ini secara eksplisit, namun kompiler mengetahui dan membutuhkannya. Sekarang
kita akan membuat daftar beberapa nama pahlawan di Indonesia
char pahlawan[3][15] ;
char pahlawan[0][15] = “Soekarno”;
char pahlawan[1][15] = “Diponegoro”;
char pahlawan[2][15] = “Soedirman”;
Larik diatas terlihat berbeda denga contoh larik pertama kita. Perhatikan bahwa pada larik
pahlawan memilih dua buah tanda kurung [ ][ ]. Larik seperti itu disebut larik dua dimensi.
Tanda kurung pertama menyatakan total elemen yang dapat dimiliki oleh larik pahlawan dan
tanda kurung kedua menyatakan total elemen yang dapat dimiliki setiap elemen larik
pahlawan. Dalam contoh diatas, tanda kurung kedua menyatakan karakter yang menyatakan
nama pahlawan.
50
8.4 MELEWATKAN LARIK SEBAGAI ARGUMEN FUNGSI
Larik (array) dapat dikirim dan dikembalikan oleh fungsi. Pada saat larik dikirim ke dalam
fungsi, nilai aktualnya dapat dimanipulasi
Contoh :
Tugas Praktikum:
Buatlah program yang menghitung jumlah elemen dalam suatu array(larik) dengan
array(larik) 1 dimensi { 1,3,5,4,7,2,99,16,45,67,89,45}
51
Daftar Pustaka
1. Kadir, A., 2005. Algoritma Pemrograman Menggunakan C++. Penerbit Andi. Yogyakarta.
52