MODUL

MATA KULIAH PEMROGRAMAN KOMPUTER

JURUSAN PENDIDIKAN TEKNIK ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS NEGERI YOGYAKARTA 2006

MODUL KULIAH PEMROGRAMAN KOMPUTER
DAFTAR ISI
BAB 1. PENDAHULUAN BAHASA C++

1.1 Struktur Bahasa C++ 1.2 Obyek Dasar Dalam C++ 1.3 Memberi Nilai Ke Variabel (Penugasan) 1.4 Operator Aritmatika 1.5 Operator Relasional 1.4 Strlen Latihan Soal
BAB 2. STRUKTUR KENDALI PROGRAM (Control Structure)

2.1 Seleksi Kondisional Memakai If 2.2 Seleksi Kondisional Memakai if . . else 2.3 If Bersarang (Nested If) 2.4 Struktur Selektif Menggunakan Switch Latihan Soal
BAB 3. PERULANGAN/ITERASI

3.1 3.2 3.3 3.4

Loop While Loop Do . . while Loop For Statement Jump 3.4.1 Statement : Break 3.4.2. Statement : Continue 3.4.3. Statement : Goto Latihan Soal
BAB 4. FUNGSI

4.1 Manfaat Penggunaan Fungsi 4.2 Format Penggunaan Fungsi 4.3 Pelewatan Parameter 4.4. Variabel Lokal Dan Variabel Global 4.5 Fungsi Yang Tidak Mengembalikan Nilai 4.6 Arguments Dilewatkan Melalui Nilai dan Referensi. 4.7 Fungsi Overload 4.8 Rekursif Latihan Soal
BAB 5. ARRAY

5.1 Definisi Array 5.2 Inisialisasi Nilai Array 5.3 Mengakses Elemen Array 5.4 Array Multidimensi 5.5 Array Tipe Char 5.6 Inisialisasi Array Tipe Char Latihan Soal

BAB 6. PEMROGRAMAN PORT PARALEL

6.1 Port Serial Dan Paralel 6.2 Pengalamatan Port Paralel Latihan Soal
BAB 7. OBJECT-ORIENTED PROGRAMMING (OOP)

7.1 7.2 7.3 7.4 7.5 7.6

Memandang Sesuatu Sebagai Objek Dunia Tersusun Dari Objek-Objek Objek Abstrak Dan Instant Inheritance (Pewarisan) Objek Di Dunia Nyata Serta Pemrograman Berorientasi Objek Bekerja Dengan Class 7.6.1 Definisi Class 7.6.2 Variabel Dan Class 7.7. Method Latihan Soal
BAB 8. OOP 2

8.1 Pemakaian Struktur 8.2 Pemakaian Konsep OOP dalam program Latihan Soal

Agar anda dapat melihat keluaran. kita coba dengan membuat sebuah program sederhana sebagai berikut. para programmer yang ingin menguasai C++ memulai membuat program dengan program sederhana seperti di atas. // my first program in C++ Merupakan baris komentar yang digunakan untuk memberi penjelasan kode program yang dibuat (seperti : tanggal pembuatan program.RPSXWHU (ARF) BAB 1 PENDAHULUAN BAHASA C++ Bahasa C++ merupakan perkembangan dari bahasa pendahulunya. Microsoft Office. tambahkan baris : getch(). return 0.0RGXO 3HPURJUDPDQ . Linux yang merupakan sistem operasii bersifat open source juga dikembangkan oleh programmer di seluruh dunia menggunakan C. dsb. terlebih dahulu diperkenalkan struktur umum dan perintah-perintah dasar yang digunakan pada C++. // program pertama dalam C++ //dibuat tanggal 25 Maret 2006 #include <iostream> int main () { cout << "Hello World!"<<endl. karena C++ memiliki kemampuan dalam hal OOP (Object Oriented Programming/Pemrograman Berorienrtasi Obyek) yang merupakan trend masa kini dalam bidang pemrograman. Bahasa C diciptakan oleh Brian Kernighan dan Dennis Ritchie. Bahasa C ini banyak digunakan untuk membangun perangkat lunak seperti Microsoft Windows. mengingat dalam program tersebut telah mengandung komponen dasar dari sebuah program C++. yaitu bahasa C. pencipta program. Apabila anda telah menguasai bahasa C. Dibandingkan dengan Java yang hanya berorientasi pada OOP. Untuk menguasai bahasa C++. maka sangat mudah bagi anda untuk menguasai C++. ¾ Catatan : Keluaran program yang dihasilkan setelah anda mengcompile program di atas umumnya tidak terlihat karena layar akan segera menutup setelah menampilkan tulisan "Hello World!". 1. sedangkan C++ diciptakan oleh Bjarne Stroustrup. Jadi.1 STRUKTUR BAHASA C++ Sebelum membahasa mengenai OOP. pada akhir program. C++ tidak murni OOP. Penjelasan program di atas adalah : 1. C++ mengadopsi kemampuan bahasa C (pemrograman terstruktur) plus kemampuan OOP. Untuk memahami struktur umum bahasa C++. terlebih dahulu harus kita pahami struktur umum kode program C++. } Program di atas akan menghasilkan keluaran : "Hello World!" pada layar. Umumnya. serta Page 1 of 70 . Bahasa C++ memiliki kelebihan dibandingkan dengan Bahasa C.

