66
BAB I PENGENALAN BAHASA C++ TUJUAN Pengenalan Bahasa C++ Mampu menggunakan variable, pernyataan, operator dan tipe data Mampu membuat aplikasi sederhana menggunakan C++ DASAR TEORI Pengenalan Bahasa C++ Berbicara tentang C++ biasanya tidak lepas dari C, sebagai bahasa pendahulunya. Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada sekitar tahun 1972, dan sekitar satu dekade setelahnya diciptakanlah C+ +, oleh Bjarne Stroustrup dari Laboratorium Bell, AT&T, pada tahun 1983. C++ cukup kompatibel dengan bahasa pendahulunya C. Pada mulanya C++ disebut “ a better C “. Nama C++ sendiri diberikan oleh Rick Mascitti pada tahun 1983, yang berasal dari operator increment pada bahasa C. Keistimewaan yang sangat berari dari C++ ini adalah karena bahasa ini mendukung pemrograman yang berorientasi objek ( OOP / Object Oriented Programming). BAHAN DAN ALAT 1

Algoritma C+.doc

Embed Size (px)

DESCRIPTION

Introduction and explain algoritma program

Citation preview

Page 1: Algoritma C+.doc

BAB I

PENGENALAN BAHASA C++

TUJUAN

• Pengenalan Bahasa C++

• Mampu menggunakan variable, pernyataan, operator dan tipe data

• Mampu membuat aplikasi sederhana menggunakan C++

DASAR TEORI

Pengenalan Bahasa C++

Berbicara tentang C++ biasanya tidak lepas dari C, sebagai bahasa

pendahulunya. Pencipta C adalah Brian W. Kerninghan dan Dennis M. Ritchie pada

sekitar tahun 1972, dan sekitar satu dekade setelahnya diciptakanlah C++, oleh

Bjarne Stroustrup dari Laboratorium Bell, AT&T, pada tahun 1983. C++ cukup

kompatibel dengan bahasa pendahulunya C. Pada mulanya C++ disebut “ a better C

“. Nama C++ sendiri diberikan oleh Rick Mascitti pada tahun 1983, yang berasal dari

operator increment pada bahasa C.

Keistimewaan yang sangat berari dari C++ ini adalah karena bahasa ini

mendukung pemrograman yang berorientasi objek ( OOP / Object Oriented

Programming).

BAHAN DAN ALAT

Hardware : 1 Unit Komputer

Software : OS (Windows XP/7); Turbo C++;

TAHAPAN KERJA

1. Buka file baru pada aplikasi Turbo C++

2. Ketiklah kode berikut ini

Latihan1.1

1

Page 2: Algoritma C+.doc

#include <iostream.h>

void main()

{

cout<<" selamat datang di c++...";

}

3. Untuk proses kompilasi, silahkan klik tanda Run atau tekan ctrl+f9

Output :

P e n j e l a s an :

Include

Adalah salah satu pengarahprepocessor directive yang tersedia pada

C++. Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi

terjadi. Bentuk umumnya :

# include <nama_file>

t i d ak d ia k h i r i dengan tanda semicolon ( ; ), karena bentuk tersebut bukanlah

suatu bentuk pernyataan, tetapi merupakan prepocessor directive. Baris

tersebut menginstrusikan kepada kompiler yang menyisipkan file lain dalam hal

ini file yang berakhiran .h(file header) yaitu file yang berisi sebagai deklarasi

contohnya:

- # include <iostream.h> : diperlukan pada program yang

melibatkan objek cout

- # include <conio.h> : diperlukan bila melibatkan clrscr(),yaitu

perintah untuk membersihkan layar.

- # include <iomanip.h> : diperlukan bila melibatkan setw() yang

bermanfaat untuk mengatur lebar dari suatu

2

Page 3: Algoritma C+.doc

tampilan data.

- # include <math.h> : diperlukan pada program yang menggunkan

operasi sqrt () yang bermanfaat untuk operasi

matematika akar kuadrat.

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 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().

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.

Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan

sebagai berikut :

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.

Tidak boleh mengandung spasi.

Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah

(underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain :

$, ?, %, #, !, &, *, (, ), -, +, = dsb

Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.

Contoh penamaan variabel yang benar : NIM, a, x, nama_mhs, f3098, f4, nilai, budi,

dsb.

3

Page 4: Algoritma C+.doc

Contoh penamaan variable yang salah : pakai spasi, @nilai_mahasiswa, 10mahasiswa,

rata-rata, penting!, dsb.

variabel, dibagi menjadi dua jenis kelompok, yaitu :

a. Variabel Numerik

Variabel numerik ini dibagi menjadi menjadi 3 (tiga) macam :

Bilangan Bulat atau Integer

Bilangan Desimal Berpresisi Tunggal atau Floating Point.

Bilangan Desimal Berpresisi Ganda atau Double Precision.

b. Variabel Text

Character ( Karakter Tunggal )

String ( Untuk Rangkaian Karakter )

c. Deklarasi Variabel

Adalah proses memperkenalkan variabel kepada Borland C++ dan

pendeklarasian tersebut bersifat mutlak karena jika tidak diperkenalkan terlebih dulu

maka Borland C++ tidak menerima variabel tersebut.

Deklarasi Variabel ini meliputi tipe variabel, seperti : integer atau character

dan nama variabel itu sendiri. Setiap kali pendeklarasian variabel harus diakhiri oleh

tanda titik koma ( ; ).

Tabel 2.3. Deklarasi Variabel

TIPE VARIABEL SIMBOL DEKLARASI

Integer int

Floating Point float

Double Precision double

Karakter char

Unsigned Integer unsigned int

Unsigned Character unsigned char

4

Page 5: Algoritma C+.doc

Long Integer long int

Unsigned Long Integer unsigned long int

Bentuk penulisannya :

Contoh Deklarasi char nama_mahasiswa;

float rata_rata ;

int nilai;

TIPE DATA

Tipe data merupakan bagian program yang paling penting karena tipe data

mempengaruhi setiap instruksi yang akan dilaksanakan oleh computer. Misalnya saja

5 dibagi 2 bisa saja menghasilkan hasil yang berbeda tergantung tipe datanya. Jika 5

dan 2 bertipe integer maka akan menghasilkan nilai 2, namun jika keduanya bertipe

float maka akan menghasilkan nilai 2.5000000. Pemilihan tipe data yang tepat akan

membuat proses operasi data menjadi lebih efisien dan efektif.

Dalam bahasa C terdapat beberapa tipe data dasar, yaitu :

No Tipe Data Ukuran Range Format Keterangan

1 char 1 byte -128 s/d 127 %c Karakter/string

2 int 2 byte - 32768 s/d 32767 %i , %d Integer/bilangan bulat

3 float 4 byte - 3.4E-38 s/d 3.4E+38 %f Float/bilangan pecahan

4 double 8 byte - 1.7E-308 s/d1.7+308 %lf Pecahan presisi ganda

5 void 0 byte - - Tidak bertipe

6 String - - %s String

5

Tipe data nama variabel;

Page 6: Algoritma C+.doc

PERTANYAAN DAN TUGAS

1. Buatlah program untuk menginputkan biodata terdiri dari nama lengkap, nama

panggilan,npm, umur, tempat lahir,telepon, dan alamat. Output :

Assalamu’alaikum.Let me introduce my self. My name is (nama lengkap), but you can call me (namapanggilan). My NPM is (npm). I was born in (tempat lahir) and I am (umur) years old. I am very glad if you want to invite my house in (alamat). So, don’t forget to call me before with the number (telepon).Thank you.

2. Buatlah program konversi waktu dari detik ke jam, menit, detik!

3. Buatlah program konversi suhu dari Celcius (C) ke Fahrenheit (F), Reamur (R), dan

Kelvin (K). Suhu Celsius di masukkan melalui keyboard saat program dieksekusi !

F = C * 9/5 +32

K=C+273,15

R= 4/5*C

6

Page 7: Algoritma C+.doc

BAB II

PEMILIHAN DAN PERCABANGAN

TUJUAN

1. Memahami struktur runtutan

2. Memahami struktur pemilihan if-else dan switch-case

3. Mampu membuat program sederhana dengan menggunakan struktur percabangan

DASAR TEORI

Struktur kontrol yang ada pada bahasa C++ adalah struktur runtutan,

strukturpemilihan dan struktur pengulangan. Struktur kontrol pemilihan dan

pengulanganmemanfaatkan operator dalam menentukan suatu kondisi. Operator-

operator yang terkait dengan proses seleksi kondisi adalah Operator Logika dan

Relasional (hubungan).

Relational dan Logical Operators

Berikut daftar relational operator pada C++:

Operator Meaning

> Lebih besar

>= Lebih besar sama dengan

< Lebih kecil

<= Lebih kecil sama dengan

== Sama dengan

!= Tidak sama dengan

Relational operator pada C++ biasanya digunakan dalam statement If untuk

pengecekan kondisi. Dan berikut adalah logical operator padaC ++

Operator Meaning

& AND

| OR

^ XOR (Exclusive OR)

&& Short-circuit AND

| Short-circuit OR

7

Page 8: Algoritma C+.doc

! Not

BAHAN DAN ALAT

Hardware : 1 Unit Komputer

Software : OS (Windows XP/7); Turbo C++ 4.5

TAHAPAN KERJA

OPERASI PEMILIHAN / PENYELEKSIAN KONDISI

Pernyataan Percabangan digunakan untuk memecahkan persoalan untuk

mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk keperluan

pengambilan keputusan, Borland C++ menyediakan beberapa perintah antara lain. Secara

umum, cara compiler bekerja adalah membaca perintah mulai dari baris atas ke bawah

secara berurutan . Setiap baris dibaca mulai dari kiri ke kanan. Namun tidak menutup

kemungkinan dalam Pemrograman ada struktuk lain seperti struktur percabangan, strukur

pengulangan atau lainnya, dibahas pada sub bab selanjutnya.

a. Pernyataan IF

Pernyataan if mempunyai pengertian, “ Jika kondisi bernilai benar, maka perintah

akan dikerjakan dan jika tidak memenuhi syarat maka akan diabaikan”. Dari

pengertian tersebut dapat dilihat dari diagram alir berikut:

Bentuk umum dari pernyataan if

8

kondisi

perintah

Page 9: Algoritma C+.doc

if (kondisi){

pernyataan;}

Jika kondisi yang diseleksi benar maka pernyataan 1 sampai pernyataan n akan

dikerjakan, sedangkan jika kondisi tersebut tidak terpenuhi maka program akan keluar

dari struktur if. Jika lebih dari satu pernyataan , maka harus menggunakan tanda ‘{‘

dan ‘}’.

b. Pernyataan IF – ELSE

Pernyataan if mempunyai pengertian, “ Jika kondisi bernilai benar, maka

perintah-1 akan dikerjakan dan jika tidak memenuhi syarat maka akan mengerjakan

perintah-2”. Dari pengertian tersebut dapat dilihat dari diagram alir berikut

salah

benar

Gambar Diagram Alir if-else

Bentuk umum dari pernyataan if - else

if (kondisi) perintah-1;else perintah-2;

9

kondisi

Perintah-1 Perintah-2

Page 10: Algoritma C+.doc

Perintah-1 dan perintah-2 dapat berupa sebuah pernyataan tunggal, pernyataan

majemuk atau pernyataan kosong. Jika pemakaian if-else diikuti dengan pernyataan

majemuk, bentuk penulisannya sebagai berikut :

if (kondisi) {

perintah-1; ... }

else {

perintah-2; ... }

c. Pernyataan NESTED IF

Nested if merupakan pernyataan if berada didalam pernyataan if yang lainnya.

Bentuk penulisan pernyataan Nested if adalah :

if(syarat)if(syarat)

else

elseif(syarat)

else

d. Pernyataan IF – ELSE Majemuk

Bentuk dari if-else bertingkat/majemuk sebenarnya serupa dengan nested if,

keuntungan penggunanan if-else bertingkat dibanding dengan nested if adalah

penggunaan bentuk penulisan yang lebih sederhana.

10

Page 11: Algoritma C+.doc

Bentuk Penulisannya

if (syarat){

… perintah;}else if (syarat){

… perintah;}else {

… perintah;}

#include <iostream.h>void main(){int ipk;cout <<"masukan nilai IPK anda : ";cin>>ipk; if (ipk > 3.5)

cout<< "Cum Laude" ; else if (ipk > 3)

cout<<"Sangat Memuaskan" ; else if (ipk >= 2.75)

cout<< "Memuaskan" ; else if (ipk >= 2)

cout<< "Cukup" ; else

cout<< "kurang" ;

}

2.1 Pernyataan switch – case

Bentuk dari switch - case merupakan pernyataan yang dirancangan khusus

untuk menangani pengambilan keputusan yang melibatkan sejumlah atau banyak

alternatif penyelesaian. Pernyataan switch - case ini memiliki kegunaan sama seperti

if – else bertingkat, tetapi penggunaannya untuk memeriksa data yang bertipe

