Transcript

MODUL PRAKTIKUM

“ALGORITMA DAN PEMROGRAMAN I”

LABORATORIUM KOMPUTER

FAKULTAS ILMU KOMPUTER

UNIVERSITAS SRIWIJAYA

2015

DIBUAT OLEH DISAHKAN OLEH DIKETAHUI OLEH

TIM LABORANLABORATORIUMFASILKOM UNSRI

TIM DOSEN SISTEMINFORMASI FASILKOM

UNSRI

KEPALA LABORATORIUM

Universitas SriwijayaFakultas Ilmu KomputerLaboratorium

LEMBAR PENGESAHANMODUL PRAKTIKUM

SISTEM MANAJEMENMUTU

ISO 9001:2008

No. Dokumen ……. Tanggal JANUARI 2015Revisi 0 Halaman 2 DARI 48

MODUL PRAKTIKUM

Mata Kuliah PraktikumKode Mata Kuliah PraktikumSKSProgram StudiSemester

: Algoritma dan Pemrograman I: FIK08111: 2: Manajemen Informatika: 1 (Ganjil)

2

Daftar Isi

Cover ......................................................................................................

Lembar Pengesahan ...............................................................................

Daftar Isi .................................................................................................

Pengenalan ..............................................................................................

Penerapan konsep variable dan tipe data ................................................

Penerapan konsep input dan output ........................................................

Quis .........................................................................................................

Penerapan konsep pengkondisian ...........................................................

Penerapan konsep pengulangan .............................................................

Penerapan konsep pengulangan (lanjutan) .............................................

UTS .........................................................................................................

Penerapan konsep array ..........................................................................

Penerapan konsep prosedur/fungsi .........................................................

Pengenalan pointer..................................................................................

Review materi ........................................................................................

1

2

3

4

7

10

15

16

26

28

34

35

38

44

47

3

1. PENGENALAN

1.1. ALGORITMAAlgoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk

memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan

dan mempunyai efek tertentu.

Algoritma dapat dituliskan dengan banyak cara, mulai dari menggunakan bahasa alami

yang digunakan sehari-hari, simbol grafik bagan alir, sampai menggunakan bahasa

pemograman seperti bahasa C atau C++.

1.2. C & 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).

1.3. LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++Langkah-langkahnya :

1. Bukalah software Turbo C++, akan terlihat tampilan awal Turbo C++2. Tulis source code program bahasa C++.

Source code C++ dapat ditulis pada text editor Turbo C++.

3. Kompile file dengan (ALT + C atau pilih submenu Compile)Kompile file dijalankan Untuk mengubah source code menjadi sebuah program, kita

gunakan compiler. Setelah source code tercompile, terbentuklah sebuah file objek

dengan ekstension “ .obj “. File “ .obj “ ini belum merupakan sebuah program

executable.

4. Jalankan Program dengan (CTRL+F9 atau pilih submenu Run)Setelah kita kompile file yang berisi source code, maka sebagai hasil kompilasi

tersebut kita akan mendapatkan suatu file yang bisa dijalankan (executable file).

4

Menjalankan program yang kita buat berarti menjalankan file hasil proses kompilasitersebut.

5. Untuk menyimpan pilih menu Save As

1.4. PENGENALAN C++Setiap program C++ mempunyai bentuk umum :

# prepocessor directivevoid main()

{

// Batang Tubuh Program Utama

}

Untuk lebih jelas, kita akan melihat contoh program berikut ini lengkap dengan analisisnya.

Contoh 1://program pertama

//nama file pertama.cpp

//nama pembuat : Badu

#include<iostream.h>void main()

{

cout<<"Hallo dunia"<<endl;

}

Analisisnya :Pada awal program ditulis //program pertama. Tanda // menyatakan bahwa tulisan yang

berada setelah tanda // merupakan komentar yang berfungsi hanya sebagai keterangan dan

tidak akan ditampilkan oleh program. Include adalah salah satu pengarah preprocessor

directive yang dijalankan terlebih dahulu saat proses kompilasi terjadi. Ditulis setelah

tanda # dan berakhiran .h yaitu file yang berisi sebagai deklarasi. Ada banyak contoh dari

file ini, salah satu nya adalah yang kita gunakan ini, yaitu #include<iostream.h> file ini

diperlukan pada program yang melibatkan objek cout. void main() merupakan tanda

bahwa program yang kita buat adalah program utama. Penulisan program utama harus

dimulai dan diakhiri dengan tanda kurung kurawal {}. Pernyataan cout merupakan objek

yang digunakan untuk mengarahkan data kedalam standar output (data yang akan dicetak

pada layar). Tanda<< merupakan operator penyisipan, yaitu batasan dalam cout. Untuk

5

kata-kata yang akan ditampilkan, harus dibatasi dengan tanda “…”. Pada akhirpernyataan, kita dapat mengakhiri nya dengan endl yang berarti endline atau langsung

diakhiri dengan tanda semicolon (;). Setiap pernyataan harus diakhiri dengan tanda

semicolon.

Contoh 2://program pertama

//nama file pertama.cpp

//nama pembuat :Badu

#include <iostream.h>

void main()

{

//fungsi utama untuk memulai program

cout<<"Haloo Dunia"<<endl; //isi program

cout<<"Nama saya : Badu"<<endl;

cout<<"Ini adalah program pertama saya"<<endl;

}

Analisisnya:Sama seperti contoh 1, namun pada program ini, pernyataannya lebih dari satu. Tiap

pernyataan diawali dengan tanda cout dan diakhiri dengan tanda endl;.Tanda endl;

digunakan agar pernyataan kedua pindah ke line yang berbeda dengan pernyataan 1, dan

seterus nya. Maka, output nya adalah

Haloo DuniaNama saya :Badu

Ini adalah program pertama saya

Apabila tidak diberi tanda endl; dan langsung diakhiri dengan tanda semicolon setelahtanda petik ganda yang terakhir, maka output nya menjadi:

Haloo DuniaNama saya :BaduIni adalah program pertama saya

6

2. PENERAPAN KONSEP VARIABEL DAN TIPE DATA

2.1. VARIABELVariabel 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 :

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 nama,Nama dan NaMadianggap berbeda.

2. Tidak boleh mengandung spasi. Kalaupun diperlukan maka yang digunakan adalah

tanda underscore “_”.

3. Tidak boleh mengandung simbol-simbol khusus.Yang termasuk simbol khusus yang

tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, =dsb.

4. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai.

2.2. DEKLARASIDeklarasi diperlukan bila kita akan menggunakan pengenal (identifier) dalam program.

Identifier dapat berupa variable, konstanta dan fungsi.

2.3. TIPE DATAType data diperlukan untuk mengetahui jangkauan dari tiap-tiap variabel.

Agar lebih jelas mengenai bab ini, kita akan melihat contoh soal dan analisisnya.

contoh 1://program variabel 1

//nama file var1.cpp

#include <iostream.h>

void main() //fungsi utama untuk memulai program

{

int a; //deklarasi variabel dengan tipe data integer

long b; //deklarasi variabel dengan tipe data long

7

float c; //deklarasi variabel dengan tipe data float

double d; //deklarasi variabel dengan tipe data double

char e; //deklarasi variabel dengan tipe data char

a=7;

b=100000;

c=1.2;

d=12E7;

e='s';

cout<<"Isi variabel a adalah "<<a<<endl;

cout<<"Isi variabel b adalah "<<b<<endl;

cout<<"Isi variabel c adalah "<<c<<endl;

cout<<"Isi variabel d adalah "<<d<<endl;

cout<<"Isi variabel e adalah "<<e<<endl;

}