dan sulit dipahami. 3. karena kode program menjadi sulit dibaca. bisa jadi terdapat juga fungsi-fungsi lain (seperti yang telah anda ketahui. return umumnya diikuti dengan kode tertentu (dalam contoh ini. Fungsi utama ini merupakan awal dimana program C++ akan mulai dieksekusi. Usahakan untuk selalu berpindah ke baris baru setelah anda mendeklarasikan fungsi utama. File iostream ini merupakan file yang didalamnya berisi deklarasi pustaka standar inputoutput pada C++. bahwa sebuah program yang sangat besar akan lebih mudah untuk ditulis dengan membaginya/dipecah menjadi beberapa fungsi). return 0 menyatakan bahwa program bekerja sebagaimana yang diinginkan tanpa adanya error selama eksekusi. anda membagi isi buku menjadi beberapa bab. dan oleh karenanya dilibatkan karena fungsi ini selanjutnya akan dipergunakan oleh program. 6. baris komentar tidak akan dieksekusi oleh compiler/diabaikan. statement merupakan ekspresi (sederhana atau kompleks) yang akan menghasilkan efek tertentu saat dieksekusi. int main () Merupakan awal dari fungsi utama pada C++. yang menandakan bahwa anda siap memberikan instruksi pada compiler untuk mengeksekusi baris program selanjutnya. Return 0 umumnya digunakan untuk mengakhiri program C++. Tanda << dalam C++ berarti meyisipkan string "Hello World"ke dalam aliran keluaran. 2.return 0. #include <iostream> berarti bahwa memberi perintah kepada preprocessor untuk melibatkan (include) file standar iostream. Di dalam fungsi utama ini. Baris komentar selalu diawali dengan tanda (//) . 4. Kode ini juga melakukan terminalisasi (menutup berkas-berkas yang digunakan) serta mengembalikan kendali program ke sistem operasi. kode return adalah 0).). 5. Kurung kurawal buka ({ ) dan tutup (}) Blok program pada fungsi utama diawali dengan kurung kurawal buka ({) dan berakhir hingga ditemukan kurung kurawal tutup (}). cout dideklarasikan pada file iostream. #include <iostream> Merupakan pengarah preprocessor. Page 2 of 70 . Ibarat anda menulis sebuah buku.0RGXO 3HPURJUDPDQ . Semua statement yang berada pada blok program fungsi utama inilah yang akan dieksekusi oleh compiler. dan setelah ada tanda titik koma (. 7. Statement cout (baca : C-out) akan menampilkan keluaran pada layar. Anda bisa juga menuliskan kode program di atas sebagai berikut : int main () { cout << "Hello World"<< endl. Oleh karena itulah file iostream dilibatkan melalui perintah #include <iostream>. Cout<< "Hello World" Merupakan statement pada C++. Endl Merupakan perintah untuk berganti baris setelah menuliskan "Hello World". Return 0.RPSXWHU (ARF) tujuan dibuatnya program). } Namun penulisan dengan cara kedua tersebut sangat tidak dianjurkan. Biasakan anda selalu menggunakan perintah ganti baris. statement return menyatakan akhir dari fungsi utama. demikian juga dengan kode program.

cout <<"masukkan ipk anda = "<<flush. cin >> ipk. Program di bawah ini melibatkan perintah masukan. sedangkan cout selalu diikuti dengan <<. Program di atas akan meminta user memasukkan nilai IPK.RPSXWHU (ARF) LATIHAN I. Saat anda mengetik nilai IPK. dengan nama IPK. // program kedua dalam C++ //dibuat tanggal 25 Maret 2006 #include <iostream> int main () { float ipk. } Catatan : • Flush merupakan perintah yang mirip dengan endl. perhatikan bahwa cin diikuti dengan tanda >>. 1. ada masukan yang dberikan oleh user. yaitu cin. • Digunakan cin >> sebagai perintah meminta masukan dari user. Tentu saja kita tidak mempelajari bahasa pemrograman hanya untuk menampilkan keluaran teks seperti program di atas. Saat user mengetik nilai IPK. Tuliskan kalimat berikut pada layar komputer : Nama : (isi nama anda) NIM : (isi NIM anda) Jurusan : (isi sesuai jurusan anda) Program yang telah anda buat hanya melibatkan perintah keluaran.0RGXO 3HPURJUDPDQ . Jadi. Dalam hal ini. Program yang baik umumnya melibatkan interaksi dengan user. namun tidak mengakibatkan ganti baris baru.1 Penyimpanan variabel ke dalam memori Page 3 of 70 . cout <<"nilai IPK anda adalah = "<<ipk <<"(apik tenan)". Ilustrasinya sebagai berikut. Memori IPK Gambar 1. Jangan sampai terbalik !! • Float IPK Merupakan pernyataan deklarasi variabel. nilai tersebut disimpan pada memori komputer. return 0. flush digunakan untuk memerintahkan komputer mengosongkan isi buffer dan menuliskannya ke layar monitor. maka nilai yang diketik tersebut (merupakan masukan) akan disimpan pada buffer (memori) komputer hingga penuh.

dll). Contoh : 3. signed 2.. unsigned int. Obyek dasar dalam C++ dibagi menjadi 3 kelompok : 1. sedangkan long double memiliki jangkauan data paling besar. seperti : short int. obyek dasar ini dimaksudkan sebagai tipe data. B. b. Contoh deklarasi : float A. Data tipe float memiliki jangkauan data terkecil .) 1.. A dan B merupakan masukan dari user.. Tipe data integer ini memiliki beberapa variasi. dst. Perhatikan dan pahami benar konsep ini !!. Jika A dan B merupakan variabel bertipe integer. Tipe obyek floating point Tipe ini digunakan untuk mewakili tipe data yang berupa bilangan pecahan desimal. 3. disingkat menjadi int. dan C adalah variabel bertipe integer .RPSXWHU (ARF) • cout <<"nilai IPK anda adalah = "<<ipk <<"(apik tenan)". 509. Tapi untuk memudahkan. Int memiliki jangkauan data : -32686 hingga +32686. LATIHAN 2. B. long int.(apik tenan) dengan titik-titik terisi sesuai dengan nilai IPK yang anda ketik sebelumnya lewat keyboard. anda bisa mendeklarasikannya dengan 2 cara : a. bukan koma!) Seperti juga tipe integer. Deklarasinya adalah : char A . Buatlah sebuah program dengan keluaran sebagai berikut : A= B= Jika A= . kita akan memakai float saja dengan alasan kemudahan. Tipe ini digunakan untuk menampung bilangan bulat (seperti : 1. int.. Ukuran memori untuk meyimpan data jenis int umumnya adalah 16 bit (2 byte). 1. dengan masing-masing jangkauan data yang berbeda. 200.. tipe floating point memiliki beberapa variant yaitu : float. int A.. Tipe obyek charakter Tipe ini digunakan untuk menampung data bertipe karakter. double..2 OBYEK DASAR DALAM C++ Dalam beberapa literatur.0RGXO 3HPURJUDPDQ . Akan menghasilkan keluaran : nilai IPK anda adalah . dan long double. Kumpulan dari karakter membentuk string. Dipisah : int A. Page 4 of 70 . Untuk selanjutnya. unsigned short int. (menuliskan pecahan desimal menggunakan tanda titik. Anda bisa mendeklarasikannya sebagai berikut : string A... Tipe obyek Integer Dalam deklarasi.1418. anda bisa lihat pada modul bahasa C sebelumnya). (Mengenai jangakauan data ini. kita pergunakan int saja. Digabung: int B. maka hasilnya adalah C = (A.ditambah dengan B=.

1.1415 .0RGXO 3HPURJUDPDQ . bernilai 5.3 MEMBERI NILAI KE VARIABEL (PENUGASAN) int a = 5.4 OPERATOR ARITMATIKA Operator yang digunakan pada C++ sama dengan operator yang digunakan pada C. bernilai 3.1415.RPSXWHU (ARF) ¾ Catatan : • Aturan penamaan variabel sesuai dengan aturan penamaan pada bahasa C.1415. Tidak dibahas disini. : idem. Int a(5).1415 : konstanta pi. Operator Aritmatika yang digunakan dalam C++ Operasi Operator Penambahan + Pengurangan Perkalian * Page 5 of 70 . berisi string : Hello Word string B="Hello Word" MENDEFISIKAN KONSTANTA Konstanta merupakan nilai yang tidak pernah berubah. Oleh karenanya. : idem : nilai a ditambahkan dengan 3. Silahkan dipelajari kembali. Perhatikan beberapa aturan pemberian nilai berikut ini : : a adalah variable tipe integer.2 Variabel Global dan lokal 1. Gambar 1. hasilnya disimpan di variabel a : variable result berisi pengurangan a dengan b : variabel B bertipe string. 1. pi=3. harus dideklarasikan sebagai konstanta. atau const float pi = 3. sedangkan variabel yang terletak di dalam fungsi merupakan variabel lokal. Bentuk deklarasinya adalah : #define pi 3. maka merupakan variabel global. Apabila variabel terletak di luar fungsi utama. agar nilai ini tidak termodifikasi /berubah.b. • Variabel memiliki atribut sendiri. a = a + 3. atau dengan memakai bentuk literal : float pi. hasil = a . sepbagaimana ditunjuikkan pada tabel berikut : Tabel 1.

apabila fungsi ini digunakan.4 STRLEN OPERASI Sama dengan Lebih kecil atau sama dengan Lebih kecil Lebih besar atau sama dengan Lebih besar Tidak sama dengan Fungsi strlen digunakan untuk mengitung panjang string.h> int main (){ char B[]="ABCDE".3. char nama[30]. cout<<"nama anda terdiri dari "<<strlen(nama)<<" karakter". } Page 6 of 70 . hasilnya : *. hasilnya : Long double Long double Long double Long double Long double Selain operator binary di atas. maka harus menyertakan file header string. contoh program : #include <iostream.RPSXWHU (ARF) Pembagian Sisa Hasil Bagi / % Tabel berikut adalah aturan hasil operasi dari 2 operand yang berbeda beda Tabel 1. cout<<"panjang string B adalah= "<< strlen(B)<<endl. hasilnya -.0RGXO 3HPURJUDPDQ .h> #include <string.h.2 Aturan hasil operasi dari 2 operand yang berbeda beda Operand 2 Operator +.5 OPERATOR RELASIONAL Tabel 1. String literal ‘ABC’ memiliki panjang 3. hasilnya : : : Int Int long Float double Long float double Long double Long float double Long double Long float double Long double Float float double Long double double double double Long double Operand 1 Int Long float double Long double %. cin>>nama. dua statement di atas sama dengan statament : c=c+1. c+=1. cout<<"masukkan nama anda = ". 1. dikenal juga operator unary. hasilnya /. Contoh : c++. Operator relasional dalam C++ OPERATOR == <= < >= > != 1.

Gunakan konstanta pi = 3.1415 D_luar <=0? Pesan " Error. dari satuan mil ke kilometer.9 ? Pesan " Error. 1 feet = 12 inchi 1 inchi = 2. jika flow chart sebagai berikut : main( ) tampilkan judul program. Buat program . D_dlm terlalu kecil" D_luar Rumus mencari luas antara Luas = pi (D_luar 2 – D_dlm 2)/4 rasio D >. Buatlah sebuah program menghitung luas dan keliling lingkaran.RPSXWHU (ARF) LATIHAN 4 a.14 dalam perhitungan. Apa yang dimaksu dengan operator unary e.0RGXO 3HPURJUDPDQ . Masukan dari user ! c. D_luar dan D_dalam adalah masukan user float D_luar float D_dlm float luas pi = 3. & luas return Page 7 of 70 .54 cm 1 km = 100. Nilai jari-jari merupakan masukan dari user. D_dlm.000 cm (program anda harus menampilkan satuan2 di atas).D-dlm2)/4 tampilkan nilai D_luar. 1 mil = 5280 feet. b. input harus > 0" D_dlm rasio D<.3 ? Pesan " Error. D_dlm terlalu kecil" luas = pi(D_luar2 . d. Tuliskan Nama dan NIM anda di tengah-tengah layar monitor. Buatlah program konversi jarak.

seringkali kita akan menemui blok program (compoundstatement). maka statement tidak akan dijalankan (diabaikan). namun terdiri dari beberapa statement (atau blok). Di dalam program.1 SELEKSI KONDISIONAL MEMAKAI IF Keyword If digunakan untuk mengekskusi sebuah statement atau blok program hanya jika kondisi yang dipersyaratkan terpenuhi. dan dalam kondisi apa struktur kendali ini dijalankan/dieksekusi. kapan. Format penggunaan if adalah sebagai berikut : if (kondisi) statement dengan kondisi merupakan ekspresi yang akan diuji. Sebagai contoh : program berikut akan menuliskan “x bernilai seratus” apabila nilai yang tersimpan pada variabel x adalah 100. yang merupakan kumpulan dari statement-statement yang dipisahkan oleh tanda titik koma (. Untuk keperluan tersebut. C++ menyediakan struktur kendali yang mengatur apa yang harus dilakukan di dalam pogram yang dibuat oleh programmer. Jika hasil pengujian kondisi tidak terpenuhi (bernilai salah).) seperti halnya statement-statement pada C++. cout<<x. atau mengambil sebuah keputusan. statement3. maka tidak perlu berada dalam tanda kurung kurawal ({}). maka statemen. maka perlu diletakkan dianatara tanda kurung kurawal ({}) sehingga membentuk sebuah blok program. Jika statement yang dimaksud adalah statement sederhana. maka statement akan dikesekusi.statement tersebut diletakkan diantara tanda titik koma.RPSXWHU (ARF) BAB 2 STRUKTUR KENDALI PROGRAM (CONTROL STRUCTURE) Sebuah program tidak hanya dibatasi hanya untuk menjalakan instruksi-instruksi yang bersifat linear. if (x == 100) cout<<"x bernilai 100". Akan tetapi statement tersebut digabung dalam kurung kurawal buka dan tutup : { } { statement1. Jika statemen yang dimaksudkan adalah statement majemuk/blok. mengulang kode program tertentu. Apabila statement yang akan dijalankan tidak hanya satu. 2. } Sebuah statement dapat berupa statement sederhana (statemen sederhana yang diakhiri dengan tanda titik koma) atau statement majemuk (beberapa instruksi yang tergabung dalam satu blok). Sebuah program adakalanya melakukan percabangan. Page 8 of 70 . statement2.0RGXO 3HPURJUDPDQ . dan program akan melanjutkan mengeksekusi statement-statement program selanjutnya. if (x == 100) { cout<<"x bernilai ". Jika hasil pengujian kondisi terpenuhi (bernilai benar).

2 SELEKSI KONDISIONAL MEMAKAI IF . atau nol. cin>>n.n. ELSE Selanjutnya. yang digunakan bersama-sama dengan if.h> int main (){ int m. Hal ini berbeda dengan pemakaian sintaks if saja. anda menggunakan keyword else. Dalam hal ini. Statement cout << "x bernilai 100" akan dicetak di layar monitor apabila nilai variabel x adalah 100. Bentuk pemakaian keyword if . if (x>0) cout<<"x adalah positif". maka di layar monitor akan tercetak tulisan : x bukan 100. maka program akan keluar dari struktur if dan menjalankan statement-statement berikutnya dalam program.RPSXWHU (ARF) } Berikut adalah contoh program membandingkan 2 buah nilai. . Pada pemakaian hanya dengan sintaks if. Page 9 of 70 . apabila nilai variabel x tidak sama dengan seratus. 2. else cout<<"x bukan 100". cout<<"masukkan nilai M = ".. else cout<<"x adalah 0". Apa keluarannya ? mengapa demikian ? 2.h> #include <string. else cout<<"M lebih kecil dari N". if (m>n) cout<<"M lebih besar dari N"<<endl.3 IF BERSARANG (NESTED IF) Struktur if + else dapat dijadikan bentuk concatenated dengan pengujian sejumlah kondisi. Berikut ini adalah kode program yang akan menguji apakah nilai yang tersimpan pada variabel x merupakan bilangan : positif. else adalah : if (kondisi ) statement1 else statement2 Perhatikan contoh program berikut : if (x == 100) cout<<"x bernilai 100". cin>>m. anda juga dapat mengatur tindakan apa yang akan dijalankan oleh program seandainya kondisi yang dipersyaratkan tidak terpenuhi. cout<<"masukkan nilai N = ". } Pertanyaan : Analisislah program di atas. apabila pengujian kondisi bernilai salah. #include <iostream.0RGXO 3HPURJUDPDQ . else if (x<0) cout<<"x adalah negatif". negatif.

or). cout << "nilai x tak diketahui". } } Page 10 of 70 . dan menjalankan perintah selanjutnya. Program selanjutnya akan melompat ke akhir switch dan menjalankan statement-statement program di luar struktur switch. !=. Program selanjutnya akan melompat ke bagian akhir struktur switch. cout << "x adalah 1". break. else { default: cout << " nilai x tak diketahui ". Logika C++ dari pemakaian seleksi kondisi sama dengan logika pada C.0RGXO 3HPURJUDPDQ . maka program akan menjalankan kumpulan statement1 hingga dijumpai statement break.4 STRUKTUR SELEKTIF MENGGUNAKAN SWITCH Penggunaan sintaks switch adalah untuk mengecek kemungkinan ekspresi. Tabel berikut ini menghasilkan eksekusi program yang sama Tabel 2. Seleksi kondisional pasti menggunakan operator relasional (==. } break.. maka letakan statement-statement tersebut dalam tanda kurung kurawal { }. } break. Bentuk umum penggunaan switch adalah : switch (ekspresi) { case constant1 : kumpulan statement 1. Yang membedakan adalah sintaksnya saja. Pemakaian switch dan If. else if (x == 2) { case 2: cout << "x adalah 2". maka program akan menjalankan kumpulan statement 2 hingga ketemu dengan pernyataan break. 2. Demikian seterusnya. case constant2 : kumpulan statement 2. Jika ya. . Jika hasil pengecekan ekspresi bernilai sesuai dengan konstanta1. break. .RPSXWHU (ARF) Jangan sampai anda lupakan.1. apabila anda menginginkan lebih dari satu statement yang akan dieksekusi oleh program. maka akan dicek apakah ekspresi bernilai sesuai dengan constant2. Switch akan mengevaluasi ekspresi dan akan mengecek nilai ekspresi. <=.else Pemakaian switch Pemakaian if-else switch (x) { if (x == 1) { case 1: cout << "x adalah 1". default : kumpulan statement default } sejumlah/beberapa Switch bekerja sebagai berikut. Seleksi kondisi digunakan untuk membandingkan dua atau lebih variabel yang terlibat. >. <. cout << "x adalah 2". Jika ekspresi tidak sesuai dengan constant1. dan >=) dan kadangkala digabung dengan operator logika (and .

2 atau 3". Buatlah program untuk menghitung upah dan upah lembur berdasarkan kondisi berikut : a. } 3.000. Sebagai contoh. Upah satu setengah kali untuk jam kerja diatas 40 sampai dengan 50. } 5. } 4. b. apabila pernyataan break tidak dikutsertakan pada case1. Apa yang keliru pada pernyataan berikut ini? if age == 18 { cout << “You can vote” << endl. 6. maka sisa statement yang berada setelahnya akan dieksekusi juga oleh program. (Anda akan tahu penyebabnya setelah melihat masalah ini. 50. Upah dua kali untuk jam kerja diatas 50. Buatlah program untuk toko makanan sehat yang menghitung harga dari tabel berikut yang berdasar pada jumlah vitamin yang dijual: Jumlah Dijual Harga per vitamin Page 11 of 70 .0RGXO 3HPURJUDPDQ . sehingga diperlukan perintah break yang akan memaksa program untuk keluar dari struktur switch apabila kumpulan statement yang sesuai dengan ekspresi telah selesai dieksekusi. Apakah perbedaan antara pernyataan if dan if-else? 2. cout << “Everything is not as well…” << endl. Jika pernyataan break tidak diikutsertakan. program tidak akan keluar dari struktur switch. dan akan melanjutkan mengeksekusi baris-baris statement yang berada di bawahnya hingga ditemui instruksi break atau hingga menjumpai bagian akhir dari struktur switch. Kira kira output bagaimanakah yang ditampilkan setelah program berikut ini dieksekusi ? switch (x) { case 1: case 2: case 3: cout << "x adalah 1. Ini memanfaatkan tanda “!” yang mengandung trik yang perlu anda jauhi. 2 atau 3". Apa yang keliru pada pernyataan berikut ini? if (amt = 2).untuk masing-masing jam sampai dan termasuk 40 jam kerja. { flag = 1. c. maka setelah kumpulan statement yang bersangkutan dijalankan.) Akankah cout berikut mengeksekusinya? if (!1) { cout << “This is tricky” << endl. break. Upah Rp..RPSXWHU (ARF) Pengunaan sintaks switch memerlukan perhatian khusus karena sintaks ini menggunakan label. default: cout << "x bukan 1. } LATIHAN 1 1.

besar diskon ($0. Jika selain huruf di atas. 6. jumlah pajak. yang menyatakan lama dia bekerja. tampilkan pesan sebagai berikut (misalnya pengguna memasukkan angka 13) : Anda Telah bekerja selama 13 tahun. b = a++ – 1. Buatlah program yang menanyakan apakah user setuju atau tidak? Jika user menekan huruf ‘y’ atau ‘Y’. Jika termasuk dalam jangkauan tersebut.. Tanyakanlah jumlah barang yang dibeli.2) selesai dijalankan? 4. Berapa nilai a setelah menjalankan perintah berikut ini? int a = 6. Bila pemakai memasukkan angka diluar batas tadi. Berapa nilai b setelah kode pada soal diatas (soal no. berikan diskon sebesar 10% setelah pajak.RPSXWHU (ARF) 25 atau kurang 26 sampai 49 50 keatas Rp. tampilkan pesan berikut : Anda Telah bekerja cuma 1 tahun Pergunakanlah suatu kondisi untuk memperhitungkan apakah lama kerja Cuma 1 tahun atau lebih. Berapa nilai a setelah menjalankan perintah berikut ini? int a = 6. Perhitungkan pajak penjualan sebesar 8% jika pemakai membeli kurang dari $100 dan 7. LATIHAN 3 a. intensif course atau reguler. Apakah yang salah pada pernyataan kondisional berikut ini? (9 > i || u <= 8) ? (p = 12) . 3. b = ++a – 1. b. 5 per vitamin Rp. Buatlah program menghitung rata-rata dari nilai mhs yang didapat dari rumus : Page 12 of 70 . Terdapat 2 jenis kategori kursus. Bila pengguna memasukkan angka 1. Apakah yang salah pada pernyataan kondisional berikut ini? r = (u < 100) ? (r = 12) : (r = 13). (p = 13). 99. 7. tampilkan sebuah pesan kesalahan dan akhirilah program dengan segera. Biaya per peserta adalah Rp. 4 per vitamin diatas 25 Rp.dan kursus hanya dapat terlaksana apabila terdapat lebih dari 8 orang. Jika pembelian lebih dari $500 . Tarif intensif course lebih mahal 30 %. Buatlah program yang akan menampilkan jumlah yang harus dibayarkan pada sebuah toko yang menjual segala sesuatu seharga 1 dolar tepat. Jangan pergunakan pernyataan if pada program tersebut. 2. Cetak jumlah pembelian.0RGXO 3HPURJUDPDQ . dari 1 sampai 40. 5.00 jika tidak ada diskon yang diberikan) dan total yang harus dibayarkan.000.5% jika pembeliannya lebih besar atau sama dengan $100. Buatlah program menghitung biaya registrasi dari sebuah LPK yang menyediakan kursus “ MS Office”. Buatlah program yang meminta agar pemakai memasukkan angka tahun. maka ditampilkan pesan : Anda setuju. maka user tidak setuju. 3 per vitamin diatas 49 LATIHAN 2 . Gunakanlah operator kondisi saja jika program Anda memang harus melakukan pilihan. c.

Apa yang dapat anda tambahkan agar membantu dalam pemeliharaan switch ini di masa yang akan datang? switch (ans) { case (1) : cout << “The answer is 1” << endl. Apakah yang keliru pada pernyataan switch berikut ini? switch (choice) case (1) : {ans =34*penjualan. nilai A • Skor antara 80 – 90: nilai B • Skor antara 70 – 80 : nilai C • Skor antara 60 – 70 : nilai C – • Skor antara 40 – 60 : nilai D • Skor <40 : nilai E • Skor < 0 : pesan error. break.”. switch (ans) { case (2) : { cout case (5) : { cout ”. “Carrots” << endl. } 3. Pada program berikut ini pernyataan switch-nya tidak bekerja. break. “Onion” << endl. maka dinyatakan LULUS. } << Departemen anda sedang mengadakan 4. LATIHAN 4 Apa keluaran dari pernyataan switch berikut? switch (‘A’): { case (‘A’) case (‘B’) case (‘C’) default } : : : : cout cout cout cout << << << << “Apple” << endl. } Page 13 of 70 . • Skor >=90. default : cout << “The switch statement is not finished. Berikut adalah program untuk mengendalikan laporan tugas departemen yang muncul pada suatu saat.” << endl. } case (9) : { cout default : { cout konferensi. jika nilai akhir >= 60. } case (2) : {ans =56*penjualan. } case (3) : {ans =78*penjualan. Meskipun switch berikut tak berisi kesalahan sintaks apapun.”. tampilkan pesan eror. stiap baris kode pada case tak memiliki sepasang karakter khusus yang nantinya mungkin akan berguna. } } cout << “” << endl.0RGXO 3HPURJUDPDQ . break. “Bananas” << endl. jika <60 maka TIDAK LULUS 2. Buat ulang program sehingga setiap blok case dieksekusi tak tergantung kepada blok lainnya. 2.RPSXWHU (ARF) Nilai akhir = (nilai teori + nilai praktek + nilai MID)/3 Dengan ketentuan : 1. berikan predikat untuk setiap nilai dengan ketentuan : • skor >=100. } << Departemen anda mulai bekerja jam 4 pm << Departemen anda harus lembur.”. << Departemen anda sedang libur.

Meskipun pernyataan switch tidak dapat menangani langsung suatu daerah nilai. } 7. Berikut adalah kode pernyataan if-else bersarang. dikenakan biaya tambahan $1. dan pernyataan switch pada daerah menu. Bila kendaraan berupa truk.00 untuk setiap berat tambahan.00 bila pengemudi menggunakan jalan bebas hambatan sepanjang 75 mil. $0 bila pengguna menjual kurang dari 100 produk. Menu 1 : kapasitor seri b. (sebagai contoh. Menu 2 : kapasitor paralel c. Tulis ulang pernyataan berikut dengan menggunakan switch untuk membantu pemeliharaan program kelak. Default : tampilkan pesan kesalahan. } 5. dan $100 bila pengguna menjual lebih dari 200 produk. Page 14 of 70 . Tulislah sebuah program yang menghitung bonus penjualan. Sertakan sebuah kalang pemeriksaan kesalahan untuk memasukkan sebuah angka dalam batas 1 sampai 5. Perhitungkan biaya $3.50 bila pengemudi menggunakan jalan bebas hambatan sepanjang 125 mil. (Petunjuk : Pergunakan satu switch dan satu pernyataan if) 9. 6. $3. Tampilkan kata-kata dari nomor tersebut dalam bahasa inggris. Buatlah program menghitung nilai kapasitansi 2 buah kapasitor. mulai dari nomor 1 sampai jumlah angka dari menu pilihan sampai ke bagian kiri dari setiap jangkauan. Mintalah pemakai memasukkan angka dari 1 sampai 5.0RGXO 3HPURJUDPDQ . Dengan menggunakan sebuah pernyatan switch. Buatlah sebuah program yang menghitung tarif gerbang tol antarnegara bagian. } else { cout << “Greece” << endl. 8. } else if (num == 3) { cout << “England” << endl. break. Anda dapat menampilkan sebuah menu dengan suatu jangkauan. Tanyakan apakah pengemudi mengendarai mobil atau truk. if (num == 1) { cout << “France” << endl.00 bila pengemudi menggunakan jalan bebas hambatan sepanjang lebih dari 125 mil. } else if (num == 2) { cout << “Italy” << endl. tampilkan two bila pengguna mengetik 2). dengan pilihan : a.RPSXWHU (ARF) default : {ans =penjualan. $50 bila pengguna menjual antara 101 sampai 200 produk. $4.

} cout<<"FIRE!". kita akan membuat program yang akan menghitung mundur : int main() { int n. dan program akan melanjutkan mengeksekusi statementstatement program selanjutnya yang berada di luar struktur while. contoh. Jika nilai angka yang dimasukkan oleh user memenuhi kondisi n>0 (lebih besar dari nol) maka blok program dalam statement kondisi akan dieksekusi dan akan diulang terus menerus selama kondisi (n>0) terpenuhi. 6. loop while akan dimulai. Jika ekspresi yang dipersyaratkan tidak terpenuhi (bernilai salah). dan akan berakhir jika kondisi (n>0) tidak terpenuhi. cin >> n.0RGXO 3HPURJUDPDQ . while(n>0) { cout<<n<< ". 7. maka statement tidak akan dijalankan (diabaikan). Terdapat 2 kemungkinan pengujian : * kondisi bernilai benar : statement dieksekusi (dan lanjutkan ke langkah 3) * kondisi bernilai salah : abaikan statement dan lanjutkan setelahnya (ke langkah 5) 3. Setelah input dimasukkan.RPSXWHU (ARF) BAB 3 PERULANGAN/ITERASI Loops/perulangan/kalang bertujuan untuk mengulang statement selama beberapa kali atau selama kondisi terpenuhi. 1. 2. user akan dihadapkan dengan perintah untuk memasukkan sembarang nilai angka yang akan dihitung mundur. FIRE! Pada saat program mulai dijalankan. User diminta memasukkan sembarang nilai angka. cout << "masukkan angka mulai = " > ". 5. Kondisi while akan diuji (n>0). 3. eksekusi statement : Page 15 of 70 . 4. } Output : masukkan angka mulai = > 8 8. ". return 0. --n. Terdapat beberapa bentuk perulangan. yaitu : 3. Keseluruhan proses program yang telah dibuat di atas dapat diterjemahkan ke dalam algoritma sebagai berikut : 1.1 LOOP WHILE Format loop menggunakan while adalah sebagai berikut : while (ekspresi) statement Fungsi penggunaan while di atas adalah untuk menjalankan perintah yang terdapat dalam statement apabila ekspresi yang dipersyaratkan terpenuhi. 2.

cin >> n. Lanjutkan program yang ada setelah block: ketik FIRE! Dan akhiri program. Jadi. do { cout << "Masukkan angka (0 untuk mengakhiri): ". hingga user menekan huruf 0. Program berikut akan meminta user untuk memasukkan input. WHILE Format pengulangan menggunakan do . 3. kecualai bahwa nilai kondisi yang dipersyaratkan akan akan dievaluasi setelah minimal satu kali statement setelah do dijalankan. dengan kecepatan komputer saat ini. tindakan sederhana seperti program di atas akan dieksekusi secara seketika tanpa adanya waktu tunda yang berarti. while adalah sama dengan loop while. Akhir blok. .h> int main () { unsigned long n.". } while (n != 0). Kembali ke blok 2 5. sehingga loop akan berhenti setelah melakukan sejumlah pengulangan. return 0. Seperti halnya pada contoh program di atas. Tentu saja. while adalah : do statement while (kondisi). yaitu saat kondisi salah terjadi. cout << "Anda menekan: " << n << "\n".2 LOOP DO .RPSXWHU (ARF) cout<<n<<". sehingga kita harus menyediakan perintah yang akan memaksa program untuk menghentikan eksekusi .. } output : Masukkan angka (0 untuk mengakhiri): 12345 Anda menekan: 12345 Masukkan angka (0 untuk mengakhiri): 160277 Anda menekan: 160277 Masukkan angka (0 untuk mengakhiri):0 Anda menekan: 0 Loop do-while umumnya digunakan jika kondisi yang harus dipenuhi agar terjadi perulangan telah ditentukan di dalam statement loop itu sendiri. minimal satu statement akan dieksekusi oleh program.0RGXO 3HPURJUDPDQ . loop akan berlanjut hingga tak terhingga. (cetak nilai n pada layar dan kurangi dengan 1) 4. Jika tidak.. Fungsi loop do . --n. Dalam hal ini. Selama user belum memberi input 0. nilai n akan dikurangi dengan 1 (melalui perintah –n) sehingga pada suatu saat akan dijumpai kondisi n<0. #include <iostream. Page 16 of 70 . perulangan tidak akan berhenti. Yang harus diperhatikan dalam menggunakan loop while adalah : anda harus meyakinkan bahwa perulangan yang dilakukan oleh program suatu saat akan berakhir pada titik tertentu. input user yang berada di dalam blok program akan menentukan apakah perulangan masih akan dijalankan ataukah tidak.

loop dapat ditingalkan/dilompati meskipun kondisi akhir masih belum terjadi. #include <iostream> int main () { int n. 2. Statemen dapat berupa : single statement ataupun blok program yang tergabung dalam tanda kurung kurawal. 2. Hal ini dapat dilakukan sebagai strategi untuk menghindari loop yang tak terhingga atau memaksa program untuk menghentikan operasi perulangan. n--) { Page 17 of 70 . Kode program tersebut akan memiliki algoritma sebagai berikut berikut.3 LOOP FOR Format perulangan mengunakan for adalah sebagai berikut : for (inisialisasi. ". dalam arti dapat juga dikosongkan dengan catatan.4. 8. tanda titik koma yang berada diantaranya tetap ditulis. n>0. maka loop akan berakhir. sebagaimana yang dijumpai pada loop yang lain. Perbedaannya adalah : pada loop menggunakan for telah ditentukan nilai awal dan akhir suatu perulangan. 5.0RGXO 3HPURJUDPDQ . n--) { cout << n << ". increase) statement. 3. Sebagai contoh. { }. loop akan berlanjut (kontinyu). Statement dieksekusi. 3. FIRE! Catatan : Inisialisasi dan field kenaikan/penurunan bersifat opsional.4 STATEMENT JUMP 3. for (n=10.RPSXWHU (ARF) 3. Fungsi penggunaan for ini adalah untuk melakukan perulangan jika kondisi yang dipersyaratkan terpenuhi. n>0. 3. 1. Berikut ini adalah contoh program untuk menghitung mundur : #include <iostream> int main () { for (int n=10. } cout << "FIRE!". 4. 1. 6. } output : 10. Kenaikan/penurunan akan dieksekusi dan loop akan kembali ke langkah 2. 7.1 STATEMENT : BREAK Dengan menggunakan perintah break. Kondisi akan diperiksa terlebih dahulu. kita ingin menghentikan perulangan sebelum kondisi akhir perulangan terpenuhi. dan juga kenaikan (atau penurunan) yang harus dilakukan antara nilai awal dan akhir yang diberikan. 9. Jika tidak. return 0. kondisi. Jika bernilai benar.

Apa keluarannya ? mengapa demikian ? 3. yang kemudian digunakan sebagai argumen bagi statement goto. n--) { if (n==5) continue. Sebagai contoh. if (n==3) { cout << "hitung mundur dibatalkan!".3.4. ". kita ingin men-skip saat n = 5 dalam program berikut : #include <iostream> int main () { for (int n=10. ". Kode program yang menjadi tujuan dari lompatan goto diidentifikasi dengan label.RPSXWHU (ARF) cout << n << ". STATEMENT : GOTO Goto mengakibatkan program melompat secara mutlak ke titik/bagian lain pada program. } Pertanyaan : Analisislah program di atas. return 0. return 0.0RGXO 3HPURJUDPDQ . Secara umum perintah goto ini sudah ditinggalkan. n>0. Dengan catatan bahwa goto menyebabkan kondisi lompatan tanpa memperdulikan batas/limitasi nestingnya. cout << "FIRE!". loop: cout << n << ". Anda dapat mengunakan fitur ini dengan pengunaan goto.2. Apa keluarannya ? mengapa demikian ? 3.4. cout << n << ". if (n>0) goto loop. Page 18 of 70 . } Pertanyaan : Analisislah program di atas. break. STATEMENT : CONTINUE Statement continue menyebabkan program men-skip sisa loop yang sedang dijalankan (seperti telah menemui akhir loop) dan menyebabkan program melompat ke awal perulangan/iterasi. baik dalam pemrograman terstruktur aupun dalam pemrograman berorientasi objek. Berikut adalah contoh program perhitungan langkah mundur menggunakan goto. } } return 0. ". n--. } cout << "FIRE!". #include <iostream> int main () { int n=10. Sebuah label merupakan sebuah identifier yang diikuti dengan tanda titik dua (:).

count < 5. ctr2++) { nilai = ctr1 * ctr2.RPSXWHU (ARF) } Pertanyaan : Analisislah program di atas. Berapa kali X ditampilkan ? for (count = 0. dalam < 3. } } Page 19 of 70 . goto d. count++) { cout << ‘X’. ctr1 <= 10. Berapa kali X muncul pada kalang for bersarang berikut? for (luar = 0. Hamid melakukan kalang for bersarang. continue. break. Apa keluarannya ? mengapa demikian ? LATIHAN 1 1. Berapa kali X ditampilkan ? for (count = 0. } 2. count < 5. } 3. tetapi tampaknya tidak bekerja dengan benar. Berikut adalah kode sphagetti! Apa keluarannya? #include <iostream. count++) { cout << ‘X’. dalam++) { cout << “X”. luar < 5.0RGXO 3HPURJUDPDQ . goto b. a: cout << “b” << endl. e: goto f. b: cout << “d” << endl. cout << nilai << endl. goto c. } } 5. luar++) { for (dalam = 0. Perbaiki masalahnya! Berkut adalah bagian program yang membuat masalah: for (ctr1 = 1. goto e.h> void main() { goto a. f: return. ctr1++). { for (ctr2 = 1. c: cout << “a” << endl. ctr2 <= 5. } 4. d: cout << “c” << endl.

Begitu pemakai memasukkan 5 buah nilai atau -99 (menunjukkan tak ada lagi skor tes). cin >> fnama. Tulislah program yang menanyakan pemakai mengenai pembacaan temperatur untuk 10 hari terakhir. } //Memastikan pemakai memasukkan kata //dan bukan karakter khusus 7. Page 20 of 70 . Tuliskan kembali kode berikut menggunakan pernyataan while : TanyaLagi: cout << “Apa nama pertama Anda? ”.RPSXWHU (ARF) 6. Hitunglah rata-rata temperaturnya.0RGXO 3HPURJUDPDQ . (Bantuan break barangkali membantu dengan menghentikan lebih awal). Tulislah program dengan dua kalang bersarang yang menghasilkan keluaran sebagai berikut: ABCD ABC AB A 8. ini berarti bahwa ia mengambil lebih sedikit daripada 5 tes dan siap menghitung rata-rata lebih awal. Catatlah banyaknya temperatur diatas temperatur titik beku yang dimasukkan pemakai (via variabel pencacah) dan hitunglah rata-rata berdasarkan jumlah nilai yang valid yang dimasukkan. hitunglah rata-rata (titik-mengambang) dan menampilkan hasilnya. Tulislah program yang menanyakan pemakai untuk skor tes. Program berlanjut sampai pemakai memasukkan -99 untuk memperoleh nilai rata-ratanya atau sampai ia memasukkan 5 buah nilai (hanya ada 5 tes). pastikan bahwa continue membuat program mengabaikan pembacaan (rata-rata hanya untuk temperatur diatas titik beku). Kalau pemakai memasukkan -99. Masukkan semua nilai tes sebagai integer untuk membuatnya sederhana. tambahkan nilai tersebut ke variabel total dan naikkan variabel pencacah (variabel pencacah kalang akan bekerja untuk mencacah tes). if ((fnama[0] < ‘A’) || (fnama[0] > ‘Z’)) { goto TanyaLagi. Jika pemakai memasukkan temperatur di bawah titik beku. Pastikan bahwa Anda memberi selamat kepada pemakai kalau rata-ratanya lebih dari 90%! 9. Saat pemakai memasukkan masing-masing nilai tes.

1 MANFAAT PENGGUNAAN FUNGSI Dengan menggunakan fungsi. seperti halnya deklarasi variabel yang umumnya diapakai dalam C++.0RGXO 3HPURJUDPDQ .3). Berikut adalah contoh program C++ menggunakan fungsi : #include <iostream> int addition (int a.){ statement } dengan : • • • Tipe merupakan tipe data yang nilainya dikembalikan oleh fungsi yang • bersangkutan (opsional)...2 FORMAT PENGGUNAAN FUNGSI Sebuah fungsi merupakan sekumpulan statement yang akan dieksekusi apabila fungsi tersebut dipanggil/diakses pada titik tertentu dalam program. yang berupa blok program yang berada diantara tanda { }. z = addition (5. } 4. (sebagai contoh : int x) dan bertindak sebagai variabel lokal dalam fungsi tersebut. } int main () { int z. int b) { int r. Format penggunaan fungsi dalam program C++ adalah sebagai berikut : tipe nama( parameter1. Statements merupakan tubuh fungsi. Nama : identifier yang digunakan untuk memanggil fungsi yang bersangkutan Parameter (sejumlah yang dibutuhkan): setiap parameter terdiri dari tipe data dan identifier. Cara ini memberikan keuntungan dalam hal : ¾ Kemudahan dalam memahami kode program ¾ Kemudahan dalam membuat program ¾ Memudahkan dalam pengecekan kesalahan 4. kode program yang ditulis dapat dijadikan bentuk modular (kode program yang tersusun dari modul-modul) sehingga program yang besar dan kompleks dapat kita breakdown menjadi modul-modul program.3 PELEWATAN PARAMETER ouput : Hasilnya adalah 8 Analisis kode programnya adalah sebagai berikut : Page 21 of 70 . cout << "hasilnya adalah " << z.parameter2. return (r).RPSXWHU (ARF) BAB 4 FUNGSI 4. return 0. . Parameter-parameter yang berbeda dipisahkan dengan tanda koma. r=a+b.

Perhatikan kesamaan struktur pemanggilan fungsi dengan deklarasi fungsi yang bersangkutan sebagaimana ditunjukkan di bawah ini. Fungsi addition juga mendeklarasikan variabel. oleh karena variabel-variabel tersebut merupakan variabel lokal. Dalam hal ini. kode program C++ umumnya diawali dengan eksekusi fungsi main. yang berfungsi mengembalikan kendali program ke fungsi main. Terlihat bahwa terdapat korespondensi yang bersesuaian antara parameter dan argumen. jadi. variabel z akan di-set sesuai dengan nilai yang dlewatkan pada fungsi. dengan adanya ekpresi : r=a+b. Terlihat dalam program bahwa fungsi main diawali dengan deklarasi variabel z yang bertipe int. Di dalam fungsi main dijumpai pemanggilan fungsi addition yang melewatkan dua buah nilai : 5 dan 3. Oleh karenanya. yang berkorespondensi dengan deklarasi parameter int a dan int b pada fungsi addition.4. statement return pada fungsi addition berisi sebuah nilai yaitu 8. dan selanjutnya akan mengikuti statement-statement yang ada setelah pemanggilan fungsi.0RGXO 3HPURJUDPDQ .lokal lainnya (int r). b atau r tidak bisa digunakan secara langsung di dalam fungsi main. maka r bernilai 8. yaitu hasil penambahan 5 dan 3. Selanjutnya. variabel a. Kode berikut : return (r). Variabel ini merupakan variabel lokal. terlihat ada perintah pemanggilan fungsi bernama addition. Dalam contoh sebelumnya. VARIABEL LOKAL DAN VARIABEL GLOBAL Variabel yang dipakai dalam fungsi hanya berfungsi dalam fungsi tersbut dan tidak bisa digunakan di luar fungsi yang bersangkutan. nilai kedua argumen yang dilewatkan melalui fungsi (5 dan 3) akan disalin ke variabel lokal int a and int b di dalam fungsi. merupakan akhir dari fungsi addition. kode program : cout << "hasilnya adalah " << z. setelah nilai pada fungsi dilewatkan ke fungsi main. akan mencetak nilai z yang merupakan nilai dari hasil pelewatan fungsi addition 4. Variabel z juga tidak dapat digunakan secara langsung di dalam fungsi Page 22 of 70 .RPSXWHU (ARF) Sebagaimana yang sudah anda pelajari hingga saat ini. Oleh karena parameter aktual yang dilewatkan untuk a dan b adalah 5 dan 3. Pada titik pemanggilan fungsi di dalam fungsi main.

0RGXO 3HPURJUDPDQ .RPSXWHU (ARF) addtion oleh karena variabel ini merupakan variabel lokal dari fungsi main.

Disamping jenis variabel lokal, terdapat juga jenis variabel global yang bisa dipergunakan secara umum oleh semua bagian program, baik di dalam fungsi maupun di luar fungsi. Variabel global terletak di luar fungsi atau blok, dalam artian : variabel global diletakkan di dalam tubuh program.
#include <iostream> int subtraction (int a, int b) { int r; r=a-b; return (r); } int main () { int x=5, y=3, z; z = subtraction (7,2); cout << "The first result is " << z << ’\n’; cout << "The second result is " << subtraction (7,2) << ’\n’; cout << "The third result is " << subtraction (x,y) << ’\n’; z= 4 + subtraction (x,y); cout << "The fourth result is " << z << ’\n’; return 0; }

Pada contoh program ini, terdapat sebuah fungsi bernama subtraction yang berisi pengurangan dan melewatkan hasil dari operasi pengurangan ke fungsi main, namun dilakukan beberapa kali dengan beberapa cara. Analisisnya : ¾ Kode program berikut akan menghasilkan nilai 5 z = subtraction (7,2); cout << "The first result is " << z; Jika kita menggantikan nilai z dengan 5, maka kode tersebut akan sama dengan : z = 5; cout << "The first result is " << z; Sebagaimana akan sama juga dengan kode : Page 23 of 70

0RGXO 3HPURJUDPDQ .RPSXWHU (ARF) cout << "The second result is " << subtraction (7,2); (mengunakan pemanggilan fungsi secara langsung). Juga akan sama dengan : cout << "The second result is " << 5; Oleh karena 5 merupakan nilai yang dilewatkan dari fungsi subtraction ke fungsi main Pada kode program cout << "The third result is " << subtraction (x,y); Bagian yang dilewatkan adalah variabel, bukan nilai/angka. Bentuk seperti ini juga termasuk bentuk yang valid, dimana nilai x dan y adalah 5 dan 3. z = 4 + subtraction (x,y); Dapat juga ditulis : z = subtraction (x,y) + 4;
4.5 FUNGSI YANG TIDAK MENGEMBALIKAN NILAI

di muka sudah dijelaskan bentuk pemakaian fungsi dalam C++ adalah :
tipe nama( argument1,argument2...)statement

Terlihat bahwa deklarasi sebuah fungsi diawali dengan tipe fungsi tersebut. Pada contoh program di atas, fungsi yang dibuat melewatkan nilai-nilai yang bersangkutan ke fungsi main yang memanggilnya. adakalanya, fungsi tidak perlu melewatkan nilai apapun ke fungsi yang memanggilnya. Dalam hal ini, digunakan tipe VOID sebagai tipe fungsi yang tidak melewatkan parameter/nilai. Perhatikan contoh program menggunakan gungsi dengan tipe void berikut :
#include <iostream> void printmessage () { cout << "I’m a function!"; } int main () { printmessage (); return 0; }

Bagaimana output program setelah dieksekusi ? Void juga dapat disebutkan di dalam daftar parameter untuk menegaskan bahwa pemanggilan fungsi tidak perlu melewatkan parameter aktual-nya. Sebagai contoh fungsi printmessage dapat dideklarasikan sebagai berikut :
void printmessage (void) { cout << "I’m a function!"; }

Page 24 of 70

0RGXO 3HPURJUDPDQ .RPSXWHU (ARF) bagaimana jika kata void di dalam parameter dihilangkan ? apakah terdapat perubahan output ? yang harus diperhatikan adalah sintaks yang dipergunakan dalam memanggil sebuah fungsi. Untuk fungsi printmessage di atas dapat dipanggil dengan statement : printmessage (); Tanda kurung menyatakan bahwa statement tersbut merupakan pemanggilan terhadap fungsi. Contoh pemanggilan fungsi yang keliru : printmessage; 4.6 ARGUMENTS DILEWATKAN MELALUI NILAI DAN REFERENSI. Pada saat pemanggilan fungsi memakai parameter, nilai yang dilewatkan adalah nilai salinan dari parameter fungsi tersebut, dan bukan variabelnya. Oleh karenanya, kode program int x=5, y=3, z; z = addition ( x , y ); Adalah melewatkan parameter fungsi bernama addition dengan nilai x dan y adalah 5 dan 3, dengan x dan y adalah variabel lokal.

Adakalnya parameter dilewatkan melalui referensi. Dalam hal ini, argumen harus memakai tanda ampersand (&) sebagaimana contoh berikut :
#include <iostream> void duplicate (int& a, int& b, int& c) { a*=2; b*=2; c*=2; } int main () { int x=1, y=3, z=7; duplicate (x, y, z); cout << "x=" << x << ", y=" << y << ", z=" << z; return 0; }

output x=2, y=6, z=14 Analisis : Jika sebuah variabel dilewatkan dengan referensi, maka yang dilewatkan adalah bukan salinan nilainya, tapi variabelnya. Sehingga, apabila variabel lokalnya kita modifikasi, maka akan berpengaruh pada saat fungsi tersebut dipanggil.

Page 25 of 70

LATIHAN 1 1. Pada saat deklarasi. int& next) { prev = x-1. int b=2) { int r.4). Next=" << z. r=a/b. } NILAI DEFAULT PADA PARAMETER. Apabila pemanggilan fungsi memakai sebuah nilai. b dan c adalah argumen yang dilewatkan pada saat pemanggilan fungsi. maka digunakan nilai defaultnya. Bagaimanakah output program berikut setelah dieksekusi ? 2. int& prev. } int main () { int x=100. return 0. return (r).0RGXO 3HPURJUDPDQ . } ouput : 6 5 Page 26 of 70 . Jika nilai dari parameter tidak dilewatkan saat fungsi dipanggil. next = x+1. y. maka nilai default akan diabaikan. y. Perubahan yang dilakukan di dalam fungsi akan berpengaruh terhadap nilai argumen yang dilewatkan keluar. return 0.RPSXWHU (ARF) a. } int main () { cout << divide (12). Berikan analisis anda terhadap program tersebut #include <iostream> void prevnext (int x. cout << "Previous=" << y << ". cout << divide (20. Perhatikan contoh program berikut : #include <iostream> int divide (int a. jika pemanggilan fungsi yang dilakukan tidak menspesifikasi argumen yang dilewatkan nilainya. cout << endl. z). kita dapat memberikan nilai default pada parameter. z. prevnext (x.

float n=5. float b) { return (a/b). cout << "\n". atau menghitung nilai faktorial suatu bilangan.0RGXO 3HPURJUDPDQ . Sebagai contoh : carilah (n!). hanya terdapat satu argumen yang diminta.m=2. return 0. 5! Berarti : 5! = 5 * 4 * 3 * 2 * 1 = 120 programnya dalam C++ dengan menggunakan fungsi ditunjukkan dalam contoh berikut : #include <iostream> long factorial (long a) { if (a > 1) return (a * factorial (a-1)).0.. REKURSIF Rekursiivitas merupakan sifat fungsi yang memanggil dirinya sendiri. Pada pemanggilan fungsi kedua : divide (20.. anda dapat membuat beberapa fungsi dengan nama yang sama. #include <iostream> int operate (int a. dan bagaimanakah outputnya setelah dieksekusi. N! dapat ditulis secara matematis : n! = n * (n-1) * (n-2) * (n-3) . Analisalah contoh program berikut ini. terdapat 2 parameter. int b) { return (a*b). cout << "\n". Maka akan diasumsikan parameter keduanya bernilai 2 (yaitu nilai b). 4.RPSXWHU (ARF) Pada kode : divide (12). Sifat ini bermanfaat pada program yang melakukan operasi sorting. Page 27 of 70 . else return (1). asalkan tipe atau jumlah parameter yang digunakan berbeda. } 4.y). cout << operate (n. * 1 secara konkrit.m). sehingga hasil dari eksekusinya bernilai 5 (20/4). } float operate (float a. cout << operate (x.0. } int main () { int x=5.7 FUNGSI OVERLOAD Pada C++. nilai default pada b = 2 akan diabaikan dan diganti dengan b=4.4).8.y=2. Sehingga hasil pemanggilan fungsi divide adalah 6 (12/2).

\n".\n". else odd (a).0RGXO 3HPURJUDPDQ . Apa keluaran dari program berikut? //Nama file: U16OUT1. cout << "Ketik sembarang angka: ". cin >> number. int main () { int i. } void odd (int a) { if ((a%2)!=0) cout << "angka ganjil.h> void DoubleIt(int i). bagaimanakah output setelah program dieksekusi ? LATIHAN 4 1. bagaimanakah output setelah program dieksekusi ? LATIHAN 3 : Perhatikan kode program berikut : #include <iostream> void odd (int a). return 0. cin >> i. odd (i). } LATIHAN 2 : 1. return 0.CPP #include <iostream.RPSXWHU (ARF) } int main () { long number. void even (int a). cout << number << "! = " << factorial (number). } while (i!=0). Bagaimana flowchart dan algoritma program tersebut ? 2. void main() Page 28 of 70 . } void even (int a) { if ((a%2)==0) cout << "angka genap. Bagaimana flowchart dan algoritma program tersebut ? 2. } Pertanyaan : 1. do { cout << "ketik sebuah angka: (0 to exit) ". else even (a).

DoubleIt(i). return. pada main (). cout << “Parameter pertama : “ << x << endl. { i *= 2. berdasarkan radius (jari-jari) berpresisi-ganda dari pemakai yang dilewatkan ke fungsi. cout << “j kuadrat = “ << j << endl. } 2. } //************************************* void DoubleIt(int *i). cout << “i kuadrat = “ << i << endl. luas lingkaran berpresisi-ganda. return. y *= 2.RPSXWHU (ARF) { int i = 19. cout << “Parameter kedua : “ << y << endl. Rumus untuk menghitung luas lingkaran: 5. return. Apa yang salah dengan fungsi berikut? void SqThem(i. } 3.0RGXO 3HPURJUDPDQ . } 4. j) { i = i * i.h> void DoubleIt(int *i). return. bukannya dengan nilai: void Gandakan(float x. Tulislah program yang menampilkan. DoubleIt(&i). j = j * j. } //************************************* void DoubleIt(int i).0. void main() { int i = 19. return. float y) { x *= 2. Tulislah kembali fungsi berikut untuk menerima dan memproses parameterparameternya dengan alamat. return. cout << “i sekarang sama dengan “ << i << endl.0. Apa keluaran dari program berikut? #include <iostream. } Page 29 of 70 . { *i *= 2. cout << “i sekarang sama dengan “ << i << endl.