karakter atau integer. Bentuk penulisan perintah ini sebagai berikut :

11

Page 12: Algoritma C+.doc

switch (ekspresi integer atau karakter ){ case konstanta-1 : … perintah; … perintah; break; case konstanta-2 : … perintah; … perintah; break; …… …… default : … perintah; … perintah;}

Contoh Listing Program :

12

#include<iostream.h>void main() { int Hari; cout<<"Masukan Pilihan Hari (1-7) :"; cin>>Hari;

switch (Hari){ case 1:

cout<<"Hari Minggu";break;

case 2:cout<<"Hari Senin";break;

case 3:cout<<"Hari Selasa";break;

case 4:cout<<"Hari Rabu";break;

case 5:cout<<"Hari Kamis";break;

case 6:cout<<"Hari Jumat";break;

case 7:cout<<"Hari Sabtu";break;

default:cout<<"Anda salah memasukan input (1-7)";break;

}

Page 13: Algoritma C+.doc

PERTANYAAN DAN TUGAS

Buatlah Program untuk mengetahui karakter yang diinputkan, apakah huruf Besar, huruf

kecil, spasi, digit, atau yang lainnya !

Input :

Masukkan Karakter : A

Output:

Karakter yang diinputkan adalah huruf besar

13

Page 14: Algoritma C+.doc

BAB III

STRUKTUR PENGULANGAN

TUJUAN

1. Memahami struktur pengulangan for, while, do-while,foreach

2. Memahami struktur lompat break, continue dan goto

3. Mampu membuat program sederhana dengan menggunakan struktur pengulangan

DASAR TEORI

Sering kali dalam membuat program, anda menuliskan beberapa perintah baris yang

sama. Penulisan perintah tersebut dapat disingkat dengan menggunakan struktur

pengulangan, seperti for, while, dan do-while. Beberapa hal penting pada struktur

pengulangan adalah adanya inisialisasi, kondisi, dan iterasi. Ada empat struktur

pengulangan yang dapat digunakan pada bahasa C++, yaitu:

a. Struktur for

b. Struktur while

c. Struktur do…while

d. Struktur foreach

Berkaitan dengan proses pengulangan, pemrograman C++ juga menyediakan

pernyataan

break (untuk mengakhiri pengulangan), goto, dan continue(untuk melakukan

pengulangan selanjutnya).

BAHAN DAN ALAT

Hardware : 1 Unit Komputer

Software : OS (Windows XP/7); Turbo C++ 4.5

TAHAPAN KERJA

Struktur for

14

Page 15: Algoritma C+.doc

Struktur pengulangan for biasa digunakan untuk mengulang suatu proses yang telah

diketahui jumlah pengulangannya.

Bentuk Umum :

for (inisialisasi;kondisi;iterasi)

{

Pernyataan ;

}

Keterangan:

- Inisialisasi : pernyataan untuk menyatakan keadaan awal dari variable kontrol.

- Kondisi : ekspresi relasi yang menyatakan kondisi untuk keluar dari pengulangan.

- Iterasi : pengatur perubahan nilai variabel kontrol.

Latihan3.1 :

#include <iostream.h>

void main()

{

int i;

for (i=0; i<10; i++)

{

cout<<i<<endl;

}

}

Struktur While

Pengulangan ini banyak digunakan bila jumlah pengulangannya belum

diketahui. Proses pengulangan akan terus berlanjut selama kondisinya bernilai benar

(true) dan akan berhenti bila kondisinya bernilai salah.

Bentuk Umum :

Inisialisasi; <optional>

while (kondisi){

pernyataan;

iterasi; <optional)

15

Page 16: Algoritma C+.doc

}

Latihan3.2 :

Struktur do..while

Pengulangan ini digunakan bila jumlah pengulangan do..while sama saja

dengan struktur while, hanya saja pasa proses seleksi kondisi letaknya berada di

bawah batas pengulangan. Jadi dengan menggunakan struktur do..while sekurang

kurangnya akan terjadi satu kali pengulangan.

Bentuk Umum :

Inisialisasi <optional>

do {

Pernyataan ;

iterasi ; <optional>

} while (kondisi);

Latihan3.3 :

16

Page 17: Algoritma C+.doc

Pernyataan Break

Break statement digunakan untuk keluar dari kalang bila kondisi tertentu yang

tambahkan dipenuhi. Ketika break statement dieksekusi maka kalang / loop akan

secara otomatis berhenti.

Pernyataan Continue

Pernyataan continue digunakan untuk mengarahkan eksekusi ke proses berikutnya

pada loop yang sama. Pada do-while dan while, pernyataan continue

menyebabkan eksekusi menuju ke pengulangan kembali.

do {

continue;

} while(kondisi)

while(kondisi){

continue;

}

17

Page 18: Algoritma C+.doc

Pernyataan Goto

Pernyataan goto ini merupakan perintah yang digunakan untuk mengarahkan eksek ke

pernyataan yang di awali dengan suatu label. Label merupakan suatu pengenal yang

diikuti dengan tanda titik koma(;).

18

Page 19: Algoritma C+.doc

BAB IV

POINTER

TUJUAN

1. Mengetahui sekilas mengenai cara Pointer dalam pemrograman bahasa C++

2. Mengetahui penerapan pointer dalam pemrograman bahasa C++

3. Mampu membuat program sederhana dengan menggunakan Pointer

BAHAN DAN ALAT

Hardware : 1 Unit Komputer

Software : OS (Windows XP/7); Turbo C++

DASAR TEORI

Pointer adalah variabel yang berisi alamat memori variabel lain dan secara

tidak langsung menunjuk ke variabel tersebut. Sebagai contoh Andi berteman dengan

Budi, lalu anda ingin mengetahui jumlah keluarga Budi untuk keperluan sensus

penduduk. Anda tidak mengetahui alamat Budi, tetapi anda mengenal Andi.

Untuk mencari jumlah keluarga Budi, maka pertama-tama anda pergi ke rumah Andi,

misalnya di rumah No. 8321. Sesampai di Andi, Andi membaritahukan kepada anda

bahwa alamat Budi ada pada alamat 9821. Kemudian anda pergi ke rumah Budi lalu

mencatat jumlah keluarga yang dimiliki Budi yaitu lima orang.

Dalam contoh di atas, Andi bertindak sebagai pointer. Andi tidak

memberitahukan jumlah keluarga Budi, tetapi Andi memberitahu alamat Budi, di

alamat 9821 (alamat Budi) itulah Anda mengetahui jumlah keluarga Budi.

Jika alamat dari ditunjukkan dengan simbol & dan isi dari ditunjukkan dengan