Analisisnya:Berbeda dari program sebelumnya, pada program kali ini, kita sudah membahas

mengenai variabel dan tipe data.Variabel adalah suatu pengenal yang digunakan

untuk mewakili suatu nilai tertentu.Nilai dari variabel ini dapat diubah-ubah sesuai

kebutuhan.Pada program ini, variabel nya diwakili oleh huruf a, b, c, d dan e.

Variabel-variabel itu harus dideklarasikan.Maksudnya, harus ditulis type data dari

tiap-tiap variabel.Terdapat banyak type data dalam bahasa C++.Dalam program ini,

kita menggunakan 6 type data.Untuk variabel a, digunakan type data integer (yang

disingkat dengan int).Type data integer hanya dapat menampilkan bilangan dalam

bentuk bilangan bulat dan tidak dalam bentuk pecahan.Type data ini mempunyai

jangkauan dari -32768 hingga -32767.Type data untuk variabel b adalah long.Type

data ini mempunyai jangkauan yang lebih luas daripada type data integer.Jangkauan

nya dari -2.147.438.648 hingga 2.147.438.647.Berbeda dengan type data untuk

variabel c, yaitu float. Type data float dapat digunakan untuk seluruh bilangan bulat,

termasuk bilangan pecahan. Variabel d menggunakan type data double yang

mempunyai jangkauan yang besar. Yang terakhir, variabel e menggunakan type data

char atau character yang khusus untuk menampilkan sebuah huruf. Dibawah

pendeklarasian, sudah dituliskan berapa nilai untuk masing-masing variabel.Jadi,

variabel yang ditampilkan berupa output karena sudah ditentukan berapa

8

nilainya.Penentuan nilai variabel yang tetap dapat dikatakan juga pendeklarasiandengan konstanta. Penulisannya diawali dengan kata const<type data><nama

variabel>= <nilai konstanta>

3. PENERAPAN KONSEP INPUT OUTPUT

3.1. OPERATOROperator adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu

operasi atau manipulasi.

3.1.1. OPERATOR PENUGASANOperator penugasan dalam bahasa C++ berupa tanda sama dengan(“=”).

Operator

+

-

*

/

%

-

Deskripsi

Penjumlahan(add)

Pengurangan(Substract)

Perkalian(Multiply)

Pembagian(Divide)

Sisa Pembagian Integer(Modulus)

Negasi(Negate)

Contoh

m+n

m-n

m*n

m/n

m%n

-m

3.1.2. OPERATOR HUBUNGAN(PERBANDINGAN)

Operator Arti Contoh

== Sama Dengan(bukan X==Y Apakah X sama dengan Yassignment)

!=

>

<

>=

Tidak sama dengan

Lebih besar

Lebih kecil

Lebih besar atau sama

X!=Y

X>Y

X<Y

X>=Y

Apakah X tidak sama dengan Y

Apakah X lebih besar Y

Apakah X lebih kecil Y

Apakah X lebih dari sama dengan Ydengan

<= Lebih kecil atau samadengan

X<=Y Apakah X kurang dari sama denganY

3.1.3. OPERATOR NAIK DAN TURUN(INCREMENT DAN DECREMENT)Operator Increment ++

Operator Decrement --

Operator pre-increment dan post-decrement mempunyai fungsi yang sama yaitu,

untuk menambah atau mengurangi satu nilai.

10

3.1.4. OPERATOR BITWISE

OPERATOR

<<

>>

&

I

^

~

DESKRIPSI

Geser n bit ke kiri

Geser n bit ke kanan

Bitwise AND

Bitwise OR

Bitwise XOR

Bitwise NOT

CONTOH

M << N

M >> N

M&N

MIN

M^N

~M

NB : Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atauchaR.

3.1.5. OPERATOR LOGIKAOperator logika digunakan untuk menghubungkan dua atau lebih ungkapan menjadi

sebuah ungkapan berkondisi.

Operator

&&

II

!

Deskripsi

Logic AND

Logic OR

Logic NOT

Contoh

m && n

m II n

!m

3.1.6. OPERATOR KONDISIOperator kondisi digunakan untuk memperoleh nilai dari dua kemungkinan

ungkapan1 ?ungkapan2 : ungkapan3

Bila nilai ungkapan1 benar, maka nilainya sama dengan ungkapan2, bila tidak maka

nilainya sama dengan ungkapan3

3.2.STATEMENT I/OPada C++ terdapat 2 jenis I/O dasar, yaitu:

a. Statemen Input adalah Statemen / fungsi yang digunakan untuk membaca data dari

inputing device (keyboard/mouse), contoh : cin (character in)

b. Statemen Output adalah Statemen yang digunakan untuk menuliskan data ke layar

monitor, contoh : cout (character out)

Contoh-contoh soal beserta analisisnya antara lain:

11

dirumuskan dengan bba 1 . Dalam hal ini, yang pertama kita lakukan

Contoh 1://program menghitung nilai m

//nama file nilai_m.cpp

#include<iostream.h>

void main()

{

float a, b, c, d, m;

cout<<"Masukkan nilai a ";cin>>a;

cout<<"Masukkan nilai b ";cin>>b;

cout<<"Masukkan nilai c ";cin>>c;

cout<<"Masukkan nilai d ";cin>>d;

m = ((a-b)/(3*a*c))*(1-(b/(c*d)));

cout<<"Nilai m adalah "<<m;

}

Analisisnya:Program kali ini merupakan program yang sudah mulai menggunakan operator

aritmatika. Dalam program ini, kita menghitung berapa besar nilai m yang

3 a c c d

adalah melakukan pendeklarasian terhadap variabel-variabel yang ada. Karena operasiyang akan dilakukan adalah operasi perhitungan matematis, maka kita juga harus

menggunakan type data yang sesuai untuk angka. Sebagian besar hasil dari

pembagian adalah bilangan pecahan.Oleh sebab itu, kita tidak bisa menggunakan type

data integer.Jadi, pada program kali ini, kita menggunakan type data float. Pada saat

pengeksekusian, program akan meminta masukan berupa nilai untuk variabel-variabel

yang ada. Statement cout merupakan statement output karena menampilkan hasil

yang kita buat dalam program. Sedangkan statement cin merupakan statement input

karena merupakan statement untuk memasukkan nilai variabel yang kita inginkan.

Kemudian, program akan memasukkan nilai-nilai tersebut ke dalam rumus yang ada.

Lalu, program akan menapilkan hasil berupa nilai m yang ingin kita ketahui.

Contoh 2:

12

//program menghitung nilai x

//nama file nilai_x.cpp

#include<iostream.h>

void main()

{

float b, c, a, x;

cout<<"Masukkan nilai a ";cin>>a;

cout<<"Masukkan nilai b ";cin>>b;

cout<<"Masukkan nilai c ";cin>>c;

x = ((-b)+(2*c*c)+(4*a*b))/2*c;

cout<<"Nilai x yang didapatkan adalah "<<x;

}

Analisisnya:Program ini hampir sama dengan program sebelumnya. Yang berbeda hanya lah

