Anda di halaman 1dari 49

http533www.hendra-jatnika.web.

id

I.PENDAHULUAN
1. 1. ALGORITMA Algoritma 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++ erbicara tentang C++ biasanya tidak lepas dari C, sebagai bahasa pendahulunya. !encipta C adalah rian ". #erninghan dan $ennis %. &itchie pada sekitar tahun '()2, dan sekitar satu dekade setelahnya diciptakanlah C++, oleh jarne Stroustrup dari *aboratorium ell, A+,+, pada tahun '(-.. C++ cukup kompatibel dengan bahasa pendahulunya C. !ada mulanya C++ disebut / a better C /. 0ama C++ sendiri diberikan oleh &ick %ascitti pada tahun '(-., yang berasal dari operator increment pada bahasa C. #eistimewaan yang sangat berari dari C++ ini adalah karena bahasa ini mendukung pemrograman yang berorientasi objek 1 22! 3 2bject 2riented !rogramming4. 1.3. LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++ *angkah-langkahnya 5 1. Bukalah !"#$a%& Tu%'! C++( aka) #&%l*ha# #a+,*la) a$al Tu%'! C++ sebagai berikut 5

http533www.hendra-jatnika.web.id

2. Tul*

!u%-& -!.& ,%!/%a+ 'aha a C++.

Source code C++ dapat ditulis pada te6t editor +urbo C++. 3. K!+,*l& "*l& .&)/a) 0ALT + C a#au ,*l*h u'+&)u C!+,*l&1 #ompile file dijalankan 7ntuk mengubah source code menjadi sebuah program, kita gunakan compiler. Setelah source code tercompile, terbentuklah sebuah file objek dengan ekstension / .obj /. 8ile / .obj / ini belum merupakan sebuah program e6ecutable. 2. 3ala)ka) P%!/%a+ .&)/a) 0CTRL+45 a#au ,*l*h u'+&)u Ru)1 Setelah kita kompile file yang berisi source code, maka sebagai hasil kompilasi tersebut kita akan mendapatkan suatu file yang bisa dijalankan 1executable file4. %enjalankan program yang kita buat berarti menjalankan file hasil proses kompilasi tersebut. 6. U)#uk +&)7*+,a) ,*l*h +&)u Sa8& A

http533www.hendra-jatnika.web.id

II. PENGENALAN C++


Setiap program C++ mempunyai bentuk umum seperti di bawah, yaitu5 : prepocessor directi;e 8!*. main14 < 33 atang +ubuh !rogram 7tama = P&)9&la a) : 1. I)-lu.& Adalah salah satu pengarah umumnya 5 : include >nama?file@ #*.ak .*akh*%* dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directi;e. aris tersebut menginstrusikan kepada kompiler yang menyisipkan file lain dalam hal ini file yang berakhiran .h1file header4 yaitu file yang berisi sebagai deklarasi contohnya5 - : include >iostream.h@ - : include >conio.h@ - : include >iomanip.h@ - : include >math.h@ 5 diperlukan pada program yang melibatkan objek cout 5 diperlukan bila melibatkan clrscr14,yaitu perintah untuk membersihkan layar. 5 diperlukan bila melibatkan setw14 yang bermanfaat untuk mengatur lebar dari suatu tampilan data. 5 diperlukan pada program yang menggunkan operasi sArt 14 yang bermanfaat untuk operasi matematika kuadrat. prepocessor directive yang tersedia pada C++. !reprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. entuk

http533www.hendra-jatnika.web.id

2.4u)/ * +a*) 01 8ungsi ini menjadi awal dan akhir eksekusi program C++. +a*) adalah nama judul fungsi. %elihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama berada didalam fungsi main1 4. erarti dalam setiap pembuatan program utama, maka dapat dipastikan seorang pemrogram menggunakan minimal sebuah fungsi. !embahasan lebih lanjut mengenai fungsi akan diterangkan kemudian. Cang sekarang coba ditekankan adalah kita menuliskan program utama kita didalam sebuah fungsi main14. 3. K!+&)#a% #omentar tidak pernah dicompile oleh compiler. $alam C++ terdapat 2 jenis komentar, yaitu5 Denis ' 5 3E #omentar anda diletakkan di dalam ini isa mengapit lebih dari satu baris E3 Denis 2 5 33 #omentar anda diletakkan disini 1 hanya bisa perbaris 4 2.Ta).a S&+*-!l!) +anda semicolon / F G digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon. 6. M&)/&)al -!u#0.*'a-a : C !u#1 !ernyataan cout merupakan sebuah objek di dalam C++, yang digunakan untuk mengarahkan data ke dalam standar output 1cetak pada layar4 C!)#!h :

+anda / >> / merupakan sebuah operator yang disebut operator /penyisipan3peletakanG

http533www.hendra-jatnika.web.id