tampilkan jumlah jam libur yang masih ia miliki (1 hari = 24 jam). bukannya dengan nilai: void Gandakan(float x. Buatlah program yang pada main(). Buatlah sebuah fungsi yang menerima 2 buah integer dengan alamat. meminta pemakai untuk memasukkan jumlah hari libur yang belum diambil selama ia bekerja tahun ini.RPSXWHU (ARF) 6. Pada fungsi yang dipanggil.0. cout << “Parameter pertama : “ << x << endl. cout << “Parameter kedua : “ << y << endl.0RGXO 3HPURJUDPDQ . Kembali ke main() dan akhiri program seperti biasa.0. 9. nilai keduanya tetap dipertukarkan pada fungsi pemanggil. Tukarkan kedua nilai integer tersebut di dalam fungsi.) Kembalilah ke main() dan lewatkan nilai tersebut ke fungsi bernama asterisk(). (Pertahankan kalang jika pemakai memasukkan nilai di luar jangkauan tersebut. Tulislah kembali fungsi berikut untuk menerima dan memproses parameterparameternya dengan referensi. Tampilkan pesan “Selamat bersenang-senang!” jika pemakai memiliki lebih dari 5 libur. Page 30 of 70 . float y) { x *= 2. 8. lewatkan nilai tersebut ke fungsi kedua. y *= 2. Begitu pemakai memasukkan jumlah hari tersebut. } 7. saat fungsi yang dipanggil mengembalikan kontrol ke fungsi pemanggil. Karena pelewatannya dengan alamat. Buatlah program dengan fungsi main() memanggil sebuah fungsi yang meminta pemakai bilangan dari 1 sampai dengan 80. yang menampilkan sejumlah tanda * pada sebuah baris. return.