symbol *, maka hubungan analogi di atas adalah:

Nama Alamat IsiAndi 8321 9821 = &Budi

19

Page 20: Algoritma C+.doc

Budi 9821 5 = *(&Budi)

Dalam bentuk pointer, ditulis :

Andi = &Budi; // baris 1Budi = *(&Budi); // baris 2

Subtitusi pernyataan di baris 2

Andi = *Andi;

Contoh program yang menggambarkan hal tersebut sebagai berikut:

#include <iostream.h>

void main()

{

int *Andi; // Andi sebagai pointer

int Budi = 5; // Budi bukan pointer, perhatikan perbedaan pada *

Andi = &Budi; // Isi dari Andi yaitu alamat Budi

cout<<”Isi alamat memori Andi : “<<Andi<<endl;

cout<<”Isi alamat memori Budi : “<<Budi<<endl;

cout<<”Isi alamat memori Budi : “<<*Andi<<endl;

cout<<”Alamat memori Andi : “<<&Andi<<endl;

cout<<”Alamat memori Budi :”<<&Budi<<endl;

}

Hasil program :

Isi alamat memori Andi : 0x6da72448

Isi alamat memori Budi : 5

Isi alamat memori Budi : 5

Alamat memori Andi : 0x6da7244a

Alamat memori Budi : 0x6da72448

Penjelasan

:

Isi alamat memori Andi adalah alamat memori Budi, yaitu 0x6da72448

(alamat ini berbeda-beda tergantung dari komputernya dan ditulis dalam bentuk

hexadesimal).

Sedangkan isi alamat memori Budi adalah 5. Cara mengakses isi dari alamat Budi ada

dua cara, yaitu mengakses variabel Budi dan mengakses isi dari pointer Andi

20

Page 21: Algoritma C+.doc

(*Andi). *Andi dapat juga disebut “isi dari alamat memori yang ditunjuk oleh Andi”.

Karena alamat memori yang ditunjuk oleh Andi adalah alamat memori Budi, maka

dapat dikatakan “isi dari alamat memori Budi”.

a. Pointer - Array

Kita akan melihat bagaimana data disimpan di memori dalam sebuah array.

Contoh :

#include <iostream.h>

void main()

{

int n;

int array[4] = {10,20,30,40};

for(n=0;n<4;n++)

{

cout<<”Array[“<<n<<”] = “<<array[n]<<endl; cout<<”\

Menggunakan pointer=“<<*&array[n]<<endl; cout<<”\

tDisimpan dalam “<<&array[n]<<endl;

}

}

Keluarannya :

Array[0] = 10

Menggunakan pointer = 10

Disimpan dalam 0xdb72408

Array[1] = 20

Menggunakan pointer = 20

Disimpan dalam 0xdb7240a

Array[2] = 30

Menggunakan pointer = 30

Disimpan dalam 0xdb7240c

Array[3] = 40

Menggunakan pointer = 40

Disimpan dalam 0xdb7240e

Penjelasan :

21

Page 22: Algoritma C+.doc

Seperti yang anda lihat, setiap array disimpan dalam 2 byte memori karena kita

menggunakan tipe data integer. Perhatikan pula penggunaan pointer dalam

pengaksesan nilai setiap elemen array dan pengaksesan alamat setiap array.

Alamat setiap elemen array dapat diperoleh dengan cara

&array[n] atau array+n

Isi dari setiap elemen array dapat diperoleh dengan cara array[n] atau *(array+n)

Di bawah ini adalah contoh pengaksesan memori dan isi memori dengan menggunakancara kedua.

Contoh :

#include <iostream.h>

void main()

{

int n;

int array[4] = {10,20,30,40};

for(n=0;n<4;n++)

{

cout<<”Array[“<<n<<”] = “<<array[n]<<endl;

cout<<”\tMenggunakan pointer =

“<<*(array+n)<<endl; cout<<”\tDisimpan

dalam “<<array+n<<endl;

}

}

Keluarannya :

Array[0] = 10

Menggunakan pointer = 10

Disimpan dalam 0xdb72408

Array[1] = 20

Menggunakan pointer = 20

22

Page 23: Algoritma C+.doc

Disimpan dalam 0xdb7240a

Array[2] = 30

Menggunakan pointer = 30

Disimpan dalam 0xdb7240c

Array[3] = 40

Menggunakan pointer = 40

Disimpan dalam 0xdb7240e

Mengapa hasil antara dua contoh di atas sama namun sintaksnya berbeda ?

Karena array itu sebenarnya telah menunjuk ke alamat memori setiap elemennya,

sehingga untuk mengetahui alamat memori setiap elemen array cukup dengan array

+ n dengan n bilangan bulat ( integer ).

b. Pointer - String

String merupakan bentuk khusus dari array. Oleh karena itu operasi pointer-

array tidak jauh berbeda dengan operasi pointer-string

Contoh :

#include <iostream.h>

void main()

{

char nama[5] = “Andi”;

cout<<”Nama awal : “<<nama<<endl;

char *ptr;

ptr = nama;

*(ptr+3) = ‘y’;

cout<<”Nama menjadi : “<<nama<<endl;

}

Output :

Nama awal : Andi

Nama menjadi : Andy

Jadi :

String adalah array (susunan) dari karakter-karakter. String dapat diakses dan

dimanipulasi lewat pointer. Alamat awal dari string dapat diperoleh dari namanya.

23

Page 24: Algoritma C+.doc

c. Pointer Sebagai Argumen StringJika pointer dikirim sebagai argument, maka nilai aktualnya dapat dimodifikasi.

Contoh :

#include <iostream.h>

void ubah(char *);

void main()

{

char *ptr,nama[5] = “Andi”;

ptr = nama; // ptr sebagai pointer ke

variable nama cout<<”Nama awal :

“<<nama<<endl;

ubah(ptr);

cout<<”Nama menjadi : “<<nama<<endl;

}

void ubah(char *x)

{

*(x+3) = ‘y’;

}

Output :

Nama awal : Andi

Nama menjadi : Andy

TUGAS /LATIHAN PRAKTIKUM POINTER :

1. Buatlah Program untuk menghitung Volume Prisma menggunakan Pointer dan

tampilkan alamat memori dari tiap-tiap nilai !

2. Butlah program untuk merubah nama depan anda menjadi nama belakang dengan

menggunakan pointer

24

Page 25: Algoritma C+.doc

BAB V

ARRAY

TUJUAN

4. Mengetahui sekilas mengenai cara penulisan array dalam pemrograman bahasa C++

5. Mengetahui penerapan array dalam pemrograman bahasa C++