III. ;ARIABEL( TIPE DATA


3.1 ;ARIABEL Iariabel adalah suatu pengenal 1identifier4 yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. erbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu ;ariable bisa diubah-ubah sesuai kebutuhan. 7ntuk memperoleh nilai dari suatu ;ariable digunakan pernyataan penugasan 1assignment statement4, yang mempunyai sintaks sebagai berikut 5 ;ariable J ekspresi F 0ama dari suatu ;ariable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut 5 '. +erdiri dari gabungan huruf dan angka dengan karakter pertama harus berupa huruf. ahasa C ++ bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Dadi antara )*+( NIM dan N*+ dianggap berbeda. 2. +idak boleh mengandung spasi. .. +idak boleh mengandung symbol-simbol khusus, kecuali garis bawah 1underscore4. Cang termasuk symbol khusus yang tidak diperbolehkan antara lain 5 K, L, M, :, N, ,, E, 1, 4, -, +, Jdsb. 9. !anjangnya bebas, tetapi hanya .2 karakter pertama yang terpakai. Contoh penamaan ;ariabel yang benar 5 0O%, a, 6, nama?mhs, f.P(-, f9, nilai, budi, dsb. Contoh penamaan ;ariable yang salah 5 Mnilai?mahasiswa, -Pmahasiswa, rata-rata, ada spasi, pentingN, dsb 3.2 DEKLARASI $eklarasi diperlukan bila kita akan menggunakan pengenal 1identifier4 dalam program. Odentifier dapat berupa ;ariable, konstanta dan fungsi.

http533www.hendra-jatnika.web.id

3.2.1 DEKLARASI ;ARIABEL entuk umumnya 5 0ama?tipe nama?;ariabel F Contoh 5 int 6F 33 Deklarasi x bertipe integer char y, huruf, nimQ'PRF 33 Deklarasi variable bertipe char float nilaiF 33 Deklarasi variable bertipe float double betaF 33 Deklarasi variable bertipe double int arrayQBRQ9RF 33 Deklarasi array bertipe integer Contoh 5

2utputnya 5

3.2.1 DEKLARASI KONSTANTA a. %enggunakan keyword const Contoh 5 const float !O J ..'9'B2(HBF erbeda dengan ;ariable, konstanta bernama tidak dapat diubah jika telah diinisialisasi b. %enggunakan :define Contoh 5 :define !O ..'9'B2(HB #euntungan menggunakan :define apabila dibandingkan dengan -!) # adalah kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama kali mencari symbol :define 1oleh sebab itu mengapa : dikatakan prepocessor directi;e4 dan mengganti semua !hi dengan nilai ..'9'B2(HB.
)

http533www.hendra-jatnika.web.id

Contoh 5

3.3 TIPE DATA +ipe data dapat dikelompokkan menjadi atas dua macam 5 '. +ipe $asar. 2. +ipe entukkan. 3.3.1 TIPE DASAR Adalah tipe yang dapat langsung dipakai. T*,& Da a% Char Ont *ong 8loat $ouble long double Uku%a) M&+!%* 0'7#&1 ' 2 9 9 'P -'2- hingga +'2) -.2)H- hingga +.2)H) -2.'9).9.-.H9- hingga 2.'9).9.-.H9) .,9S-.- hingga .,9S.'.)S-.P- hingga '.)S.P..9S-9(.2 hingga '.'S9(.2 H-) 'B-'H '( 3a)/kaua) N*la* 3u+lah D*/*# P%& * * -

0 5 7ntuk mengetahui ukuran memori dari suatu tipe digunakan fungsi siTeof1tipe4 +ipe data dapat diubah 1 type cast 4, misalkan5 float 6 J ...9BF int p J int164F maka nilai p adalah . 1 terjadi truncating 4.

http533www.hendra-jatnika.web.id

+ipe data yang berhubungan dengan bilangan bulat adalah char, int, long. Sedangkan lainnya berhubungan dengan bilangan pecahan. Contoh 5

2utputnya 5 $arimana angka '-'2B diperoleh L Dika ;ariable tidak diinisialisai, namun nilai keluarannya diminta, maka compiler dengan bijak akan menampilkan nilai acak yang nilainya tergantung dari jenis compilernya. 3.3.1.1 KARAKTER & STRING LITERAL String adalah gabungan dari karakter Contoh 5 / elajar / *iteral String / / #arakter !anjang String strlen14 nama fungsi untuk menghitung panjang string 8ungsi strlen14 dideklarasikan dalam file string.h. Dadi bila anda ingin menggunakan fungsi strlen14, maka prepocessor directi;e :include>string.h@ harus dimasukkan dalam program diatas main14. Contoh 5

http533www.hendra-jatnika.web.id

2utputnya5

!erhatikan, bahwa disetiap akhir baris pernyataan diakhiri dengan tanda titik U koma 1semicolon4 / F /. !erhatikan, bahwa 5 V Wn V dihitung satu karakter. Wn disebut newline karakter Sndl juga merupakan newline karakter 1 sama kegunaannya seperti Wn 4. $alam C++, selain Wn terdapat juga beberapa karakter khusus yang biasa disebut escape sequence characters, yaitu Ka%ak#&% WP Wa Wb Wf Wn Wr Wt W; WW WX WG WL Wooo W6hh K&#&%a)/a) #arakteeer ber-ASCOO nol 1 karakter null 4 #arakter bell #arakter backspace #arakter ganti halaman 1 formfeed 4 #arakter baris baru 1 newline 4 #arakter carriage return 1 ke awal baris 4 #arakter tab horiTontal #arakter tab ;ertika #arakter W #arakter V #arakter / #arakter L #arakter yang nilai oktalnya adalah ooo 1 . digit octal 4 #arakter yang nilai heksadesimalnya adalah hh 12 digit heksadesimal 4

3.3.1.2 KE<=ORD & IDENTI4IER $alam bahasa pemrograman, suatu program dibuat dari elemen-elemen sintaks indi;idual yang disebut token, yang memuat nama ;ariable, konstanta, keyword, operator dan tanda baca.

'P

http533www.hendra-jatnika.web.id

Contoh 5

2utput 5 !rogram diatas memperlihatkan 'B token, yaitu main, 1, 4, <, int, n, J, HH, F, cout, >>, endl, return, P dan = +oken n adalah suatu ;ariable +oken HH,P adalah suatu konstanta +oken int, return dan endl adalah suatu keyword +oken J dan >> adalah operator +oken1, 4, <, F, dan = adalah tanda baca aris pertama berisi suatu prepocessor directi;e yang bukan bagian sebenarnya dari program 3.3.2 TIPE BENTUKAN %erupakan tipe yang dibentuk dari tipe dasar. Seperti +ipe Struktur. 3.3.2.1 TIPE STRUKTUR Suatu tipe data yang merupakan kumpulan dari tipe data lainnya. Struktur terdiri dari data yang disebut field. 8ield U field tersebut digabungkan menjadi satu tujuan untuk kemudahan dalam operasi. B&)#uk u+u+)7a : tyedef struct< tipe nama?field'F tipe nama?field2F tipe nama?field.F .... =nama?;ariabelF

''

http533www.hendra-jatnika.web.id

Contoh 5

!erhatikan bahwa pada akhir dari #7,&.&" #%u-# diberi tanda semicolon. La#*ha) : '. uatlah program dengan menggunakan define untuk menghitung ;olume +abung 1&umus Iolume +abung 5 phi 6 jari-jari 6 jari-jari 6 tinggi4 dan *uas +abung 1&umus *uas tabung 5 2 6 phi 6 jari-jari 6 tinggi 4dimana jari-jari ) dan tinggi 29. 2. uatlah program untuk mencatat data mahasiswa yang terdiri dari field nama, nim dan nilai.

'2

http533www.hendra-jatnika.web.id

I;. OPERATOR DAN STATEMEN I>O


2.1 OPERATOR 2perator adalah symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi. 2.1.1 OPERATOR PENUGASAN 2perator !enugasan 1Assignment operator4 dalam bahasa C++ berupa tanda sama dengan 1/JG4. Contoh 5 nilai J -PF A J 6 E yF !enjelasan 5 ;ariable /nilaiG diisi dengan -P dan
;ariable /AG diisi dengan hasil perkalian antara 6 dan y.

2.1.2 OPERATOR ARITMATIKA 2perator $eskripsi Contoh

+ !enjumlahan 1 Add 4 m+n !engurangan 1 Substract 4 mUn E !erkalian 1 %ultiply 4 mEn 3 !embagian 1 $i;ide 4 m3n M Sisa !embagian Onteger 1 %odulus 4 mMn 0egasi 1 0egate 4 -m 0 5 2perator seperti operator negasi 1-4 disebut unary operator, karena membutuhkan hanya satu buah operand 2perator M 1modulus4 digunakan untuk mencari sisa pembagian antara dua bilangan. %isalnya 5 ( M 2 J ', ( M . J P Contoh 5

'.

http533www.hendra-jatnika.web.id

2utput 5

#arena tipe datanya adalah int, maka -232HJ., supaya dapat merepresentasikan nilai yang sebenarnya, gunakan tipe data float. Cara lain penulisan dengan menggunakan operator aritmatika 5 mJm+n mJm-n mJmEn mJm3n mJmMn m +J n m -J n m EJ n m 3J n m MJ n

2.1.3 OPERATOR HUBUNGAN 0PERBANDINGAN1 2perator Yubungan digunakan untuk membandingkan hubungan antara dua buah operand 1sebuah nilai atau ;ariable4. 2perator hubungan dalam bahasa C++ O,&%a#!% JJ NJ @ > @J >J A%#* Sama dengan 1bukan assignment 4 +idak sama dengan *ebih besar *ebih kecil *ebih besar atau sama dengan *ebih kecil atau sama dengan 6J Jy 6 NJ y 6@y 6>y 6 @J y 6 >J y C!)#!h Apakah 6 sama dengan y Apakah 6 tidak sama dengan y Apakah 6 lebih besar dari y Apakah 6 lebih kecil dari y Apakah 6 lebih dari sama dengan y Apakah 6 kurang dari sama dengan y

'9

http533www.hendra-jatnika.web.id

Contoh5

2utputnya 5

2.1.2 OPERATOR NAIK DAN TURUN 0 INCREMENT DAN DECREMENT 1 2perator increment ++ 2perator decrement -Contoh 5

2utputnya 5

+erlihat bahwa operator pre-increment dan post-increment memiliki akibat yang sama, yaitu manambah nilai satu pada m dan memasukkan nilai tersebut kembali ke m 1mJm+'4. Yal yang sama juga terjadi pada operator pre-decrement dan post-decrement yang memberikan akibat yang sama, yaitu mengurangi nilai satu dari n 1 n J n - '4.

'B

http533www.hendra-jatnika.web.id

+etapi bila digunakan sebagai sub-ekspresi, operator post-increment dan preincrement menunjukkan hasil yang berbeda Contoh 5

2utputnya 5

!enjelasan 5 $alam penugasan yang pertama, m adalah pre-increment, menaikkan nilainya menjadi H), yang selanjutnya dimasukkan ke n. $alam penugasan kedua, m adalah post-increment, sehingga H) dimasukkan dahulu ke n baru kemudian nilai m-nya dinaikkan, itu sebabnya mengapa nilai m J H- dan n J H). $alam penugasan ketiga, m adalah post-increment, sehingga nilai m 1 J H- 4 ditampilkan dahulu 1 ke layar 4 baru kemudian nilai m dinaikkan menjadi H(. $alam penugasan keempat, m adalah pre-increment, sehingga nilai m dinaikkan dahulu menjadi )P baru kemudian ditampilkan ke layar. Supaya lebih paham, perhatikan pula contoh dibawah. Contoh 5

