Professional Documents
Culture Documents
I. VISUAL C++
PENDAHULUAN
Visual C++ merupakan perangkat pengembangan aplikasi yang menggunakan C++ sebagai bahasa pemrograman dan dapat digunakan untuk membuat aplikasi berbasis windows maupun berbasis teks (aplikasi konsol). Perangkat ini menyediakan lingkungan yang dinamakan IDE (Integrated Development Environment) yang memungkinkan pemakai membuat, mengkompilasi, menggabungkan dan menguji program dengan cepat dan mudah. Beberapa komponen penting dalam Visual C++ adalah sbb : Editor Editor menyediakan sarana bagi pemrogram untuk menuliskan program yang menarik. Kompiler Kompiler adalah perangkat lunak yang berfungsi untuk menerjemahkan kode sumber (source code) ke dalam bentuk bahasa mesin. Tentu saja peranti ini dapat memberikan pesan-pesan kesalahan jika terjadi kesalahan kaidah penulisan program yang terdeteksi pada tahap proses kompilasi. Hasil kompilasi berupa kode objek (object code) yang disimpan dalam berkas berekstensi .obj(disebut berkas objek) Linker Linker adalah perangkat lunak yang berfungsi menggabungkan berbagai modul yang dihasilkan oleh kompiler dan modul kode dari berbagai pustaka C++, serta membentuk menjadi kode yang dapat dieksekusi. Sebagaimana kompiler, linker juga dapat mendeteksi kesalahan. Kesalahan yang terjadi sewaktu proses linking bisa disebabkan karena ada bagian pustaka atau bagian program yang tidak ditemukan. Pustaka Visual C+++ menyediakan berbagai pustaka (library) yang memudahkan prmrogram dalam melakukan berbagai operasi seperti menghitung akar kuadrat dan mengakses database. Pustaka-pustaka yang tersedia antara lain berupa : Standard C++ library Microsoft foundation classes and templates (MFC&T), yang berkaitan dengan pemrograman windows AppWizard Perangkat ini bermanfaat untuk membangkitkan suatu kerangka dasar aplikasi windows yang sangat memudahkan pemrogram untuk membuat aplikasi windows. ClassWizard Perankat ini bermanfaat untuk mengedit kelas-kelas yang dibangkitkan oleh AppWizard.
Memulai Visual C++ Visual C++ merupakan bagian dari perangkat lunak yang dinamakan visual studio. Untuk menjalankannya, lakukan langkah sebagai berikut : 1. Klik tombol start pada windows 2. Pilih program 3. Lalu pilih Microsoft Visual Studio 6.0 dan Microsoft Visual C++ 6.0.
Jendela bagian kiri dinamakan jendela project workspace Jendela bagian kanan dinamakan jendela editor Jendela bawah disebut jendela output Membuat Aplikasi Windows yang pertama Langkah awal untuk membuat sebuah aplikasi adalah membuat proyek. Sebuah proyek berupa sebuah direktori. Visual C++ dengan sendirinya akan menciptakan suatu direktori berdasarkan nama proyek yang ditentukan oleh pemrogram. Di dalam direktori tersebutlah segala hal yang berkaitan dengan proyek disimpan. Direktori yang digunakan sebuah proyek biasa disebut sebagai projek workspace. Untuk membuat aplikasi yang pertama dengan menggunakan IDE 1. Pilih File | New..tampilan kotak dialog seperti berikut :
2. Pilih Win32 Application 3. Ketikkan Pertama pada kotak edit berjudul Project name 4. Klik tombol untuk menentukan direktori yang digunakan untuk meletakkan aplikasi.
7. Pilih tombol radio A Hello World! application dan klik tombol finish.
Sejauh ini, anda dengan sendirinya akan mendapatkan subdirektori bernama Pertama pada direktori D:\Latihan\Pertama. Di dalam subdirektori tersebut terdapat berkas-berkas dengan eksistensi .dsp,.dsw,.ncb,.opt,.cpp,.h,.rc,.ico, dan lain-lain. Berikut ini penjelasan singkat atas masing-masing eksitensi tersebut : Ekstensi .dsp Keterangan Berisi defenisi dasar sebuah proyek, berisi informasi tentang bagaimana aplikasi diciptakan berdasarkan berkas-berkas yang terdapat dalam project workspace Berisi informasi tentang isi proyek Berisi data tentang pengaturan-pengaturan dalam proyek misalnya : menyimpan informasi tentang kemungkinan aplikasi bisa di debug atau tidak Berisi kode sumber c++ Merupakan berkas judul (header file) yang umumnya berisi defenisi kelas atau berisi prototipe fungsi Berisi resource Microsoft windows (ikon, bitmap, dan berbagai kontrol) yang digunakan oleh aplikasi Berkas ikon untuk aplikasi Berkas yang dapat dieksekusi secara langsung (executable)
.dsw .opt
.cpp .h
.rc
.ico .exe
Membentuk berkas yang dapat dieksekusi : Agar aplikasi dapat dijalankan, maka perlu melakukan kompilasi hingga linking. Langkah-langkah sbb : 1. Pilih menu Build 2. Pilih Build Pertama.exe
Jika tidak ada kesalahan, sebagaimana ditunjukkan pada informasi 0 errors (s) pada jendela output, maka visual c++ akan membentuk berkas dengan nama depan sesuai nama proyek dan nama eksistensi berupa .exe. Pada contoh, berkas yang dimaksud adalah Pertama.exe. Berkas ini dapat dipanggil untuk menjalankan aplikasi. Menjalankan Aplikasi Aplikasi yang telah dibuat dapat dijalankan untuk melihat hasilnya. Caranya : 1. Pilih menu Build 2. Pilih Execute Pertama.exe
Menyimpan Proyek 1. Pilih menu File 2. Pilih Save All Menutup Proyek 1. Pilih menu File 2. Pilih Close Workspace Keluar dari Visual C++ 1. Pilih menu File 2. Pilih Exit Membuka Kembali Sebuah Proyek 1. Pilih menu File 2. Pilih Open Workspace.. 3. Pilihlah direktori yang mengandung berkas berekstensi .dsw dan pilihlah berkas bersangkutan. 4. klik tombol Open
Membuat Aplikasi Konsol 1. Jika ada proyek yang sedang terbuka, tutuplah terlebih dahulu 2. Buatlah proyek baru dengan memilih menu File | New 3. Pilihlah Win32 Console Application 4. Aturlah agar Location berisi D:\ Latihan\Kedua 5. Isi pada Project name Selamat 6. Klik tombol OK
8. Klik OK
Menambahkan Kode Sekarang marilah mencoba untuk menambahkan kode agar aplikasi menampilkan tulisan : Saya baru belajar Visual C++ Caranya : 1. Dalam keadaan proyek Selamat masih terbuka, pilihlan menu File|New 2. Pilih C++ Source File 3. Ketikkan Selamat pada kotak edit File Name
4. Klik tombol OK
10
11
7. Untuk menjalankan program tekan Ctrl+F5 atau klik kesalahan maka tampilan sbb :
Penjelasan Kode di atas adalah sbb : Pertama, kode //Selamat.cpp, kode ini dinamakan komentar. Kedua, #include <iostream.h>, merupakan suatu bentuk instruksi yang memerintahkan kompiler untuk menyisipkan berkas lain (contoh ini iostream.h, yang disediakan oleh visual c++) pada saat program dikompilasi. Sebagaimana pada bab 1 telah disinggung, berkas .h dinamakan berkas judul (header file). Berkas ini mengandung berbagai deklarasi, seperti fungsi, variabel, dan lain-lain. Berkas iostream.h perlu disertakan dalam kode mengingat kode tersebut menggunakan cout . Ketiga, main() merupakan fungsi yang menjadi titik awal pengeksekusian program C++. Keempat, cout << Saya baru belajar Visual C++, cout adalah suatu objek yang digunakan untuk menampilkan suatu keluaran ke konsol. Tanda << merupakan sebuah operator yang dinamakan operator penyisipan sehingga menghasilkan tulisan Saya baru belajar Visual C++. Kelima, << endl, digunakan untuk pindah ke baris berikutnya Keenam, <<Semoga sukses!, untuk membuat tulisan Semoga sukses! Ketujuh, << endl; , digunakan untuk pindah ke baris berikutnya. Tiap pernyataan di C++ selalu diakhiri dengan titik koma Kedelapan, return 0; digunakan untuk memberikan nilai balik fungsi main()
12
Bentuk dasar dari program C++, seperti misalnya program penampilan tulisan di atas, ialah sebagai berikut :
Bentuk program di atas adalah bentuk program yang paling sederhana, yaitu terdiri dari satu blok fungsi.
Kata return 0 di atas menunjukkan bahwa fungsi main tidak memiliki nilai balik. Return 0 sama artinya dengan void yang diletakan sebelum kata main( ). Ditulis dengan void main() yaitu suatu fungsi memiliki nilai balik apabila fungsi tersebut memiliki argumen, argumen tersebut
File Header
File header merupakan file dengan ekstensi .h, di dalamnya terdapat beberapa deklarasi, seperti fungsi, variabel, atau konstanta. Apabila deklarasi-deklarasi pada file tersebut diperlukan, maka untuk mengikutsertakan file tersebut pada saat kompilasi program, pada program perlu ditulis : Pemrograman Visual C++ 13
penulisan pertama memiliki arti bahwa pencarian file akan dilakukan pada direktori yang diatur oleh kompiler, sedangkan penulisan kedua akan pertama kali mencari file header pada direktori kerja, jika tidak ditemukan akan mencari di direktori direktori pada variabel lingkungan bernama PATH. Pada contoh program sederhana di atas, file iostream.h perlu diikutsertakan, karena fungsi/pengenal cout (baca : c out) untuk menampilkan pesan ke layar yang terdapat pada tubuh program yang dimiliki oleh file header tersebut
Contoh 2
// my second program in C++ #include <iostream.h> void main () { cout << Hello World! ; cout << Im a C++ program; } Hasilnya : Hello World! Im a C++ program Komentar Komentar adalah bagian dari program yang diabaikan oleh kompiler. Tidak melaksanakan aksi apapun. Mereka berguna untuk memungkinkan para programmer untuk memasukan catatan atau deskripsi tambahan mengenai program tersebut. C++ memiliki dua cara untuk menuliskan komentar : // /* Komentar baris Komentar Blok */
Komentar baris, akan mengabaikan apapun mulai dari tanda (//) sampai akhir dari baris yang sama. Komentar Blok, akan mengabaikan apapun yang berada diantara tanda /* dan */.
14
Kegunaan Mengarahkan data ke standar output (monitor) Membaca data dari standar input (keyboard) Menghapus layar Menampilkan pesan ke layar Menghasilkan bilangan bulat secara acak antara 0 sampai dengan suatu nilai batas
sin( )
log10( )
toupper( ) tolower( )
Mengubah argumen menjadi huruf besar Mengubah argumen menjadi huruf kecil
ctype.h ctype.h
Printf
Pada program Pertama.cpp di atas, terdapat sebaris pernyataan yang berbentuk :
pernyataan tersebut berfungsi untuk menampilkan tulisan Selesai ke layar dengan diikuti bunyi bell. Fungsi printf ( ) merupakan fungsi standar pada bahasa C++. Untuk lebih jelasnya perhatikan contoh program berikut :
15
= %10d\n",a); = %10.2f\n",c);
eksekusinya : = = 3.14 -5
Contoh integer Contoh floating point Bilangan float = 3.14 dan integer = -5
Pada contoh program di atas, tampak bahwa untuk menampilkan bilangan dengan menggunakan fungsi printf terdapat format-format tersendiri untuk tiap bilangan. Tabel spesifikasi format fungsi printf
%d %l %c %s %f %e %u
untuk nilai integer untuk nilai long integer untuk nilai karakter untuk nilai string untuk nilai floating point (pecahan) untuk nilai floating point dengan format eksponensial untuk nilai integer tak bertanda
16
tanda << (dua buah tanda kurang dari) merupakan operator yang disebut sebagai operator penyisipan/peletakan. Operator ini berfungsi mengarahkan operand (data) yang terletak di sebelah kanannya ke obyek yang terletak di sebelah kiri. Pada contoh di atas konstanta string :
diarahkan ke cout, hingga menghasilkan tulisan tersebut ke layar, sedangkan nim setelah operator penyisipan kedua, menunjukkan agar variabel nim dituliskan setelah tulisan NIM anda adalah :. Sedangkan manipulator endl, dimaksudkan untuk menyisipkan karakter newline (membentuk baris baru) Kebalikannya daru fungsi cout, fungsi cin berfungsi memasukkan data dari standar input, sehingga pada contoh program Kedua.cpp di atas, baris :
Menyatakan bahwa angka-angka yang diketikkan pada keyboard akan dibaca sebagai variabel NPM.
Pada contoh program Pertama.cpp dan Kedua.cpp, di atas terdapat karakter yang berbentuk \n dan \a. Karakter-karakter tersebut dikenal sebagai escape sequence characters. Tanda \n
digunakan untuk pindah ke baris baru, sedangkan \a digunakan untuk menimbulkan bunyi bel. Untuk lebih jelasnya perhatikan tabel berikut ini :
17
\ \ \000 \xhh
Menampilkan tanda Menampilkan tanda Menampilkan karakter dengan nilai oktal 000 (3 digit) Menampilkan karakter dengan nilai heksadesimal hh (2 digit)
Pengenal / Identifier
Pada bahasa C++, yang dimaksud dengan pengenal (identifier) adealah nama yang dipakai untuk menyatakan :
variabel konstanta bernama tipe data fungsi label obyek atau hal-hal lain yang perlu dideklarasikan atau didefinisikan oleh program
Berupa satu atau beberapa karakter terdiri dari : huruf, amgka, atau garis bawah ( _ ). Diawali dengan huruf atau garis bawah Tidak boleh mengandung spasi Panjang maksimal 32 karakter signifikan (yang dibedakan) Huruf besar dan huruf kecil dibedakan (case sensitive) Tidak merupakan kata kunci, fungsi atau obyek-obyek lainnya yang telah dipakai oleh kompiler C++.
18
Data1 Data_1 _1
Tipe Data
Tipe data dasar pada C++ meliputi :
Ukuran memori yang diperlukan untuk masing-masing tipe data sangant bergantung pada perangkat keras dari komputer yang digunakan. Karena itu jangkauan bilangan dari masingmasing tipe data juga berlainan.
19
variabel : digunakan dalam program untuk menyimpan suatu nilai, dan nilai yang ada padanya dapat diubah selama eksekusi proram berlangsung.
konstanta : menyatakan nilai yang tetap. Misalnya, 234 adalah sebuah konstanta bilangan bulat
Contoh :
int jumlah; float harga_per_unit, total_harga;
20
Bentuk pernyataan yang digunakan untuk memberikan nilai ke variabel yang telah dideklararikan atau didefinisikan :
Contoh :
int jumlah; jumlah = 10;
dapat ditulis :
int jumlah = 10;
Untuk menuliskan sebuah konstanta bertope char, karakter perlu ditulis di dalam tanda petik tunggal.
Contoh program
21
#include <iostream.h> #include <conio.h> void main( ) { char kar // pendefinisan variabel kar kar = A // penugasan A ke variabel kar clrscr( ); cout << Isi kar = <<kar<<\n; kar = 66; //penugasan nilai ASCII ke kar cout << Isi kar = <<kar<<\n; getch(); }
Contoh program
#include <iostream.h> #include <conio.h> void main( ) { int bil; // pendefinisan variabel bil bil = 32763; // penugasan 32763 ke variabel bil clrscr( ); cout << Isi bil = <<bil<<\n; bil = -66; //penugasan nilai negatif ke kar cout << Isi bil = <<bil<<\n; getch(); }
long jum_penduduk
#include <iostream.h> #include <conio.h> void main( ) { long jum_penduduk; clrscr( ); jum_penduduk=170123456;
22
Konstanta Bernama
Sebagai contoh :
Berbeda dengan variabel, suatu konstanta bernama tidak dapat diubah setelah didefinisikan. Pernyataan PHI = 3.14 tidak diperkenankan.
menjumlahkan dua buah nilai memberikan nilai ke suatu variabel membandingkan kesamaan dua buah nilai
23
Sifat operator
Sifat Unary Binary Ternary Keterangan Operator ini hanya melibatkan sebuah operand Operator ini melibatkan dua buah operand Operator inimelibatkan tiga buah operand -1 1+2 (a > b) ? a : b Contoh
Pengantar Ungkapan
Ungkapan (ekspresi) dalam C++ dapat berupa :
Contoh :
Operand
3 + 2 - 1
Operator
Operator Aritmetika
Operator untuk operasi aritmatika yang tergolong sebagai operator binary dapat dilihat pada tabel berikut :
Operator * Perkalian Keterangan Contoh 2*3
24
/ % + -
Contoh pemakaian operator aritmetika misalnya untuk memperoleh nilai deskriminan dari suatu persamaan kuadrat d = b2 4ac. d= b*b 4 * a * c
Operator penaikan : ++ digunakan untuk menaikkan nilai variabel sebesar satu. Contoh : x = x + 1; bisa ditulis ++x; atau x++
Operator penurunan : -- digunakan untuk menurunkan nilai variabel sebesar satu. Contoh : y = y - 1; bisa ditulis --y; atau y
Operator Relasi
Operator relasi biasa digunakan untuk membandingkan dua buah nilai.
25
Keterangan sama dengan (bukan penugasan) tidak sama dengan lebih dari kurang dari lebih dari atau sama dengan kurang dari atau sama dengan
1 kalau nilai x sama dengan nilai y o kalau nilai x tidak sama dengan nilai y
Operator Logika
Operator logika biasa digunakan untuk menghubungkan dua buah ungkapan kondisi menjadi sebuah ungkapan kondisi :
&& (operator logika dan) || (operator logika atau) ! (operator logika bukan)
Bentuk pertama, hasil ungkapan bernilai benar kalau ungkapan1 dan ungkapan2 bernilai benar. Bentuk kedua, hasil ungkapan berupa benar hanya kalau ungkapan1 dan ungkapan2 bernilai benar.
Operator Kondisi
Operator kondisi biasa dipakai untuk mendapatkan sebuah nilai dari buah kemungkinan, berdasarkan suatu kondisi. Format pemakaiannya :
26
nilai dari ungkapan ungkapan2 kalau ungkapan1 bernilai benar nilai dari ungkapan ungkapan3 kalau ungkapan1 bernilai salah
Contoh :
#include <iostream.h> void main( ) { int bil1,bil2,minim; bil1=53; bil2=6; minim=bil1<bil2?bil1:bil2; cout << "Bilangan terkecil = " <<minim<<'\n'; }
LATIHAN
1. Buat program untuk menghitung keliling segiempat dengan rumus : Keliling = 2*(panjang+lebar)
27
2.
Mintakan inputan dari user untuk panjang dan lebar segiempat kemudian cetak keliling segiempat tersebut. Ketentuan variabel yang digunakan : Variabel untuk nama variabel tipe panjang panjang float lebar lebar float keliling kell float Tampilan di layar yang diinginkan : Panjang segiempat : Lebar segiempat : Keliling segiempat : Buat program untuk menghitung luas dan keliling lingkaran dengan rumus : keliling =PI*2*jari; luas=PI*jari*jari; Tampilan di layar yang diinginkan :
3.
Buat program untuk konversi dari derajad Fahrenheit ke derajat Celcius : Celcius = 5*(Fahrenheit-32)/9 Sebagai input : derajad celcius Sebagai output : derajad fahrenheit Ketentuan variabel yang digunakan : Variabel untuk nama variabel tipe celcius C float fahrenheit F float Tampilan di layar yang diinginkan :
4.
Buat program untuk konversi jam:menit ke menit : Hasil menit = jam*60+menit Sebagai input : jam dan menit Sebagai output : jam, menit, dan hasil menit Ketentuan variabel yang digunakan : Variabel untuk nama variabel tipe Jam jam integer Menit menit integer Hasil menit hasil integer Tampilan di layar yang diinginkan : Inputkan jam : 12 Inputkan menit : 45 12 jam 45 menit = 765 menit
28
Manipulator endl
Digunakan untuk menyisipkan karakter newline, identik dengan \n. Manipulator setw() Bermanfaat untuk mengatur lebar dari suatu tampilan data
#include <iostream.h> #include <conio.h> #include <iomanip.h> void main( ) { int bil1=150, bil2=23,bil3=1401; cout << Bilangan 1 = <<setw(4) << bil1 <<endl; cout << Bilangan 2 = <<setw(4) << bil2 <<endl; cout << Bilangan 3 = <<setw(4) << bil3 <<endl; getch(); } Hasil eksekusi program : Bilangan 1 Bilangan 2 Bilangan 3 = = = 150 23 1401
29
Manipulator setfill() Berguna untuk mengatur karakter yang dipakai memenuhi bagian field yang ditentukan setw(), yang tidak dipakai untuk menampilkan data. Misalnya jika diberikan perintah :
cout << setfill(*); cout << setw(6) << 123 << endl; hasil eksekusi : ***123
maka 123 akan ditampilkan dengan lebar 6 karakter dan didahului oleh tiga karakter *.
Manipulator setiosflags()
Merupakan manipulator yang dapat dipakai untuk mengontrol sejumlah tanda format yang tercantum pada tabel Manipulator
Keterangan menyetel rata kiri terhadap lebar field yang diatur melalui setw() menyetel rata kanan terhadap lebar field yang diatur melalui setw() Memformat keluaran dalam bentuk notasi desimal
#include <iostream.h> #include <conio.h> #include <iomanip.h> void main( ) { cout <<setiosflags(ios::left)<<setw(25)<<N A M A <<setiosflags(ios::right)<<setw(8)<<G A J I<<endl; cout <<setiosflags(ios::left)<<setw(25)<<Amir Hamzah <<setiosflags(ios::right)<<setw(8)<<75000<<endl; <<setiosflags(ios::left)<<setw(25)<<Siti Nurbaya <<setiosflags(ios::right)<<setw(8)<<150000<<endl;
cout
getch(); }
Bila dijalankan, hasilnya :
N A M A
G A J I
75000 150000
Manipulator setprecission()
30
Bentuk : setprecision(n)
Dengan n menyatakan jumlah digit pecahan yang diinginkan.
Sebagai contoh :
Agar jumlah digit pecahan yang ditampilkan sesuai dengan keinginan berapapunnilai yang akan ditampilkan, tanda format setiosflags(ios::fixed) perlu disertakan.
31
V.PERNYATAANDASAR
Tujuan : Mempelajari operasi dan pernyataan-pernyaaan dasar dan mempraktekan dalam penyelesaian suatu masalah.
Pernyataan goto Pernyataan goto adalah pernyataan yang mengarahkan eksekusi ke pernyataan yang berlabel (pernyataan yang diawali oleh suatu nama label dan tanda titik-dua (:)).
Bentuk penulisannya :
Pernyataan if Pernyataan if dapat dipakai untuk mengambil keputusan berdasarkan suatu kondisi. Bentuk pernyataan ini ada dua macam :
Pernyataan if sederhana
Bentuk penulisannya :
if (kondisi) pernyataan;
atau :
if (kondisi) { pernyataan1; pernyataan2; pernyataan_n; }
32
kondisi dipakai untuk menentukan pengambilan keputusan pernyataan dapat berupa sebuah pernyataan ataupun pernyataan majemuk. Bagian ini dijalankan hanya kalau kondisi bernilai benar (tidak sama dengan nol).
pernyataan
Contoh program :
/* Program if_1.cpp */ #include <iostream.h> #include <conio.h> void main( ) { int bil; cout <<Masukan sembarang bilangan bulat : ; cin >> bil; if (bil%2 == 0) cout <<Bilangan tersebut genap<<endl; getch( ); }
Pernyataan if else
Pernyataan if else adalah perluasan dari pernyataan if, perbedaannya terletak pada sejumlah pernyataan yang harus dilakukan apabila syarat tidak terpenuhi. Bentuk penulisannya :
if (kondisi) pernyataan_1; else pernyataan_2;
atau
33
if (kondisi) { pernyataan_1; pernyataan_2; } else pernyataan_3; atau if (kondisi) { pernyataan_1; pernyataan_2; } else { pernyataan_3; pernyataan_4; }
Kondisi
Benar
pernyataan_1
pernyataan_2
/* Program ifelse.cpp */ #include <iostream.h> #include <conio.h> void main( ) { int bil; cout <<Masukan sembarang bilangan bulat : ; cin >> bil; if (bil % 2) { cout <<Bilangan : <<bil<< tidak habis dibagi 2<<endl; cout <<Jadi termasuk bilangan ganjil<<endl; } else { cout <<Bilangan : <<bil<< habis dibagi 2<<endl; cout <<Bilangan tersebut genap<<endl; }
34
getch(); }
Nested if
Untuk masalah-masalah yang memiliki lebih dari dua cabang, nested if merupakan salah satu alternatif yang dapat digunakan. Nested if sebenarnya adalah suatu bentuk struktur if didalam if, if yang kedua ini merupakan bagian dari if else yang pertama. Dibawah ini merupakan gambar diagram alir dari proses nested if.
YA
IF
TIDAK
YA
IF
TIDAK
YA
IF
TIDAK
Bentuk penulisan struktur nested if dibedakan menjadi 2 bentuk, yaitu alternatif dengan sebuah perintah dan alternatif dengan banyak perintah. Bentuk dengan sebuah perintah : if(syarat) if(syarat) . perintah; else . perintah; else if(syarat) . perintah; else . perintah;
35
Bentuk dengan banyak perintah : if(syarat) { . perintah; . perintah; if(syarat) { . perintah; . perintah; } else { . perintah; . perintah; } } else { . perintah; . perintah; if(syarat) { . perintah; . perintah; } else { . perintah; . perintah; } } Berikut ini sebuah contoh penggunaan struktur nested if dalam program. Kasus :
#include <iostream.h> #include <conio.h> void main( ) { double nilai; cout <<Masukan nilai yang didapat : ; cin >> nilai; if (nilai >=80) cout <<Indeks = A<<endl; else if (nilai >=68 && nilai <80) cout <<Indeks = B<<endl; else if (nilai >=56 && nilai <68) cout <<Indeks = C<<endl; else if (nilai >=46 && nilai <56) cout <<Indeks = D<<endl; else cout <<Indeks = E<<endl; }
36
PT Kaya Raya memberikan komisi kepada para karyawannya dengan ketentuan sebagai berikut : a. Bila seorang karyawan dapat menjual barang hingga Rp. 200.000,dia akan mendapat uang jasa sebesar Rp.10.000,- di tambah dengan uang komisi sebesar 10% dari pendapatan yang diperoleh hari itu. b. Bila seorang karyawan dapat menjual barang diatas Rp. 200.000,hingga Rp.500.000,dia akan mendapat uang jasa sebesar Rp.20.000,- di tambah dengan uang komisi sebesar 15% dari pendapatan yang diperoleh hari itu. c. Bila seorang karyawan dapat menjual barang diatas Rp. 500.000,dia akan mendapat uang jasa sebesar Rp.30.000,- di tambah dengan uang komisi sebesar 20% dari pendapatan yang diperoleh hari itu.
#include<iostream.h> #include<iomanip.h> /* Contoh program Menghitung Komisi PT Kaya Raya */ void main() { /* deklarasi variabel dan inisialisasi */ double p_dtan, jasa=0, komisi=0, total; /* input - pendapatan */ cout<<"\n Pendapatan hari ini :"; cin>>p_dtan; //printf ("\n Pendapatan hari ini : "); //scantf ("%f",&p_dtan); /* menentukan uang jasa dan komisi Dengan struktur IF */ if (p_dtan >= 0 && p_dtan <= 200000) { jasa=10000; komisi=0.10*p_dtan; } else { if(p_dtan<=500000) { jasa=20000; komisi=0.15*p_dtan; } else { jasa=30000; komisi=0.2*p_dtan; } } /* menghitung total uang */ total = komisi+jasa; /* cetak komisi, uang jasa, dan Total */ cout<<"\n Uang jasa :"<<setw(10)<<jasa<<endl; cout<<"\n Komisi :"<<setw(10)<<komisi<<endl; cout<<"\n ------------------------------"<<endl; cout<<"\n Total :"<<setw(10)<<total<<endl;
/* alternatif 1 */
/* alternatif 3 */
37
atau
Bagian pernyataan yang mengikuti while akan terus dilaksanakan selama ungkapan pada while bernilai benar (tidak sama dengan nol). Karena ungkapan yang diuji kebenarannya diletakkan sebelum pernyataan, maka ada kemungkinan pernyataan-pernyataannya tidak dieksekusi sama sekali, yaitu kalau kondisi yang pertama kali bernilai salah.
Ungkapan
Salah
Benar
pernyataan
akhir while
Contoh program :
//* ---------------------------------------------------------------*
38
//*
Program while.cpp *
//* * //*
sebanyak 10 kali *
//*
----------------------------------------------------------------
clrscr(); i=0; // mula-mula diisi dengan nol while (i < 10) { cout << C++<<endl; i++; //identik i=i+1, menaikkan pencacah sebesar 1 } getch(); } //* //* ---------------------------------------------------------------Program while2.cpp * //* //* Program menjumlahkan bilangan 1+2+3++n dengan n diinput melalui keyboard * //* ----------------------------------------------------------------* bilangan positif * *
#include <iostream.h> #include <conio.h> void main() { int n, angka , jumlah; clrscr(); cout << Masukkan nilai n : ; cin >> n; angka=1; jumlah=0; while (angka <= n)
39
Pernyataan Do-While Pernyataan do-while juga berguna untuk mengulang proses. Formatnya :
Bagian pernyataan_1 hingga pernyataan_n dijalankan secara berulang sampai ungkapan bernilai salah (sama dengan nol). Pengujian ungkapan dilakukan di belakang (setelah bagian pernyataan).
pernyataan
Ungkapan
Salah
Benar
Akhir do - while
Contoh program :
//* //* ---------------------------------------------------------------Program while_do.cpp * //* * Program pemakaian while untuk menampilkan tulisan C++ *
40
//*
sebanyak 10 kali *
//*
----------------------------------------------------------------
clrscr(); i=0; // mula-mula diisi dengan nol do { cout << C++<<endl; i++; //identik i=i+1, menaikkan pencacah sebesar 1 } while (i < 10) getch(); }
Latihan soal : 1. Buatlah program menggunakan statemen pengulangan whilw atau do while untuk memasukkan sejumlah bilangan sebanyak n buah bilangan dan dihitung bilangan yang genapgenap saja kemudian cari rat-ratanya Misal : Bilangan yang dimasukkan adalah : 5 8 20 23 10 47 2
maka total nilai bilangan yang genap-genap saja adalah : 40 (10 + 2 + 8 + 20)
2 + 8 + 20 = 40
41
Jadi : ungkapan1 merupakan pernyataan inisialisasi sebelum masuk ke while ungkapan2 berlaku sebagai kondisi yang menentukan pengulangan terhadap pernyataan atau tidak ungkapan3 digunakan sebagai pengatur variabel yang digunakan di dalam ungkapan1
#include <iostream.h> #include <conio.h> void main( ) { int i; clrscr( ); for(i=0;i<10;i++) cout << C++<<endl; getch( ); }
42
Kadang-kadang dijumpai adanya pernyataan for yang tidak mengandung bagian ungkapan yang lengkap (satu atau dua atau tiga ungkapan yang berada di dlam () setelah for dalam keadaan kosong.
Sebagai contoh :
for(i=0;i<10;i++) cout << C++;
ungkapan kosong
for Bersarang (Nested for) Pada aplikasi tertentu terkadang digunakan pernyataan for yang juga berada di dalam pernyataan for. Contoh penerapan for bersarang :
//* //* ---------------------------------------------------------------segitiga.cpp * //* * //* ---------------------------------------------------------------* Membentuk segitiga dengan karakter * menggunakan for *
43
#include <iostream.h> #include <conio.h> void main() { int tinggi, baris, kolom; clrscr();
cout << Masukan tinggi segitiga = ; cin >> tinggi; cout <<endl; for (baris=1;baris<=tinggi;baris++) { for (kolom=1;kolom<=baris;kolom++) cout << *; cout <<endl; } getch(); }
Latihan soal : 1. Buatlah program untuk menampilkan hasil bilangan berpangkat an Misal : 23 = 2 x 2 x 2 = 6 2. Buat program untuk menampilkan hasil bilangan faktorial Misal : 0! = 1! 3! 1 = = 1 3X2X1 = 6
3. Buat program untuk menampilkan segitiga dengan karakter * (Misal n = 4) **** *** ** *
Pernyataan break Break digunakan untuk memaksa keluar dari pernyataan-pernyataan yang ada dalam program. Efek dari break pada while ditunjukkan pada contoh berikut :
//* //*
----------------------------------------------------Program_tesbreak.cpp *
//*
44
//*
-----------------------------------------------------
#include <iostream.h> #include <conio.h> void main( ) { int bil=1; clrscr(); while (bil <=10) { if (bil > 5) break; cout << bil <<endl; } getch(); }
Pernyataan continue Kegunaan dari pernyataan continue merupakan kebalikan dari break. Pernyataan continue dipakai untuk mengarahkan eksekusi ke putaran atau iterasi berikutnya pada pengulangan. efek dari perintah ini pada for, while dan do while : pada for ungkapan ketiga pada for akan dijalankan dan kemudian ungkapan kedua diuji lagi. pada while dan do while pengujian terhadap ungkapan pada while dilakukan kembali
45
//*
----------------------------------------------------------------
#include <iostream.h> #include <conio.h> void main( ) { int bil; clrscr(); for (bil=0;bil<10;bil++) { cout << bil << ; continue; cout << Perhatikan apakah saya muncul?<<endl; } getch(); }
Tidak pernah dijalankan sebab continue menyebabkan bil++ diproses dan bil < 10 diuji kembali. Hasilnya 0 1 2 3 4 5 6 7 8 9.
Nilai keluar dapat diisi dengan nilai antara 0 sampai dengan 255.
Contoh program :
//*
----------------------------------------------------------------
46
//*
progexit.cpp *
//* * //*
Y = untuk jawaban ya *
//*
//*
----------------------------------------------------------------
void main( ) { char jawab; clrscr(); cout <<Pilih (Y/T) : (Y=ya, T=tidak); for ( ; ;) { //Baca tombol dan ubah ke huruf kapital jawab=toupper(getch()); if ((jawab==Y) || (jawab ==T)) { cout << jawab <<endl; if (jawab == Y) exit(1); else exit(0); } } getch(); }
47
VII. FUNGSI
Sebuah fungsi berisi sejumlah pernyataan yang dikemas dalam sebuah nama. Nama tersebut selanjutnya dapat dipanggil beberapa kali di beberapa tempat dalam program.
Tujuan pembuatan fungsi : 1. Memudahkan dalam mengembangkan program. Program dibagi-bagi menjadi beberapa modul. 2. Menghemat ukuran program. Manfaat ini terasakan kalau ada beberapa deretan instruksi yang sama digunakan pada beberapa tempat di dalam program
fungsi main
fungsi a()
fungsi b()
fungsi c()
fungsi c1()
fungsi c2()
fungsi c3()
Contoh :
//* //* --------------------------------------------------------fkuadrat.cpp * *
48
//*
//*
---------------------------------------------------------
#include <iostream.h> #include <iomanip.h> #include <conio.h> long kuadrat (long l); //prototipe fungsi void main( ) { clrscr(); for (long bil =200; bil<=1000; bil+=200) cout <<setw(8)<<bil<<setw(8)<<kuadrat(bil)<<endl; } //Definisi fungsi long kuadrat (long l) { return(l*l); }
Pernyataan return di dalam fungsi digunakan untuk memberikan nilai balik fungsi. Pada contoh di atas, fungsi kuadrat() memberikan nilai balik berupa nilai kuadrat dari argumen.
Fungsi Tanpa Nilai Balik (Prosedur) Ada kalanya suatu fungsi tidak memilki nilai balik. Misalnya fungsi yang hanya dimaksudkan untuk menampilkan suatu keterangan saja. Pada fungsi seperti ini, tipe nilai balik fungsi yang diperlukan adalah void.
Contoh :
void tampilkan_judul() { cout <<PT Aria Perkasa Manunggal<<endl; cout <<Jl. Kertadipura Tenggara 27R<<endl; cout <<Kudus<<endl; }
49
hasil=x+y; return hasil; } void kali(int x,int y) { cout<<"Hasil perkalian bilangan "<<x<<" * "<<y<<" = "<<x*y; } void main() { int bil,a,b; clrscr(); cout<<"Masukkan bilangan A : ";cin>>a; cout<<"Masukkan bilangan B : ";cin>>b; cout <<endl; bil=tambah(a,b); cout<<"Hasil penambahan bilangan " <<a<<" + "<<b<<" = "<<bil<<endl; kali(a,b); getch(); }
Lingkup variabel Jenis-jenis variabel berdasarkan kelas penyimpanannya : variabel otomatis variabel eksternal variabel statis
Variabel otomatis adalah variabel yang didefinisikan di dalam suatu fungsi berlaku lokal bagi fungsi. Artinya, variabel tersebut hanya dikenal di dalam fungsi tempat variabel didefinisikan. Sebagai contoh, suatu fungsi didefinisikan sebagai berikut :
//* //*
------------------------------------------------------------varlokal.cpp
50
{ int x=22; double y=2.22 clrscr(); cout << Pada main() : x = << x << y = << y << endl; alpha(); cout << Pada main() : x = << x << y = << y << endl; } //Definisi fungsi void alpha() { int x = 20; double y = 3.14; cout << Pada alpha() : x = << x << y = << y << endl; }
program di atas dijalankan, maka hasilnya : main() : x = 22 y = 2.22 alpha() : x = 20 y = 3.14 main() : x = 22 y = 2.22
Variabel Eksternal (Global) Variabel eksternal adalah variabel yang didefinisikan di luar fungsi manapun sehingga variabel tersebut di kenal di semua fungsi.
Contoh :
//* //* ------------------------------------------------------------global.cpp * //* * //* ------------------------------------------------------------* Contoh untuk memperlihatkan variabel global *
#include <iostream.h> #include <conio.h> int oblada = 550; void tambah(); void main() { clrscr(); //variabel eksternal (global) //prototipe fungsi
51
cout << oblada << endl; tambah(); cout << oblada << endl; tambah(); cout << oblada << endl; } //Definisi fungsi void tambah() { oblada++; }
551
sekalipun di dalam fungsi main() dan tambah () tidak ada pendefinisian variabel oblada, ternyata variabel ini dikenal di dalam kedua fungsi tersebut.
nilai dari variabel oblada dapat diubah dari dalam fungsi tambah()
variabel tetap hanya dapat diakses pada fungsi yang mendefinisikannya. variabel tidak hilang saat eksekusi fungsi berakhir. Nilainya akan tetap dipertahankan, sehingga akan dikenali pada pemanggilan fungsi untuk tahap berikutnya.
Inisialisasi oleh pemrograman akan dilakukan sekali saja selama program dijalankan.
Rekursif
Fungsi rekursif yaitu suatu fungsi dapat memanggil fungsi yang merupakan dirinya sendiri.
Penerapan rekursif diantaranya untuk menghitung : Xn dengan n berupa bilangan bulat positif :
Jika n = 1
//* //*
selain itu
------------------------------------------------------------pangkat.cpp
52
//* * //*
------------------------------------------------------------*
#include <iostream.h> #include <conio.h> long int pangkat (int x, int n); void main() { int x,y; clrscr(); cout << Program Menghitung x ^ y << endl; cout << Masukan nilai x : ; cin >> x; cout << Masukan nilai y : ; cin >> y; cout << x << ^ << y << = << pangkat (x,y) <<endl; getch(); } long int pangkat (int x, int n) { if (n==1) return(x); else return(x*pangkat(x,n-1)); }
Latihan soal : 1. Buat program perkalian matriks dengan jumlah kolom dan baris diinput melalui keyboard dengan menggunakan fungsi. 2. Buat program untuk menentukan bilangan faktorial dengan menggunakan fungsi dan rekursif.
53
VIII. ARRAY
Array adalah kumpulan data bertipe sama yang menggunakan nama sama. Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan subscript. Sebuah subscript berupa bilangan di dalam kurung siku. Melalui subscript inilah masing-masing elemen array dapat diakses.
//Membaca data dari keyboard & meletakkan ke array cout <<Masukan 5 buah data suhu<<endl; for (int i=0;i<5;i++) cout <<i+1<< : ; cin >>suhu; //Menampilkan isi array ke layar cout << Data suhu yang anda masukkan : <<endl; for (i=0;i<5;i++) cout <<suhu[i]<<endl; getch();
54
Mendefinisikan array
Nama array
float suhu[5];
55
Elemen-elemen array
2 array suhu
4
subscript/index array
nama_array[subscript]
suhu[i] menyatakan elemen suhu dengan subscript sama dengan i cin >> suhu[i]; membaca data dari keyboard dan meletakkan ke elemen nomor i pada array suhu cout << suhu[i]; menampilkan elemen bernomor i pada array suhu
int jum_hari(12) = {
atau
int jum_hari[]=
31,28,31,30,31,30,31,31,30,31,30,31};
56
Latihan : Buat program untuk memasukkan 5 buah data suhu dan sekaligus menghitung suhu rata-ratanya.
int matrik_a[3][4];
1. matriks_a[1][2]=5; merupakan instruksi untuk memberikan nilai 5 ke baris 1 kolom 2 (baris dan kolom dimulai dari nol). 2. cout << matriks_a[1][2]; merupakan perintah untuk menampilkan elemen matriks dengan subscript pertama (baris) berupa 1 dan subscripst kedua (kolom) bernilai 2.
Contoh program :
//* //* ----------------------------------------------------array2.cpp * //* * Contoh program array dimensi 2 *
57
//*
-----------------------------------------------------
#include <iostream.h> #include <conio.h> void main( ) { //Pendefinisian array berdimensi dua & pemberian nilai awal int matriks_A[2][3]; int i,j; clrscr(); //Memasukan data ke array cout <<Masukan data matriks :; for (i=0;i<2;i++) { for (j=0;j<3;j++) { cout <<matrik_A[<<i+1][<<j+1] : ; cin >>matriks_A[i][j]; } } cout <<endl; //Menampilkan data array cout <<matrik_A : <<endl; for (i=0;i<3;i++) { for (j=0;j<4;j++) cout <<matriks_A[i][j]<< ; cout <<endl; } getch(); }
Array berdimensi tiga Bentuk umum pendefinisian array berdimensi tiga : nama_array[subscript_1, subscript_2, subscript_3]
58
} };
Tugas : 1. Buatlah program pertambahan dan perkalian dengan banyaknya baris dan kolom diinput melalui keyboard. 2. Buatlah program untuk mencari bilangan maksimum dan minimum yang ada pada array. 3. Buatlah program untuk mencari suatu data pada array. 4. Buat program untuk menentukan matriks transpose dari suatu matrik
Matriks
59