6. Mampu membuat program sederhana dengan menggunakan array

DASAR TEORI

Selama ini kita menggunakan satu variabel untuk menyimpan 1 buah nilai dengan

tipe data tertentu.

Misalnya :

int a1, a2, a3, a4, a5;

Deklarasi variabel diatas digunakan untuk menyimpan 5 data integer dimana

masing- masing variabel diberi nama a1, a2, a3, a4, dan a5. Bayangakan jika kita

memiliki 100, 1 0 0 0 , 1 0 0 0 0 data integer bahkan mungkin data yang ingin kita

proses tidak kita ketahui atau bersifat dinamis? Kita tidak mungkin menggunakan

variabel seperti diatas. Di dalam bahasa C dan pemrograman yang lain, terdapat

suatu fasilitas untuk menyimpan data-data yang bertipe data sama dengan suatu nama

variabel tertentu.

Definisi LARIK/Array

Tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai

tipe yang sama. Larik sering disebut juga variabel berindeks yaitu variabel yang dapat

diisi lebih dari satu data dengan tipe data yang sama . Nilai suatu data dalam larik

ditentukan oleh nama dan indeks. Larik banyak digunakan pada operasi yang

melibatkan indeks seperti pada statistik dan matriks.

Tipe data larik dapat berupa larik satu demensi, dua demensi, tiga demensi atau

25

Page 26: Algoritma C+.doc

banyak dimensi.

BAHAN DAN ALAT

Hardware : 1 Unit Komputer

Software : OS (Windows XP/7); Turbo C++

TAHAPAN KERJA

a. Array Dimensi Satu

Bentuk Umum pendeklarasian array :

Tipe-Data Nama_Variabel[Ukuran]

Keterangan :

Type Data : Untuk menyatakan type data yang digunakan.

Ukuran : Untuk menyatakan jumlah maksimum elemen array.

Contoh Pendeklarasian Array

float Nilai_mhs [6];

Jumlah Elemen Array

Nama Array

Tipe data elemen array

Suatu array dapat digambarkan sebagai kotak panjang yang berisi kotak-kotak

kecil didalam kotak panjang tersebut.

26

Page 27: Algoritma C+.doc

Elemen Array

0 1 2 3 4 5 Subscript / Index

Subscript atau Index array pada C++, selalu dimulai dari Nol ( 0 )

Contoh:

char huruf[9];

int umur[10];

int kondisi[2] = {0,1}

int arr_dinamis[] = {1,2,3}

char huruf[9] : berarti akan memesan tempat di memori komputer

sebanyak 9 tempat dengan indeks dari 0-8, dimana semua

elemennya bertipe data karakter semuanya. Kalau satu

karakter berukuran 1 byte, berarti membutuhkan memori

sebesar 9 byte.

int umur[10] : berarti akan memesan tempat di memori komputer sebanyak

10 tempat dengan indeks dari 0-9, dimana semua

elemennya bertipe data integer semuanya. Kalau satu

integer berukuran 4 bytes, berarti membutuhkan memori

sebesar 4 x 10 = 20 bytes.

int kondisi[2]={0,1}: berarti akan memesan tempat di memori komputer

sebanyak 2 tempat dengan indeks 0-1, dimana semua

elemennya bertipe data integer semuanya. Dan pada

contoh di atas isi elemen-elemennya yang sebanyak 2

buah diisi sekaligus (diinisialisasi) yaitu pada elemen

kondisi[0] bernilai 0, dan elemen kondisi[1] bernilai 1.

27

elemen

1elemen

2elemen

3elemen

4elemen

5elemen

6

Page 28: Algoritma C+.doc

int arr_dinamis[ ]: berarti mendeklarasikan array dengan ukuran maksimum

array tidak diketahui, namun ukuran tersebut diketahui

berdasarkan inisialisasi yaitu sebanyak 3 elemen, yang isinya

1,2, dan 3. kita tidak dapat mendeklarasikan array dinamis

tanpa inisialisasi.

Tanda [ ] disebut juga “elemen yang ke- „. Misalnya kondisi[0] berarti elemen

yang ke nol.

Array yang sudah dipesan, misalnya 10 tempat tidak harus diisi semuanya, bisa

saja hanya diisi 5 elemen saja, baik secara berurutan maupun tidak. Namun pada

kondisi yang tidak sepenuhnya terisi tersebut, tempat pemesanan di memori tetap

sebanyak 10 tempat, jadi tempat yang tidak terisi tetap akan terpesan dan dibiarkan

kosong.

1. Memberi nilai ke elemen Array

a. memberikan nilai langsung (assignment)

nilai[2] = 5 (nilai[2]=5;)

artinya kita memberikan nilai 5 ke elemen larik yang berindeks 2;

b. memasukkan nilai melalui papan ketik (keyboard)

cin>> nilai[2];

2. Mengakses (membaca) elemen Array

nama_array[indeks];

contoh:

nilai[2]; atau cout<<nilai[2];

3. Menghitung Jumlah Elemen Array

Karena fungsi sizeof() mengembalikan jumlah byte yang sesuai

dengan argumennya, maka operator tersebut dapat digunakan untuk menemukan

28

Page 29: Algoritma C+.doc

jumlah elemen array, misalnya:

int array[ ] = {26,7,82,166};

cout<<sizeof(array)/sizeof(int);

akan mengembalikan nilai 4, yaitu sama dengan jumlah elemen yang dimiliki array.

Contoh 1 :

Buatlah Program Menggunakan Array 1 dimensi dengan algoritma sebagai berikut:

1. Siapkan 5 tempat untuk menyimpan data array

2. for untuk i = 1 to 5, masukkan data melalui keyboard

3. Gunakan fungsi clear screen pada setiap data yang selesai diinputkan

4. Tampilkan seluruh data yang tadi di masukkan

Programnya :

/* PROGRAM MEMASUKKAN 5 DATA */

#include<iostream.h>

#include<conio.h>

void main()

{

int data[5];

int i;

cout<<"masukkan data : "<<endl; /*memasukkan data*/

for (i=1;i<=5;i=i+1)

{

clrscr();

cout<<"data ke "<<i<<" : ";

cin>> data[i];

}

clrscr();

cout<<"KESELURUHAN DATA"<<endl; /*menampilkan data */

for (i=1; i<=5;i++)

{

29

Page 30: Algoritma C+.doc

cout<<"data ke "<<i<<": "<<data[i]<<endl;

}

getch();

}

Contoh 2 :

Program menghitung 3 luas segitiga menggunakan array

#include<iostream.h>

void main()

