OLEH RISNA PALUPI UNIVERSITAS NUSANTARA PGRI KEDIRI 2009 BAB I PENGENALAN BAHASA C++ 1.1. PENDAHULUAN Bahasa pemrograman computer terdiri atas dua bagian, yaitu bahasa pemrograman tingkat tinggi (high level language) dan bahasa pemrograman tingkat rendah (low level language). Penggolongan ini didasarkan pada kemudahan untuk mempelajari bahasa pemrograman komputer tersebut dan kecepatan eksekusinya. Makin tinggi tingkat suatu bahasa pemrograman komputer, maka bahasa pemrograman komputer tersebut akan makin mudah dipelajari. Dan sebaliknya, makin rendah tingkat suatu bahasa pemrograman komputer, maka makin tinggi kecepatan eksekusinya. Bahasa pemrograman C++ adalah salah satu bahasa pemrograman komputer tingkat tinggi. al ini dikarenakan bahasa pemrograman C++ termasuk bahasa pemrograman komputer yang mudah dipelajari. !etapi bahasa pemrograman C++ lebih banyak digunakan daripada bahasa pemrograman lainnya, karena memiliki kecepatan eksekusi yang cukup tinggi bila dibandingkan dengan bahasa pemrograman komputer tingkat tinggi lainnya. Bahasa pemrograman C++ memiliki keunikan tersendiri dari bahasa pemrograman komputer yang lain, yaitu bersi"at case sensitive (membedakan antara huru" kecil dan huru" kapital), dimana hampir semua perintah dalam bahasa pemrograman C++ menggunakan huru" kecil. 1.2 PENGGUNAAN COMPILER C++ Dalam praktikum ini kita akan menggunakan tool software !urbo C++, untuk menjalankan so"t#are tersebut langkah$langkah yang dilakukan, yaitu% &. Mendouble click icon turbo C++ 2 '. Maka akan muncul tampilan aplikasi sebagai berikut, (. )alu untuk menulis program C++*coding kita buka +ile ,e#, maka akan muncul layar putih tempat untuk menulis program C++. -. .ntuk mengeksekusi dan mencompile (menjalankan) program C++ yang telah kita buat kita mengklik tombol petir berikut% /. 0pabila program yang telah dibuat sudah benar akan muncul layar dengan background hitam*putih (aplikasi). 1edangkan apabila masih salah akan muncul pesan kesalahan diba#ah tempat anda menulis program dan tidak akan muncul layar hitam sampe program yang anda tulis benar. 1.3 STRUKTUR PROGRAM C++ 1.3.1 TUJUAN PRAKTIKUM a. Mengetahui struktur program C++ b. Mengetahui si"at dan "ungsi tiap struktur program C++ 1.3.2. TEORI DASAR 1truktur dasar program bahasa C++ adalah sebagai berikut% o PREPROCESSOR DIRECTIVES o DEKLARASI GLOBAL o FUNGSI UTAMA Preprocessor directives merupakan perintah dalam bahasa C++ yang akan membuat dan mengkompilasi "ile perantara dengan program utama. 3 Deklarasi global merupakan bagian program C++ tempat pendeklarasian konstanta, 2ariabel, "ungsi atau header "ungsi, tipe data baru, atau struktur data yang memiliki si"at global. +ungsi utama adalah "ungsi pertama yang akan dieksekusi oleh kompiler C++. Dan kompiler C++ hanya akan mengeksekusi "ungsi$"ungsi lain yang dipanggil pada "ungsi utama atau yang memiliki hubungan dengan "ungsi utama secara tidak langsung. De"inisi "ungsi merupakan tempat pende"inisian header "ungsi yang telah dideklarasikan pada bagian deklarasi global. 1.3.3 STRUKTUR LISTING PROGRAM Cono!" 1 2 3 4 5 6 7 8 9 10 11 //preprocessor directive #include <stdio.h> //file header //deklarasi global int TES = 1000 //fungsi uta!a int !ain"# $ printf"%&ilai TES= 'd%( TES# return 0 ) 1.3.# PROSEDUR PRAKTIKUM &. Buat program seperti pada contoh diatas '. Pelajari dan jalankan program (. 3ika terjadi kesalahan program, perbaikilah sehingga program dapat berjalan. -. apus header dan jalankan program /. 4embalikan header. 5. Pindahkan deklarasi global ke bagian paling akhir dari program dan jalankan program. 6. 4embalikan baris deklarasi global ke tempat semula. 4 #include<nama_file_header.h> preprocessor directives tipe*data nama_variabel; delarasi variable !lobal tipe*data main"# f$n!si $tama % & 7. apus kata int pada "ungsi utama dan jalankan program. 1.3.$ DATA HASIL PERCOBAAN &. 0pa yang terjadi apabila header dihapus dan program dijalankan8 '. 0pa yang terjadi pada saat deklarasi global dipindahkan ke bagian akhir program8 (. 0pa yang terjadi pada saat kata int pada "ungsi utama dihapus8 NB " So%& '%n (%)%*%n '+,&+- '+./0%- '+.,12,&.%n '+ %.!+0 20%.+.,1 1.# PERN3ATAAN4 VARIABEL4 KONSTANTA DAN TIPE DATA 1.#.1 TUJUAN PERCOBAAN o Memahami pengertian dan penggunaan pernyataan, 2ariabel dan konstanta dalam bahasa C++ o Memahami penggunaan tipe data standar pada bahasa C++ o Memahami cara pende"inisian tipe data baru pada bahasa C++ 1.#.2 TEORI DASAR Pernyataan dalam bahasa C++ merupakan serangkaian atau kelompok rangkaian perintah*simbol standar C++, perintah*simbol yang dide"inisikan pemrogram, 2ariabel*konstanta, dan atau operator yang diakhiri dengan tanda 9 (titik koma*semi-colon). :ariabel pada bahasa C++ adalah bagian dari memori yang hanya dapat menampung satu data*in"ormasi pada satu #aktu, dimana data*in"ormasi tersebut dapat berubah setelah dideklarasikan selama pengeksekusian program. :ariabel dilambangkan dengan simbol yang dide"inisikan oleh pemrogram dan 2ariabel harus dideklarasikan terlebih dahulu sebelum dapat digunakan. Pendeklarasian 2ariabel pada bahasa C++ adalah sebagai berikut, 5 pern'ataan; tipe_data nama_variabel; :ariabel dapat langsung diberi nilai a#al pada saat pendeklarasiannya. Pemberian nilai tersebut dapat dilakukan dengan cara sebagai berikut, 4onstanta merupakan 2ariabel yang data*nilainya tidak dapat diubah setelah dideklarasikan selama pengeksekusian program. Cara mendeklarasikan konstanta adalah sebagai berikut, Cara lain untuk mendeklarasikan konstanta adalah dengan mendeklarasikannya sebagai makro, yaitu sebagai berikut, Besarnya bagian memori yang digunakan oleh 2ariabel atau konstanta untuk menampung data*in"ormasi tergantung dari tipr data*in"ormasi yang digunakan. !ipe$tipe data standar yang terde"inisikan pada bahasa C++ dapat dilihat dalam tabel &.&. !abel &.&. !ipe$tipe data standar pada bahasa C++ !ipe data .kuran presisi 3angkauan nilai 3umlah digit presisi &. char '. int (. long int -. "loat (desimal) /. double 5. long double & byte ' byte - byte - byte 7 byte &; byte $&'7 sampai +&'6 $('657 sampai +('656 $'&-6-(75-7 sampai +'&-6-(75-6 (.-<&; $(7 hingga (.-<&; +(7 &.6<&; $(;7 hingga &.6<&; +(;7 (.-<&; $-=(' hingga &.&<&; +-=(' $ $ $ 5$6 &/$&5 &= P/1o'+5+.%-+%n +2/ '%% ,n-+6n/' '%n -+6n/' .ntuk pemodi"ikasian +2/ ,n-+6n/' diterapkan pada data bertipe bilangan bulat (char, short, int dan long). :ariable yang ditambahi unsigned akan 1/n7/*%*.%n n+&%+ 7%n6 /0.%n',n6 '+'%&%1n7% -/&%&, */0n+&%+ 2o-++54 -/!+n66% (%n6.%,%nn7% %.%n */0,*%!. 6 tipe_data nama_variabel(nilai_a)al; const tipe_data #define nama_maro definisi_maro; .ntuk pemodi"ikasian tipe -+6n/' merupakan de"ault dari tipe data dasar, yang menyatakan data bernilai positi" maupun negati2e. Pemodi"ikasian tipe data dapat dilihat pada tabel &.' !abel &.'. !ipe$tipe data pemodi"ikasian pada bahasa C++ &. char * signed char '. unsigned char (. int * signed int -. short int * signed short int /. unsigned int 5. long int * signed long int 6. unsigned long int .ntuk mende"inisikan suatu tipe data baru selain tipe$tipe data standar pada bahasa C++ digunakan perintah berikut% Cono! P0o60%1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 **contoh pen$!asan dan pen!!$naan tipe data +incl$de ,iostream.h- **delarasi !lobal void main"# % int .; ** si!ned int **delarasi variable local $nsi!ned int ';
. ( /1; co$t ,, 0. ( 1 ,, . ,, 23n4; ' ( /1; co$t ,, 0' ( 1 ,, ' ,, 23n4; & 1.#.3 PROSEDUR PRAKTIKUM &. 1alinlah program diatas. '. )alu jalankan program diatas pelajari hasilnya. (. )alu gantilah tipe data < dengan tipe data char -. )alu gantilah tipe data y dengan tipe data unsigned char /. 0pabila terjadi kesalahan perbaikilah nilai 2ariabel sampai benar. 5. )alu gantilah tipe data < dengan tipe data long int. 6. )alu gantilah tipe data y dengan tipe data unsigned long int. 7. 0pabila terjadi kesalahan perbaikilah dengan mengganti nilai 2ariabel sampai benar. 7 t+pedef tipe_data tipe_data_bar$; 1.#.# DATA HASIL PERCOBAAN 8TK I9 &. Bagaimana hasil dari prosedur praktikum & dan '8 '. Bagaimana hasil dari prosedur praktikum ( sampai /8 (. Bagaimana hasil dari prosedur praktikum 5 sampai 78 NB " So%& '%n (%)%*%n '+,&+- '+./0%- '+.,12,&.%n '+ %.!+0 20%.+.,1 1.$. M%-,.%n '%n K/&,%0%n 8In2, '%n O,2,9 1.$.1 T,(,%n .ntuk memahami penggunaan input*output routines pada bahasa C++ 1.$.2 T/o0+ D%-%0 Pustaka input*output merupakan pustaka yang berisi stream dan "ungsi$"ungsi input*output. Pustaka ini telah ada di header -'+o.! dan +o-0/%1.!. Dalam bahasa C pustaka >*? yang digunakan adalah -'+o.! yang berisi "ungsi$"ungsi seperti 20+n5 dan -:%n5. 1can"(cin) digunakan untuk memasukkan sebuah nilai ke 2ariable dan print"(cout) digunakan untuk mencetak suatu nilai dari 2ariable maupun konstanta. 1intak dari scan" dan print" sebagai berikut% @ang dimaksud dengan string "ormat pada "ungsi scan" dan print" merupakan string karakter yang terdiri atas ( jenis yaitu% &) 4arakter #hitespace yang merupakan blank, tab(At) dan baris baru(An) ') 4arakter selain #hitespace yang merupakan 01C>> selain tanda B () +ormat spesi"ik yang dia#ali dengan B memiliki "ormat sebagai berikut% 8 Scanf(string format, alamat variabel); Printf(string format, variabel) %[width] tipearater Dalam bahasa C++ pustaka >*? yang digunakan adalah +o-0/%1.! yang berisi dengan stream input cin*scan", stream output*print" cout, untuk standard error stream menggunakan cerr dan clog, untuk cerr yang telah terbu""er. ?perasi untuk cin sebagai input digunakan operator CC dan cout, cerr, clog sebagai output menggunakan operator DD. Cono! 2/n66,n%%n In2, O,2, 1. Cono! 2/n66,n%%n 20+n5 '%n -:%n5 2. Cono! 2/n66,n%%n :+n '%n :o, 1.$.3 P0o-/',0 P0%.+.,1 8TGS II9 9 &. salinlah program contoh pertama dan kedua '. apabila ada kesalahan perbaikilah sampai tidak ada error. (. gantilah inputan untuk kedua contoh program dengan angka ;,7777 -. perbaikilah hingga output kedua contoh program sama dengan nilai inputnya. /. lakukan prosedur ( dan - tetapi nilai input diganti dengan angka $&'/;;; 5. lakukan prosedur ( dan - tetapi nilai input diganti dengan angka &,/ < &; pangkat $/ * &,/e$/ 1.$.#. D%% H%-+& P0%.+.,1 &. 0pa yang harus diganti pada program contoh & dan ' apabila input diganti dengan ;,77778 '. 0pa yang harus diganti pada program contoh & dan ' apabila input diganti dengan $&'/;;;8 (. 0pa yang harus diganti pada program contoh & dan ' apabila input diganti dengan &,/ < &; pangkat $/8 -. bagaimana output program sesuai prosedur ($5 8 BAB II 10 OPERATOR DAN SELEKSI 2.1. O2/0%o0 2.1.1. T,(,%n P0%.+.,1 Memahami penggunaan operator unary dan binary pada C++ Memahami prioritas dan urutan pengeksekusian operator pada C++ 2.1.2. T/o0+ D%-%0 ?perator merupakan symbol yang biasa dilibatkan dalam program untuk melakukan sesuatu operasi atau manipulasi. ?perand adalah objek dari operator. ?perator dan o2/0%n' akan membentuk ekspresi. Ekspresi ini dapat membentuk suatu pernyataan. Berikut ini penggolongan operator$operator standar yang terdapat dalam bahasa pemrograman C++. 1. O2/0%o0 A0+1%+.% ?perator aritmatika yang disediakan oleh C++ antara lain perkalian, pembagian, modulus, penjumlahan, pengurangan, yang berturut turut di#akili oleh symbol F,*,B,+,$. Contoh program % ; < # = 3 2. O2/0%o0 P/n,6%-%n ?perator penugasan yang berupa symbol sama dengan ( G ) ber"ungsi untuk memberikan suatu nilai ke suatu 2ariable. 3. O2/0%o0 P/n%+.%n '%n P/n,0,n%n 11 ?perator ini berhubungan dengan operator aritmatika. ?perator penaikan (increment) dan operator penurunan (decrement) berturut$ turut di#akili oleh symbol ++ dan $$. ?perator ini bisa diletakkan di belakang atau didepan operand. Contoh program #. O2/0%o0 B+)+-/ 8M%n+2,&%-+ B+9 .ntuk keperluan manipulasi data dalam bentuk bit C++ menyediakan enam buah operator yaitu geser bit kekiri, geser bit kekanan, and, or, <or dan nor yang berturut$turut menggunakan symbol DD, CC, H, I, J, K Contoh program% $. O2/0%o0 R/&%-+ ?perator relasi digunakan untuk membandingkan dua buah operand*:0L>0BE). ?perator yang digunakan% C lebih dari CG lebih dari atau sama dengan MG tidak sama dengan D kurang dari GG sama dengan DG kurang dari atau sama dengan 12 Contoh program 12 > 3 ? 1 12 @ 3 0 A. O2/0%o0 Lo6+.% ?perator logika digunakan untuk menghubungkan dua buah operand menjadi sebuah ungkapan kondisi. ?perator yang digunakan% HH (and), II(or), M(not). Contoh program ;. O2/0%o0 Kon'+-+ ?perator kondisi digunakan untuk mendapatkan sebuah nilai dari dua buah kemungkinan, berdasarkan suatu kondisi. Biasanya menggunakan pernyataan berkondisi +5. Bentuk umumnya % 13 ekspresi 8 ?perand' % ?perand( ,ilai yang diambil dari operand' kalau operand& bernilai benar. ,ilai yang diambil dari operand( kalau operand& bernilai salah. Contoh program 2.1.3 P0o-/',0 P/0:o*%%n &.Buatlah program untuk menghitung luas segitiga '. Buatlah program untuk menghitung s G r+pFN$p (. Buatlah program menggunakan operator penaikan dan penurunan -. Buatlah program menggunakan operator bit#ise /. Buatlah program menggunakan operator logika 5. Buatlah program menggunakan operator kondisi 6. Buatlah program menggunakan operator relasi. 2.1.#. D%% H%-+& 2/0:o*%%n 8TGS III9 &. Bagaimana output prosedur no & 8 '. Bagaimana output prosedur no ' dan bagaimana urutan pengerjaan operatornya8 (. Bagaimana output prosedur no ( 8 -. Bagaimana output prosedur no - 8 /. Bagaimana output prosedur no / 8 5. Bagaimana output prosedur no 5 8 6. Bagaimana output prosedur no 6 8 7. Bagaimana output prosedur no 7 8 14 NB" 20o60%1 7%n6 '+*,% +'%. *o&/! -%1% %n%0% %n%. 7%n6 -%, '%n 7%n6 &%+n -/0% +'%. *o&/! -%1% '/n6%n :ono! '+%%-. S//&%! 20%.+.,1 ,6%- )%(+* '+.,12,&.%n ./ ./,% ./&%-. 2.2. SELEKSI KONDISI 2.2.1. T,(,%n P0%.+.,1 Memahami penggunaan penyeleksi kondisi yang ada di dalam bahasa pemrograman C++ 2.2.2. T/o0+ D%-%0 Perintah untuk percabangan bersyarat yang disediakan oleh C++ adalah if, if-else,switch. 19 P/0n7%%%n if Pernyataan i" mempunyai "ormat sebagai berikut% 4ondisi yang akan diperiksa oleh pernyataan i" harus dituliskan di dalam tanda kurung dan harus memiliki nilai benar atau salah. Pernyataan akan dilaksanakan apabila kondisi bernilai benar. 29 P/0n7%%%n if-else Pernyataan i"$else mempunyai "ormat sebagai berikut% 1eperti pada pernyataan i" maka kondisi yang akan diperiksa oleh pernyataan i" harus dituliskan di dalam tanda kurung dan harus memiliki nilai benar atau salah. Pernyataan& akan dilaksanakan apabila kondisi bernilai benar dan pernyataan' akan dilaksanakan apabila kondisi bernilai salah. Contoh program &% 15 if "ondisi# pern'ataan; if "ondisi# pern'ataan1; else pern'ataan2; 39 P/0n7%%%n switch 3ika dalam program, dibutuhkan penyeleksi kondisi dengan banyak alternati2e (lebih dari dua), biasanya digunakan pernyataan switch. Pernyataan s#itch mempunyai "ormat sebagai berikut% pernyataanO& hanya akan dilaksanakan apabila nilai 2ariabel sama dengan nilai&O2ariabel. PernyataanO' hanya akan dilaksanakan apabila nilai 2ariable sama dengan nilai'O2ariabel. PernyataanOn hanya akan dilaksanakan apabila nilai 2ariabel tidak ada yang sesuai dengan nilai$ nilai 2ariabel penguji diatasnya. 2.2.3. P0o-/',0 P/0:o*%%n 8TGS III9 &. 3alankan contoh program &, masukkan nilai seperti (;, //, 5;, 5&, 7;. '. )akukan modi"ikasi contoh program & dengan seleksi kondisi dimulai dari 6%6%&. 16 s,itch "variabel# $ case nilai1_variabel - pern'ataan_1;brea; case nilai2_variabel - pern'ataan_2;brea; . . default 5 pern'ataan_n; brea; & 3. L%.,.%n 1o'+5+.%-+ &%6+ ,n,. :ono! 20o60%1 1 '/n6%n .on'+-+ (+.% n+&%+ '+%%- A0 '+n7%%.%n &,&,-4 (+.% n+&%+n7% &/*+! ./:+& '%0+ #0 '+n7%%.%n 6%6%&. N+&%+ %n%0% #0 '%n A0 1%.% !%0,- 1/n6+.,+ ,(+%n ,&%n6. #. B,%&%! 20o60%1 1/n66,n%.%n .on'+-+ ,n,. 1/n6!+,n6 :0+/0+% */0% *%'%n 1/n66,n%.%n In'/.- M%--% T,*,! 8IMT94 7%n6 *+-% '+!+,n6 '/n6%n " IMT = *B 2 *=*/0% *%'%n 8.69 =+n66+ *%'%n 819 :0+/0+% IMT -**4 IMT @= 1C.$ K,0,- 1C.$@IMT@= 2$ No01%& 2$@IMT@= 30 G/1,. IMT>30 K/6/1,.%n O,2," B/0% *%'%n 8.69 = #$ T+n66+ *%'%n 819 = 1.;2 N+&%+ IMT %n'% 1;.04 %n'% /01%-,. :0+/0+% .,0,- 2.2.# D%% !%-+& 2/0:o*%%n &. Bagaimana hasil dari prosedur &8 '. Bagaimana coding dari prosedur '8 (. Bagaimana hasil dan coding prosedur (8 Contoh program ' 17 18 BAB III PERULANGAN 3.1. P/0,&%n6%n 8Loo2+n69 3.1.1. T,(,%n P0%.+.,1 Memahami penggunaan jenis perulangan terstruktur yang ada pada bahasa pemrograman C++ 3.1.2. T/o0+ D%-%0 1%. P/0,&%n6%n 5o0 Perulangan "or juga digunakan untuk mengulangi serangkaian instruksi, yang pada umumnya digunakan pada perulangan dalam bentuk iterasi. Pernyataan "or memiliki "ormat sebagai berikut% 4eterangan% .ngkapan& % nilai a#al suatu perulangan iterasi .ngkapan' % kondisi yang menjadi syarat agar perulangan atau iterasi tetap berlangsung .ngkapan( % umumnya kontrol perulangan atau iterasi Perulangan "or akan mengeksekusi pernyataan selama bagian pernyataan sesuai dengan ungkapan yang ada pada ungkapan'. 19 for "$n!apan1; $n!apan2; $n!apan3# pern'ataan; 1*. Fo0 */0-%0%n6 8n/-/' &oo29 Pada aplikasi tertentu, terkadang kita menggunakan pernyataan "or yang berada di dalam pernyataan "or. 1alah satu contohnya adalah apabila kita ingin menghasilkan tampilan sebagai berikut% F F F F F F F F F F F F F F F Contoh programnya, yaitu% 2. P/0,&%n6%n )!+&/ Perulangan dengan #hile merupakan perulangan yang 1/1/0&,.%n '%n 1/n66,n%.%n syarat a#al. Berikut ini adalah deklarasi perulangan #hile. Bagian pernyataan juga dapat berupa pernyataan majemuk, bentuk deklarasinya adalah sebagai berikut% 20 )hile "ondisi# 6ern'ataan;
3. P/0,&%n6%n 'oD.)!+&/ Pada perulangan dengan doP#hile memerlukan suatu syarat tertentu agar bagian pernyataan terus dieksekusi yaitu syarat akhir. Deklarasinya% o 21 )hile "ondisi# % 6ern'ataan_1; 6ern'ataan_2; 6ern'ataan_n; & do % 6ern'ataan_1; 6ern'ataan_2; 6ern'ataan_n; & )hile "ondisi#; pada perulangan doP#hile, pernyataan akan dijalankan berulang$ ulang sampai kondisi bernilai salah. 3.1.3 P0o-/',0 P0%.+.,1 8TGS V9 &. 1alinlah contoh program #hile diatas '. Coba kerjakan contoh program #hile tersebut menggunakan doP #hile. (. gunakan "or bersarang untuk menghasilkan output % , G - & F F F F F F ' ' F F F F ( ( ( F F - - - - 22 BAB IV ARRA3 #.1. A00%7 #.1.1 T,(,%n P0%.+.,1 Memahami penggunaan array dalam C++ 3.2.2 D%-%0 T/o0+ 0rray atau )arik adalah 2ariabel kompleks*struktur yang memiliki tipe data yang sama. Elemen$elemen array tersusun secara seNuensial dalam memori computer. 0rray dapat berupa satu dimensi, dua dimensi, tiga dimensi, ataupun banyak dimensi. 1. A00%7 -%, '+1/n-+ @aitu kumpulan elemen$elemen identik yang tersusun dalam satu baris. Elemen$elemen tersebut memiliki tipe data yang sama, tetapi isi dari elemen itu boleh berbeda. Berikut ini adalah konsep array satu dimensi% ; & ' ( - / 5 6 7 = &6 '& (( & -7 ; ' &5 6' = Bentuk umum tipe.ata 7ama8rra' 9:$mlah;lemen< ( %,=nisialisasi-&; int Bola Q&;R G S &6, '&, ((, dstT9 Contoh% unsigned int >in!!i?adan 9100<;**delarasi arra' bool @adir 95< ( %tr$eA tr$eA falseA false&;**pemberian nilai arra' pada inisialisasi Pendeklarasian array dia#ali dengan penyebutan +2/ '%% '++.,+ n%1% E%0+%*/& %00%74 '++.,+ (,1&%! /&/1/n. 3ika array hendak diberi nilai a#al, nilai$nilai a#al dituliskan dalam inisialisasi. 3ika 23 inisialisasi kurang dari jumlah elemen array, sisanya akan diinisialisasikan dengan nol. Elemen array diakses dengan menyebutkan indeks posisi elemen tersebut dalam array. Elemen pertama array memiliki indeks ;. unsigned int >in!!i?adan 9100< **tin!!i badan memilii 100 elemen >in!!i?adan 90< ( 7; **men!eset elemen pertama >in!!i?adan >in!!i?adan 95< ( 16; **men!eset elemen eenam temp ( >in!!i?adan999<; **men!opi elemen terahir e variabel temp Contoh program & Lesult G result + billyQnR 2. A00%7 ',% '+1/n-+ 1ering digambarkan sebagai sebuah matriks dan merupakan perluasan dari sebuah array satu dimensi. 3ika array satu dimensi hanya terdiri dari sebuah baris dengan beberapa kolom elemen maka array dua dimensi terdiri dari beberapa baris dan beberapa kolom elemen yang bertipe sama sehingga dapat digambarkan sebagai berikut% ; & ' ( - / 5 6 7 = &6 '& (( & -7 ; ' &5 6' = 76 5/ - 5 6 '( 7& &; >nt MatriksQ-RQ&;R 24 0 1 2 3 Bentuk umum tipe.ata 7ama8rra' 9:$mlah?aris<9:$mlahBolom< ( % %,=nisialisasi?aris1-&A %,=nisialisasi?aris2-&A C. %,=nisialisasi?aris7-&A &; contoh double Datri. 94<94<;** pemesanan tempat arra' bool 6apan 92<92< ( % %tr$eA false&A %falseA tr$e& &; contoh progra! / output +ang diinginkan Tabel 1 Data Kelulusan Jurusan 1992 1993 1994 1995 1. Teknik Informatika 35 45 80 120 2. ana!emen Informatika 100 110 70 101 3. Teknik Kom"uter 10 15 20 17 25 26 #.1.2. P0o-/',0 P0%.+.,1 &. 1alinlah program & '. Pada program & pengisian array melalui inisialisasi, buatlah program seperti program & tetapi pengisian array melalui "ungsi utama*pengesetan array. (. Buatlah program menggunakan "or yang menghasilkan output% 0Q&, &R G & 0Q&, 'R G ' 0Q', &R G ( subject% tugas/*kelas*nama 0Q', 'R G - BQ&, &R G / BQ&, 'R G 5 BQ', &R G 6 BQ', 'R G 7
27 BAB V FUNGSI $.1. T,(,%n P0%.+.,1 $.2. D%-%0 T/o0+ 0pabila kita membuat program yang terlalu panjang, membuat kita akan kesulitan membaca dan memahami program. 1ehingga kita perlu memecah program tersebut manjadi beberapa bagian (modul) yang memudahkan kita untuk mencari kesalahan program, memperbaiki, dan membuat dokumentasi program. .ntuk membuat modul tersebut C++ menyediakan "ungsi. +ungsi berguna untuk mengumpulkan statemen yang dapat dijalankan menjadi satu dalam suatu blok dan menjalankannya kembali hanya dengan menuliskan nama "ungsi yang menampungnya. +ungsi juga dapat dipakai untuk menampung baris$baris perintah yang sering dipakai dalam sebuah program. Deklarasi "ungsi dapat dilakukan dengan dua cara yaitu% eader "ungsi tanpa parameter atau "ungsi tanpa return 2alue eader "ungsi dengan parameter atau "ungsi dengan return 2alue &. eader "ungsi tanpa parameter atau "ungsi tanpa return 2alue B/n,. U1,1 T+2/'%% nama+ungsi Cono! In 3umlah>si() 'o,*&/ Landom() Eo+' Clear() 28 Blok "ungsi tanpa parameter T+2/'%% nama+ungsi () S T Contoh program & '. eader "ungsi dengan parameter atau "ungsi tanpa return 2alue Penulisan header "ungsi dengan parameter hampir sama dengan "ungsi tanpa parameter, yaitu dia#ali dengan tipe data, lalu nama "ungsi, dan diikuti dengan parameter$parameter (yang berada di dalam tanda kurung) yang masing$masing dipisahkan dengan koma beserta dengan tipenya. B/n,. U1,1 T+2/'%% nama+ungsi ( Dda"tarOparameterC) Cono! 29 In 3umlahkan(int a, int b) 'o,*&/ 0rcCos(double <) Blok "ungsi tanpa parameter T+2/'%% nama+ungsi (parameter) S T Contoh program ' 30 $.3. P0o-/',0 20%.+.,1 1. B,%&%! 5,n6-+ %n2% 2%0%1//0 1/n6!+,n6 &,%- &+n6.%0%n '%n Eo&,1/ %*,n6. 2. B,%&%! 5,n6-+ '/n6%n 2%0%1//0 1/n6!+,n6 &,%- &+n6.%0%n '%n Eo&,1/ %*,n6. 3. O,2," M/n, 1. H+,n6 L,%- L+n6.%0%n 2. H+,n6 Vo&,1/ %*,n6 P+&+!%n An'% = 1 M/n6!+,n6 L,%- L+n6.%0%n M%-,..%n 2!+ = 3.1# M%-,..%n (%0+?(%0+ &+n6.%0%n = 10 L,%- &+n6.%0%n = 31# %%, P+&+!%n An'% = 2 M/n6!+,n6 Vo&,1/ T%*,n6 M%-,..%n 2!+ = 3.1# M%-,..%n (%0+?(%0+ %*,n6 = 10 M%-,..%n +n66+ %*,n6 = 10 L,%- &+n6.%0%n = 31#0 31 BAB VI STRUCTURE A.1 T,(,%n P0%.+.,1 A.2 D%-%0 T/o0+ 1tructure atau struktur adalah kumpulan elemen$elemen data yang digabungkan menjadi satu kesatuan. Masing$masing elemen data dikenal dengan sebutan "ield*kolom. +ield data tersebut dapat memiliki tipe data yang sama ataupun berbeda. Ualaupun "ield$"ield tersebut berada dalam satu kesatuan, masing$masing "ield tersebut dapat diakses secara indi2idual. +ield$"ield tersebut digabungkan menjadi satu dengan tujuan untuk kemudahan dalam operasinya. Misalnya kita ingin mencatat data$data mahasis#a dan pelajar dalam sebuah program, untuk membedakannya dapat membuat sebuah 0/:o0' 1%!%-+-)% 7%n6 /0'+0+ '%0+ 5+/&'?5+/&' NIM4 n%1%4 %&%1%4 '%n IPK serta sebuah 0/:o0' 2/&%(%0 7%n6 /0'+0+ '%0+ 5+/&'?5+/&' N%1%4 No1o0U0,4 %&%1% '%n J,1&%!N+&%+. Dengan demikian akan lebih mudah membedakan keduanya. 1. D/.&%0%-+ -0,:,0/ Pendeklarasian structure selalu dia#ali oleh kata baku -0,: diikuti nama structure dan deklarasi "ield$"ield di antara kurung kura#al. Bentuk .mum% -0,: nama1truct S +2/D%%1 +ield&9 +2/D%%2 +ield'9 PP.. +2/D%%N +ield,9 T9 32 Contoh% -0,: Mahasis#a S :!%0 ,>MQ&;R9 :!%0 ,amaQ';R9 :!%0 0lamatQ&;R9 5&o% >P49 T9 Cono! 20o60%1 ?utput% 33 A.3. P0o-/',0 P0%.+.,1 &. 1alinlah contoh program diatas '. Buatlah program sehingga memberikan output sebagai berikut9 Eorm data ar'a)an (((((((((((((((((( 7ama 5 8!$s @ermanto FaGi 5 2000000 Htat$s "0 bel$m meniahA 1 s$dahA 2 Ganda#5 1 :$mlah ana 5 3 Das$an data la!iI "J*># 5 ' 7ama 5 Kia =la)an FaGi 5 1500000 Htat$s "0 bel$m meniahA 1 s$dahA 2 Ganda#5 2 :$mlah ana 5 2 Das$an data la!iI "J*># 5 t 34 BAB VII STRING DAN CHARACTER ;.1 T,(,%n P0%.+.,1 Memahami penggunaan string dan character dalam C++, serta mengetahui penggunaan "ungsi$"ungsi untuk manipulasi string. ;.2 D%-%0 T/o0+ Pada C++ tidak ada tipe 2ariable elemen yang spesi"ic untuk menyimpan string. .ntuk keperluan ini dapat digunakan array dengan tipe :!%0, dimana berisi elemen dengan tipe :!%0. Perlu di ingat bah#a tipe :!%0 digunakan untuk menyimpan & karakter, karena itu array dari char digunakan untuk menyimpan string. Contoh % :!%0 (/nn7 F20GH Dapat menyimpan sampai dengan '; karakter % Penyimpanan karakter$nya dapat direpresentasikan seperti diba#ah ini :
Perhatikan, karakter ,.)) (IJ0I) selalu disertakan diakhir string untuk indikasi akhir dari string. In+-+%&+-%-+ -0+n6 1ama halnya seperti array$array sebelumnya, inisialisasi pada string sbb % char m'strin!9< ( % L@LA LeLA LlLA LlLA LoLA L30L &; Contoh diatas, merupakan inisialisasi 5 buah elemen bertipe :!%04 yaitu H/&&o dan karakter null IJ0I. .ntuk menentukan nilai konstan, pada string digunakan tanda kutip ganda (V), sedangkan untuk karakter kutip tunggal (W). 35 1tring yang diapit oleh kutip ganda sudah mengandung karakter ,ull pada akhir string, contoh % char m'strin! 9< ( % L@LA LeLA LlLA LlLA LoLA L30L &; char m'strin! 9< ( M@elloM; ## contoh diatas merupakan deklarasi array 17-0+n6 yang berisi 5 elemen. P/1*/0+%n n+&%+ 2%'% -0+n6 1ama halnya seperti pemberian nilai pada array$array sebelumnya, untuk array dengan tipe char dapat dituliskan % !+string001 = 232 !+string011 = 2e2 !+string0/1 = 2l2 !+string041 = 2l2 !+string051 = 2o2 !+string061 = 2702 F,n6-+?F,n6-+ '%&%1 S0+n6 8-0+n6.!9 1. F,n6-+ -0:27 Cara pemberian nilai seperti contoh diatas sangat tidak praktis. .mumnya untuk pemberian nilai pada array bertipe char digunakan "ungsi -0:27. -0:27 (-0ing :o27) mende"inisikan :-0+n6 (-0+n6.!) library dan dapat dipanggil dengan cara % strcp+ "string1( string2# instruksi diatas menyebabkan isi daristring2 di$copy ke string1. string2 dapat berupa array, pointer, atau konstanta string. Contoh : Output : // setting value to string 8. Soulie 36 Perhatikan, header@-0+n6.!> harus disertakan agar bisa menggunakan "ungsi -0:27. Bisa juga menggunakan "ungsi sederhana seperti misalkan diberi nama setstring, dengan operasi yang sama seperti -0:27. Contoh : Output : // setting value to string 8. Soulie Metode lain yang dapat digunakan untuk inisialisasi nilai yaitu input stream (:+n). Dalam kasus ini, nilai string ditentukan oleh user saat eksekusi program. 4etika menggunakan :+n4 biasanya digunakan metode 6/&+n/, Pemanggilannya sbb % :+n.6/&+n/ 8 :!%0 bufferFG4 +n length4 :!%0 delimiter = I JnI9H dimana, buffer adalah alamat untuk menyimpan input, length adalah maksimum panjang bu""er,dan delimiter adalah karakter yang digunakan untuk menentukan input akhir, dengan de"ault X atau dengan (IJnI). Contoh : // cin with strings 37 Output : 9hat2s +our na!e: :$an 3ello 8uan. 9hich is +our favourite tea!: =nter Dilan ; like ;nter <ilan too. Perhatikan kedua pemanggilan :+n.6/&+n/, menggunakan identi"ier yang sama (17*,55/0). 1ama halnya seperti penggunaan operator e<traction, sehingga dapat dituliskan % cin -- m'b$ffer; >nstruksi diatas dapat berjalan, hanya saja mempunyai keterbatasan bila dibandingkan dengan :+n.6/&+n/, diantaranya % Dapat menerima & kata saja (bukan kalimat lengkap). !idak diperkenankan untuk memberikan ukuran bu""er. 0kan menyebabkan program tidak stabil jika user meng$input lebih besar dari kapasitas array yang ada. 2. F,n6-+ S0&/n Merupakan "ungsi manipulasi string yang digunakan untuk menghitung panjang string. 1ehingga "ungsi ini memberikan nilai balik panjang string. 1intaks% -+K/L -0&/n 8:on- :!%0M string9H Contoh cara pengoperasiannya, yaitu% 6anGan! ( strlen"b$n!a#; 3. F,n6-+ S0:% 38 Merupakan "ungsi yang digunakan untuk menggabungkan string. +ungsi ini memberikan nilai balik string yang sudah digabung. 1intaks% char= strcat "char= dest( const char= src# Contoh cara pengoperasiannya, yaitu% Htrcat"str1A str2# Htrcat"0a$1A 0belaGar1# #. F,n6-+ -0:12 Merupakan "ungsi yang digunakan untuk membandingkan dua buah string yaitu string& dan string'. 1intaks% strcmp! int strc!p "const char= string1( const char= string2# Contoh% Htrcmp "str1A str2# Htrcmp"0a$1A 0a$1#( 0 $. S00/E Merupakan string yang digunakan untuk membalik string. Contoh% Htrrev"str#; Htr am$ Htrrev"str# Htr $ma Cttn : char* sama dengan char[] KonE/0-+ -0+n6 ./ +2/ &%+nn7% 1tring dapat berisi data dengan tipe lain seperti angka. Contoh N19;;N. :-'&+* (-'&+*.!) library menyediakan ( "ungsi yang dapat menangani hal tersebut % %o+" con2erts string to +n type. %o&" con2erts string to &on6 type. %o5" con2erts string to 5&o% type. 39 +ungsi$"ungsi ini menerima & parameter dan mengembalikan nilainya kedalam tipe yang diminta (int, long or "loat). +ungsi ini dikombinasikan dengan metode 6/&+n/ pada :+n. Contoh : Output : // cin and ato* functions Enter price- 2.75 Enter >uantit+- 21 Total price- 6?.?6 40 DAFTAR PUSTAKA 4adir, 0. ';;(. Pemrograman C++, Membahas Pemrograman Berorientasi ?byek Menggunakan !urbo C++ dan Borland C++. Penerbit 0ndy @ogyakarta. Mahmudy, U.M. ';;-. Modul Praktikum 1emester Yanjil ';;- X ';;/ Pemrograman C++. 3urusan Matematika +akultas M>P0 .ni2ersitas Bra#ijaya Malang. ,,. ';;=. )aporan Praktikum Dasar 4omputer dan Pemrograman. 3urusan Elektro, +akultas !eknik .ni2ersitas Bra#ijaya Malang. 1anjaya, D. ';;/. 0syiknya Belajar 1truktur Data di Planet C++. Penerbit P!. Ele< Media 4omputindo 4elompok Yramedia. 3akarta 41