'H

http533www.hendra-jatnika.web.id

!enjelasan 5 $alam penugasan untuk n, pertama kali m dinaikkan 1++m4 menjadi H, kemudian m diturunkan kembali menjadi B, karena adanya --m. Sehingga nilai m sekarang adalah B dan nilai m J B inilah yang die;aluasi pada saat penugasanperkalian dilakukan. !ada baris terakhir, ketiga sub-ekspresi die;aluasi dari kanan ke kiri. 2.1.6 OPERATOR BIT=ISE 2perator >> @@ , [ \ ^ char erikut ini diberikan tabel kebenaran untuk operator logika ! J A operator A0$ A P P ' ' ]2& A P P ' ' P ' P ' ! P ' ' P P ' P ' ! P P P ' 2& A P P ' ' P ' P ' ! P ' ' ' $eskripsi Zeser n bit ke kiri 1 left shift 4 Zeser n bit ke kanan 1 right shift 4 itwise A0$ itwise 2& itwise ]2& itwise 02+ Contoh m >> n m @@ n m,n m[n m\n ^m

0 5 Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau

')

http533www.hendra-jatnika.web.id

Contoh 5

2utput 5

!enjelasan 5 0ilai keluaran diatas, tergantung dari jenis compiler yang digunakan. Yasil diatas merupakan keluaran dari compiler +urbo C++. !ada +urbo C++ besar dari integer adalah 2 byte atau sama dengan 'H bit, untuk mengetahuinya digunakan perintah cout>>siTeof1int4>>endlF 33 7ntuk mengetahui besar dari int %aka 5 -2'P J PPPPPPPPP'P'PP'P 2 dan 2H'P J PPPPPPPPPPP''P'P 2 Sehingga 5 -2 >> 2 PPPPPPP'P'PP'PPP2 J .2-'P -2 @@ 2 PPPPPPPPPPP'P'PP2 J 2P'P -2 , 2H PPPPPPPPP'P'PP'P2 PPPPPPPPPPP''P'P 2
------------------------------------------ ,

PPPPPPPPPPP'PP'P2 J '-'P dan begitu juga untuk operasi 2& dan ]2&. ^-2 digunakan 2Xs complement, yaitu