Jadi. Jadi : ƒ Array data elemen pertama ditulis sebagai data[0] ƒ Array data elemen kedua ditulis sebagai data[1] ƒ Array data elemen ketiga ditulis sebagai data[2] ƒ Array data elemen keempat ditulis sebagai data[3] ƒ Array data elemen kelima ditulis sebagai data[4] ƒ Array data elemen keenam ditulis sebagai data[5] Seperti halnya variabel.1 DEFINISI ARRAY Array merupakan sederetan elemen-elemen data dengan tipe yang sama yang ditempatkan dalam lokasi memori yang berurutan/berdekatan dan dapat diakses dengan cara menyebutkan indek lokasinya. Sebagai contoh. Data tipe array Gambar 5. Misalkan ke-enam data array tersebut kita beri nama/identifier sebagai : data. data tipe array harus dideklarasikan terlebih dahulu sebelum dipergunakan dalam program. atau dituliskan : data[2]=80 Page 31 of 70 . nama merupakan nama identifier array. dan diikuti dengan jumlah elemen array yang berada di anatara tanda kurung [ ].2 INISIALISASI NILAI ARRAY Elemen-elemen array dapat kita inisialisasi dengan cara berikut : Int data [6] = {60. 4.20 . Bentuk deklarasi array adalah : type nama [elemen]. Hal ini dapat diilustrasikan sebagai berikut : 1 Data Int 2 3 4 5 6 Gambar . dan 5.30 .0RGXO 3HPURJUDPDQ . float. (seperti int. kita dapat menyimpan enam buah data bertipe integer dalam satu arry. 80 . sehinga masing-masing elemen array-nya adalah : elemen 0. 1. atau dituliskan : data[1]=70 ƒ array dengan indeks 2 bernilai 80. 5. 2. Data tipe array Setiap kotak pada gambar di atas merepresentasikan elemen-elemen array (dalam hal ini terdapat enam elemen) dengan tipe integer. daripada harus mendeklarasikan masing-masing enam buah variabel bertipe integer.1. dengan menggunakan array. 3. Penomoran elemen-elemen array dimulai dari 0. dengan tipe adalah tipe data array. untuk array bernama data bertipe integer dengan jumlah elemen array sebanyak enam buah dideklarasikan sebagai : Int data [6].100} Artinya bahwa : ƒ array dengan indeks 0 bernilai 60. atau dituliskan : data[0]=60 ƒ array dengan indeks 1 bernilai 70.RPSXWHU (ARF) BAB 5 ARRAY 5. dst). char. 70.