{

float a[3],t[3],L[3];

int i;

for (i=0; i<=2; i++)

{

cout<<"perhitungan segitiga ke - "<<i+1<<endl;

cout<<"masukan alas : ";

cin>>a[i];

cout<<"masukan tinggi : ";

cin>>t[i];

L[i]=0.5*a[i]*t[i];

cout<<"luasnya : ";

cout<<L[i];

cout<<endl;

}

}

TUGAS/LATIHAN PRAKTIKUM ARRAY BERDIMENSI SATU :

1. Buatlah program menghitung volume tabung menggunakan Array (banyak

tabung diinputkan) !

1. Buatlah algoritma dan program untuk menginputkan data nilai mahasiswa

(banyak data mahasiswa diinputkan)

30

Page 31: Algoritma C+.doc

2. Urutkan nilai data mahasiswa tersebut dari yang terbesar – terkecil.

3. Tampilkan nilai maksimal, minimal & rata-ratanya.

4. Buat soal program diatas yang dihimpun dalam bentuk fungsi dan switch-case.

b. Array Dimensi Dua

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.

Bentuk Umum pendeklarasian array dimensi 2 :

Tipe-Data Nama_Variabel[index-1][index-2]

Keterangan :

Type Data : Untuk menyatakan type data yang digunakan.

Index-1 : Untuk menyatakan jumlah baris

Index-2 : Untuk menyatakan jumlah kolom

1. Pendeklarasian Array

Sebagai contoh pendeklarasian yang akan kita gunakan adalah pengolahan data

penjualan, berikut dapat anda lihat pada tabel berikut :

Data penjualan pertahun

2001 2002 2003

150 159 230

100 125 150

210 125 156

31

Page 32: Algoritma C+.doc

Jika anda lihat dari tabel diatas maka dapat dituliskan kedalam array dimensi dua

berikut :

Int data_jual [3] [3];

Jumlah Kolom

Jumlah Baris

Nama Array

Tipe data elemen array

Suatu array, dapat diakses dengan menggunakan subscript atau index nya:

Bentuk umum pengaksesan dengan bentuk :

Contoh 1:

/* ---------------- */

/* Array Dimensi 2 */

/* ---------------- */

#include<conio.h>

#include<iostream.h>

#include<iomanip.h>

main()

{

int i, j;

int data_jual[4][4];

clrscr();

for(i=1;i<=3;i++)

{

for(j=1;j<=3;j++)

{

32

Nama_Array[index-1][index-2]

Page 33: Algoritma C+.doc

cout<<"Data Ke - "<<i<<" "<<j<<endl;

cout<<"Jumlah Penjulan : ";

cin>>data_jual[i][j];

}

}

cout<<"Data Penjualan Pertahun"<<endl;

cout<<"-----------------------"<<endl;

cout<<" 2001 2002 2003"<<endl;

cout<<"-----------------------"<<endl;

for(i=1;i<=3;i++)

{

for(j=1;j<=3;j++)

{

cout <<" ";

cout<<data_jual[i][j];

cout<<" ";

}

cout<<endl;

}

cout<<"-----------------------"<<endl;

getch();

}

b. Konsep umum array 2 Dimensi berlaku juga pada Matriks

1. kumpulan elemen bertipe sama

2. setiap elemen data dapat diakses secara acak, jika indeksnya (baris dan

kolom) sudah diketahui

3. merupakan struktur data statis, artinya jumlah elemennya sudah

ditentukan terlebih dahulu di dalam kamus dan tidak bisa diubah selama

pelaksanaan program.

c. Deklarasi Matriks

33

Page 34: Algoritma C+.doc

tipe_data nama_matriks[baris] [kolom];

misal int B[3][4]jika didekskripsikan dalam bentuk tabel:

0 1 2 30 B[0][0] B[0][1] B[0][2] B[0][3]1 B[1][0] B[1][1] B[1][2] B[1][3]2 B[2][0] B[2][1] B[2][2] B[2][3]

tipe_data menyatakan jenis elemen matriks (int, float, char, unsigned, dan

lain-lain),tidak boleh jenis void.

nama_matriks adalah nama matriks, harus memenuhi ketentuan pengenal.

baris menyatakan jumlah maksimal elemen baris matriks,

kolom menyatakan jumlah maksimal elemen kolom matriks,

contoh: Suatu matriks

8 5 9 8

x = 8 2 1 0

selanjutnya dapat dideklarasikan sebagai berikut:

int x[2][4];

atau dideklarasikan dengan memberikan nilai elemennya sebagai berikut:

int x[2][4]= {{8, 5, 9, 8},{8, 2, 1, 0}}

dimana :

X[0][0]=8 x[0][1]=5 x[0][2]=9 x[0][3]=8X[1][0]=8 x[1][1]=2 x[1][2]=1 x[1][3]=0

d. Memberi nilai matriks

1. Memberikan nilai langsung (assignment)

34

Page 35: Algoritma C+.doc

B[2][1]=5; , artinya kita memberikan nilai 5 ke matriks pada baris 2 dan

kolom 1;

2. Memasukkan nilai melalui papan ketik (keyboard)

cin>> B[2][1];

e. Mengakses nilai matriks

nama_larik[baris][kolom];

B[2][1]; atau cout<<B[2][1];

Contoh 2 :

/* ---------------- */

/* Array Dimensi 2 */

/* ---------------- */

#include<conio.h>

#include<iostream.h>

void main()

{

int i, j;

int huruf[8][8] =

{

{1,1,1,1,1,1,1,1},

{1,1,1,1,1,1,1,1},

{1,1,0,0,0,0,1,1},

{1,1,0,0,0,0,1,1},

{1,1,0,0,0,0,1,1},

{1,1,0,0,0,0,1,1},

{1,1,1,1,1,1,1,1},

{1,1,1,1,1,1,1,1},

};

clrscr();

35

Page 36: Algoritma C+.doc

for(i=0;i<8;i++)

{

for(j=0;j<8;j++)

if (huruf[i][j] == 1)

cout<<'\xDb';

else

cout<<'\x20';

cout<<endl;

}

getch();

}

Contoh 3:

#include<iostream.h>

void main ()

{

int tabel [2][3];

int i,j;

cout<<"input matriks 2 x 3"<<endl;

cout<<" "<<endl;

cout<<"===================="<<endl;

for (i=0;i<=1;i++)

{

for (j=0;j<=2;j++)

{

cin>>tabel [i][j];

}

cout<<" "<<endl;

}

for (i=0;i<=1;i++)

{

for (j=0;j<=2;j++)

{

cout<<tabel[i][j]<<" ";

}

36

Page 37: Algoritma C+.doc

cout<<" "<<endl;

}

}