'-

http533www.hendra-jatnika.web.id

-2'P J PPPPPPPPP'P'PP'P 2 lalu dinegasikan tiap bitnya menjadi '''''''''P'P''P'


2

kemudian *S ditambah ' menjadi

'''''''''P'P'''P J HB9B9'P nilai ini melebihi jangkauan maksimum int yang berkisar di -.2)H- sampai .2)H), sehingga nilai yang keluar yaitu -.. Cara lain penulisan dengan menggunakan operator bitwise 5 m J m >> n m J m @@ n mJm,n mJm[n mJm\n m >>J n m @@J n m ,J n m [J n m \J n

3.1.? OPERATOR LOGIKA 2perator logika digunakan untuk menghubungkan dua atau lebih sebuah ungkapan berkondisi. 2perator ,, [[ N Contoh 5 $eskripsi logic A0$ logic 2& logic 02+ Contoh m ,, n m [[n Nm ungkapan menjadi

2utputnya 5

!enjelasan 5 Yasil keluaran dari operator logika adalah P dan '. P jika keluarannya salah dan ' jika keluarannya benar.

'(

http533www.hendra-jatnika.web.id

3.1@ OPERATOR KONDISI 2perator kondisi digunakan untuk memperoleh nilai dari dua kemungkinan ungkapan1 L ungkapan2 5 ungkapan3 ila nilai ungkapan1 benar, maka nilainya sama dengan ungkapan2, bila tidak maka nilainya sama dengan ungkapan3 Contoh 5

2utputnya 5

3.2 STATEMEN I>O !ada C++ terdapat 2 jenis O32 dasar, yaitu5 a. Statemen Onput adalah Statemen 3 fungsi yang digunakan untuk membaca data dari inputing de;ice 1keyboard3mouse4, contoh 5 cout 1character out4 b. Statemen 2utput adalah Statemen yang digunakan untuk menuliskan data ke layar monitor, contoh 5 cin 1character in4 Contoh '5

2P

http533www.hendra-jatnika.web.id

Contoh 25

2utputnya 5

Contoh .5

2utput 5

2'

http533www.hendra-jatnika.web.id

*atihan '. uatlah program untuk menghitung luas bangunan geometri 1bujursangkar, lingkaran, segitiga dan trapesium4. $ata masukkan dibaca dari piranti masukkan dan luas bangun ditampilkan sebagai keluaran.
2.

uatlah program untuk menghitung harga total suatu barang, dimana jumlah barangnya B, harga perunit B2P..P2. uatlah program untuk penggunaan operasi aritmatika yaitu penjumlahan, pembagian, perkalian, dan pengurangan dengan ;ariabel yang diinputkan. bilangan ganjil antara ' sampai 0, dimana 0

..

9. %encetak sejumlah deret dimasukkan oleh user.

22

http533www.hendra-jatnika.web.id

I;. PEMILIHAN
Suatu Struktur dasar algoritma yang memiliki satu atau lebih kondisi tertentu dimana sebuah instruksi dilaksanakan jika sebuah kondisi3persyaratan terpenuhi. Ada beberapa bentuk struktur dasar pemilihan ini 5 2.1 PERN<ATAAN if Sebuah pernyataan yang dapat dipakai muntuk mengambil keputusan berdasarkan suatu kondisi. entuk pernyataan ini ada dua macam 5 *" saja dan &l &

B&)#uk U+u+)7a Sa#u Ka u : *" 1kondisi4 pernyataan F !ernyataan dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak program tidak memberikan hasil apa-apa. Contoh 5

2utputnya 5

2.

http533www.hendra-jatnika.web.id

!enjelesan 5 +ampak bahwa kalau usia yang dimasukkan lebih dari atau sama dengan '), program tidak menghasilkan apa-apa. B&)#uk U+u+)7a Dua Ka u : *" 1kondisi4 pernyataan' F &l & pernyataan2F !ernyataan' dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak, lakukan pernyataan2. Dika Anda tidak mempergunakan pernyataan else program tidak akan error, namun jika anda mempergunakan pernyataan else tanpa didahului pernyataan if, maka program akan error. Dika pernyataan' atau pernyataan2 hanya terdiri dari satu baris, maka tanda < = tidak diperlukan, namun jika lebih maka diperlukan. B&)#uk U+u+)7a Ba)7ak Ka u :

*" 1kondisi4 < pernyataan'F pernyataan'aF pernyataan'bF = &l & < pernyataan2F pernyataan2aF pernyataan2bF =

29

http533www.hendra-jatnika.web.id

Contoh '5

Contoh 25

2utputnya 5

!enjelesan 5 +erlihat bahwa kalau usia yang dimasukkan lebih dari '), program akan memberi pesan Selamat %enonton. Selain dari *" _ &l &, juga dikenal bentuk *" _ &l & *". Adapun perbedaannya diilustrasikan oleh dua contoh dibawah ini.

2B

http533www.hendra-jatnika.web.id

Contoh . 5

2utputnya5

%engapa L #arena contoh 2 sama saja jika ditulis seperti dibawah ini Contoh 9 5

Contoh diatas disebut juga nested conditional


2H

http533www.hendra-jatnika.web.id

2.2 PERN<ATAAN Switch !ernyataan $*-h adalah pernyataan yang digunakan untuk menjalankan salah satu pernyataan dari beberapa kemungkinan pernyataan, berdasarkan nilai dari sebuah ungkapan dan nilai penyeleksian. !ernyataan *"_&l & *" jamak dapat dibangun dengan pernyataan $*#-h. B&)#uk U+u+)7a : $*#-h 1ekspresi4 < -a & konstanta' 5 pernyataan' F '%&ak F -a & konstanta2 5 pernyataan2 F '%&ak F -a & konstanta. 5 pernyataan. F '%&ak F 5 5 -a & konstanta0 5 pernyataan0 F '%&ak F .&"aul# 5 pernyataanlainF = Yal U hal yang perlu diperhatikan adalah 5 '. $ibelakang keyword case harus diikuti oleh sebuah konstanta, tidak boleh diikuti oleh ekspresi ataupun ;ariable. 2. #onstanta yang digunakan bertipe int atau char .. Dika bentuknya seperti diatas maka apabila ekspresi sesuai dengan konstanta2 maka pernyataan2, pernyataan. sampai dengan pernyataanlain dieksekusi. 7ntuk mencegah hal tersebut, gunakan keyword '%&akA. Dika keyword '%&ak digunakan maka setelah pernyataan2 dieksekusi program langsung keluar dari pernyataan $*#-h. Selain digunakan dalam $*#-h, keyword break banyak digunakan untuk keluar dari pernyataan yang berulang 1 looping 4.

2)

http533www.hendra-jatnika.web.id

. pernyataanlain dieksekusi jika konstanta' sampai konstanta0 tidak ada yang memenuhi ekspresi. Contoh 5

2utput 5

#et 5 9B, dan 9BP adalah input dari user

2-

http533www.hendra-jatnika.web.id

La#*ha) : '. 2. uatlah program untuk mencari apakah bilangan tersebut ganjil atau genap, dimana bilangan merupakan piranti masukkan uatlah program untuk menseleksi suatu bilangan dengan ketentuan sebagai berikut 5 P>Jnilai >.P .P>Jnilai > HP HP>Jnilai>J'PP .. 5 0ilai rendah 5 0ilai sedang 5 0ilai tinggi

uatlah program dalam bentuk menu yang mampu menghitung 5 a. *uas dan #eliling ujur sangkar b. *uas dan #eliling persegi panjang c. *uas dan keliling lingkaran

2(

http533www.hendra-jatnika.web.id

;. PENGULANGAN
Sebuah 3 kelompok instruksi diulang untuk jumlah pengulangan tertentu. aik yang terdifinisikan sebelumnya ataupun tidak. Struktur pengulangan terdiri atas dua bagian 5 '. #ondisi pengulangan yaitu ekspresi boolean yang harus dipenuhi untuk melaksanakan pengulangan 2. Osi atau badan pengulangan yaitu satu atau lebih pernyataan 1aksi4 yang akan diulang. !erintah atau notasi dalam struktur pengulangan adalah 5 '. !ernyataan $h*l& 2. !ernyataan .!..$h*l& .. !ernyataan "!% 9. !ernyataan -!)#*)u& .a) '%&ak B. !ernyataan /! #! 6.1 PERN<ATAAN while !ernyataan $h*l& merupakan salah satu pernyataan yang berguna untuk memproses suatu pernyataan atau beberapa pernyataan beberapa kali. !ernyataan $h*l& memungkinkan statemen-statemen yang ada didalamnya tidak diakukan sama sekali. B&)#uk U+u+)7a : $h*l& 1kondisi4 < !ernyataan F =

.P

http533www.hendra-jatnika.web.id

Contoh5

2utput 5

!enjelasan 5 !rogram diatas digunakan untuk mengulangan tulisan sebanyak 'P kali 6.2 PERN<ATAAN dowhile !ernyataan .!_$h*l& mirip seperti pernyataan $h*l&, hanya saja pada .!_$h*l& pernyataan yang terdapat didalamnya minimal akan sekali dieksekusi. B&)#uk U+u+)7a : .! < pernyatan F = $h*l&1kondisi4F

.'

http533www.hendra-jatnika.web.id

Contoh 5

6.3 PERN<ATAAN for !ernyataan "!% digunakan untuk menghasilkan pengulangan1looping4 beberapa kali tanpa penggunaan kondisi apapun. !ada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. !ernyataan for digunakan untuk melakukan looping. !ada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya. Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi. B&)#uk U+u+)7a : "!% 1inisialisasi F kondisi F perubahan4 < "tatement# = Contoh 5

.2

http533www.hendra-jatnika.web.id

agaimana jika program diatas diubah menjadi

!rogram diatas akan menampilkan bilangan yang banyaknya tak terhingga sehingga dapat membuat komputer anda berhenti bekerja. Contoh diatas juga merupakan prinsip membuat bom program 1 contohnya 5 bom mail 4 !ernyataan for dapat berada di dalam pernyataan for lainnya yang biasa disebut nested for Contoh 5

6.3 PERN<ATAAN continue .a) break !ernyataan break akan selalu terlihat digunakan bila menggunakan pernyataan s$itch. !ernyataan ini juga digunakan dalam loop. ila pernyataan ini dieksekusi, maka akan mengakhiri loop dan akan menghentikan itrasi pada saat tersebut.

..

http533www.hendra-jatnika.web.id

!ernyataan continue digunakan untuk pergi ke bagian awal dari blok loop untuk memulai iterasi berikutnya. Contoh 5

2utput 5

!enjelasan 5 $ari program diatas, dapat dilihat perulangan dari suatu bilangan sebanyak 'P kali. +etapi, pada perulangan iJ9, ada perintah continue. $engan perintah ini, maka program langsung meloncat ke loop berikutnya dan ketika sampai perulangan i J H, ada perintah break. 2tomatis program akan berhenti dan tidak sampai ke iJ'P. $an program akan mencetak bilangan P, bilangan ', bilangan 2, bilangan ., bilangan B, bilangan H. 6.6 PERN<ATAAN go to !ernyataan /!#!, diperlukan untuk melakukan suatu lompatan ke suatu pernyataan berlabel yang ditandai dengan tanda / 5 /. B&)#uk U+u+)7a : /!#! bawahF pernyataan'F pernyataan2F bawah 5 pernyataan .F

.9

http533www.hendra-jatnika.web.id

!ada contoh diatas, pada saat goto ditemukan maka program akan melompat pernyataan berlabel bawah dan melakukan pernyataan .. Contoh 5

2utputnya 5

La#*ha) : '. 2. uatlah program untuk mencetak deret 'P ( - ) H B 9 . 2 ' uatlah program untuk mencetak 1gunakan perulangan while atau for4 EEEE EEE EE E .. uatlah program yang menampilkan B buah bilangan, yaitu mulai dari bilanagn ke B sampai bilangan ke ' dengan nilai awal bilangan -. +ampilan bilangan tersebut adalah menurun dan contohnya adalah 5 bilangan ke B, iJ. 1diperoleh dari --B4dan seterusnya sampai bilangan ', iJ) 1diperoleh dari --'J)4

.B

http533www.hendra-jatnika.web.id

;I. 4UNGSI
?.1. 4UNGSI 8ungsi adalah sekumpulan perintah operasi program yang dapat menerima argumen input dan dapat memberikan hasil output yang dapat berupa nilai ataupun sebuah hasil operasi. Yasil akhir fungsi akan berupa sebuah nilai balik 1return4 0ama fungsi yang didefinisikan sendiri oleh pemrogram tidak boleh sama dengan nama build-in function pada compiler C++. 8ungsi digunakan agar pemrogram dapat menghindari penulisan bagian program 1kode4 berulang-ulang, dapat menyusun kode program agar terlihat lebih rapi dan kemudahan dalam debugging program. !arameter adalah nama-nama peubah yang dideklarsikan pada bagian header fungsi. !emrogram dapat membuat fungsi yang didefinisikan sendiri olehnya.

8ungsi %ain 1 4

8ungsi a 1 4

8ungsi b 1 4

8ungsi c 1 4

8ungsi c' 1 4

8ungsi c2 1 4

8ungsi c. 1 4

B&)#uk u+u+)7a : $eklarasi parameter < Osi fungsi =