bentuk deklarasi berikut adalah benar : int data[]={10.0RGXO 3HPURJUDPDQ . 3. maka sintaksnya dalam C++ adalah : a=data[2] Page 32 of 70 . sebagai contoh. Catatan : bedakan bentuk statement berikut : Int data[6]. Data tipe array dengan 6 elemen atau dapat juga kita inisialisasi secara satu persatu : data[0]=60. Data[1]=50. data[5]=100. data[2]=80. array dengan elemen data[1] akan kita akses dan kita berikan nilainya ke variabel bernama a. 3. masing-masing bersesuaian. //deklarasi array bernama data dengan jumlah elemen enam buah // inisialisasi elemen kedua array dengan nilai 50 5. atau dituliskan : data[4]=20 array dengan indeks 5 bernilai 100. Dalam hal ini. atau dituliskan : data[5]=100 hal ini dapat diilustrasikan sebagai berikut : Data[0] Data[1]Data[2]Data[3]Data[4] Data[5] 1 2 3 4 5 6 Data 60 Int 70 80 30 20 100 Gambar 5. data[4]=20.RPSXWHU (ARF) ƒ ƒ ƒ array dengan indeks 3 bernilai 30. ukuran memori yang dialokasikan secara otomatis oleh kompiler adalah integer dengan panjang 2 digit. Jadi bentuk inisialisasi berikut ini adalah salah : int data[3]={2. Nilai inisialisasi yang kita berikan pada data array harus sama dengan jumlah elemen array yang bersangkutan. 20. 90. 7} pada C++.3 MENGAKSES ELEMEN ARRAY Elemen array dapat kita akses dengan menyebutkan identifier array beserta indeks yang akan diakses : nama[index] Misalkan. data[1]=70. compiler akan mengasumsikan ukuran array yang sesuai dengan kriteria. 4} int data[3]={2. maka inisialisai-nya juga enam buah.2 . data[3]=30. atau dituliskan : data[3]=30 array dengan indeks 4 bernilai 20. anda tidak harus menuliskan jumlah elemen array pada deklarasinya. 4} Dalam hal ini. Jika jumlah elemen array adalah enam buah.

0] [2. Sebagai contoh. Analisalah Program di atas. array dua dimensi dapat dibayangkan sebagai sebagai tabel dua dimensi dengan masingmasing elemen terdiri dari elemen baris dan kolom.3 . n++ ) { cout<<data[n]<<endl. serta memiliki tipe data yang sama. Sebagai contoh.1] akan diberikan ke variabel a.0] [2. array 2 dimensi dengan deklarasi : Int data [3.3] Gambar 5.1] [0.0] [1. 0 1 2 0 1 2 3 [0.40. n<5 . nilai elemen [2.3] [1.4 ARRAY MULTIDIMENSI Array multidimensi dapat dideskripsikan sebagai array dari array.1] dapat diakses dengan statement : A=data[2. } Pertanyaan : 1. Semakin banyak dimensi array yang kita pakai.2] [1.3] [2. Sebagai contoh. alokasi ke memori semakin besar.h> int data[]={1.4 . hasil=0. maka elemen [2. Bagaimana ouput program ? 2. sehingga program menjadi relatif lebih lambat untuk di\jalankan Page 33 of 70 .0RGXO 3HPURJUDPDQ .0] [0.7.0] [0.1] [2. Namun hendaknya pemakaian array multidimensi mempertimbangkan kebutuhan. int main () { for ( n=0 . Data array dimesi [3.2] [0.4] .3] [2.3] Gambar 5.RPSXWHU (ARF) #include <iostream.4] dengan elemen [1.1] [2.2] [1.0] akan diisi dengan bilangan 7.1] [1.121}.0] [1.2.3] [1. int n.0]=7.2] [2. maka statementnya : Data[1. Dapat diilustrasikan sebagai berikut : 0 0 1 2 1 2 3 [0. return 0.1] [0. Data array dua dimesi Inisialisasi array dapat dilakukan dengan menyebutkan indeksnya.1] Array Multidimensi tidak hanya terbatas dalam 2 dimensi.2] [0.2] [2. 5. Sebagai contoh. } cout << hasil.0] yang diinisialisasi Akses array dapat dilakukan dengan menyebutkan indeks elemen yang akan diakses.1] [1. elemen [1.

l. return 0. cout << question. yang diapit dengan tanda petik ganda sebagai berikut : Char nama[]={”Hallo”}. nol). Oleh karena string merupakan deretan/kumpulan karakter-karakter. termasuk akarakter null-nya. terdapat enam karakter yang kita inisialisasikan. variebel tipe string dengan identifier nama. dengan maksimal karakter yang diperbolehkan adalah 16 karakter dapat dideklarasikan sebagai : char nama [16].RPSXWHU (ARF) 5. } ƒ Page 34 of 70 .5 . yang dapat direpresentasikan sebagai : Nama[16] Walaupun array diatas memiliki 16 elemen. cout << greeting << yourname << "!". maka data tipe string diperlakukan sebagai data array dengan tipe char.0RGXO 3HPURJUDPDQ .5 ARRAY TIPE CHAR Libarry standard C++ juga memiliki standard untuk manipulasi data tipe string. Inisialisasi juga dapat dilakukan dengan menggunakan literal string. Penyimpanan string “Hallo” di dalam array oleh karena hanya ditempatkan 5 karakter di dalam array. Dalam hal ini.’l’.h> int main () { char question[] = "Please. yang dapat ditulis sebagai ’\0’ (backslash. Apakah output program berikut setelah dikompilasi ? analisislah ! #include <iostream.’o’. ". char yourname [80]. enter your first name: ". 5.6 INISIALISASI ARRAY TIPE CHAR Inisialisasi array dengan karakter dapat dilakukan secara langsung. cin >> yourname.’\0’}.’l’. Misalkan kita mengisi array nama dengan karakter : H. o dan null character. Inisialisasi dilakukan dengan memakai tanda petik tunggal dari karakter-karakter. a.’a’. Misalkan string : “Michael” akan disimpan di dalam array tersebut. Maka : H a l l o \0 Gambar 5. char greeting[] = "Hello. kita dapat mengisinya dengan data char kurang dari 16 elemen. Sebagai contoh. Dalam hal ini terdapat dua cara yang dapat ditempuh : ƒ Maka dapat dituliskan sebagai : Char nama[]={‘H’. maka akhir dari karakter tersebut akan diisi dengan null character. l.

Dengan pendefinisian dan penginisialisasian array seperti ini : int ara[] = {1. 7. Selain dari char.RPSXWHU (ARF) Pertanyaan : 1. Berapa banyak elemen array yang telah dipesan oleh pendefinisian array berikut ini? double values[16]. 6. 3. Temukan penyebabnya! cin >> keyVal. 74. c--) {cout << ara[c] << end} 6. 12}. 2.0RGXO 3HPURJUDPDQ . 5. 57. 8. c >= 0. 4. i<Num. Bagaimana output program di atas ? 2. 69. tipe data jenis apa lagi yang dapat anda simpan dalam array? 2. Mike telah menulis sebuah rutin untuk mencari dalam array. yang tak bekerja dengan konsisten. 54. Berapa array yang digunakan ? dalam kondisi apakah anda harus menyebutkan julah elemen array ? LATIHAN 3 : 1. Mengapakah pendefinisian array berikut ini akan gagal memesan tempat penyimpanan? float weights[]. 5. Analisalah kode program tersebut. apa yang dihasilkan oleh kode berikut for (c = 8. i++) {if ara[i] == keyVal) {found = 1. 32. 4. 9}.} // Menemukan ada yang cocok else {found = 0} // Tidak pada elemen ini } Page 35 of 70 . 40. 39. 3. for (i=0. Berapa banyak elemen array yang telah dipesan oleh pendefinisian array berikut ini? int ages[] = {23.

serta port USB 6. sehingga CPU dapat menerima input dari piranti masukan dan mengeluarkan hasil pemrosesan pada piranti keluaran. masing-masing digunakan untuk pengiriman dan penerimaan. input output komputer Gambar 6. yaitu sebagai alat komunikasi dan kontrol piranti keluaran. Piranti masukan 2. Bit bit data dikirm satu persatu secara runtut.2. sehingga oleh karenanya terdapat beberapa jalur data serta beberapa jalur untuk control komunikasi. port untuk joystick. komputer berfungsi sebagai piranti untuk mengolah data. Pengiriman bit 11111011 11011110 01111100 secara serial Page 36 of 70 . Piranti pengolah data (CPU). terlebebih dahulu harus dipahami bagaimana komunikasi secara serial terjadi. Pemrograman melalui port paralel sangat mudah dilakukan dan lebih cepat dibandingkan komunikasi melalui port serial. Start Stop Gambar 6. diawali dengan start bit. 8 bit data (1byte) dikirim sekaligus pada saat yang bersamaan. Pada port paralel. Port paralel yang biasanya terhubung dengan printer dapat kita program sesuai denngan aplikasi yang kita butuhkan.0RGXO 3HPURJUDPDQ . Secara sederhana.1 ilustrasi yang menghubungkan input. namun komunikasi dengan poert serial memerlukan beberapa jalur transmisi. Apabila kita lihat pada bagian konektor. Secara visual komputer dapat digambarkan sebagai sebuah kotak hitam (black box) yang menerima masukan (input) dan menghasilkan keluaran (output). bit paritas (untuk deteksi error) dan diakhiri dengan stop bit.1 PORT SERIAL DAN PARALEL Port digunakan untuk melakukan 2 fungsi utama. ouput. dua buah COM ports (port RS_232). CPU (Central Processing Unit) terbungkus dalam casing. kemudian diikuiti oleh bit-bit data. Piranti keluaran 3. dapat kita temui beberapa port antara lain : port paralel (port LPT) untuk komunikasi CPU dengan printer. kita dapat mengklasifikasikan piranti yang berhubungan dengan komputer sebagai : 1. sehingga port ini tidak sesuai digunakan pada komunikasi jarak jauh. Komunikasi jenis ini menggunakan 2 jalur data (line). Dari sudut pandang ini.RPSXWHU (ARF) BAB 6 Pemrograman Port Paralel Menggunakan Bahasa C Komputer tersusun atas beberapa perangakat keras yang terhubung dengannya. dan komputer Komunikasi antara CPU dengan piranti masukan dan keluaran dilakukan melalui konektor. Untuk mengetahui perbedaaan komunikasi serial dan paralel. Gambar di bawah ini menunjukkan bagaimana bit 11111011 11011110 01111100 dikirim secara serial dan paralel.

0RGXO 3HPURJUDPDQ .RPSXWHU (ARF) Byte Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Byte Byte Gambar 6.3.4 Port Paralel tipe D-25 female Tabel 6. sedangkan port pada printer bertipe 36 pin Centronics. Pengiriman bit 11111011 11011110 01111100 secara paralel Port paralel tersusun dari : a. Fungsi masing-masing pin dijelaskan pada tabel di bawah ini. 5 bit kontrol output Port paralel pada CPU bertipe D-25 female dengan 25 pins. 8 bit data output b.1. 5 bit kontrol input c. Pin 13 Pin 1 Pin 25 Pin 14 Gambar 6. Fungsi masing-masing pin pada port paralel D-25 female Pin No 1 2-9 11 11 12 13 14 15 16 Fungsi Strobe Data Lines Acknowledgement (ACK) Busy Out of Paper Select Auto feed Error Init Input/Ouput In/Out In/Out In In In In In/Out In In/Out Page 37 of 70 .

AUTO FEED: memerintahkan printer untuk mencetak sebuah garis kosong yang diikuti dengan perpindahan baris.2. Page 38 of 70 . dan mengubahnya ke level logika rendah (low logic level). ERROR/: digunakan untuk memberitahukan apabila terjadi error. OUTPUT ƒ ƒ ƒ ƒ ƒ STROBE: digunakan untuk sinyal yang memberitahukan printer bahwa data 8 bit siap dibaca. INIT: me-reset printer. 379H dan 37AH (pengalamatan menggunakan bilangan heksadesimal). dan LPT3. Fungsi masing-masing pin pada port paralel D-25 female PIN 2 3 4 5 6 7 8 9 Bit D0 D1 D2 D3 D4 D5 D6 D7 Fungsi Data 1 Data 2 Data 3 Data 4 Data 5 Data 6 Data 7 Data 8 Semua bit pada port paralel menggunakan logika level TTL.RPSXWHU (ARF) 17 18-25 Select In (SLCT) GND In/Out GND Pin nomor 2 hingga 9 berturut-turut digunakan untuk data ke-1 hingga data ke-8. SLCT IN: menseleksi printer saat printer berada pada level logika rendah (low logic level). SLCT: memberitahu komputer bahwa komputer terhubungn dengan sebuah printer.2 PENGALAMATAN PORT PARALEL MS-DOS mendukung sistem pengalamatan 3 port paralel. sehingga pada peta memori komputer terdapat 3 alamat untuk masing-masing port tersebut. D0-D7: digunakan untuk komunikasi bit data. yaitu LPT1. Berikut adalah penjelasan masing-masing fungsi pada pin port paralel D-25 female. Tabel 6. Tiap port paralel menggunakan 3 alamat pada peta I/O (Input/Output) Alamat I/O untuk LPT1 adalah 378H. INPUT ƒ ƒ ƒ ƒ ƒ ACK : menginformasikan kepada bahwa data telah diterima secara benar BUSY: digunakan apabila buffer telah penuh sehingga menghentikan pengirimanan data daro komputer. a. 6. Port 378H merupakan port OUTPUT yang digunakan oleh CPU untuk menulis data yang akan dicetak ke printer. oleh karenanya CPU harus mengehentikan pengiriman data.0RGXO 3HPURJUDPDQ . 8 pin pada konektor yang digunakan untuk pengiriman data ouput 8bit (D0-D7) diperlihatkan pada tabel. PE: memberitahukan bahwa printer sedang out of paper. LPT2.

• data = inport( PORTID). Port 379H Merupakan port INPUT yang digunakan oleh CPU untuk mengetahui kondisi printer. dan LPT3).4 Control Bit BIT D0 D1 D2 D3 D4 D5 D6 D7 FUNCTION STROBE AUTO FD INIT/ SLCT IN/ Habilitation IRQ7 not used not used not used PIN 1 14 16 17 Oleh karena terdapat 3 LPT pada komputer (LPT1. data). LPT2. • data = inportb( PORTID).3 Status Bit BIT D0 D1 D2 D3 D4 D5 D6 D7 FUNCTION not used not used not used ERROR/ SLCT/ PE ACK/ BUSY/ PIN 15 17 12 11 11 c. Tabel 6. Alamat I/O port paralel pada CPU komputer port LPT1 LPT2 LPT3 Data 378H 278H 3BCH Alamat LPT Status 379H 279H 2BDH Control 37AH 27AH 3BEH Pada Turbo C. Port 37AH Merupakan port OUTPUT yang digunakan sebagai kontrol komunikasi. fungsi-fungsi berikut ini digunakan sebagai perintah untuk akses port paralel : • outportb ( PORTID. • outport( PORTID.0RGXO 3HPURJUDPDQ . Pin konektor yang digunakan dapat dilihat pada tabel berikut.RPSXWHU (ARF) b. data). masing-masing LPT memiliki alamat I/O sebagai berikut : Tabel 6.5. Fungsi outport() mengirim satu word ke port paralel Page 39 of 70 . Pin yang digunakan sebagaimana pada tabel. Tabel 6.

11).(data & 0x08)/0x08). clrscr(). while(!kbhit()) menyatakan bahwa statement yang berada pada while akan dieksekusi hingga terdeteksi penekanan tombol pada keyboard 3.RPSXWHU (ARF) Fungsi inport() membaca satu word dari port. port status register. } } Penjelasan : 1. gotoxy(3.(data & 0x20)/0x20). data). printf("\n Pin 15: %d". delay(11). Port bernilai 0x378h 2.pada saat dieksekusi. %3X (hex)\n". printf("Data available in status register: %3d (decimal).0RGXO 3HPURJUDPDQ . data. printf("\n Pin 12: %d".5 Nilai pin-pin pada port BIT FUNCTION PIN NILAI D0 not used 1 D1 not used 1 D2 not used 1 D3 ERROR/ 15 1 D4 SLCT/ 17 1 D5 PE 12 0 D6 ACK/ 11 1 D7 BUSY/ 11 1 sehingga tampilan keluaran program adalah : Page 40 of 70 .(data & 0x40)/0x40). printf("\n Pin 11: %d". printf("\n Pin 13: %d". Berikut adalah program dengan menggunakan akses port paralel #include"stdio. Fungsi outportb() mengirim satu byte ke port Fungsi inportb() membaca satu byte dari port. printf("\n Pin 11: %d". data=inportb(PORT+1) menyatakan bahwa variabel data adalah data pada port beralamat 0x379h .h" #define PORT 0x378 void main() { int data.h" #include"conio. Dapat dituliskan pada tabel : Tabel 6. while(!kbhit()) { data=inportb(PORT+1).(data & 0x11)/0x11).(data & 0x80)/0x80).h" #include"dos. bernilai 223 ( 1 1 0 1 1 1 1 1).

h> #include <conio. DF (hex) Pin 15 : 1 Pin 13 : 1 Pin 12 : 0 Pin 11 : 1 Pin 11 : 1 Perhatikan bahwa untuk mendapatkan nilai dari masing-masing port. harus digunakan operasi bit sebagai berikut.0RGXO 3HPURJUDPDQ . data (0x08) 7654 XXXX 0 000 0 000 3210 1XXX 10 00 10 00 7654 3210 XXXX 1XXX 0 0 0 0 1 0 0 0 (0x08 ) 0 0 0 0 0 0 0 0 (0x00 Æ bit 3 is low) Gambar 11.RPSXWHU (ARF) Data available in status register:223 (decimal). Misalkan ingin diketahui status register pin no.h> /********************************************/ /*This program set the parallel port outputs*/ /********************************************/ Page 41 of 70 .4 LED yang terhubung ke port paralel Untuk menyalakan lampu 8 LED. 15. Contoh program untuk menyalakan LED : #include <stdio.h> #include <dos. data (0x08) di AND kan bit no. maka kita AND kan bit D3 dengan 0 x 08 sehingga : bit no. anda dapat memberikan logika 1pada pin LED yang bersangkutan.

getch().0xff). outportb(0x37a. Bagaimana cara mematikan nyala LED ? 2. Buatlah program yang menawarkan pilihan menu 1-4 kepada user.} LATIHAN : 1. Bagaimana cara menyalakan LED genap ? 4. Bagaimana cara menyalakan LED agar tampil menyala dari D0 ke D7 ? 5. outportb(0x378.0xff).0RGXO 3HPURJUDPDQ . Bagaimana cara menyalakan LED ganjil ? 3.RPSXWHU (ARF) void main (void) { clrscr(). Page 42 of 70 .

sebuah objek tersusun dari objekobjek lain yang lebih kecil. Seseorang yang memiliki pandangan bahwa kesuksesan hanya dapat diraih dengan usaha dan kerja keras cenderung aktif dan bekerja dengan sungguh. ruang tidur. Bahasa Eiffel menerapkan prinsipprinsip Pemrograman beorientasi objek dan merupakan bahasa pemrograman yang murni OOP. seperti : lautan. dlsb. pintu. Orang tersebut cenderung pasif dan menerima apa adanya. Konsep dan ide dari OOP bermula di Norwegia pada tahun 1960. yaitu bahasa C yang saat itu sangat popular. 7. Pada tahun 1980 diadakan seminar tentang object-oriented programming. Bagaimana cara menyelesaikan suatu permasalahan juga menjadi titik tolak bagi solusi yang dipecahkan melalui kode program. Kebanyakan program C menggunakan compiler C++ pada saat kompilasinya. Pada saat itu dikembangkan sebuah program bernama Simula oleh Christian Nygaard dan rekan-rekannya di Universitas Oslo (University of Oslo). bahasa C++ ini dikembangkan dari bahasa pendahulunya. 7. Simula menggunakan metode beorientasi objek dan menjadi inspirasi bagi terciptanya program Smalltalk-80 yang murni berorientasi obyek. rumah. C++ hingga saat ini dikenal sebagai bahasa pemrograman yang paling kompleks. Smalltalk-80 diiciptakan pada tahun 1970 di Xerox PARC (Palo Alto Research Center) dan dirilis mulai tahun 1980. Demikian juga dalam bidang pemrograman. kita dapat menjumpai objek-objek yang beraneka jenis. Bahasa C++ mengalami perbaikan dan perkembangan hingga akhirnya distandarkan pada tahun 1990. OOP menjadi semakin terkenal ketika AT&T Bell Labs. Pada saat itu telah muncul bahasa pemrograman beorientasi obyek yang lain yaitu Eiffel.0RGXO 3HPURJUDPDQ . Manusia juga merupakan sebuah objek. Cara pandang ini akan sangat berpengaruh terhadap aksi/tindakan yang kita lakukan. kamar mandi. Membangun sebuah bahasa pemrograman hybrid bernama C++ pada tahun 1980.RPSXWHU (ARF) BAB 7 OBJECT-ORIENTED PROGRAMMING (OOP) OOP merupakan sebuah cara pandang pada bidang pemrograman untuk memecahkan suatu masalah. Misal : rumah. di lingkungan sekitar. kompor. 1997) yang menjelaskan empat prinsip pada pemrograman berorientasi obyek. Umumnya. kita tidak akan terlepas dengan cara pandang kita terhadap sesuatu hal. 1988. sepeda. bulan. langit. Bertrand Meyer menulis sebuah buku berjudul “ Object-Oriented Software Construction (Prentice-Hall. arloji. serta konsep-konsep lain pada pemrograman berorientasi objek yang hingga saat ini masih berlaku. sungai. Second Edition. Sintaks bahasa C++ menjadi sangat kompleks karena bahasa ini harus mempertahanakan bentuk sintaks bahasa sebelumnya (yaitu C) serta kompatibilitas.2 DUNIA TERSUSUN DARI OBJEK-OBJEK Sudut pandang OOP adalah : memperlakukan dunia ini sebagai kumpulan dari objek-objek. kasur. dlsb. Page 43 of 70 . atap. kulkas. Trend masa kini dalam pemrograman telah mengarah ke pemrograman berorientasi obyek/OOP. Berbeda dengan seseorang yang berpandangan bahwa kesuksesan merupakan nasib/takdir yang ditentukan. terdiri dari : jendela.1 MEMANDANG SESUATU SEBAGAI OBJEK Dalam kehidupan sehari hari. matahari. Apakah maksud dari OOP ? bagaimana konsep OOP serta implementasinya? Untuk itulah anda harus membaca bab-bab selanjutnya. sepatu.

namun terbatas pada atribut-atribut tertentu saja yang akan diolah/diproses selanjutnya. dlsb. jurusan. NIM. Anda tidak perlu mengurus VGA. Objek abstrak menyembunyikan detil dari objek aslinya. jenis kelamin. diskusi. meiliki behavior : berjalan. Demikian juga manusia. berlari. misalkan : kuda.0RGXO 3HPURJUDPDQ . yaitu : 1. Behavior Page 44 of 70 . mendengus. jenis kelamin. berat. Kuda. dan berat badan. programmer tidak melibatkan semua atribut dan behavior dari objek. mengerjakan PR Oleh karena mahasiswa juga adalah manusia. memiliki atribut : kaki. tinggi. berat 50 kg. Lan card. tanggal lahir Behavior : berjalan. warna kulit. Pada saat anda membuat sebuah dokumen/naskah. jenis kelamin. dengan atribut dan behavior sebagai berikut (tidak semua atribut dan behavior manusia disebutkan disini) : Atribut : nama. makan. kemudian membuat objek riil dari objek abstrak. IPK Behavior : belajar. wanita. Objek riil yang dibuat dari objek abstrak dinamakan : instan (instance). tingkah laku (behavior) tingkah laku merupakan tindakan yang dapat dilakukan oleh objek yang bersangkutan. atau CDROM jika anda ingin membuat dokument menggunakan MS Word. berlari. Dalam bidang pemrograman. bernafas. Dalam hal ini. 7. Hal ini analog seperti anda menggunakan komputer. Sedangkan atribut dari objek abstrak adalah : nama.RPSXWHU (ARF) Sebuah objek. Kemudian kita ciptakan objek lain. programmer membuat objek abstrak terlebih dahulu. tinggi. anda hanya memperhatikan papan keyboard serta layar monitor yang ada di hadapan anda. Mahasiswa memiliki atribut dan behavior sebagai berikut : Atribut : NIM. atribut (attributes) atribut merupakan karakteristik dari sebuah objek. dlsb. jenis kelamin.3 OBJEK ABSTRAK DAN INSTANT Yang dimaksud dengan objek abstrak (abstract object): deskripsi dan model dari objek sesungguhnya (real object). 2. memiliki 2 cari khas yang membedakannya dengan objek lain. makan. tanggal lahir. tinggi 165 cm. tidur. LATIHAN : Sebutkan atribut dan behavior dari objek berikut : 1. Misalkan kita buat sebuah objek : manusia. Manusia. dlsb. Misalkan : real objek adalah manusia dengan atribut : Rini. ekor. tidur. dlsb. maka atribut dan behavior pada manusia juga diwariskan pada mahasiswa. yaitu : mahasiswa. sehingga atribut selengkapnya dari mahasiswa adalah : nama.4 INHERITANCE (PEWARISAN) Inheritance merupakan salah satu sifat dari OOP. dan IPK. memiliki atribut : nama. jurusan. Karyawan atribut : behavior : 7. memiliki behavior : meringkik. Sepeda motor atribut : behavior : 2. praktikum.

Apabila user menginginkan untuk melakukan pekerjaan ini berulang kali. dan kemudian menampilkan wilayah dari kode pos tersebut. Apakah yang dimaksud dengan atribut ? 3. 7. LATIHAN SOAL 1. diskusi. Selanjutnya. Seperti yang telah kita ketahui bahwa dunia nyata tersusun dari objekobjek (dengan atribut dan behaviornya). namun masih kompatibel dengan bahasa C yang bersifat prosedural/terstruktur. anda dapat menciptakan objek-objek lain yang masih berada dalam lingkup mahasiswa. Permintaan dan kebutuhan akan adanya program semakin meningkat ketika manusia benar-benar merasakan manfaat dari program. namun tetap dirasakan terdapat perbedaan antara dunia nyata dengan dunia pemrograman.RPSXWHU (ARF) selengkapnya dari mahasiswa adalah : berjalan. Apakah yang dimaksud dengan behavior ? 4. namun cukup dengan menulis kode program untuk tindakan tersebut dalam sebuah prosedur. petugas administrasi. Sifat ini dinamakan : pewarisan (inheritance) Inheritance ini analogi dengan klasifikasi pada biologi. dan mudah dilakukan pengecekan kesalahan apabila terjadi bug (kesalahan) Contoh sederhana. sedangkan dalam C hanya dikenal prosedur saja). serta membuat kode program menjadi lebih pendek. Tiap prosedur yang ditulis akan melaksanakan suatu tindakan spesifik tertentu. dan cukup dipanggil apabila diperlukan. Seiring dengan laju permintaan terhadap program. dan memanggilnya apabila dibutuhkan.0RGXO 3HPURJUDPDQ . Walaupun penggunaan prosedur sangat membantu dalam membangun sebuah program. seperti : dosen. praktikum. dengan tuntutan kemampuan yang juga kompleks . makan. Penggunaan prosedur ini sangat membantu programmer dalam hal mengurangi kompleksitas program. User memasukkan angka kode pos. terutama dalam hal otomasi. Pada profgram. sehingga apabila tindakan tersebut dibutuhkan beberapa kali. petugas perpustakaan. maka cukup diperlukan sebuah prosedur berisi kode program yang mecocokkan kode pos dengan nama wilayah. serta pembantu umum. sehingga paradigma pemrograman juga mulai beralih dari pemrograman prosedur/terstruktur ke pemrograman berorientasi objek. Apakah yang dimaksud dengan objek ? 2. dan mengerjakan PR. Tiap objek yang anda ciptakan ini tentu saja masing-masing memiliki atribut dan behavior yang khas. belajar. misalkan programmer membuat program identifikasi wilayah berdasarkan kode pos. Jelaskan latar belakang munculnya pemrograman berorientasi objek Page 45 of 70 . Hal itu juga yang melatarbelakangi terciptanya C++ sebagai bahasa pemrograman dengan kemampuan pemrograman berorientasi objek.5 OBJEK DI DUNIA NYATA SERTA PEMROGRAMAN BERORIENTASI OBJEK Bahasa pemrograman muncul dikarenakan kecerdasan manusia untuk menciptakan sebuah “alat” yang berguna untuk membantu pekerjaan mereka. dan bukan tersusun dari prosedur-prosedur. maka tidak perlu menulis ulang kode program yang sama. Sebuah program dibagi menjadi beberapa bagian yang disebut dengan prosedur/fungsi/methods (bahasa pascal mengenal prosedur dan fungsi. Program akan mencocokkan angka kode pos dengan database yang dimiliki. namun kesemuanya memiliki atribut dan behavior dari objek manusia. maka kode program menjadi semakin besar dan kompleks. Bahasa pemrograman pada periode-periode awal umumnya bersifat prosedural/terstruktur. tidur. Ini analog dengan menulis sebuah buku tebal dengan membaginya menjadi beberapa Bab.

6 BEKERJA DENGAN CLASS 7. Dalam pemrograman berorientasi objek. variabel merupakan referensi tempat anda menyimpan data ke dalam memori. int NoKursus. Tipe data ini akan memberitahu kepada komputer berapa besar memori yang diperlukan untuk menyimpan data dan bagaimana data tersebut ditangani jika sudah tersimpan di memori. Di dalam pemrograman berorientasi objek juga dikenal adanya 2 macam variabel : 1. Pada contoh di atas. tempat anda mendefinisikan atribut dan behavior. Apakah yang membedakan antara pemrograman terstruktur dengan pemrograman berorientasi objek ? 6.RPSXWHU (ARF) 5.1 DEFINISI CLASS Class merupakan template/wadah dari atribut dan behavior dari objek yang kita ciptakan. Programmer menciptakan instance dari class. Hasil perlakuan dari komputer akan berbeda untuk jenis data yang berbeda pula. }. int NoKursus. anda harus mendefiniskannya terlebih dahulu. Dalam contoh di atas. Sebagai contoh : anda dapat menyimpan 1 ke dalam komputer. dan bisa Page 46 of 70 . terdapat 2 variabel instance yang berupa atribut. b. beserta atribut dan behaviornya. Misalkan kita mendefinisikan sebuah kelas bernama : FormRegistrasi. Keyword class memberitahu kepada kompiler bahwa anda mendefinisikan sebuah class bernama : FormRegistrasi. c. kita tidak bekerja secara langsung dengan objek. yaitu : NoSiswa dan NoKursus yang masing-masing bertipe integer. 1 dapat diperlakukan sebagai data tipe angka. Tanda kurung kurawal buka dan tutup merupakan tubuh class. variabel biasa yaitu variabel di dalam program yang bukan merupakan variabel instance. Dalam bahasa Java : class FormRegistrasi { int NoSiswa. variabel instance Dalam hal ini. Bentuk definisi class tergantung dari bahasa pemrograman yang digunakan. anda mendefiniskan 2 buah atribut. Jelaskan yang dimaksud dengan pewarisan 7. Yang membedakan antara java dan C++ dalam pendefinisian class adalah : adanya tanda titik-koma setelah kurung kurawal tutup.2 VARIABEL DAN CLASS Dalam pemrograman. } di C++ sebagai berikut : class FormRegistrasi { int NoSiswa. namun menggunakan class. variabel di dalam tubuh class disebut juga : variabel instance.6. Penjelasan : a. yaitu : NoSiswa dan NoKursus 2.6. Untuk membuat class. Pada saat anda mendeklarasikan variabel class. 7.0RGXO 3HPURJUDPDQ . anda terlebih dahulu menentukan tipe/jenis data yang akan anda simpan di memori.

807 65. kita definisikan method dengan nama : AmbilKursus. method AmbilKursus memerlukan argumen : NoSiswa dan NoKursus untuk menyimpan daftar kursus yang diambil oleh siswa. Dalam hal ini. Dalam hal ini.483.0RGXO 3HPURJUDPDQ .147.7 METHOD Range of Values –128 to 127 –32.147. NoKursus). Table 2-1: Primitive Data Types Data Type byte short int long char float double boolean 7.854.483.223. Sebagai contoh.000 (Unicode) 3. NoKursus) { //berisi statement-statement dari method AmbilKursus } } Dari contoh di atas. maka anda memerlukan data tipe angka. Defdinisi method diletakkan di dalam definisi class. mengurang.7e+308 true or false Disamping atribut. Catatan : Argumen ditulis bersama dengan tipe datanya. Tabel berikut menunjukkan beberapa tipe data beserta jangkauan data yang umum digunakan dalam bahasa pemrograman.372.RPSXWHU (ARF) juga diperlakukan sebagai data tipe karakter. sehingga definisinya menjadi : boolean AmbilKursus (int NoSiswa. method AmbilKursus akan menyimpan informasi nomer siswa dan kursus yang diambil. agar behavior pada method dapat terlaksana. int NoKursus.767 –2. apabila data sudah tercatat maka bernilai 1(true) sedangkan apabila gagal maka bernilai 0 (false).808 to 9. class RegistrationForm { int NoSiswa. maka gunakan tipe data boolean di depan nama method. Bayangkan bahwa method ini seperti kumpulan statement yang melakukan tindakan tertentu.768 to 32.775.4e–038 to 3. Setiap instance dari kclass dapat mengakses method manakala behavior perlu dilakukan dalam program. tampak bahwa method AmbilKursus memiliki 2 argumen : NoSiswa dan NoKursus. Apabila terdapat 2 atau lebih argumen.854.223. membagi.775. Keyword void pada method AmbilKursus menyatakan bahwa setelah statementstatement pada method dijalankan.372. tidak ada nilai yang dikembalikan ke program yang memanggil ke method tersebut. Page 47 of 70 . Apabila anda ingin melakukan operasi aritmatika (menambah.036. void AmbilKursus(int NoSiswa.647 –9. Argumen yang digunakan di dalam method merupakan data yang diambil di luar method. mengali). masing-masing argumen dipisah dengan tanda koma. Tidak ada informasi lain yang nilainya perlu dikembalikan.7e–308 to 1. objek juga memiliki behavior. Apabila diinginkan kondisi. Method juga perlu didefiniskan/dideklarasikan terlebih dulu.036.4e+038 1.648 to 2.

} .ipk). clrscr().h> #include <conio.alamat).nama). diharapkan anda sudah memahami konsep penggunaan tipe data struktur. char alamat[30].gets(mhs. float ipk. Apabila anda menginginkan anggota class tidak dapat diakses di luar class secara langsung. int main () { atribut mhs.1 STRUKTUR Untuk dapat memahami pemrograman OOP pada C++. Apa beda fungsi gets dan cin ? OOP melakukan pemrograman menggunakan class. Untuk objek class atrribut di atas.nama)<<endl. cout<<"nama anda = ". Misalkan sebuah tipe struktur dalam program C++ sebagai berikut: #include <iostream.alamat). } 1. setiap objek dalam anggota kelas dapat memiliki method (behavior) tertentu. cout<<" alamat anda di : "<<(mhs. char alamat[30]. cout<<"alamat = ". Apabila program di atas dijadikan OOP. getch(). antara lain : Page 48 of 70 . } .h> struct atribut { char nama[20]. maka anda jadikan sebagai private. cout<<" SELAMAT DATANG "<<(mhs.h> #include <stdio. Kata public menyatakan bahwa anggota kelas dapat diakses secara umum. Dalam OOP. cin>>(mhs. Bagaimanakah hasil tampilan program ? 2. float ipk.gets(mhs. terdapat beberapa method (behavior) yang dapat kita lakukan.0RGXO 3HPURJUDPDQ . maka deklarasi tipe data struktur diubah sebagai berikut : class atribut { public: char nama[20].ipk). cout<<" IPK ANDA = "<<(mhs. cout<<"IPK = ".RPSXWHU (ARF) BAB 8 OOP II 8.