TUGAS/LATIHAN PRAKTIKUM ARRAY BERDIMENSI 2 :

1. Buatlah algoritma & program yang dapat menampilkan sebuah matriks statis (nilai

diinisialisasikan) dengan ordo 2 X 2 beserta invers matriksnya.

2. Buatlah program untuk dua matriks dinamis (nilai diinputkan) berordo 3x3 dan

flowchartnya !

3. Lanjutkan program pada soal no.2 gunakan operasi penjumlahan, pengurangan, perkalian

antara dua buah matriks tersebut beserta transpose matriksnya menggunakan fungsi dan

switch-case !

4. Buatlah program yang dapat memunculkan :

i) Deretan Bilangan Prima

ii) Deretan Bilangan Fibbonaci

Dengan menggunakan konsep Array!

BAB VI

STRUKTUR

37

Page 38: Algoritma C+.doc

TUJUAN

1. Mengetahui sekilas mengenai cara penulisan struktur dalam pemrograman bahasa C+

+

2. Mengetahui penerapan struktur dalam pemrograman C++

3. Mampu membuat program sederhana dengan menggunakan stuktur

DASAR TEORI

Structure digunakan untuk mengelompokan sejumlah data yang mempunyai tipe

data yang berbeda. Variabel-variabel yang membentuk sebuah struktur dinamakan

elemen struktur. Struktur sama seperti Record di dalam Bahasa Pemrograman Pascal

Array adalah kumpulan elemen yang bertipe sama. Tetapi struktur memudahkan

Anda untuk mengumpulkan variabel dengan tipe yang berbeda di dalam satu

nama. Fasilitas ini memungkinkan kita untuk melayani sekumpulan data yang rumit

sebagai satuan tunggal.

Suatu struktur dinyatakan dengan kata kunci struct, daftar pernyataan variabel

yang disebut anggota, yang terlampir dalam tanda kurung { }. Tiap pernyataan

anggota dan struktur harus berakhir dengan semicolon ( ; )

a. Bentuk deklarasi struktur :

struct nama_struct{ elemen_struktur;

..... .....

}nama_struct variabel_struct;

struct data {

char nim[5]; char nama[15]; float nilai;

} data mahasiswa;

b. Mengakses anggota Struktur

38

Page 39: Algoritma C+.doc

Anggota struktur dapat diakses dengan menggunakan bentuk :

variabel_struktur.elemen;

cout<<mahasiswa.nim;cin>>mahasiswa.nama;cout<<mahasiswa.nilai<<endl;

BAHAN DAN ALAT

Hardware : 1 Unit Komputer

Software : OS (Windows XP/7); Turbo C++ 4.5

TAHAPAN KERJA

Contoh Latihan Praktikum Struktur

/* ---------------------------- *//* Program Penggunaan structure *//* Nama File : struct1.cpp */ /* ---------------------------- */

#include<stdio.h>#include<conio.h>#include<iostream.h>

main(){ struct {

char nim[5]; char nama[15]; float nilai;

} mahasiswa;

clrscr(); cout<<"masukan NIM = ";

cin>>mahasiswa.nim; cout<<"masukan Nama = ";

cin>>mahasiswa.nama; cout<<"masukan Nilai Akhir = ";

cin>>mahasiswa.nilai;

clrscr(); cout<<"NIM = "<<mahasiswa.nim<<endl; cout<<"Nama = "<<mahasiswa.nama<<endl; cout<<"Nilai Akhir = "<<mahasiswa.nilai<<endl;

getch();}

Nested Structure

39

Page 40: Algoritma C+.doc

Nested Structure merupakan suatu Structure dapat digunakan didalam structure yang lainnya. Hal seperti ini anda dapat lihat pada program berikut ini :

Contoh :#include<conio.h>#include<iostream.h>void main(){ struct dtmhs {

char nim[5]; char nama[15];

};

struct dtnil {

float nil1; float nil2;

}; struct data {

struct dtmhs mhs;struct dtnil nil;

} data nilai; clrscr(); //-> masukan data 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<<endl; clrscr(); //-> menampilkan hasil masukan 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();}

Struktur dengan Array

Array dari struktur dapat dideklarasikan seperti halnya pendeklarasian array biasa.

Bentuk : nama_array[index]. anggota_struktur;

Contoh :#include <iostream.h>#include <conio.h>void main (){

struct buku{

40

Page 41: Algoritma C+.doc

int kode ;char nama[69];int terbit ;char pengarang[69];char judul[69];long harga;};

buku tabel [1];int a, b, c;long sum=0;cout<<"masukan jumlah pesanan buku : ";cin>>a;cout<<endl<<endl;clrscr();for (b=1;b<=a;b++)

{cout <<"======== Pesanan ke-" << b <<" ============"<<

endl;cout << "Kode :";cin >> tabel[b].kode ;cout << "Judul :";cin >> tabel[b].judul ;cout << "Nama :";cin >> tabel[b].nama ;cout << "Tahun Terbit :";cin >> tabel[b].terbit ;cout << "Pengarang :";cin >> tabel[b].pengarang ;cout << "Harga :";cin >> tabel[b].harga ;sum=sum+tabel[b].harga ;cout << endl ;clrscr();

}for (b=1;b<=a;b++)

{cout << "Pemesan : ";cout << tabel[b].nama ;cout << endl ;cout << "Judul Buku : ";cout << tabel[b].judul ;cout << endl ;cout << "Tahun terbit : ";cout << tabel[b].terbit ;cout << endl ;cout << "Nama Pengarang : ";cout << tabel[b].pengarang ;cout << endl ;cout << "Harga Rp. : ";cout << tabel[b].harga ;cout << endl <<"================================="<< endl

;}cout<<" TOTAL HARGA Rp. "<<sum;

}

TUGAS /LATIHAN PRAKTIKUM STRUCT :

1. Buat struct untuk pemesanan menu makanan ( Gunakan array of struct ), berikut harga, total, kembalian, bayar dsb !

41

Page 42: Algoritma C+.doc

2. Cari 2 contoh kasus lain disekitar anda yang dapat menggunakan struct, selain KTP, KTM, SIM, buku.

BAB VII

FUNGSI

42

Page 43: Algoritma C+.doc

DEFINISI 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.

Pada intinya fungsi berguna untuk :

- Mengurangi pengulangan penulisan program yang berulangan atau sama.

- Program menjadi terstruktur, sehingga mudah dipahami dan dikembangkan.

Fungsi-fungsi yang sudah kita kenal sebelumnya adalah fungsi main(), yang bersifat