.H

http533www.hendra-jatnika.web.id

?.1.1 PROTITE 4UNGSI Sebuah fungsi tidak dapat dipanggil kecuali sudah dideklaraikan, deklarasi fungsi dikenal dengan sebutan prototipe fungsi. !rototipe fungsi berupa 5 '. 0ama 8ungsi 2. +ipe nilai fungsi .. Dumlah dan tipe argumen $an diakhiri dengan titik koma, sebagaimana pada pendeklarasian ;ariabel. Sebagai contoh5 '. l!)/ kuadrat 1l!)/ l4 F !ada contoh pertama, fungsi kuadrat 1 4 mempunyai argumen bertipe long dan nilai balik bertipe l!)/. 2. 8!*. garis 1 4F !ada contoh kedua, fungsi garis 1 4 tidakmemiliki argumen dan nilai baliknya tidak ada 18!*.4. .. .!u'l& maks 1.!u'l& 6, .!u'l& y4 !ada contoh ketiga, fungsi maks1 4 mempunyai dua buah argumen, dengan masingmasing argumen bertipe double. Contoh 5

.)

http533www.hendra-jatnika.web.id

!enjelasan 5 33 8ungsi !erkalian 33 tipe?return nama?fungsi 1tipe?argument argumen4

8ungsi yang didefinisikan oleh pemrogram terdiri atas dua bagian, yaitu judul 1header4 dan isi 1body4. Dudul dari sebuah fungsi terdiri dari tipe return 1.!u'l&4, nama fungsi 1hasil4 dan list parameter 1 *)# A, *)# 4. Dadi, judul untuk fungsi hasil adalah .!u'l& hasil 1*)# A, *)# 4 Osi dari sebuah fungsi adalah blok kode yang mengikuti judulnya. erisi kode yang menjalankan aksi dari fungsi, termasuk pernyataan return yang memuat nilai fungsi yang akan dikembalikan ke yang memanggilnya, Osi dari fungsi hasil 1 4 adalah < %&#u%) A E F = iasanya isi dari fungsi cukup besar. %eskipun demikian, judulnya tetap hanya berada dalam satu baris. Osi dari sebuah fungsi dapat memanggil fungsi itu sendiri 1disebut rekursif4 atau memanggil fungsi lainnya. !ernyataan return dari sebuah fungsi mempunyai dua manfaat, yaitu akan mengakhiri fungsi dan mengembalikan nilainya ke program pemanggil. B&)#uk u+u+ pernyataan return adalah 5 %&#u%) ekspresiF $engan ekspresi adalah sebuah ekspresi yang nilainya dinyatakan untuk sebuah ;ariable yang tipenya sama seperti tipe %&#u%). +erdapat juga fungsi yang tidak memberikan nilai balik atau tipe %&#u%)nya ;oid.
.-