h> class atribut { private: char nama[20]. float ipk.h> #include <conio. Class atribut memiliki 3 anggota yang bersifat private . cout<<" beralamat di = "<<alamat<<endl. cout<<"alamat = ". yaitu : nama. fungsi anggota dapat dipanggil di dalam fungsi main() Pada program di atas. cout<<"ipk = ". cin>>ipk. int main () { clrscr(). } void tampil() { cout<<"nama anda adalah = "<<nama<<endl. atribut mhs. getch(). } Analisis : 1. gets(alamat). tentu saja data anggota masing-masing objek akan berbeda.RPSXWHU (ARF) 1. } }. Class ini memiliki 2 method/fungsi anggota yang bersifat public. cout<<"IPK = anda ternyata "<<ipk<<endl. alamat dan ipk. mhs. kita buat objek menjadi 2. char alamat[30]. Page 49 of 70 . Selanjutnya. gets(nama). Masukkan data mhs. Objek bernama mhs memiliki class atribut. public: void isi_data() { cout<<"nama = ". 2. ditunjukkan pada deklarasi : atribut mhs 3. 2. Kita dapat membentuk beberapa objek dengan class yang sama (fungsi inheritance?).tampil(). yaitu : isi_data() dan tampil(). Tampilkan data mhs.0RGXO 3HPURJUDPDQ . clrscr(). Misal.isi_data(). kita memiliki 1 objek bernama mhs dengan class atribut. mhs. yaitu : mhs_S1 dan mhsD3. Maka program OOP selengkapnya adalah sebagai berikut : #include <iostream.h> #include <stdio.

tampil(). float ipk. akan didapatkan keluaran yang sama.isi_data(). mhsD3. mhsD3. Keuntungan bentuk semacam ini adalah : semua kode terkumpul dalam class. Bagaimana keluaran program ? 2. } Pertanyaan : 1. getch(). sehingga mempercepat pengeksekusian. deklarasi anggota class dan method/behavior/fungsi anggotanya tetap. mhsD3. mhsD3=mhs_S1.0RGXO 3HPURJUDPDQ . mhs_S1. //apa maksudnya ? clrscr(). char alamat[30]. terutama apabila fungsi class sangat panjang dan kompleks. dimana fungsi anggota class kita definiskan secara langsung di dalam class.RPSXWHU (ARF) Dalam hal ini. terutama apabila banyak fungsi anggota yang didefinisikan dan banyak objek yang terlibat. Umumnya. terdapat 2 cara mendefinisikan method/behavior/fungsi anggota.h> #include <conio. mhs_S1. getch().isi_data(). bentuk ke dua ini paling banyak digunakan.tampil(). Potongan fungsi di dalam main sebagai berikut. mhsD3. atribut mhs_S1. namun memiliki kelemahan karena kode program yang dibangkitkan menjadi besar. atribut mhs_S1. } Pada OOP.isi_data(). mhs_S1. clrscr(). Apa yang terjadi jika di dalam main terdapat kode berikut : int main () { clrscr(). public: Page 50 of 70 . kita definisikan fungsi class di luar class seperti di bawah ini. Dengan cara pertama ataupun kedua. int main () { clrscr(). Cara pertama adalah seperti yang sudah kita gunakan. Bentuk yang kedua.h> #include <stdio. #include <iostream. mhsD3.tampil().h> class atribut { private: char nama[20].