rumus yang digunakan.Jika kita sudah mengerti tentang operasi matematika dan

bagaimana kita menerjemahkannya kedalam bahasa C++, maka dengan mudah kita

dapat memodifikasi dan mengembangkan nya menjadi program-program lain yang

lebih rumit.Dalam program ini, pada awal nya program juga melakukan

pendeklarasian. Karena operasi yang dilakukan juga terdapat operasi pembagian,

maka pada program ini juga kita menggunakan type data float. Variabel yang

digunakan juga merupakan menggunakan statement input-output untuk menampilkan

nya. Selanjutnya, program akan memasukkan nilai-nilai variabel itu kedalam rumus

yang ada, barulah kemudian menampilkan hasil nilai x yang kita inginkan.

Contoh 3://program menghitung volume bola

//nama file volume_bola.cpp

#include<iostream.h>

void main()

{

const float phi=3.14;

13

float volume, r;

cout<<"Masukkan jari-jari bola ";cin>>r;

volume = 1.3*phi*r*r*r;

cout<<"Volume bola adalah "<<volume;

}

Analisisnya:Program kali ini agak sedikit berbeda dengan dua program sebelumnya.Pada program

menghitung volume bola ini, terdapat suatu variabel konstanta yang nilainya

tetap.Variabel yang termasuk variabel konstanta yaitu phi. Seperti yang kita ketahui,

phi bernilai 3,14. Oleh karena itu, akan lebih baik jika nilai phi itu dijadikan sebagai

suatu konstanta daripada dijadikan sebagai masukan dari pengguna program.

Konstanta juga memerlukan type data. Karena nilai phi merupakan bilangan

desimal, maka type data yang digunakan adalah type data float. Setelah itu, program

akan meminta masukan berupa jari-jari bola yang akan dicari volume nya. Kemudian,

akan dilakukan perhitungan dengan rumus yang ada. Lalu hasilnya akan ditampilkan

sesuai dengan hasil perhitungan.

14

Nama Variabel Benar/Salah Alasan PembetulannamaNama andaNama_anda$Nama$Anda80mahasiswarata-rataNIMhuruf5

4. QUISSoal :1. Isilah tabel berikut ini untuk melakukan penelusuran kebenaran penulisan nama variabel-

variabel ini.

2. Buat sebuah program untuk menampilkan data mahasiswa berupa nama, nim, umur, nilai(dalam decimal). Yang mana data tersebut berupa inputan dari user !

15

5. PENERAPAN KONSEP PENGKONDISIAN

5.1. PERNYATAAN IFBentuk pernyataan bentuk ini ada dua macam, if saja atau if dan else.

Bentuk Umumnya Satu KasusPernyataan dilaksanakan jika dan hanya jika kondisi yang ingin terpenuhi, jika tidak

program tidak memberkan hasil apa-apa.

if (kondisi)pernyataan;

Bentuk Umum Dua Kasus:

if (kondisi)pernyataan1;

elsepernyataan2;

Bentuk Umum Banyak Kasus:

if (kondisi){

Pernyataan1;Pernyataan1a;Peryataan1b;

}else{

Pernyataan 2;Pernyataan2a;Pernyataan2b;

}

5.2. PERNYATAAN SWITCHPernyataan switch adalah pernyataan yang digunkan untuk menjalankan salah satu

pernyataan dari beberapa kemungkinan pernyataan, berdasarkan nilai dari sebuah ungkapan

dan nilai penyeleksian.

16

Bentuk Umumnya

switch(ekspresi){case konstanta1;

Pernyataan1;break;case konstanta2;

Pernyataan2;break;

::

case konstantaN;PernyataanN;

break;default:Pernyatanlain;}

Hal-hal yang perlu diperhatikan adalah:1. Dibelakang keyword case harus diikuti oleh sebuah konstanta, tidak boleh dikuti oleh

ekspresi atau variable.

2. Konstanta yang digunakan bertipe int atau char

3. jika bentuknya seperti diatas maka apabila ekspresi sesuai dengan konsatanta 2 maka

pernyataan2, pernyatan 3 samapi dengan pernyataan lain dieksekusi. Untuk mencegah

hal tersebut, digunkan keyword break;

Beberapa contoh program dengan menggunakan pengkondisian beserta analisisnya adalahsebagai berikut:

contoh 1 (pemilihan dengan dua kasus)://program menghitung nilai spmb

//nama file spmb.cpp

#include<iostream.h>

void main()

{

int nilai;

int mtk;

cout<<".::Program penentuan lulus spmb::.";

cout<<"Masukkan nilai Anda ";cin>>nilai;

cout<<"Masukkan nilai Matematika IPA Anda ";cin>>mtk;

17

if ((nilai>50) && (mtk>70))

{

cout<<"Anda lulus di IF Unsri layo";

}

else

{

cout<<"Anda lulus di IF Unsri layo tapi tahun depan";

}

}

Analisisnya:Program ini membahas mengenai penentuan lulus SPMB. Setelah melakukan

penginsialisasian terhadap variabel-variabel yang ada, program ini akan meminta

masukan berupa nilai pengguna. Barulah program akan masuk ke pemilihan. Dalam

pemilihan ini, ada dua kondisi yang mutlak harus terpenuhi.Tanda && berarti kondisi

pertama dan kondisi kedua harus terpenuhi. Jika salah satu kondisi tidak terpenuhi,

maka program akan masuk ke pernyataan kedua. Pernyataan 1 dilaksanakan jika dan

hanya jika kondisi yang ada terpenuhi, jika tidak, dilakukan pernyataan 2. Jika kita

tidak menggunakan pernyataan else, program tidak akan error, namun jika kita

menggunakan pernyataan else tanpa didahului dengan pernyataan if, maka program

akan error. Jika pernyataan 1 atau pernyataan 2 hanya terdiri atas baris, makan

kurung kurawal({ }) tidak diperlukan.

Contoh 2 (Pemilihan dengan banyak kasus)://program menghitung nilai akhir mahasiswa

//nama file nilai.cpp

#include<iostream.h>

void main()

{

float nilai,nilai1,nilai2,nilai3,nilai4;

cout<<".::Program penentuan nilai mahasiswa::.";

cout<<"Masukkan nilai Laporan Anda ";cin>>nilai1;

cout<<"Masukkan nilai Kuis Anda ";cin>>nilai2;

cout<<"Masukkan nilai Mid Anda ";cin>>nilai3;

cout<<"Masukkan nilai UAS Anda ";cin>>nilai4;

18

nilai=(0.15*nilai1)+(0.15*nilai2)+(0.30*nilai3)+(0.40*nilai4);

if ((nilai>85) && (nilai<=100))

{

cout<<"Nilai Anda adalah A";

}

else if ((nilai>=70) && (nilai<85))

{

cout<<"Nilai Anda adalah B";

}

else if ((nilai>=55) && (nilai<70))

{

cout<<"Nilai Anda adalah C";

}

else if ((nilai>=40) && (nilai<55))

{

cout<<"Nilai Anda adalah D";

}

else

{

cout<<"Nilai Anda adalah E";

}

}

Analisisnya:Pada program ini, ada beberapa pernyataan dengan masing-masingnya memuat kondisi

yang harus terpenuhi. Setelah dilakukan operasi matematis berupa penggabungan dari

nilai-nilai yang berupa masukan, akan dilakukan pemilihan terhadap nilai tersebut.