http533www.hendra-jatnika.web.id

Contoh 5

?.1.2 ;ARIABEL LOKAL DAN ;ARIABEL EKSTERNAL Iariabel lokal adalah ;ariabel yang didefinisikan dalam suatu fungsi tertentu, sehingga hanya dikenal dalam fungsi tersebut. $alam hal ini artinya suatu fungsi tidak akan mengenal ;ariabel lokal dan fungsi lain. Suatu fungsi hanya akan mengenal ;ariabel yang didefinisikan dalam fungsi yang bersangkutan. Iariabel eksternal adalah ;ariabel yang bersifat global yang dapat dikenali oleh seluruh fungsi yang terdapat dalam program tersebut. Seluruh fungsi akan mengenal ;ariabel yang bersifat eksternal ini. Iariabel eksternal dideklarasikan diluar fungsi dan sejajar dengan prototipe fungsi serta pengarah kompiler. Contoh 5

.(

http533www.hendra-jatnika.web.id

2utputnya 5

!enjelasan 5 $alam pemograman tersebut terdapat ;ariabel lokal dan ;ariabel eksternal yang namanya sama yaitu data. $alam fungsi main 1 4 dan fungsi?satu 1 4 terdapat ;ariabel lokal dengan nama sama tetapi sebetulnya lokasi penyimpanannya dalam memori berbeda, sehingga dua ;ariabel itu berbeda dan tidak saling mengenal. 8ungsi?satu 1 4 sebetulnya mengenal ;ariabel eksternal data yang nilainya 'PP, tetapi karena dalam fungsi tedapat ;ariabel lokal data yang bernilai .PP, maka diprioritaskan untuk diproses dalam fungsi tersebut adalah ;ariabel lokalnya. Dika dalam fungsi terdapat ;ariabel lokal dan ;ariabel eksternal yang sama, maka diprioritaskan untuk diproses ;ariabel lokal. $alam fungsi?dua1 4 tidak terdapat ;ariabel lokal sehingga yang diproses pada fungsi tersebut adalah ;ariabel eksternalnya.

9P

http533www.hendra-jatnika.web.id

?.1.3 PARAMETER !arameter adalah sarana komunikasi antar fungsi. !engertian antar fungsi adalah antara fungsi dengan fungsi lain termasuk antara fungsi dengan fungsi utama. $alam 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. +erdapat dua macam bentuk parameter dalam hubungannya dengan penggunan fungsi dalam program yaitu 5 - !arameter 8ormal 5 parameter yang diberi nilai. !arameter formal merupakan parameter yang terdapat dalam daftar parameter fungsi. - !arameter Aktual 5 parameter yang memberi nilai. !arameter fungsi dan digunakan untuk memberi nilai pada parameter formal. $alam contoh program perkalian di atas parameter formal terdapat pada pendefinisan fungsi 5 .!u'l& hasil1*)# A, *)# 4 33 < %&#u%) 1A E 4F = Sedangkan parameter aktual terdapat pada pemanggilan fungsi 5 ;oid main14 < _____ ____.. T J hasil16,y4F 33 parameter aktual ____.. = ?.1.3.1 Ca%a M&l&$a#ka) Pa%a+&#&% Cara melewatkan suatu parameter dalam ahasa C++ ada dua cara yaitu 5 '. !emanggilan Secara 0ilai 1%all by &alue4 a4 Call by ;alue akan menyalin nilai dari parameter aktual ke parameter formal. parameter formal

9'

http533www.hendra-jatnika.web.id

b4 Cang dikirimkan ke fungsi adalah nilai dari datanya, bukan alamat memori letak dari datanya. c4 8ungsi yang menerima kiriman nilai akan menyimpannya di alamat terpisah dari nilai aslinya yang digunakan oleh bagian program yang memanggil fungsi. d4 !erubahan nilai di fungsi 1parameter formal4 tidak akan merubah nilai asli di bagian program yang memanggilnya. e4 !engiriman parameter secara nilai adalah pengiriman searah, yaitu dari bagian program yang memanggil fungsi ke fungsi yang dipanggil. f4 !engiriman suatu nilai dapat dilakukan untuk suatu ungkapan, tidak hanya untuk sebuah ;ariabel, elemen array atau konstanta saja. Contoh 5

92

http533www.hendra-jatnika.web.id

2utputnya 5

2.!emanggilan Secara &eferensi 1%all by 'eference4 a4 !emanggilan secara &eferensi merupakan upaya untuk melewatkan alamat dari suatu ;ariabel ke dalam fungsi. b4 Cang dikirimkan ke fungsi adalah alamat letak dari nilai datanya, bukan nilai datanya. c4 8ungsi yang menerima kiriman alamat ini maka menggunakan alamat yang sama untuk mendapatkan nilai datanya. d4 !erubahan nilai di fungsi akan merubah nilai asli di bagian program yang memanggil fungsi. e4 !engiriman parameter secara referensi adalah pengiriman dua arah, yaitu dari fungsi pemanggil ke fungsi yang dipanggil dan juga sebaliknya. f4 !engiriman secara acuan tidak dapat bdilakukan untuk suatu ungkapan. C!)#!h :

9.

http533www.hendra-jatnika.web.id

2utputnya 5

?.1.2 NILAI BA=AAN UNTUK ARGUMEN 4UNGSI 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.

99

http533www.hendra-jatnika.web.id

Contoh 5

!enjelasan 5 Dika pada program, argumen sayYello menampilkan tidak diberikan, maka program akan

Sebanyak satu kali, namun jika argumen pada fungsi sayYello diberikan, misalkan say(ello) *, maka program akan menampilkan 9 kali. Otulah yang disebut dengan nilai default pada fungsi. ?.1.2 REKURSI %erupakan suatu fungsi dapat memanggil fungsi yang merupakan dirinya sendiri. !enerapan rekursi diantaranya untuk menghitung nilai 5 6n Contohnya 5

9B

http533www.hendra-jatnika.web.id

2utputnya 5

?.1.6 4UNGSI-4UNGSI BA=AAN C++ Anda dapat menggunakan fungsi-fungsi bawaan C++, misalkan fungsi-fungsi matematika, pengolah kata dan banyak lagi. Sebenarnya 1 mungkin tidak terasa bagi anda 4 main juga adalah fungsi, jadi tanpa anda sadari sebenarnya anda telah menggunakan fungsi. 7ntuk dapat menggunakan fungsi-fungsi tersebut anda harus meng-include file dimana fungsi tersebut didefinisikan %isalkan 5 '. 2. .. 8ungsi U fungsi matematika, anda harus meng-include file math.h 8ungsi U fungsi pengolah string dan karakter, anda harus meng-include file string.h 8ungsi clrscr14, getch14, getche14 dalam file conio.h uatlah fungsi untuk menghitung luas segitigaL uatlah program rekursi untuk mencari 0ilai n faktorial uatlah program dengan cara rekursi untuk menampilkan perkalian . buah bilangan tersebut nilainya diinputkan *A+OYA0

9H

http533www.hendra-jatnika.web.id

;II. LARIK 0ARRA<1


@.1. LARIK *arik merupakan sekumpulan data yang mempunyai nama dan tipe yang sama. *arik sering disebut juga ;ariabel berindeks. 0ilai suatu data dalam larik ditentukan oleh nama dan indeks. *arik banyak digunakan pada operasi yang melibatkan indeks seperti pada statistik dan matriks. +ipe data larik dapat berupa larik satu demensi, dua demensi, tiga demensi atau banyak dimensi. B&)#uk U+u+ La%*k Sa#u D*+&) * 5 tipe?larik nama?larik QukuranR