clrscr(). mhs. }. Page 51 of 70 .tampil().RPSXWHU (ARF) void isi_data(). int main () { clrscr().isi_data(). gets(nama).0RGXO 3HPURJUDPDQ . atribut mhs. cout<<"alamat = ". } void atribut::tampil() { cout<<"nama anda adalah= "<<nama<<endl. } void atribut::isi_data() { cout<<"nama = ". cout<<"IPK anda ternyata= "<<ipk<<endl. void tampil(). cout<<"anda beralamat di= "<<alamat<<endl. getch(). cin>>ipk. mhs. cout<<"ipk = ". gets(alamat). } Catatan : kata void pada fungsi anggota berarti tidak ada nilai baliknya (void). Pelajari kembali : function.

1 . link. dan mencari solusi suatu permasalahan menggunakan Visual C++ ¾ Menggunakan program console ¾ Membuat dan mengedit program ¾ Melakukan kompilasi (compile). mengingat salah satu faktor dikembangkannya C++ dari bahasa pendahulunya.NET yang ditulis dalam bahasa C++. yang menyediakan dukungan fungsional pada saat kode dalam CLR dieksekusi. anda dapat menggunakan komponen-komponen standar yang telah disediakan (kode program komponen-komponen ini akan diciptakan secara otomatis oleh Page 52 of 70 .NET Framework. Windows API tidak mendukung penggunaan pemrograman berorientasi objek (yang telah menjadi tren pemrograman saat ini) 2.NET Framework.NET Framework. C#. sehingga memudahkan program dibuat. Program ini mengacu pada manfaat yang diberikan dari penggunaan . atau program C++/CLI. yaitu bahasa C adalah dalam hal pemrograman dari sudut pandang berorientasi objek.NET Framework.0RGXO 3HPURJUDPDQ . Melalui modul ini. Class Library . dan mengeksekusi program konsol C++ ¾ Membuat dan mengeksekusi dasar pemrograman windows 9. Program CLR. unsur-unsurnya. . Oleh karenanya. semuanya menggunakan library. Untuk aplikasi windows dengan target CLR. kompetensi yang diharapkan dapat dikuasai oleh mahasiswa adalah : ¾ Pemahaman konsep. Yaitu C++ yang telah ditentukan/distandarkan oleh ISO/ANSI. atau bahasa lainnya yang support terhadap. MFC meng-enkapsulasi Windows Application Programming Interface (API) pada pembuatan dan kontrol GUInya.NET FRAMEWORK Salah satu konsep utama pada Visual C++ 2005 adalah penggunaan . Namun demikian. digunakan Form Windows sebagai basis GUI yang disediakan oleh library . tidak peduli kode program ditulis dalam bahasa apa. Native C++. dan bukan lagi pemrograman yang bersifat terstruktur (structured language). serta manfaat yang diperoleh dari penggunaan . Kemampuan ini menjadikan kode C++ terintegrasi dengan sekitar 20 kode program lainnya yang menggunakan . ketimbang manfaat yang bisa diperoleh darinya. pemrograman . Salah satu cara membangun aplikasi C++ berbasis GUI (Graphical User Interface) dengan native C++ adalah menggunakan Microsoft Foundation Classes (MFC). Dengan menggunakan Form Window.adalah penguasaan terhadap bahasa C++. Satu-satunya hal yang perlu dikuasai pada pemrograman Visual C++ 2005 --sebelum anda benar-benar memahami dan menguasai pemrograman windows-.NET Framework. Common Language Runtime (CLR). terutama pada konsep Pemrograman Berorientasi Objek (OOP.RPSXWHU (ARF) BAB 9 PENDAHULUAN VISUAL C++ Pemrograman berbasis windows bukanlah pemrograman yang sulit dipelajari. Object-Oriented Language).NET Framework.NET Framework. yaitu : 1.NET Framework terdiri dari dua elemen : 1.NET Framework ¾ Membuat projek. dimana aplikasi kode program anda dieksekusi 2.NET yang sama Anda dapat menuliskan 2 tipe kode C++ pada Visual C++ 2005.

Kode C++ yang dieksekusi dengan CLR juga disebut sebagai Managed C++. Anda dapat menciptakan program dalam GUI tanpa harus menuliskan kode GUI-nya (kode GUI diciptakan secara otomatis oleh Visual C++). karena data dan kode program dikelola/diatur oleh CLR. Page 53 of 70 . Namun demikian. mengkompilasi. Gambar 9. Pada program yang mengikutsertakan CLR. C#. Beberapa pilihan dalam membangun aplikasi C++ Untuk menciptakan aplikasi berbasis windows. linking. 9. Dibutuhkan kode untuk memproses interaksi tersebut. anda perlu memahami bagaimana kode tersebut diciptakan. yaitu C++ untuk CLI (Common Language Infrastructure). Kode C++ yang dieksekusi di luar CLR dinamakan oleh Microsoft sebagai unmanaged C++. anda perlu memperluas/memodifikasinya agar menjalankan fungsi sesuai dengan yang anda perintahkan. sebab CLR tidak diikutsertakan. yaitu fungsi-fungsi yang dijalankan oleh aplikasi yang dibuat. pembebasan memori yang telah dialokasikan secara dinamis untuk menyimpan data diperlakukan secara otomatis. oleh karena dalam langkah selanjutnya. GUI berfungsi sebagai interaksi antara program dengan user.3 IDE (INTEGRATED DEVELOPMENT ENVIRONMENt) IDE (Integrated Development Environment) pada Visual C++ 2005 meruapakan lingkungan terintegrasi tempat anda membangun/menciptakan program. CLI merupakan virtual machine yang memungkinkan aplikasi yang ditulis dalam level bahasa pemrograman yang berbeda dapat dieksekusi dalam lingkungan lain tanpa harus mengubah kode sumber (original source code) dan atau mengkompilasinya lagi.2 CLR CLR adalah lingkungan tempat eksekusi program. sehingga menghilangkan kesalahan-kesalahan umum (common source of error ) pada aplikasi C++.1. Dibutuhkan kode untuk menciptakan Graphical User Interface (GUI). Visual C++ 2005 menyediakan kemudahan-kemudahan 2 aspek di atas. termasuk didalamnya : Visual Basic.0RGXO 3HPURJUDPDQ . dan C++. Spesifikasi CLR telah dimasukkan dalam standar European Computer Manufacturers (ECMA) tentang Common Language Infrastructure (CLI) sehingga C++ dalam CLR ditulis sebagai C++/CLI. anda harus memahami 2 aspek dasar : a. b.RPSXWHU (ARF) Visual C++) dan menambahkan kode program sesuai dengan kebutuhan. 9. Jenis kode program yang ditulis dapat bervariasi.

3. Adapun fungsi masing-masing komponen tersebut antara lain : 1. Terdapat beberapa komponen dalam lingkungan IDE Visual C++ 2005. yaitu menu Cut dan Paste. yaitu : ƒ Editor ƒ Compiler ƒ Linker ƒ Library Komponen-komponen ini merupakan tool dasar yang digunakan dalam menulis dan mengeksekusi kode program C++. Contoh dari library dalam C++ adalah library .NET Framework. 9. Kode objek hasil dari kompilasi disimpan dalam file-file objek. 4. Linker juga dapat mendeteksi dan melaporkan kesalahan. Editor Editor merupakan tempat/lingkungan anda membuat dan mengedit source code C++. dengan ekstensi .obj. serta mendeteksi dan memberikan laporan apabila terjadi kesalahan/error pada saat kompilasi. Kesalahan program dapat dibedakan menjadi 2 jenis : kesalahan pemakaian sintaks/statement dan kesalahan logika/struktural. dan menyatukannya menjadi bentuk file yang dapat dieksekusi (executable). Page 54 of 70 . Maka akan tampil tampilan Visual C++ 2005 dalam lingkungan Pengembangan Terintegrasi/IDE. juga warna yang berbeda-beda untuk memudahkan dalam membedakan elemen-elemen program yang berbeda. Hal ini memudahkan dalam pembacaan program.5 MEMULAI VISUAL C++ 2005 Apabila Visual C++ 2005 sudah terinstal di komputer. Linker Linker akan menggabungkan modul-modul yang dihasilkan dari kompilasi kode program. anda dapat membukanya lewat menu : Start<<Program<<Visual C++ 2005 Express Edition<<Microsoft Visual C++ 2005 Express Edition. Lingkungan editor disertai dengan beberapa fasiltas yang memudahkan anda dalam menulis dan mengedit kode program C++. dan pengecekan kesalahan 2.RPSXWHU (ARF) dan melakukan testing program. Compiler Compiler akan mengubah kode program menjadi kode objek. Library Library adalah kumpulan dari rutin-rutin yang mendukung serta memperluas fungsi program C++ dengan kode unit yang dapat disertakan dalam program.0RGXO 3HPURJUDPDQ . menambahkan modul tambahan yang diperlukan dari library program C++. jika misalnya di dalam kode program terdapat kesalahan atau penggunaan komponen library yang tidak dikenal. editor akan mengenali secara otomatis sintaks dan perintah dalam C++ dan menandai mereka dengan warna tertentu.

Di jendela ini anda dapat membuat dan memodifikasi kode program serta komponen lainnya dari aplikasi yang anda buat. ¾ Jendela di bagian bawah merupakan Output window. dan Property Manager yang dapat anda pilih untuk ditampilkan. Di jendela ini anda dapat menjalankan navigasi file-file program dan menampilkan isi/content-nya pada jendela Editor. Resource View. Menu-menu Visual C++ 2005 yang berada di atas disebut sebagai toolbar.3 menu pop-up tampilan toolbar Page 55 of 70 . Jendela ini memiliki tiga tab : Class View. sehingga tampil daftar menu popup sebagai berikut : Gambar 1. serta membuat file program baru.2 Lingkungan IDE Visual C++ 2005 Berikut adalah penjelasan lingkungan IDE Visual C++ 2005 : ¾ Jendela yang berada di sebelah kiri disebut sebagai Solution Explorer window.RPSXWHU (ARF) Gambar 9. Anda dapat mengatur tampilan toolbar ini dengan cara mengklik kanan pada toolbar. ¾ Jendela di kanan atas dengan judul tab : Start Page disebut Editor window.0RGXO 3HPURJUDPDQ . Jendela ini menampilkan pesan yang dihasilkan dari proses kompilasi (compiling) dan linking program.

maka akan muncul box dialog New Project : Gambar 9. terkecuali anda menambahkan projek yang anda buat pada solusi yang sudah ada.suo. atau anda tekan Ctrl+Shift+N. dan Standard (menu aktif ditandai dengan adanya tanda chek/centang). sebuah solusi juga akan dibuat secara otomatis. Projek berisi file-file yang diperlukan dalam membangun aplikasi program. Semua file dalam satu projek harus disimpan dalam folder Projek. yaitu ekstensi . 9. Solusi meruapakan sebuah folder dimana informasi tentang satu atau beberapa projek tersimpan di dalamnya. sehingga tanda chek akan hilang. Apabila anda ingin me-nonaktifkan menu yang telah aktif. terdapat 2 menu yang aktif.RPSXWHU (ARF) Anda dapat mengaktifkan menu toolbar dengan cara mengklik menu yang bersangkutan.4 Application wizard dari pilihan New Project Page 56 of 70 . cukup dengan mengklik menu aktif tersebut. Pada gambar di atas.6. Program dapat berupa program berbasis window atau program jenis lainnya. Oleh karenanya.6 MEMBUAT PROJECT DAN SOLUTION Langkah pertama anda membuat program dalam Visual C++ adalah membuat sebuah projek baru. Adakalanya aplikasi yang dibuat tersusun dari beberapa bagian program yang masing-masing program dapat dibuat sebagai sebuah projek tersendiri. sedangkan informasi detail dari projek disimpan dalam file XML dengan ekstensi . Projek biasanya terdiri dari satu atau lebih file sumber (source file) yang berisi kode program serta file yang berisi data tambahan lainnya yang diperlukan. Solution/Solusi adalah mekanisme menggabungkan semua resources dan program yang menyusun aplikasi.sln dan . Pada saat anda menciptakan sebuah projek.vcproj yang juga berada dalam folder projek. Folder projek juga berisi folder-folder yang digunakan untuk menyimpan keluaran/output dari kompilasi dan linking projek.0RGXO 3HPURJUDPDQ . yaitu : Debug. Informasi tentang projek dalam folder Solution disimpan dalam 2 ekstensi.1 MEMBUAT PROJEK BARU Untuk membuat projek baru. 9. pilih menu : File>>New>>Project.

Setelah anda mengklik OK. General Untuk saat ini. yaitu Win32 Console Application. kali ini biarkan saja menu tersebut. pilih tipe projek Win32. maka akan muncul box dialog Win32 Application Wizard seperti berikut : Gambar 9. Akan tetapi. misalkan anda tempatkan di drive D dengan nama folder : @MyProjek. Untuk saat ini. Panel di sebelah kanan menampilkan daftar template yang tersedia dari pilihan projek yang telah anda pilih di panel sebelah kiri. Template yang anda pilih akan digunakan oleh aplikasi untuk menciptakan file yang membangun sebuah projek. CLR 2. pilih terlebih dahulu menu Applications Settings pada panel sebelah kiri sehingga muncul halaman pada gambar 9.6. Dalam hal ini. anda bisa memilih Empty project oleh karena anda ingin belajar bahasa C++/menggunakan Visual C++ untuk pertama kali. Terdapat 3 pilihan tipe projek. Jangan lupa untuk memberi nama file projek anda. Jangan lupa untuk mengelola file projek anda ke dalam folder khusus. Di sini anda dapat memilih opsi yang ingin anda terapkan pada projek yang anda buat.RPSXWHU (ARF) Panel di sebelah kiri menampilkan tipe projek yang dapat anda buat. untuk tipe projek Win32 hanya terdapat sebuah template. Misalkan bernama Projek1. Win32 3. Application wizard kemudian akan menciptakan projek dengan semua file yang dibutuhkan.0RGXO 3HPURJUDPDQ . Page 57 of 70 . dan langsung anda klik tombol finish.5 Win32 Application wizard Jika anda langsung mengklik tombol Finish. maka akan semua file projek akan diciptakan. yaitu : 1. Dalam hal ini.dan juga file Solutionnya.

akan terdapat 3 file Solution.sln yang berfungsi merekam informasi tentang projek di dalam solusi.6 Application Settings Win32 Application Gambar 9.0RGXO 3HPURJUDPDQ .7 Tampilan Project baru yang telah dibuat Jika anda membuka windows explorer di folder projek yang anda buat.ncb yang merekam data Intellisense bagi solution. dan sebuah folder Projek. yaitu : ƒ Sebuah file dengan ekstensi . Page 58 of 70 . tetapi anda dapat mengaktifkan menu : Show Hidden Files and Folders dari menu : Tools<<Folder Option. kemudian pilih tab : View). Nama Projek dan nama Solution umumnya sama. kecuali anda memberi nama berbeda.RPSXWHU (ARF) Gambar 9. ƒ Sebuah file dengan ekstensi . ƒ Sebuah file dengan ekstensi . Terdapat 3 file projek (secara default akan tertampil dua file.suo yang berisi informasi opsi-opsi yang dipilih user. Intellisense merupakan fasilitas yang menyediakan auto-completion dan prompting bagi jendela Editor.

Tiga buah file solution pada folder projek1 Apabila anda browse ke folder Projek.0RGXO 3HPURJUDPDQ .RPSXWHU (ARF) Gambar 9. Ke enam file projek ini juga akan tertampil pada jendela solution explorer.9. dan Source Files pada jendela solution explorer Adapun masing-masing tab pada solution explorer adalah : 1. maka didalamnya terdapat enam file. Gambar 9. 2. Resource Files. sehingga kosong. dan source. dan Source Files sebagaimana diperlihatkan dalam gambar.8. Sedangkan pada solution explorer visual C++ 2005 akan tampil :Header files.10. Penggunaan class ini merupakan salah satu ciri khas dari Pemrograman Berorientasi Objek Page 59 of 70 . Header files. termasuk file bernama ReadMe. resource. Pada tab ini akan ditampilkan isi file : header. Resource Files. Saat ini anda tidak memiliki satu class-pun. Enam buah file projek pada folder projek1 Gambar 9.txt yang berisi rangkuman content file-file yang menyusun projek. Tab Class View menampilkan class-class dan juga content-nya pada projek yang anda buat. Tab Solution.

maka anda dapat men-dobel klik pada file projek1. Tab Property Manager menampilkan properties yang telah diatur untuk the Debug dan rilis versi dari projek anda.RPSXWHU (ARF) 3. Caranya adalah sebagai berikut : pilih menu Tools << Options dari menu utama. pada jendela editor seharusnya tertampil kode program dari projek1. 9.cpp (file ini termasuk ke dalam Resource file).cpp anda dapat menampilkan kode editor memiliki line number seperti berikut : Gambar 9. Gambar 9. Tab ini aktif apabila anda telah membuka sebuah file projek. pilih properties. dan beri tanda centang pada Line number seperti gambar berikut : Page 60 of 70 . sub menu : All Language.11.6. Jendela editor projek1. Apabila belum tampil. pilih General. Atau dengan menekan tombol Alt+F7 untuk menampilkan dialog box properties. Melalui tab ini anda dapat mengubah property dari projek yang anda buat dengan cara klik kanan.2 MODIFIKASI KODE PROGRAM Pada saat anda membuat sebuah projek baru.cpp pada folder Resource file yang berasa di jendela Solution explorer. Pilih menu : Text Editor.12.0RGXO 3HPURJUDPDQ . Jendela editor dengan line number. terlihat.

Mencoba Visual C++ ”. Berikut adalah penjelasan dari kode program projek1. _TCHAR* argv[]) { cout<<"Halo. dan seterusnya). atau tekan tombol F7. ¾ Baris ke-4 : #include stdafx. Komentar ini umumnya selalu ada dalam program. // #include "stdafx.cpp sebagaimana diperlihatkan pada Gambar 1. Keuntungan dari tampilnya line number pada jendela editor adalah untuk memudahkan programmer dalam membuat dan mengedit kode program. anda akan membuat program yang menampilkan tulisan :”Halo.RPSXWHU (ARF) Gambar 9.12.h ¾ Baris ke-7 : int _tmain(int argc. _TCHAR* argv[]) merupakan sebuah fungsi. Anda dapat menuliskan kode program anda diantara tanda kurung kurawal buka dan tutup. ¾ Baris 1-2 diawali dengan tanda //. Jendela output akan menampilkan pesan dari kode Page 61 of 70 . yaitu return 0. terkecuali statement-statement yang tidak membutuhkan titik koma. } Selanjutnya.cpp:Defines entry point for the console application.13. Tambahkan baris/kode program sehingga seperti di bawah ini : // Projek1. Mencoba Visual C++\n". Pilih menu Build<<Build Solution. awal kode yang akan dieksekusi. C++ dapat tersusun dari satu atau lebih fungsi.h" #include<iostream> int _tmain(int argc. ataupun hanya sekedar informasi tentang program tersebut (pembuat program. Pada projek pertama ini. Pada kode program saat ini. Pengaturan tampilan editor kode dengan line number. return 0. perlu anda biasakan untuk menulis tanda titik koma setelah statement. yang merupakan komentar dari program yang bersangkutan. hari dan tanggal penciptaan program. untuk memudahkan programmer mengenali kembali baris-baris program yang telah dibuat. dan tidak akan dieksekusi oleh program. anda harus membangun program anda menjadi sebuah aplikasi. hanya terdapat satu statement.0RGXO 3HPURJUDPDQ .h merupakan pengarah praprosesor ke file header bernama stdafx.

pdb . File ini berisi informasi yang digunakan saat rebuild solution.1 Deskripsi file yang dibuat setelah perintah build program dijalankan Ekstensi File . Pengaturan tampilan editor kode dengan line number. Apabila tidak ada kesalahan.3 VERSI DEBUG DAN VERSI RILIS Pada saat anda membuat sebuah projek.. . 0 warning(s) ========== Build: 1 succeeded. Pada versi debug.obj bersama-sama dengan file-file dari library membentuk file ekstensi .14. 0 failed.exe . tidak Page 62 of 70 .htm" Projek1 .idb Setelah anda membangun program lewat menu buil. 9. file yang anda jalankan seharusnya memiliki keluaran sebagai berikut : Gambar 9.cpp Compiling manifest to resources.0 error(s). Linking. 0 skipped ========== setelah anda membangun sebuah projek. yang akan didapatkan apabila tidak terdapat kesalahan saat kompilasi dan linking program Kompiler menciptakan file objek ini.exe yang telah ada.ilk .. maka di jendela output akan tertampil pesan sebagai berikut : Projek1. Build log was saved at "file://d:\@MyProjek\Projek1\Projek1\Debug\BuildLog.. Visual C++ 2005 menyediakan 2 jenis versi aplikasi. anda dapat melakukan edit/modifikasi kode program yang salah apabila djumpai kesalahan.exe File ini digunakan oleh Linker pada saat anda me-rebuikd projek dengan cara menghubungkan file objek yang dihasilkan dari kode program yang dimodifikasi dengan file . File ini berisi informasi debugging yang digunakan pada saat eksekusi program pada mode debug. Embedding manifest. yaitu versi Debug dan versi Release. 0 up-to-date.pch . anda dapat mengeksekusi program lewat menu : CTRL+F5.exe (executable).obj Penjelasan File executable.0RGXO 3HPURJUDPDQ .. yang berisi kode mesin dari file kode program yang dibuat. yang berisi 3 file output dari perintah build yang anda jalankan.. Berikut adalah penjelasan dari ekstensi file yang digunakan dalam Visual C++ 2005. File .RPSXWHU (ARF) program yang dibangun.6. maka di folder projek1 akan dibuat sebuah folder baru bernama Debug. Pada versi release.. Salah satu file yang tercipta adalah file dengan ekstensi . Tabel 9. sehingga tidak perlu lagi me-re-link semua file pada saat kode program berubah/dimodifikasi File ini merupakan file header pre-compiled yang berfungsi mengurangi waktu yang dibutuhkan untuk me-rebuild program.

dan file app.cpp. pilih Project Types : CLR. yaitu : appp. namun memiliki opsi optimisasi kode bagi compiler untuk menciptakan file executable secara efisien.15.5.0RGXO 3HPURJUDPDQ . tipe data yang digunakan.RPSXWHU (ARF) terdapat informasi debug. kecuali anda membuat nama yang berbeda untuk solusi-nya. Nama solution secara otomatis akan sama dengan nama projek. Apabila anda periksa di jendela solution explorer akan terdapat bebarapa file baru. Gambar 9.6. Pada dialog box new projek. Anda dapat mengatur 2 jenis versi aplikasi ini lewat menu : Build << Configuration Manager.rc yang merekan resource aplikasi.17. Beri nama projek anda dengan projek2. sebagaimana ditunjukkan pada gambar :9. Atau bisa juga dengan pilhan : File<<Save projek1 As. 9. Page 63 of 70 . serta informasi apakah isi dari file assembly dapat diakses oleh assembly yang lain. Pada folder Resource Files terdapat 2 file. akan tampak kode program sebagaimana ditunjukkan dalam gambar 9. CLR juga meyimpan informasi versi kode program. apabila anda ingin mengubah nama projek yang telah anda buat.4 MENYIMPAN DAN MENUTUP FILE Untuk menyimpan program yang telah dibuat. dengan template : CLR Console Application. Di jendela editor. atau tekan tombol CTRL+SHIFT+N. sehingga tampil dialog box seperti ditunjukkan pada gambar 1.1. yang merupakan kumpulan kode dan resources yang menyusun unit fungsional program.ico yang berfungsi menyimpan icon aplikasi yang ditampilkan saat program di-minimize. pilih menu : File<<Save projek1 atau menekan Ctrl+S. pilih menu : File<<New<<Projek. Dua versi aplikasi : versi Debug dan versi Release 9. yaitu Projek konsol CLR.16 Pada folder Source Files terdapat file AssemblyInfo.7 MEMBUAT PROJEK KONSOL CLR Untuk membuat projek baru. Setiap program CLR terdiri dari satu atau lebih assembly.

Apabila dijalankan (tekan CTRL+F5). atau blok kode) yang sama. Jendela Solution Expolrer dari projek tipe aplikasi konsol CLR Gambar 9.RPSXWHU (ARF) Gambar 9. maka anda dapat merujuk data1 yang berada pada library sebagai system::data1.NET selalu menggunakan statement : namespace. variable. terdapat baris program : using namespace System penggunaan fasilitas library. identik dengan : cout<<"Halo.0RGXO 3HPURJUDPDQ . sehingga apabila nama data1 ini digunakan di dalam blok kode program. Kode Program Visual C++ Apabila dibandingkan dengan aplikasi win32. maka tampilan program adalah sebagai berikut : Page 64 of 70 . Tanda kolon :: disebut sebagai “scope resolution operator”. Contoh : sebuah nama : data1 pada library merupakan : system::data1. Penggunaan namespace ini berfungsi untuk menghindari pemakaian nama (data.17. Program dibuat menggunakan Visual C++\n". dan semua standard yang digunakan untuk membangun program tersimpan di System. Di kode editor juga terdapat perintah : Console::WriteLine(L"Hello World").16. Perintah ini akan menampilkan tulisan “Hello World” . Pada native C++.

