P. 1
Modul MK Pemrograman Komputer B

Modul MK Pemrograman Komputer B

|Views: 595|Likes:

More info:

Published by: bon-bin-mouse-z-5928 on Nov 27, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/11/2013

pdf

text

original

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

6. 5. Jika ekspresi yang dipersyaratkan tidak terpenuhi (bernilai salah). Terdapat beberapa bentuk perulangan. cout << "masukkan angka mulai = " > ". cin >> n. 2.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. return 0. ". eksekusi statement : Page 15 of 70 . User diminta memasukkan sembarang nilai angka. } Output : masukkan angka mulai = > 8 8. contoh. --n. dan akan berakhir jika kondisi (n>0) tidak terpenuhi. } cout<<"FIRE!". 3. 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. 1. dan program akan melanjutkan mengeksekusi statementstatement program selanjutnya yang berada di luar struktur while. user akan dihadapkan dengan perintah untuk memasukkan sembarang nilai angka yang akan dihitung mundur. kita akan membuat program yang akan menghitung mundur : int main() { int n. 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. 4. 2. Setelah input dimasukkan. yaitu : 3.RPSXWHU (ARF) BAB 3 PERULANGAN/ITERASI Loops/perulangan/kalang bertujuan untuk mengulang statement selama beberapa kali atau selama kondisi terpenuhi. 7. FIRE! Pada saat program mulai dijalankan. Keseluruhan proses program yang telah dibuat di atas dapat diterjemahkan ke dalam algoritma sebagai berikut : 1. while(n>0) { cout<<n<< ". loop while akan dimulai. maka statement tidak akan dijalankan (diabaikan). Kondisi while akan diuji (n>0).0RGXO 3HPURJUDPDQ .

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

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

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

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

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

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

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

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

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

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

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

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

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

Bentuk deklarasi array adalah : type nama [elemen]. Sebagai contoh. 80 . dan 5. 5. dengan tipe adalah tipe data array. daripada harus mendeklarasikan masing-masing enam buah variabel bertipe integer. 2. float. Jadi.RPSXWHU (ARF) BAB 5 ARRAY 5. Data tipe array Setiap kotak pada gambar di atas merepresentasikan elemen-elemen array (dalam hal ini terdapat enam elemen) dengan tipe integer. data tipe array harus dideklarasikan terlebih dahulu sebelum dipergunakan dalam program.2 INISIALISASI NILAI ARRAY Elemen-elemen array dapat kita inisialisasi dengan cara berikut : Int data [6] = {60. 3. sehinga masing-masing elemen array-nya adalah : elemen 0. 1. 4. 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. Data tipe array Gambar 5. char. 70.100} Artinya bahwa : ƒ array dengan indeks 0 bernilai 60. atau dituliskan : data[2]=80 Page 31 of 70 . Penomoran elemen-elemen array dimulai dari 0.1. Hal ini dapat diilustrasikan sebagai berikut : 1 Data Int 2 3 4 5 6 Gambar . Misalkan ke-enam data array tersebut kita beri nama/identifier sebagai : data. dengan menggunakan array. atau dituliskan : data[0]=60 ƒ array dengan indeks 1 bernilai 70. dan diikuti dengan jumlah elemen array yang berada di anatara tanda kurung [ ].0RGXO 3HPURJUDPDQ . dst).30 . nama merupakan nama identifier array. kita dapat menyimpan enam buah data bertipe integer dalam satu arry. (seperti int.20 .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. atau dituliskan : data[1]=70 ƒ array dengan indeks 2 bernilai 80. untuk array bernama data bertipe integer dengan jumlah elemen array sebanyak enam buah dideklarasikan sebagai : Int data [6].

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

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

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

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

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

1.4 Port Paralel tipe D-25 female Tabel 6.3. 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 .RPSXWHU (ARF) Byte Bit 1 Bit 2 Bit 3 Bit 4 Bit 5 Bit 6 Bit 7 Bit 8 Byte Byte Gambar 6. 5 bit kontrol input c. Pin 13 Pin 1 Pin 25 Pin 14 Gambar 6. 8 bit data output b.0RGXO 3HPURJUDPDQ . Fungsi masing-masing pin dijelaskan pada tabel di bawah ini. sedangkan port pada printer bertipe 36 pin Centronics. Pengiriman bit 11111011 11011110 01111100 secara paralel Port paralel tersusun dari : a. 5 bit kontrol output Port paralel pada CPU bertipe D-25 female dengan 25 pins.

8 pin pada konektor yang digunakan untuk pengiriman data ouput 8bit (D0-D7) diperlihatkan pada tabel. 6. Tabel 6. LPT2. a.0RGXO 3HPURJUDPDQ . 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. OUTPUT ƒ ƒ ƒ ƒ ƒ STROBE: digunakan untuk sinyal yang memberitahukan printer bahwa data 8 bit siap dibaca. Port 378H merupakan port OUTPUT yang digunakan oleh CPU untuk menulis data yang akan dicetak ke printer. yaitu LPT1. SLCT: memberitahu komputer bahwa komputer terhubungn dengan sebuah printer. sehingga pada peta memori komputer terdapat 3 alamat untuk masing-masing port tersebut.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.2 PENGALAMATAN PORT PARALEL MS-DOS mendukung sistem pengalamatan 3 port paralel. D0-D7: digunakan untuk komunikasi bit data. Berikut adalah penjelasan masing-masing fungsi pada pin port paralel D-25 female.2. Page 38 of 70 . dan mengubahnya ke level logika rendah (low logic level). AUTO FEED: memerintahkan printer untuk mencetak sebuah garis kosong yang diikuti dengan perpindahan baris. dan LPT3. oleh karenanya CPU harus mengehentikan pengiriman data. INIT: me-reset printer. PE: memberitahukan bahwa printer sedang out of paper. ERROR/: digunakan untuk memberitahukan apabila terjadi error. 379H dan 37AH (pengalamatan menggunakan bilangan heksadesimal). 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. SLCT IN: menseleksi printer saat printer berada pada level logika rendah (low logic level).

data). Port 37AH Merupakan port OUTPUT yang digunakan sebagai kontrol komunikasi. Pin konektor yang digunakan dapat dilihat pada tabel berikut. • data = inport( PORTID). data). fungsi-fungsi berikut ini digunakan sebagai perintah untuk akses port paralel : • outportb ( PORTID. Tabel 6.RPSXWHU (ARF) b. Port 379H Merupakan port INPUT yang digunakan oleh CPU untuk mengetahui kondisi printer. LPT2. Tabel 6. • data = inportb( PORTID). dan LPT3). Fungsi outport() mengirim satu word ke port paralel Page 39 of 70 . • outport( PORTID. 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.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. Pin yang digunakan sebagaimana pada tabel.5. masing-masing LPT memiliki alamat I/O sebagai berikut : Tabel 6.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.0RGXO 3HPURJUDPDQ .

gotoxy(3. Port bernilai 0x378h 2.pada saat dieksekusi.RPSXWHU (ARF) Fungsi inport() membaca satu word dari port. bernilai 223 ( 1 1 0 1 1 1 1 1).(data & 0x80)/0x80). data).11). printf("\n Pin 11: %d". while(!kbhit()) { data=inportb(PORT+1). clrscr(). port status register. data. printf("\n Pin 12: %d". printf("\n Pin 15: %d".(data & 0x40)/0x40).h" #define PORT 0x378 void main() { int data. printf("\n Pin 13: %d". } } Penjelasan : 1. while(!kbhit()) menyatakan bahwa statement yang berada pada while akan dieksekusi hingga terdeteksi penekanan tombol pada keyboard 3. data=inportb(PORT+1) menyatakan bahwa variabel data adalah data pada port beralamat 0x379h . Dapat dituliskan pada tabel : Tabel 6.(data & 0x20)/0x20).(data & 0x11)/0x11).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 .0RGXO 3HPURJUDPDQ .(data & 0x08)/0x08).h" #include"dos.h" #include"conio. printf("\n Pin 11: %d". %3X (hex)\n". printf("Data available in status register: %3d (decimal). delay(11). Berikut adalah program dengan menggunakan akses port paralel #include"stdio. Fungsi outportb() mengirim satu byte ke port Fungsi inportb() membaca satu byte dari port.

anda dapat memberikan logika 1pada pin LED yang bersangkutan.0RGXO 3HPURJUDPDQ .4 LED yang terhubung ke port paralel Untuk menyalakan lampu 8 LED. Contoh program untuk menyalakan LED : #include <stdio. 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. harus digunakan operasi bit sebagai berikut. 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. Misalkan ingin diketahui status register pin no. 15. data (0x08) di AND kan bit no.h> /********************************************/ /*This program set the parallel port outputs*/ /********************************************/ Page 41 of 70 .h> #include <conio.h> #include <dos.RPSXWHU (ARF) Data available in status register:223 (decimal). maka kita AND kan bit D3 dengan 0 x 08 sehingga : bit no.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->