B&)#uk U+u+ La%*k Dua D*+&) * : tipe?larik nama?larik Qukuran'RQukuran2R

!erhatikan 5 +anda kurung Q R digunakan untuk menunjukkan elemen larik !erhitungan elemen larik dimulai dari P, bukan ' C++ tidak mengecek larik. ila anda menyatakan int 6Q'PR, ini artinya 'P elemen yang dimulai dari P. #arena itu elemen terakhir larik adalah 6Q(R. ila anda salah mereferensikannya dengan 6Q'PR, anda akan mendapatkan harga yang tidak terpakai. Akan lebih buruk lagi jika anda memberikan harga ke 6Q'PR, yang tidak dapat diterima.

9)

http533www.hendra-jatnika.web.id

@.2 REPRESENTASI LARIK %isalkan kita memiliki sekumpulan data u+ian seorang siswa, u+ian pertama bernilai (P, kemudian (B,)-,-B. Sekarang kita ingin menyusunnya sebagai suatu data kumpulan u+ian seorang siswa. $alam array kita menyusunnya sebagai berikut ujianQPR J (PF ujianQ'R J (BF ujianQ2R J )-F ujianQ.R J -BF Smpat pernyataan diatas memberikan nilai kepada array u+ian. +etapi sebelum kita memberikan nilai kepada array, kita harus mendeklarasikannya terlebih dahulu, yaitu 5 int u+ianQ9RF !erhatikan bahwa nilai 9 yang berada didalam tanda kurung menujukkan jumlah elemen larik, bukan menunjukkan elemen larik yang ke-9. Dadi elemen larik u+ian dimulai dari angka P sampai .. !emrogram juga dapat menginisialisasi larik sekaligus mendeklarasikannya, sebagai contoh 5 int ujianQ9R J <(P,(B,)-,-B=F Slemen terakhir dari larik diisi dengan karakter VWPX. #arakter ini memberitahu kompiler bahwa akhir dari elemen larik telah dicapai. "alaupun pemrogram tidak dapat melihat karakter ini secara eksplisit, namun kompiler mengetahui dan membutuhkannya. Sekarang kita akan membuat daftar beberapa nama pahlawan di Ondonesia char pahlawanQ.RQ'BR F char pahlawanQPRQ'BR J /SoekarnoGF char pahlawanQ'RQ'BR J /$iponegoroGF char pahlawanQ2RQ'BR J /SoedirmanGF *arik diatas terlihat berbeda denga contoh larik pertama kita. !erhatikan bahwa pada larik pahla$an memilih dua buah tanda kurung Q RQ R. *arik seperti itu disebut larik dua

9-

http533www.hendra-jatnika.web.id

dimensi. +anda 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. $alam contoh diatas, tanda kurung kedua menyatakan karakter yang menyatakan nama pahlawan. @.3 MENGHITUNG 3UMLAH ELEMEN ARRA< #arena fungsi si,eof)* array, misalnya int arrayQ R J <2H,),-2,'HH=F cout>>siTeof1array43siTeof1int4F akan mengembalikan nilai 9, yaitu sama dengan jumlah elemen yang dimiliki larik. @.2 MELE=ATKAN ARRA< SEBAGAI ARGUMEN 4UNGSI *arik dapat dikirim dan dikembalikan oleh fungsi. !ada saat larik dikirim ke dalam fungsi, nilai aktualnya dapat dimanipulasi Contoh 5 mengembalikan jumlah byte yang sesuai dengan argumennya, maka operator tersebut dapat digunakan untuk menemukan jumlah elemen

2utput 5

9(

http533www.hendra-jatnika.web.i

*atihan 5 uatlah program yang menghitung jumlah elemen dalam suatu array1larik4 dengan array1larik4 ' dimensi < ',.,B,9,),2,((,'H,9B,H),-(,9B=

BP