Program akan melihat apakah nilai akhir yang diperoleh memenuhi kondisi pada

pernyataan pertama. Ada dua kondisi yang harus terpenuhi, yaitu nilai harus lebih besar

dari 85 dan harus lebih kecil atau sama dengan 100. nilai 85 dan 100 itu adalah batasan

syarat nilai yang dapat memenuhi kondisi yang ada pada pernyataan pertama. Jika

kondisi pada pernyataan pertama tidak terpenuhi, maka selanjutnya program akan

meneruskan eksekusi ke pernyataan kedua. Jika kondisi pada pernyataan kedua belum

juga terpenuhi, maka akan kembali diteruskan ke pernyataan berikutnya. Begitu

seterusnya.

19

Contoh 3 (Pemilihan dengan banyak kasus yang rumit)://program menghitung nilai y

//nama file nilai_y.cpp

#include<iostream.h>

#include<math.h>

void main()

{

float a,b,c,D,x,x1,x2,y,y1,y2;

cout<<"Program Menghitung Nilai Y pada Persamaan

Kuadrat"<<endl;

cout<<"Masukkan nilai a = ";cin>>a;

cout<<"Masukkan nilai b = ";cin>>b;

cout<<"Masukkan nilai c = ";cin>>c;

D=(b*b)-(4*a*c);

cout<<"Nilai D adalah "<<D<<endl;

if (D>0)

{

cout<<"Akarnya adalah akar real berbeda"<<endl;

x1=((-b)+sqrt(D))/(2*a);

x2=((-b)-sqrt(D))/(2*a);

cout<<"Nilai X1 nya adalah "<<x1<<endl;

cout<<"Nilai X2 nya adalah "<<x2<<endl;

y1=a*x1*x1+b*x1+c;

y2=a*x2*x2+b*x2+c;

cout<<"Maka nilai Y1 adalah "<<y1<<endl;

cout<<"Maka nilai Y2 adalah "<<y2<<endl;

}

else if (D==0)

{

cout<<"Akarnya adalah akar kembar"<<endl;

x=(-b)/(2*a);

cout<<"Nilai X nya adalah "<<x<<endl;

y=a*x*x+b*x+c;

cout<<"Maka nilai Y adalah "<<y<<endl;

}

else if (D<0)

{

20

cout<<"Akarnya adalah imajiner"<<endl;

cout<<"Perhitungan tidak dapat dilanjutkan.."<<endl;

}

}

Analisisnya:

Program ini juga menggunakan pemilihan if-else.Pada program menghitung nilai x dan

y ini, perhitungan baru dapat dilakukan jika kondisi yang ada telah terpenuhi. Yang

menjadi kondisi disini adalah nilai dari diskriminan yaitu nilai D yang diperoleh dari

b 2 4ac . Ada tiga kemungkinan dari nilai diskriminan ini, yaitu diskriminan bernilai

positif yang lebih besar dari nol, diskriminan yang sama dengan nol, dan diskriminan

yang negatif yang lebih kecil dari nol. Kondisi-kondisi diskriminan ini akan

mempengaruhi akar-akar persamaan kuadrat yang akan diperoleh. Hal ini berpengaruh

pada nilai x yang akan dihasilkan. Untuk nilai diskriminan yang lebih besar dari nol,

maka akan dihasilkan akar-akar persamaan yang real dan berbeda antara x1 dan x2 nya.

Untuk nilai diskriminan yang sama dengan nol, akar-akar persamaan yang dihasilkan

adalah akar kembar yang sama antara x1 dan x2 nya. Namu, jika kondisi diskriminan

lebih kecil dari nol, maka akar dari diskriminan bernilai imajiner karena diskriminan

nya bernilai negatif.Dalam hal ini, program tidak bisa meneruskan perhitungan untuk

mencari nilai x dan y nya. Pada awalnya, program akan meminta masukan berupa nilai-

nilai a, b, dan c. Kemudian program akan melakukan perhitungan untuk mengetahui

nilai diskriminan. Jika program sudah mendapatkan berapa nilai diskriminan nya, maka

akan masuklah ke proses pemilihan. Jika nilai diskriminan yang didapatkan cocok

dengan kondisi yang disyaratkan dalam program, maka program akan melakukan

operasi-operasi yang ada pada pernyataan pertama. Namun, jika nilai diskriminan nya

tidak memenuhi kondisi yang disyaratkan pada pernyataan pertama, maka program

akan meneruskan nya ke pernyataan-pernyataan berikutnya sampai didapatkan nilai

yang diperoleh memenuhi kondisi yang ada. Pada pernyataan pertama, terdapat

perintah sqrt yang berarti menentukan akar dari diskriminan, maka dalam #include

harus ditambahkan #include<math.h> yang berfungsi untuk menggunakan operasi

sqrt.

Contoh 4 (Pemilihan Menu)://program menu volume bangun ruang

//nama file pilihan.cpp

21

#include<iostream.h>

void main()

{

float menu,r,s,t,p,l,volume_balok,volume_kubus,volume_bola;

const float phi=3.14;

cout<<"Menu Pencarian Volume Bangun Ruang"<<endl;

cout<<"1. Kubus"<<endl;

cout<<"2. Balok"<<endl;

cout<<"3. Bola"<<endl;

cout<<"4. Selesai"<<endl;

cout<<"masukkan pilihan anda= ";cin>>menu;

cout<<endl;

if (menu==1)

{

cout<<"Masukan besar sisinya = ";cin>>s;

volume_kubus=s*s*s;

cout<<"Volume Kubus nya adalah = "<<volume_kubus<<endl;

}

else if (menu==2)

{

cout<<"Masukan panjang sisinya = ";cin>>p;

cout<<"Masukan lebar sisinya = ";cin>>l;

cout<<"Masukan tingginya = ";cin>>t;

volume_balok=p*l*t;

cout<<"Volume Balok nya adalah = "<<volume_balok<<endl;

}

else if (menu==3)

{

cout<<"Masukan jari-jarinya = ";cin>>r;

volume_bola=1.33*phi*r*r*r;

cout<<"Volume Bola nya adalah = "<<volume_bola<<endl;

}

else if (menu==4)

{

cout<<"Terimakasih telah menggunakan program

ini.."<<endl;

}

}

22

Analisisnya:Program ini sama saja dengan program-program sebelumnya. Namun, di awal program,

pengguna program harus memilih apa yang mereka inginkan. Setelah itu, barulah

masuk ke badan pemilihan. Jika pengguna memilih angka 1 pada menu, maka

akankeluar tampilan volume yang akan mereka cari. Baik berupa masukan data atau

keluaran hasil yang mereka inginkan.Jika pengguna memilih nomor yang tidak ada

pada menu, maka tidak ada kondisi yang terpenuhi dan program menjadi inactive.

Contoh 5 (Penggunaan Switch-case)://program switch case

//nama file : switch.cpp

#include <iostream.h>

void main()