mutlak, karena pada fungsi ini program akan dimulai sebagai output utama.

B e n t u k u m u m n ya :

Deklarasi parameter{

Isi fungsi

43

Page 44: Algoritma C+.doc

}

3.2 Struktur Fungsi

Sebuah fungsi sederhana mempunyai bentuk penulisan sebagai 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 ‘{ }’.

Pada pemanggilan sebuah fungsi, cukup dengan menuliskan nama fungsinya.

Contoh#include <iostream.h>/* pembuatan fungsi garis() */

garis(){ cout<<"\n ---------------------- \n";}/* program utama */void main(){ garis(); cout<<"UNIVERSITAS PAKUAN BOGOR"<<endl; garis();}

3.3 Prototipe Fungsi

Sebuah fungsi tidak dapat dipanggil kecuali sudah dideklaraikan, deklarasi fungsi dikenal dengan sebutan prototipe fungsi. Prototipe fungsi berupa :

1. Nama Fungsi2. Tipe nilai fungsi3. Jumlah dan tipe argumen

Dan diakhiri dengan titik koma, sebagaimana pada pendeklarasian variabel. Sebagai contoh:

44

Page 45: Algoritma C+.doc

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 :#include<iostream.h>double hasil(int a,int b);void main(){

int x,y;double z;cout<<"masukan nulai x : ";cin>>x;

cout<<"masukan nilay y : ";cin>>y;

z=hasil (x,y);

cout<<"hasil perkalianya = ";cout<< x << " x " << y << " = " <<z;

}double hasil (int a,int b){

return (a*b);}

Penjelasan :// Fungsi Perkalian// tipe_return nama_fungsi (tipe_argument argumen)

double hasil (int a,int b){return (a*b);

}Fungsi yang didefinisikan oleh pemrogram terdiri atas dua bagian,

yaitu judul (header) dan isi (body). Judul dari sebuah fungsi terdiri dari tipe

45

Page 46: Algoritma C+.doc

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 yangakan 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.

B e n t u k u m u m pernyataan return adalah :

return ekspresi;

Dengan ekspresi adalah sebuah ekspresi yang nilainya dinyatakan untuk sebuah variable yang tipenya sama seperti tipe return. Terdapat juga fungsi yang tidak memberikan nilai balik atau tipe returnnya void.

3.4 Variabel Lokal dan variabel Eksternal

Variabel lokal adalah variabel yang didefinisikan dalam suatu fungsi tertentu, sehingga hanya dikenal dalam fungsi tersebut. Dalam hal ini artinya suatu fungsi tidak akan mengenal variabel lokal dan fungsi lain. Suatu fungsi hanya akan mengenal variabel yang didefinisikan dalam fungsi yang bersangkutan.

Variabel eksternal adalah variabel yang bersifat global yang dapat dikenali oleh seluruh fungsi yang terdapat dalam program tersebut. Seluruh fungsi akan mengenal variabel yang bersifat eksternal ini. Variabel eksternal dideklarasikan diluar fungsi dan sejajar dengan prototipe fungsi serta pengarah kompiler.

Contoh :

46

Page 47: Algoritma C+.doc

Outputnya :

Penjelasan :

Dalam pemograman tersebut terdapat variable local 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 sama, maka diprioritaskan untuk diproses variable lokal. Dalam fungsi_dua ( ) tidak terdapat variabel lokal sehingga yang diproses pada fungsi tersebut adalah variabel eksternalnya.

3.5 ParameterParameter 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. Terdapat dua macam para parameter fungsi, yaitu :

47

Page 48: Algoritma C+.doc

Parameter formal adalah variabel yang ada pada daftar parameter dalam definisi fungsi. Parameter Aktual adalah variabel yang dipakai dalam pemanggilan fungsi.

Bentuk penulisan Parameter Formal dan Parameter Aktual.

Ada dua cara untuk melewatkan parameter ke dalam fungsi, yaitu berupa :

a. Pemanggilan dengan nilai ( Call by Value )

Pemanggilan dengan nilai merupakan cara yang dipakai untuk seluruh fungsi buatan yang telah dibahas didepan. Pada pemanggilan dengan nilai, nilai dari parameter aktual akan ditulis keparameter formal. Dengan cara ini nilai parameter aktual tidak bisa berubah, walaupun nilai parameter formal berubah.

Contoh:

48

Page 49: Algoritma C+.doc

Outputnya :

b. Pemanggilan dengan Referensi (Call by Reference)

Pemanggilan dengan reference merupakan upaya untuk melewatkan alamat dari suatu variabel kedalam fungsi. Cara ini dapat dipakai untuk mengubah isi suatu variabel diluar fungsi dengan melaksanakan pengubahan dilakukan didalam fungsi.

Contoh:

49

Page 50: Algoritma C+.doc

Outputnya :

3.6 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.

Contoh :

#include <iostream.h>void ilkom (int n);void main(){ ilkom (3);}

50

Page 51: Algoritma C+.doc

void ilkom (int n){for (int m=0; m<n; m++)cout<<"ILMU KOMPUTER \n";}

Output:ILMU KOMPUTERILMU KOMPUTERILMU KOMPUTER

3.7 Rekursi

Merupakan suatu fungsi dapat memanggil fungsi yang merupakan dirinya

sendiri. Penerapan rekursi diantaranya untuk menghitung nilai : xn

Contoh:

#include <iostream.h>long int pangkat (int x, int y);void main (){

int x,y;cout<<"menghitung x^y " <<endl;cout << " x = ";cin >> x;cout << " y = ";cin >> y;cout << x << " ^ " <<y << "=" <<pangkat (x,y)<<endl;

}long int pangkat (int x,int n){

if (n==1)return (x);

elsereturn (x*pangkat (x, n-1));

}

Outputnya

51

Page 52: Algoritma C+.doc

TUGAS/LATIHAN PRAKTIKUM :

1. Buatlah program menggunakan fungsi untuk menghitung luas bangun datar (segitiga, lingkaran, jajar genjang dan bujur sangkar )

2. Buatlah program (nomor 1) menggunakan operasi Switch-case dimana:- Angaka 1 digunakan untuk menghitung luas segitiga- Angaka 2 digunakan untuk menghitung luas lingkaran- Angaka 3 digunakan untuk menghitung luas jajar genjang- Angaka 4 digunakan untuk menghitung luas bujur sangkar- Angaka 5 digunakan untuk keluar program

3. Buatlah program rekursi untuk mencari Nilai n faktorial (nilai n diinputkan)

4. Buatlah program dengan cara rekursi untuk menampilkan pangkat 3 dar i bilangan tersebut (soal nomor 2).

52