Page 65 of 70 . anda akan membuat aplikasi windows menggunakan Windows Form application. termasuk 3 file solution. jendela Solution Explorer projek bertipe Windows Form Application Apabila anda periksa folder projek3. maka akan dijumpai total 15 files yang tercipta.16. dengan tipe projek : Windows Form Application.18. Kemudian buatlah projek baru bernama projek3. Tutuplah projek2 yang telah anda buat dengan pilihan menu : File<<Close Solution.17. anda akan menjumpai file-file projek3 sebagimana ditunjukkan pada gambar. Tampilan ouput program Projek2 9. Gambar 9.8 MEMBANGUN APLIKASI WINDOWS Pada latihan ketiga ini.RPSXWHU (ARF) Gambar 1. Membuat projek baru dengan template : Windows Form Application Di bagian solution explorer.0RGXO 3HPURJUDPDQ . Gambar 9. Beri nama file projek dan solution dengan nama projek3.

anda akan menjumpai tampilan sebagai berikut : Gambar 9. jendela Kode Editor Jendela kode editor akan menampilkan jendela untuk membangun aplikasi berbasis window. Anda dapat memilih komponen GUI yang akan anda taruh pada jendela aplikasi di jendela kode editor dengan cara mengklik komponen tersbut. anda dapat memperbesarnya dengan menahan klik dan menyeretnya sesuai dengan ukuran yang sesuai. Anda juga dapat mengubah letak dan ukuran tombol dengan mengarahkan mouse pada pinggiran tombol. Visual C++ secara otomatis akan membangkitkan kode bagi komponen GUI yang dipergunakan/dipasang pada jendela editor. sehingga membentuk tanda palang dengan ujung-ujungnya berbentuk ujung anak panah. Page 66 of 70 . kemudian anda seret tombol tersebut ke tempat yang anda sukai. File-file yang tercipta pada folder Projek3 Pada kode editor.0RGXO 3HPURJUDPDQ .RPSXWHU (ARF) Gambar 9. Jendela Toolbox menampilkan seluruh komponen GUI Visual C++ 2005. Hal ini dikarenakan trend bahasa pemrograman yang engarah ke bentuk visual.19. maka akan ditampilkan daftar lengkap komponen GUI yang dapat anda letakkan pada program yang sedang anda buat. dibanding membuat program hanya berbasis text saja. dan mengklik pada jendela kode editor (pada posisi yang anda sukai). Jika anda menekan tombol Ctrl+Alt+X atau pilih View <<Toolbox.20. Pada jendela kode editor ini. anda dapat meletakkan komponen-komponen GUI dengan cara drag and place. cukup anda klik tombol tersebut. Untuk mengubah ukuran tombol. sehinga muncul kotak putih kecil di pinggir tombol. dan bukan kode program.

21.RPSXWHU (ARF) Gambar 9.22.0RGXO 3HPURJUDPDQ . Tanda kotak kecil untuk mengubah ukuran tombol untuk merubah nama tombol. pilih Properties. anda harus mengubahnya lewat Property dari tombol yang bersangkutan. sehingga tampil menu property sbb : Page 67 of 70 . Menu Toolbox komponen GUI Gambar 9. Caranya : Klik kanan pada tombol.

Setelah anda menekan tombol OK.0RGXO 3HPURJUDPDQ . Ouput program Review Kode Program C++ Untuk mengenal elemen-elemen program dalam C++. Buatlah projek baru dengan nama : projek2_1 dengan memilih menu : File < New < Project atau menekan tombol CTRL+SHIFT+N. Pilih tipe projek : Win32. Tambahkan satu lagi tombol bertuliskan “Stop’ dengan cara yang sama. dan tekan enter. tulis “Start”.RPSXWHU (ARF) Gambar 9. Mengubah nama tombol dengan menu property pada bagian text. sehingga didapatkan program aplikasi windows yang anda buat sbb : Gambar 9.24. dengan template : Win32 Console Application. Pilih menu Aplication Settings (berada di bawah menu overview sehingga tampil sebagai berikut : Page 68 of 70 .23. maka akan mucul dialog box Win32 Application Wizard. Maka tulisan pada tombol akan berubah menjadi start.

25. pilih Empty Projek. Pilihan menu Add Item Page 69 of 70 .0RGXO 3HPURJUDPDQ . Caranya : klik kanan pada folder Sources Files. jendela Solution Explorer projek2_1 tidak ada satu filepun pada folder : Header Files.RPSXWHU (ARF) Gambar 9. Untuk memahami elemen-elemen program C++. dan precompiled header pada additional option.3. dan klik Finish.25. maka akan tampil : Gambar 2. akan terpilih console application pada application type. Win32 application Wizard Secara default. dan folder Source Files. pilih Add < New Item. Resource Files. Jendela solution explorer pada visual C++ 2005 akan tampil sebagai berikut : Gambar 9. Anda akan menambahkan file baru pada folder Source Files.

vcproj. int main() { float keliling. luas=3. // Exit the program } Page 70 of 70 . // deklarasi variabel tipe float jari2=10.cpp.luas. // menghitung keliling lingkaran cout << endl. // Output a new line character return 0.RPSXWHU (ARF) Pastikan anda memilih template C++ File (.cpp // projek2_01. file projek akan memiliki ekstensi . // deklarasi variabel tipe integer int jari2.0RGXO 3HPURJUDPDQ . tuliskan kode program berikut dalam file projek2_01. file yang dibuat secara otomatis akan berkestensi . cout << "keliling lingkaran = " <<keliling<<endl. // Start output on a new line cout << "luas lingkaran = " <<luas<< endl.cpp).14*jari2*jari2.cpp // Contoh Program Sederhana #include <iostream> using std::cout. selanjutnya beri nama item baru dengan projek2_01. cout << endl. // menghitung luas lingkaran keliling=2*3.14*jari2. Selanjutnya. using std::endl.