{

int pilih ;

cout<<"Menu hari "<<endl;

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

cout<<"1.Senin"<<endl;

cout<<"2.Selasa"<<endl;

cout<<"3.Rabu"<<endl;

cout<<"4.Kamis"<<endl;

cout<<"5.Jum'at"<<endl;

cout<<"6.Sabtu"<<endl;

cout<<"7.Minggu"<<endl;

cout<<"masukkan pilihan anda :";

cin>>pilih ;

switch(pilih)

{

case 1:

{

cout<<"Anda Memilih Hari Senin "<<endl;

break;

}

23

case 2:

{

cout<<"Anda Memilih Hari Selasa "<<endl;

break;

}

case 3:

{

cout<<"Anda Memilih Hari Rabu "<<endl;

break;

}

case 4:

{

cout<<"Anda Memilih Hari Kamis "<<endl;

break;

}

case 5:

{

cout<<"Anda Memilih Hari Jum'at "<<endl;

break;

}

case 6:

{

cout<<"Anda Memilih Hari Sabtu "<<endl;

break;

}

case 7:

{

cout<<"Anda Memilih Hari Minggu "<<endl;

break;

}

}

}

Analisisnya:

Sama saja dengan penggunaan if-else.Tidak banyak contoh program yang menggunakan

switch-case ini.Karena program ini menggunakan switch-case, maka type data nya

haruslah integer atau character. Setelah ditampilkan sebuah menu pilihan hari, maka

pengguna akan memilih nomor hari yang diinginkan. Setelah itu, maka program akan

mulai masuk ke pemilihan. Setelah switch, ditulis ekspersi atau variabel yang

mendefinisikan nomor-nomor yang dipilih pada menu. Dibelakang keyword case harus

24

diikuti oleh sebuah konstanta yang bertipe integer atau character. Dalam setiap case,harus digunakan keyword break. Jika tidak menggunakan keyword break, maka seluruh

pernyataan akan dieksekusi juga. Jika menggunakan keyword break, maka yang

akandieksekusi hanyalah pernyataan yang dipilih oleh pengguna. Pemilihan dengan

switch-case ini mirip dengan penggunaan if-else bersarang.

25

6. PENERAPAN KONSEP PERULANGAN

Perintah atau notasi dalam struktur pengulangan yang akan kita bahas adalah :1. Pernyataan while

2. Pernyataan do..while

3. Pernyataan for

6.1. PERNYATAAN WHILEPernyataan 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 sekali.

Bentuk Umumnya :

while (kondisi){

Pernyataan ;

}

6.2. PERNYATAAN DO..WHILEPernyataan do…while mirip seperti pernyataan while, hanya saja pada do…while pernyataan

yang terdapat didalamnya minimal akan sekali dieksekusi.

Bentuk Umumnya :

do{

pernyatan ;

}

while(kondisi);

Beberapa contoh program dengan menggunakan pengulangan adalah sebagai berikut:

contoh 1 (menghitung pemangkatan dengan menggunakan while):#include <iostream.h>

26

void main(){

int i,a,n,pangkat;

cout<<"Masukkan sebuah bilangan :";cin>>a;cout<<" Masukkan pangkat :";cin>> n;

pangkat =1;i=1; //mula-mula diisi sama dengan satuwhile (i<=n){

pangkat = pangkat *a;i++; //menaikkan pencacah sama dengan satu

}

cout<<"\nhasil"<<pangkat;}

contoh 2 (menghitung pemangkatan dengan menggunakan do…while):#include <iostream.h>void main(){

int i,a,n,pangkat;

cout<<"Masukkan sebuah bilangan :";cin>>a;cout<<"MAsukkan pangkat :";cin>> n;

pangkat =1;i=1;do{

pangkat = pangkat *a;i++;

}while (i<=n);

cout<<"\nhasil"<<pangkat;}

27

7. PENERAPAN KONSEP PERULANGAN (LANJUTAN)

7.1. PERNYATAAN FORPernyataan for digunakan untuk menghasilkan pengulangan(looping) beberapa kali

tanpa penggunaan kondisi apapun. Pada umumnya looping yang dilakukan oleh for telah

diketahui batas awal, syarat looping dan perubahannya.

Pernyataan for digunakan untuk melakukan looping.Pada umumnya looping yang

dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Selama

kondisi terpenuhi, maka pernyataan akan terus dieksekusi.

Bentuk Umumnya :

for (inisialisasi ; kondisi ; perubahan){

Statement;

}

Contoh-contoh soal yang mengandung pengulangan beserta analisis nya antara lain:

contoh 1://Program bilangan 1 sampai 10

//nama file : bil1.cpp

# include <iostream.h>

void main ()

{

int i;

cout<<"Program Menampilkan Bilangan 1-10"<<endl;

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

{

cout<<" "<<i;

}

}

Analisisnya:

Program ini merupakan program pengulangan.Program ini menampilkan bilangan dari

satu sampai 10.Yang harus dideklarasikan adalah variabel i yang merupakan

inisialisasi. Pada badan pengulangan nya, notasi (i=1; i<=10; i++) berarti pengulangan

28

dilakukan untuk nilai i sama dengan 1, dengan batas nilai i lebih kecil sama dengan 10,dan notasi i++ berarti nilai i mengalami kenaikan sebanyak 1 pada setiap kali

pengulangan. Cout yang ditulis didalam tanda for berarti apapun yang tertulis didalam

cout itu akan diulang sebanyak i. Jika cout nya ditulis diluar tanda kurung kurawal

(diluar for), maka apa yang tertulis didalam cout itu tidak akan diulang.

Contoh 2://Program kelipatan tiga

//nama file bil3.cpp;

# include <iostream.h>

void main ()

{

int i;

cout<<"Program Menampilkan Bilangan 1-10"<<endl;

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

{

if (i % 3==0)

{

cout<<" "<<i<<endl;

}

}

}

Analisisnya:Sama seperti program sebelumnya, program ini juga menampilkan bilangan dari 1

sampai 10.Bedanya, yang ditampilkan pada program ini hanyalah bilangan-bilangan

kelipatan tiga.Jadi, untuk menampilkannya, kita memerlukan syarat agar bilangan yang

ditampilkan hanya berupa bilangan kelipatan tiga.Kita dapat membuat syarat itu dengan

menggunakan if-else.Didalam bagan for, kita dapat memasukkan bagan if-else. Kondisi

yang merupakan syarat yang harus dipenuhi adalah jika bilangan itu habis dibagi tiga,

maka bilangan itu akan ditampilkan. Jadi, pada saat pengeksekusian, bagan if-else juga

akan mengalami perulangan.

29

Contoh 3://Program for bersarang

//nama file bintang.cpp;

#include<iostream.h>

void main()

{

int i,j;

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

{

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

{

cout<<"*";

}

cout<<endl;

}

}

Analisisnya:Program ini akan mencetak banyaknya bintang sesuai dengan perulangan yang

dilakukan. Pada for yang diluar, akan dicetak jumlah baris untuk membentuk persegi

bintang. Dengan batasan antara satu sampai empat dan nilai i yang terus naik sebanyak

satu, maka akan terbentuk baris bintang yang jumlah barisnya sebanyak pengulangan

itu. Sementara pada for yang didalam akan mencetak jumlah kolom untuk segitiga

bintang itu, kolom dalam hal ini di insialisasikan dengan variabel j. sama seperti for

yang terluar, pada for yang didalam juga memberikan batasan antara satu sampai

dengan empat untuk pengulangan jumlah kolom yang ada. Pada for yang terluar, tidak

ditulis cout. Cout ditulis pada for yang kedua agar bintang yang yang ditulis dalam cout

akan berulang sebanyak baris dan kolomnya.

//Program penjumlahan//nama file jumlah.cpp;

# include <iostream.h>void main ()

{

30

int i,j;j = 0;

cout<<"Program Menampilkan Jumlah Bilangan 1-10"<<endl;

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

{

cout<<" "<<i;

j = j + i;

}

cout<<"Jumlahnya ="<<j<<endl;

}

Analisisnya:Program ini akan menampilkan jumlah bilangan dari satu sampai sepuluh. Sama seperti

pengulangan sebelumnya, tetapi pada program ini, mulai dibutuhkan inisialisasi

awal.Yaitu inisialisasi untuk jumlah, yaitu nol. Inisialisasi ini diperlukan untuk

melakukan penjumlahan. Penjumlahan akan dilakukan sebanyak i.

Contoh 5://Program faktorial//nama file faktorial.cpp;

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

int a,i;long j;

j = 1;

cout<<"Menghitung Faktorial suatu Bilangan"<<endl;cout<<"Masukkan bilangan yang akan di cari faktorialnya :

";cin>>a;

for (i=a;i>=1;i--){

j=j*i;

cout<<i<<" ";}

cout<<"Faktorialnya adalah "<<j<<endl;

}

Analisisnya:Pada program ini, kita mulai mengenal insialisasi awal.Yaitu variabel j yang

mendefinisikan faktorial. Karena pada awalnya program meminta masukan berupa

31

bilangan yang akan di faktorialkan, maka pada badan pengulangan untuk batasawalnya, nilai i maksimum adalah nilai a. Karena i faktorial merupakan perkalian

dengan nilai bilangan yang menurun sebanyak satu bilangan, maka pada badan for

ditulis batasan i adalah a, dengan i lebih besar atau sama dengan satu dan i mengalami

penurunan. Pada badan pengulangan ditulis rumus dari faktorial, yaitu nilai j dikalikan

dengan i. Perkalian akan berulang sebanyak i dengan batasan maksimumnya adalah a

dan batas akhirnya 1 atau lebih besar dari satu. Nilai faktorialnya ditulis di luar for

karena hasilnya bukan berupa perulangan.

Contoh 6 (Perpangkatan dengan menggunakan for)://program pengulangan//nama file tugas1.cpp

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

int a,i,b;long j;

cout<<"Menghitung Pangkat dari Suatu Bilangan"<<endl;cout<<"Masukkan bilangan pokok nya: ";cin>>a;cout<<"Masukkan nilai pangkatnya : ";cin>>b;j=1;

for (i=b;i>=1;i--){j=j*a;cout<<a<<" ";}

cout<<"Nilai perpangkatannya adalah "<<j<<endl;}

Analisisnya:Program ini melakukan perhitungan perpangkatan suatu bilangan. Pada awalnya,

program akan meminta masukan berupa bilangan pokok dan bilangan pemangkatnya.

Setelah itu, barulah program akan masuk ke badan pengulangan. Sama dengan

faktorial, nilai awalnya harus diinisialisasikan terlebih dahulu.Pemangkatan suatu

bilangan pada prinsipnya adalah pengulangan bilangan pokok sebanyak bilangan

pangkatnya. Oleh karena itu, pada badan for, dibuat batasan i untuk i lebih besar atau

sama dengan satu, nilai i mengalami penurunan, dan nilai i maksimum adalah bilangan

pemangkatnya. Barulah operasi pemangkatan dilakukan.Nilai pangkat yang telah

diinisialisasi pada awalnya dikalikan dengan bilangan pokoknya. Perkalian itu

akanmengalami pengulangan sebanyak bilangan pemangkatnya. Pengulangan akan

32

berhenti apabila telah mencapai batas maksimum i, yaitu sebanyak bilanganpemangkat.

33

Jumlah Bayar Discount

>=600000 20%

>=400000 15%

>200000 10%

8. UTS

Soal :1. Buatlah program perhitungan ”Transaksi Swalayan Nama_Anda”2. Proses Program yang dikehendaki adalah sebagai berikut :

(catt: nama variabel tentukan sendiri)

MASUKAN

Nama Barang :

Banyaknya Barang :

Harga Satuan : Rp.

TAMPILAN DI SCREEN

DAFTAR TRANSAKSI SWALAYAN “NAMA_ANDA”

Nama Barang =Banyak Barang =

Harga Satuan =

Jumlah Bayar =

Diskon =

Total Bayar =

Catatan:1. Jumlah Bayar = Banyak Barang * Harga Satuan;

2. Ketentuan Diskon sebagai berikut :

3. Total Bayar = Jumlah Bayar – Diskon;

34

9. PENERAPAN KONSEP ARRAY

9.1. LARIKLarik merupakan sekumpulan data yang mempunyai nama dan tipe yang sama.Larik

sering disebut juga variabel berindeks. 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

banyak dimensi.

Bentuk Umum Larik Satu Dimensi :

tipe_larik nama_larik [ukuran]

Bentuk Umum Larik Dua Dimensi :

tipe_larik nama_larik [ukuran1][ukuran2]

Perhatikan :o Tanda kurung [ ] digunakan untuk menunjukkan elemen larik

o Perhitungan elemen larik dimulai dari 0, bukan 1

C++ tidak mengecek larik. Bila anda menyatakan int x[10], ini artinya 10 elemen yangdimulai dari 0. Karena itu elemen terakhir larik adalah x[9]. Bila anda salah

mereferensikannya dengan x[10], anda akan mendapatkan harga yang tidak terpakai. Akan

lebih buruk lagi jika anda memberikan harga ke x[10], yang tidak dapat diterima.

9.2. REPRESENTASI LARIKMisalkan kita memiliki sekumpulan data ujian seorang siswa, ujian pertama bernilai 90,

kemudian 95,78,85. Sekarang kita ingin menyusunnya sebagai suatu data kumpulan ujian

seorang siswa. Dalam array kita menyusunnya sebagai berikut

ujian[0] = 90;

ujian[1] = 95;

ujian[2] = 78;

ujian[3] = 85;

35

Empat pernyataan diatas memberikan nilai kepada array ujian. Tetapi sebelum kitamemberikan nilai kepada array, kita harus mendeklarasikannya terlebih dahulu, yaitu :

intujian[4];

Perhatikan bahwa nilai 4 yang berada didalam tanda kurung menujukkan jumlahelemen

larik, bukan menunjukkan elemen larik yang ke-4.Jadi elemen larik ujian dimulai dari angka

0 sampai 3.

Pemrogram juga dapat menginisialisasi larik sekaligus mendeklarasikannya, 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 dapt 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.

MENGHITUNG JUMLAH ELEMEN ARRAYKarena fungsi sizeof() mengembalikan jumlah byte yang sesuai dengan argumennya,

maka operator tersebut dapat digunakan untuk menemukan 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 larik.

MELEWATKAN ARRAY SEBAGAI ARGUMEN FUNGSILarik dapat dikirim dan dikembalikan oleh fungsi. Pada saat larik dikirim ke dalam fungsi,

nilai aktualnya dapat dimanipulasi

36

Contoh-contoh soal yang mengandung larik beserta analisis nya antara lain:Contoh 1 (larik 1 dimensi)

#include<iostream.h>void input(int x[5]);void output(int x[5]);void main(){

int x[5]; // banyak larik yang dibutuhkanx[0]=1;x[1]=2;x[2]=3;x[3]=4;x[4]=5;

//////////

nilai yang terdapat dalam lariknilai yang terdapat dalam lariknilai yang terdapat dalam lariknilai yang terdapat dalam lariknilai yang terdapat dalam larik

x[0]x[1]x[2]x[3]x[4]

cout<<"Isicout<<"Isicout<<"Isicout<<"Isicout<<"Isi

xxxxx

adalahadalahadalahadalahadalah

"<<x[0]<<endl;"<<x[1]<<endl;"<<x[2]<<endl;"<<x[3]<<endl;"<<x[4]<<endl;

//////////

keluarankeluarankeluarankeluarankeluaran

x[0]x[1]x[2]x[3]x[4]

}

Contoh 2 (larik 2 dimensi)#include<iostream.h>void input(int x[5]);void output(int x[5]);void main(){

int x[2][2]={{1,2,3},{4,5,6}};

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

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

cout<<x[i][j<<]<<" ";}cout<<endl ;

}

}

37

10. PENERAPAN KONSEP PROSEDUR / FUNGSI

10.1. PROSEDURProsedur adalah modul program yang menjalankan tugas atau aktifitas yang spesifik dan

menghasilkan suatu efek netto.Diketahui dengan membandingkan keadaan awal dengan

keadaan akhir pada pelaksanaan sebuah prosedur.

Struktur prosedur sama dengan struktur algoritma yang sudah kita kenal, yaitu ada

bagian judul atau header. Yang terdiri dari nama prosedur, deklarasi, dan badan prosedur.

10.2. FUNGSIFungsi 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.

PROTOTIPE FUNGSISebuah fungsi tidak dapat dipanggil kecuali sudah dideklaraikan, deklarasi fungsi

dikenal dengan sebutan prototipe fungsi. Prototipe fungsi berupa :

1. Nama Fungsi

2. Tipe nilai fungsi

3. Jumlah dan tipe argumen

Dan diakhiri dengan titik koma, sebagaimana pada pendeklarasian variabel.

38

Sebagai contoh:1. longkuadrat (long l) ;

Pada contoh pertama, fungsi kuadrat ( ) mempunyai argument bertipe long dan nilai

balik bertipe long.

2. voidgaris ( );

Pada contoh kedua, fungsi garis ( ) tidakmemiliki argumen dan nilai baliknya tidak

ada (void).

3. doublemaks (double x, double y)

Pada contoh ketiga, fungsi maks( ) mempunyai dua buah argumen, dengan masing-

masing argumen bertipe double.

VARIABEL LOKAL DAN VARIABEL EKSTERNALVariabel 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 variable 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.

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

o Parameter Formal : parameter yang diberi nilai. Parameter formal merupakan parameteryang terdapat dalam daftar parameter fungsi.

o 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

39

fungsi :doublehasil(int A, int B) // parameter formal{

return(A * B);}

Sedangkan parameter aktual terdapat pada pemanggilan fungsi :

void main()

{ ……………

…………..

z = hasil(x,y); // parameter aktual

…………..

}

Cara Melewatkan Parameter

Cara melewatkan suatu parameter dalam Bahasa C++ ada dua cara yaitu :

1. Pemanggilan Secara Nilai (Call by Value)

o Call by value akan menyalin nilai dari parameter aktual ke parameter formal.

o Yang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak

dari datanya.

o Fungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari

nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi.

o Perubahan nilai di fungsi (parameter formal) tidak akan merubah nilai asli dibagian

program yang memanggilnya

o .Pengiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian

program yang memanggil fungsi ke fungsi yang dipanggil.

o Pengiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk

sebuah variabel, elemen array atau konstanta saja.

2. Pemanggilan Secara Referensi (Call by Reference)o Pemanggilan secara Referensi merupakan upaya untuk melewatkan alamat dari

suatu variabel ke dalam fungsi

o .Yang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai

datanya.

o Fungsi yang menerima kiriman alamat ini maka menggunakan alamat yang sama

untuk mendapatkan nilai datanya

40

o .Perubahan nilai di fungsi akan merubah nilai asli di bagian program yangmemanggil fungsi

o .Pengiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari

fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya.

o Pengiriman secara acuan tidak dapat bdilakukan untuk suatu ungkapan.

Contoh-contoh soal yang mengandung prosedur dan fungsi beserta analisis nya antara lain:Contoh 1 (membuat prosedur garis)

#include<iostream.h>

void garis();void main(){

garis ();

//prototype prosedur garis

//program utama//memanggil prosedur garis

cout<<"Nama saya Budi"<<endl;garis ();cout<<"saya adalah mahsiswa sistem informasi"<<endl;garis();

}

void garis() //prodesur garis{

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

Analisis :Pada contoh diatas memengggil prosedur garis yang prosedur garisnya di buat dibagian

bawah sekali.Ketika diperlukan maka prosedur garis dapat dipanggil.

Contoh 2 : (program menghitung luas lingkaran dengan prosedur)Buatlah program menghitung luas lingkaran dengan menggunakanprosedur dan ada prosedur input dan prosedur output.

Maka penulisan pada C++:#include<iostream.h>

void inputdata(int&jari);void hitungluas(int jari);

void main(){

int r;

cout<<"Program Menghitung Luas Lingkaran"<<endl;inputdata(r);hitungluas(r);

}

void hitungluas(int jari)

//memenggil prosedur//memenggil prosedur

//prodesur hitung

{float luas;const float phi =3.14;

41

luas = phi *jari*jari;cout<<"Luas = "<<luas<<endl;

}

void inputdata(int&jari) //prosedur masukan{

cout<<"Masukkan jari-jari:";cin>>jari;

}Analisis :

Pada contoh diatas terdapat dua buah prosedur dimana pertama prosedur masukan yang

menjadi masukan adalah jari-jari.Dan prosedur kedua adalah prosedur hitung yaitu tempat

menghitung laus dari lingkaran.

Contoh 3 : (Program menghitung factorial dengan prosedur)#include<iostream.h>

void faktorial (int n, int&fak);void main(){

int fak,n;

cout<<"Masukkan bilangan faktorial:";cin>>n;

faktorial (n,fak);

cout<<"Faktorialnya"<<fak<<endl;}

void faktorial(int n, int&fak){

int i;fak = 1;

for( i=1;i<=n;i++){

fak = fak *i ;}

}Analisis :

Pada contoh diatas merupakan prosedur untuk menghitung factorial dengan nilai n

sebagai masukan dan fak sebagai keluaran.nilai n yang dimasukkan di eksekusi ke n

yang ada didalam prosedur kemudian setelah dieksekusi di dalam prosedur factorial

hasilnya dikeluarkan kembali ke melalui fak.

Contoh 4 : (program menghitung factorial dengan fungsi)#include <iostream.h>

42

int faktorial(int N);

void main(){

int n;cout<<"Masukkan bilangan";cin>>n;

cout<<"Faktorialnya "<<faktorial(n);}

int faktorial(int N){

int i, fak;fak=1;for(i=1;i<=N;i++){

fak=fak*i;}return fak;

}Analisis :

Pada contoh diatas menghitung faktorial dengan menggunakan fungsi. DYang menjadi

cirri-ciri dari fungsi ini adalah adanya return.Fungsi menggunakan type data sebagai

prorotype nya.Dalam hal ini adalah int factorial,ynag mengambil n sebagai

masukan.Setelah n di ambil maka akan dieksekusi didalam fungsi.Setelah dieksekusi

maka dikembalikan lagi ke factorial yang menyatakan keluaran.dan kemudian

dikeluarkan sebagai output.

43

11. PENGENALAN POINTERPointer (variabel penunjuk) adalah suatu variabel yang berisi alamat memori dari suatuvariabel lain. Alamat ini merupakan lokasi dari obyek lain (biasanya variabel lain) di dalam

memori. Contoh, jika sebuah variabel berisi dari variabel lain, variabel pertama dikatakan

menunjuk ke variabel kedua.

Mendefinisikan variabel pointer

Suatu variabel pointer didefinisikan dengan bentuk sebagai berikut :

Tipe_data *nama_variabel;

tipe_data dapat berupa sembarang tipe seperti halnya pada pendefinisian variabelbukan pointer.

nama_variabel adalah nama variabel pointer.Beberapa contoh pendifinisian variabel pointer :

int *pint

char *pch

float *pfl

// Pointer ke int

//Pointer ke char

//Pointer ke float

variabel pointer pint dapat diatur agar menunjuk ke vint dengan cara sebagai berikut :

pint = &vint

Pernyataan di atas berarti : “pint diisi dengan alamat dari vint”. Operator & menyatakan

“alamat dari”.

Contoh 1 : (mengetahui alamat memori suatu pointer)//program untuk mengetahui alamat memori suatu pinter//nama file alamat.cpp

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

int x;float y;long z;

x = 3;y = 3.7;z = 1000;

cout<<"isi variabel x = "<<x<<endl;cout<<"isi variabel y = "<<y<<endl;cout<<"isi variabel z = "<<z<<endl;

cout<<endl;

cout<<"alamat variabel x = "<<&x<<endl;

44

cout<<"alamat variabel y = "<<&y<<endl;cout<<"alamat variabel z = "<<&z<<endl;

}Analisis :

Pointer merupakan penunjuk pada suatu program yang dimaskudkan untuk menunjukkan

kesuatu alamat memori.Pada program ini kta menginisialisai kan nilai x,y,dan z.Dimana

type untuk data x adalah int,y bertype float,dan z bertype long.Dari data tersebut dapat

diketahui dan dilihat alamat dimana data tersebut diletakkan.Alamat dapat diketahui

dengan mudah dengan cara menambahkan tanda & didepan nama variable.Dengan

mengirimkan ke cout,alamat dari suatu variable akan ditampilkan ke layer.Alamat pada

setiap computer berbeda sehingga.Jika program ini dipindahkan atau dibuka pada

computer lain.maka alamat yang ditampilkan akan berbeda.

Contoh 2 :#include<iostream.h>#include<conio.h>voidmain(){

int x;float y;long z;

int *x1;float *y1;long *z1;

x = 3;y = 3.7;z = 1000;

x1 = &x;y1 = &y;z1 = &z;

cout<<"isi variabel x = "<<x<<endl;cout<<"isi variabel y = "<<y<<endl;cout<<"isi variabel z = "<<z<<endl;

cout<<endl;

cout<<"alamat variabel x = "<<&x<<endl;cout<<"alamat variabel y = "<<&y<<endl;cout<<"alamat variabel z = "<<&z<<endl;

cout<<endl;

cout<<"isi pointer x1 = "<<*x1<<endl;cout<<"isi pointer y1 = "<<*y1<<endl;cout<<"isi pointer z1 = "<<*z1<<endl;

cout<<endl;

cout<<"Alamat pointer x1 = "<<x1<<endl;cout<<"Alamat pointer y1 = "<<y1<<endl;

45

cout<<"Alamat pointer z1 = "<<z1<<endl;

}

Analisis :Pada program ini merupakan program untuk mendefinisikan nama variable pointer ke

type data yang ada.Pertama definisikan dulu type data untuk x,y dan z. untuk data x

adalah int,y bertype float,dan z bertype long.lalu untuk membuat type baru untuk nama

variable pointer.dibuatlah int *x1 mendefiniskan nama variable pointer x1 agar memiliki

type data int,dan float *y1 mendefiniskan nama variable pointer y1 agar memiliki type

data float,dan long *z1 mendefiniskan nama variable pointer z1 agar memiliki type data

long,untuk memberikan nama variable pointer agar memiliki type data dengan cara

memberikan (*)/astarik di depan nama variable pointer yang akan diberikan type

data.Lalu membuat agar alamat dari int x1 =x,maka dibuatlah inisialisasi.x1 = &x1 agar

x1 memiliki alamat yang sama dengan x. y1 = &y1 agar y1 memiliki alamat yang sama

dengan y.dan z1 = &z1 agar z1 memiliki alamat yang sama dengan z.Telah diketahui

untuk menampilan alamat maka diberikan tanda (&).Dengan demikian nialia yang ada

akan menempati alamat yang sama.Dengan mengirimkan ke cout,alamat dari suatu

variable akan ditampilkan ke layer.Namun untuk menamplkan nilai pada pendefinisian

maka pada proses mengeluarkan dengan mengirimkan ke cout harus menggunakan astarik

(*).Sehingga akan muncul data yang terdapat pada alamat.Namun jika tidak diberi tanda

astarik (*) maka akan muncul alamat dari data tersebut.

46

12. REVIEW MATERIKasus IPada suatu hari, ada seorang anak yang bertanya kepada kakaknya tentang zodiak, “ kak, klo

tanggal 1 januari zodiaknya apa?” kakaknya pun menjawab “carpicorn”. Keesokan harinya

dia bertanya hal yang sama tetapi dengan tanggal yang berbeda. Kakaknyapun menjawab lagi

dengan sedikit agak kesal.Ternyata keesokan harinyapun masih begitu. Karena sang kakak

kesal ditanya hal it uterus kemudian sang kakak meminta bantuan temannya yang jago

pemrograman untuk membuatkan program tersebut, jadi ketika adiknya tidak harus selalu

bertanya kepada kakanya dan bias menggunkan program itu.

Tugas anda adalah membantu sang kakak untuk membuatkan program tersebut. Berikut

adalah jangkauan tanggal dari zodiaknya yang mungkin bisa membantu anda untuk membuat

programnya.

Aries : 21 Maret - 19 April

Taurus : 20 April - 20 Mei

Gemini : 21 Mei - 20 Juni

Cancer : 21 Juni - 22 Juli

Leo : 23 Juli - 22 Agustus

Virgo : 23 Agustus - 22 September

Libra : 23 September - 22 Oktober

Scorpio : 23 Oktober - 21 Nopember

Sagitarius : 22 Nopember - 21 Desember

Carpicorn : 22 Desember - 19 Januari

Aquarius : 20 Januari - 18 Februari

Pisces : 19 Februari - 20 Maret

Dengan asumsi program bahwa tanggal (1 s/d 31) dan bulan (1 s/d 12) yang dimasukkan olehsi adik selalu dalam keadaan benar.

Input:Baris pertama berisi tanggal (1 ≤ tanggal ≤ 31 ), baris kedua berisi bulan ( 1 ≤ bulan ≤12 ).

Output:

Berisi nama zodiac dari tanggal yang diinputkan

47

Kasus II :Buatlah Program untuk membentuk diamond array seperti berikut ini :

*

* * *

* *

*

*

*

*

*

*

*

1

1 2 3

1 2

1

3

2

4

3

5

1

48


Top Related