BAB 1- PENDAHULUAN Algoritma Algoritma adalah langkah – langkah logis tertentu untuk menyelesaikan suatu masalah. Guna algoritma adalah untuk membantu seseorang dalam menyelesaikan suatu masalah berdasarkan pada pola pikirnya masing-masing. •
Ciri – ciri algoritma: 1. Ada Ada inp input ut.. 2. Ada Ada pros proses es.. 3. Ada Ada outp output ut.. 4. Memiliki Memiliki instruk instruksi si instruksi instruksi yang jelas jelas dan tidak tidak ambigu. ambigu. 5. Harus mempunyai stopping role. role .
•
Sifat algoritma : 1. Tidak menggunak menggunakan an simbol simbol atau sintaks sintaks dari dari suatu bahasa bahasa pemrograman. 2. Tidak tergan tergantung tung pada pada suatu bahasa bahasa pemrog pemrograman raman.. 3. Notasi-notas Notasi-notasinya inya dapat dapat digunakan digunakan untuk seluruh seluruh bahasa bahasa manapun. manapun.
•
Algoritma dapat digunakan untuk merepresentasikan suatu urutan kejadian secara logis dan dapat diterapkan di semua s emua kejadian sehari-hari. Contoh kasus dalam kehidupan sehari-hari: o Algoritma memasak mie instan. Rebus air hingga mendidih. Masukkan mie instan ke dalam air mendidih tersebut. Tunggu beberapa hingga mie terlihat matang. Jika mie sudah dirasa matang, angkat dan tiriskan. Campurkan bumbu-bumbu, dan aduk hingga rata. o Algoritma registrasi semester baru di UKDW. Menyerahkan KTM ke operator. Menunggu untuk dipanggil operator. Jika sudah dipanggil, lakukan konfirmasi keberadaan. Jika konfirmasi sudah dilakukan, Login dengan NIM dan password. Pilih mata kuliah. Jika sudah selesai, bisa cetak invoice. o Algoritma menghitung luas persegi panjang. Masukkan panjang Masukkan lebar Nilai luas adalah panjang * lebar Tampilkan luas
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 1
o Algoritma menghitung sisi miring segitiga siku - siku. Masukkan nilai sisi a Masukkan nilai sisi b Hitung nilai c2=a2+b2 Hitung nilai c Tampilkan nilai c Jadi algoritma adalah jembatan untuk mempermudah pemahaman alur kerja suatu proses.
Pseudo-code •
•
•
•
•
Pseudo-code adalah kode atau tanda yang menyerupai ( pseudo) pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan. Pseudo-code berisikan langkah-langkah untuk menyelesaikan suatu permasalahan [hampir sama dengan algoritma], hanya saja bentuknya sedikit berbeda dari algoritma. Pseudo-code menggunakan bahasa yang hampir menyerupai bahasa pemrograman. Selain itu biasanya pseudo-code biasanya pseudo-code menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma. Beda antara algoritma dan pseudo-code dan pseudo-code Contoh algoritma mencari luas persegi panjang : Algoritma Pseudo-code Masukkan panjang Masukkan lebar Nilai luas adalah panjang x lebar Tampilkan luas
Input panjang Input lebar Luas <-panjang x lebar Print luas
Contoh lain: Page 3 Algoritma
•
Pseudo-code
Jik Jika a suda sudah h sele selesa sai, i, ceta cetak k invo invoic ice e
IF KO KOND NDIS ISI_ I_SE SELE LESA SAII = “DON “DONE” E” THEN THEN PRINT INVOICE
Nilai A dibagi dengan 2 Jika nilai A lebih besar dari 2 maka nilai A dikalikan 3 Dari dua bilangan A dan B, cari bilangan yang terbesar Masukkan semua mata kuliah yang ingin diambil pada semester ini
A A/2 IF A > 2 THEN A ←
←
Ax3
IF A > B THEN PRINT A ELSE PRINT B DARI MATKUL = 0 SAMPAI MATKUL <= MATKUL_DIINGINKAN, MASUKAN DATA MATKUL
Sebenarnya tidak ada aturan mengikat tentang penulisan algoritma dan pseudo-code dan pseudo-code,, karena guna kedua hal ini adalah untuk
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 2
o Algoritma menghitung sisi miring segitiga siku - siku. Masukkan nilai sisi a Masukkan nilai sisi b Hitung nilai c2=a2+b2 Hitung nilai c Tampilkan nilai c Jadi algoritma adalah jembatan untuk mempermudah pemahaman alur kerja suatu proses.
Pseudo-code •
•
•
•
•
Pseudo-code adalah kode atau tanda yang menyerupai ( pseudo) pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh seseorang untuk menuliskan algoritma dari suatu permasalahan. Pseudo-code berisikan langkah-langkah untuk menyelesaikan suatu permasalahan [hampir sama dengan algoritma], hanya saja bentuknya sedikit berbeda dari algoritma. Pseudo-code menggunakan bahasa yang hampir menyerupai bahasa pemrograman. Selain itu biasanya pseudo-code biasanya pseudo-code menggunakan bahasa yang mudah dipahami secara universal dan juga lebih ringkas dari pada algoritma. Beda antara algoritma dan pseudo-code dan pseudo-code Contoh algoritma mencari luas persegi panjang : Algoritma Pseudo-code Masukkan panjang Masukkan lebar Nilai luas adalah panjang x lebar Tampilkan luas
Input panjang Input lebar Luas <-panjang x lebar Print luas
Contoh lain: Page 3 Algoritma
•
Pseudo-code
Jik Jika a suda sudah h sele selesa sai, i, ceta cetak k invo invoic ice e
IF KO KOND NDIS ISI_ I_SE SELE LESA SAII = “DON “DONE” E” THEN THEN PRINT INVOICE
Nilai A dibagi dengan 2 Jika nilai A lebih besar dari 2 maka nilai A dikalikan 3 Dari dua bilangan A dan B, cari bilangan yang terbesar Masukkan semua mata kuliah yang ingin diambil pada semester ini
A A/2 IF A > 2 THEN A ←
←
Ax3
IF A > B THEN PRINT A ELSE PRINT B DARI MATKUL = 0 SAMPAI MATKUL <= MATKUL_DIINGINKAN, MASUKAN DATA MATKUL
Sebenarnya tidak ada aturan mengikat tentang penulisan algoritma dan pseudo-code dan pseudo-code,, karena guna kedua hal ini adalah untuk
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 2
memudahkan seseorang untuk menggambarkan urutan suatu kejadian. Biasanya untuk para programmer, guna kedua hal ini adalah sebagai dasar alur pembuatan program. Di mana dapat merepresentasikan alur cerita dari client tentang client tentang kebutuhan dasar dari sebuah program, sehingga lebih mudah untuk dipahami. Jadi pseudo-code Jadi pseudo-code bisa dikatakan juga sebagai algortima yang sudah sedikit digabungkan dengan bahasa pemrograman yang akan digunakan.
•
Flowchart
•
Definisi: Bentuk gambar/diagram yang mempunyai aliran satu atau dua arah secara sekuensial Kegunaan: o Untuk mendesain program o Untuk merepresentasikan program Secara garis besar, unsur-unsur pemrograman adalah Input -> Proses -> Output. Semua bahasa pemrograman, pasti mempunyai komponen-komponen sebagai berikut : o Input (scanf) o Percabangan (if, switch) o Perulangan (while, for, for each, loop) o Output (printf)
•
Lambang-lambang flowchart : flowchart :
•
•
KETERANGAN
LAMBANG
Mulai / Selesai (Terminator)
Aliran Data Input / Output
Proses
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 3
Percabangan (Decision)
Pemberian nilai awal suatu variabel (Preparation)
Memangggil prosedur / fungsi (Call) Connector (di halaman yang sama)
Connector (di halaman lain)
Sequence process
Perulangan syara t Bagian yang diulang Pencaca h
Page 5 AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 4
Contoh flowchart : flowchart : • Problem menghitung luas segitiga • Algoritma : Masukkan alas (a) Masukkan tinggi (t) Hitung luas (L), yaitu hasil 0.5 * alas * tinggi Cetak luas (L)
Mulai
Masukkan alas (a)
Masukan tinggi(t)
L=(a x t)/2 Cetak Luas (L)
Selesai
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 5
Variabel dan Konstanta Merupakan pernyataan yang perlu dideklarasikan. Konstanta • Nilai tetap, jika suatu nama digunakan sebagai konstanta maka tidak dapat digunakan untuk nilai yang lain. Variabel • Merupakan suatu peubah yang memiliki nilai yang bisa diubah-ubah. A. Mendeklarasikan Konstanta Untuk mendeklarasikan konstanta digunakan perintah CONST • Format: • CONST C ← N; Keterangan: C = Nama Konstanta N = Nilai Contoh: Untuk mendeklarasikan pi menjadi 3.14 sehingga kita tidak • perlu memanggil 3.14 berulang-ulang cukup memanggil pi saja Contoh • o CONST PHI← 3.14; B. Mendeklarasikan Variabel
Untuk mendeklaraskan variabel digunakan kata VAR Format • VAR V:TIPEDATA; Keterangan: V=nama variabel TIPEDATA=Tipe data C. Tipe Data Numerik • o Byte (0-255) o Integer (-35000 s.d 35000) o Longint (-128000 s.d 128000) o Real (pecahan) Karakter • o Char (1 huruf) o String (lebih dari 1 huruf) Boolean (Ya / Tidak, True/False) • D. Memberikan Nilai Kepada Variabel • Dilakukan pada saat program sedang berjalan (bagian pernyataan) • Format o untuk variabel V dengan nilai N o V← N; Misalkan memberikan nilai 5 ke variabel A • A← 5; • •
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 6
Di bawah ini langkah-langkah sistematis dalam pembuatan suatu program, sebagai berikut: 1. Mendefinisikan permasalahan 2. Membuat rumusan untuk pemecahan masalah 3. Implementasi 4. Menguji coba dan membuat dokumentasi 1. Mendefinisikan Permasalahan Yang dimaksud mendefinisikan permasalahan yaitu kita harus mengerti dengan baik mengenai permasalahan apa yang ingin diselesaikan. Contoh:
a. Permasalahan menghitung luas lingkaran, dengan data yang diketahui adalah diameter lingkaran. b. Permasalahan menampilkan bilangan dengan kelipatan tertentu dari 0 hingga range tertentu. Membuat Rumusan untuk Pemecahan Masalah Setelah kita mengetahui dengan baik mengenai permasalahan yang ingin diselesaikan, langkah selanjutnya yaitu membuat rumusan algoritma untuk memecahkan masalah. Rumusan tersebut dapat disusun dalam bentuk pseudocode ataupun flowchart. Contoh: a. Untuk contoh menghitung luas lingkaran
3. Implementasi
Apabila langkah 1 dan 2 belum melibatkan bahasa pemrograman, maka langkah ketiga ini telah mulai melibatkan bahasa pemrograman yang ingin digunakan. Di dalam mengimplementasi algoritma kita akan menentukan bahasa pemrograman apa yang cocok atau ingin kita gunakan. Misalnya Pascal atau Delphi, Basic, dan sebagainya. Implementasi tersebut tentunya mengacu pada algoritma yang telah disusun pada langkah AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 7
sebelumnya, baik itu variable-variable yang digunakan maupun alur program. Jika program diimplementasikan dengan bahasa pemrograman yang bersifat visual dan event driven (melibatkan desain form dan event-event) seperti Visual Basic atau Delphi, maka perlu pula diperhatikan langkah-langkah berikut: 1. Menambahkan obyek-obyek control pada Form seperti EditBox, ComboBox, Button, dll 2. Mengatur posisi control, properties kontrol (seperti caption, warna, jenis tulisan, dan 3. sebagainya), serta urutan fokus obyek-obyek yang ada pada form. 4. Pemberian nama obyek kontrol yang sesuai. Misalnya untuk input diameter diberi nama txtDiameter. 5. Menentukan event-event kontrol yang berpengaruh pada fungsionalitas program 6. Mulai koding 4. Menguji Coba dan Membuat Dokumentasi Setelah selesai implementasi, langkah selanjutnya yaitu menguji program tersebut apakah telah berjalan sesuai dengan tujuannya untuk memberi solusi dari suatu permasalahan. Apabila program belum berjalan dengan baik, maka kita perlu mengkaji kembali rumusan/algoritma yang telah dibuat pada langkah kedua, serta memperbaiki implementasi program yang mungkin keliru. Untuk memudahkan dalam memeriksa kesalahan suatu program ataupun memahami jalannya program, kita juga perlu membuat dokumentasi dari program yang dibuat. Dokumentasi tersebut berisi informasi mulai dari tujuan/fungsi program, algoritma program, hingga cara menggunakannya
Operator
Operator relasional melambangkan hubungan antara dua entitas Entitas tersebut bisa berupa variabel, konstanta maupun fungsi Nilai dari hubungan tersebut adalah TRUE atau FALSE Ada beberapa operator relasional : > : lebih besar : lebih besar atau sama dengan >= : lebih kecil < : lebih kecil atau sama dengan <= : sama dengan == : tidak sama denga !=
Tugas Teori Algoritma SOAL : AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 8
•
Kasus (buatlah algoritma dan atau pseudo-code) : a. Kejadian membayar uang SKS di bank BNI Duta Wacana. b. Kejadian berbelanja makanan di Carrefour c. Kejadian memesan makanan d. Kejadian setelah bangun tidur hingga sampai kampus e. Kejadian setor uang di bank f. Kejadian memesan tiket di 21 hingga selesai nonton filmnya. g. Kejadian log-in ke Facebook.com h. Kejadian menambah teman di Yahoo Messenger i. Kejadian menginstall Windows (PR) j. Seorang bapak ingin anaknya agar membelikan dia sebuah cerutu. Sesampainya di 7 eleven, sang anak bertanya kepada penjaga kios. “hei Brother… dimana saya bisa menemukan cerutu ?” Penjaga kios menjawab, “ Di Pojok Boz..” Lalu sang anak pergi ke pojok toko tersebut dan mencari letak cerutu. Setelah memilih sebuah cerutu sang anak pergi ke kasir dan mengeluarkan uang pecahan 50 ribuan. Sang penjaga kios memberi kembalian berupa uang 10ribuan 1 lembar dan uang seribuan 3 lembar. Belum beranjak 15 meter dari pintu toko, sang kasir memanggil si anak dan mengatakan bahwa uang 50 ribuannya uang palsu. Sang anak kemudian mengeluarkan uang cadangan dari sakunya dan menukar uang 50 ribuan tersebut. Setelah urusan beres, ia pun kembali ke rumah. Buatlah Pseudo-code dan Flowchart berdasarkan cerita tersebut jika Anda mengalami hal yang serupa dengan sang Anak. (Jawaban akan berbeda masing – masing siswa). k. 11. Bu Guru menyuruh murid – muridnya untuk belajar pelajaran Sejarah untuk ulangan harian minggu depan, materi ulangan adalah sebagai berikut : 1. Bab 1: Kerajaan Hindu Budha di Indonesia 2. Bab 2 :Masuknya Islam di Indonesia 3. Bab 3 :Munculnya kerjaan Islam di Indonesia 4. Bab 4: Berdirinya badan badan Nasionalis Negara. Bu Guru menyarankan untuk mempelajari lebih fokus tentang Bab 2 dan Bab 3. Anda juga disarankan untuk membuat catatan ringkas tentang bab 1 dan 4 untuk menambah nilai ulangan mereka. Berikan pseudo-code seorang murid yang mematuhi saran dari gurunya tersebut. Gambarkan pula flowchart beserta segala kemungkinan yang ada. Ingat, Anda mempunyai tujuh hari untuk mempersiapkan ulangan tersebut.
•
Soal teknis (buatlah pseudo-code dan flowchart ) : 1. Menghitung konversi suhu.dari Celcius menjadi Reamur dan Farenheit. [clue : R = 4/5 * C dan F = 9/5 * C + 32] 2. Menghitung sisi miring dari suatu segitiga siku-siku, jika diketahui panjang sisi yang membentuk sudut siku-siku. [clue : ]
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 9
3. Menentukan suatu bilangan genap atau ganjil 4. Menghitung akar-akar persamaan kuadrat dengan rumus: D = b2 – 4ac a. Jika D < 0 maka didapat akar imajiner b. Jika D = 0 maka X1 = X2 yang didapat dari b / 2a c. Jika D > 0 maka ada dua akar : 5. Menghitung usia berdasarkan tahun lahir (tl) dan tahun sekarang (ts) 6. Menghitung rata-rata 5 bilangan 7. Mengkonversi nilai angka ke huruf Nilai angka 80.0 65.0 55.0 45.0 0 -
Nilai huruf 100 A 79.9 B 64.9 C 54.9 D 44.9 E
8. Menentukan bilangan prima
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 10
Sesi 1 - 2 • • • •
Materi Praktikum :
Algoritma dan Blok Program melalui pendekatan bahasa Variabel dan konstanta. Prepocessor directive, comments, cout dan cin. Hierarchical Input Process Output.
C++.
Untuk membuat suatu program ada baiknya kita mengenal terlebih dahulu apa yang disebut dengan prepocessor directive. Propocessor ditandai dengan adanya awalan # . Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Setiap program C++ mempunyai bentuk seperti di bawah , yaitu: #prepocessor directive main() { // Batang Tubuh Program Utama }
Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama berada didalam fungsi main(). Berarti dalam setiap pembuatan program utama, maka dapat dipastikan seorang pemrogram menggunakan minimal sebuah fungsi. Pembahasan lebih lanjut mengenai fungsi akan diterangkan kemudian. Yang sekarang coba ditekankan adalah kita menuliskan program utama kita didalam sebuah fungsi main(). Jangan lupa bahwa C++ bersifat case sensitive, sehingga, nama hallo dan Hallo berbeda artinya.
CARA PENULISAN •
Komentar Komentar tidak pernah dicompile oleh compiler. Dalam C++ terdapat 2 jenis komentar, yaitu: Jenis 1 : /* Komentar anda diletakkan di dalam ini Bisa mengapit lebih dari satu baris */ Jenis 2 : // Komentar anda diletakkan disini ( hanya bisa perbaris )
•
Semicolon Tanda semicolon “;” digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon. Baris yang diawali dengan tanda #, seperti #include
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 11
tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directive MASUKAN DAN KELUARAN DASAR Pada C++ terdapat 2 jenis I/O dasar, yaitu: 1. cout (character out), standard keluaran 2. cin (character in), standard masukan Untuk dapat menggunakan keyword diatas, maka harus ditambahkan #include pada prapocessor directive. Contoh : #include main() { char nama[100]; // Dekalarasi variable nama cout<<”Masukkan nama Anda : “; cin>>nama; // Meminta user untuk menginisialisasi variable nama cout<<”Nama anda adalah “<
KARAKTER & STRING LITERAL String adalah gabungan dari karakter Contoh : “ Belajar “ Literal String “B“ Karakter
Panjang String strlen() nama fungsi untuk menghitung panjang string Fungsi strlen() dideklarasikan dalam file string.h Jadi bila anda ingin menggunakan fungsi strlen(), maka prepocessor directive #include harus dimasukkan dalam program diatas main(). Contoh : #include #include main() { cout<
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 12
Keluarannya: 14 13 7 1 0 Perhatikan, bahwa disetiap akhir baris pernyataan diakhiri dengan tanda titik – koma (semicolon) “ ; “. Perhatikan, bahwa ‘ \n ‘ dihitung satu karakter. \n disebut newline karakter Endl juga merupakan newline karakter ( sama kegunaannya seperti \n ). Dalam C++, selain \n terdapat juga beberapa karakter khusus yang biasa dsebut escape sequence characters, yaitu Karakter \0 \a \b \f \n \r \t \v \\ \’ \” \? \ooo \xhh
Keterangan Karakteeer ber-ASCII nol ( karakter null ) Karakter bell Karakter backspace Karakter ganti halaman ( formfeed ) Karakter baris baru ( newline ) Karakter carriage return ( ke awal baris ) Karakter tab horizontal Karakter tab vertika Karakter \ Karakter ‘ Karakter “ Karakter ? Karakter yang nilai oktalnya adalah ooo ( 3 digit octal ) Karakter yang nilai heksadesimalnya adalah hh (2 digit heksadesimal )
KEYWORDS dan IDENTIFIER Dalam bahasa pemrograman, suatu program dibuat dari elemen-elemen sintaks individual yang disebut token, yang memuat nama variable, konstanta, keyword, operator dan tanda baca. Contoh : #include main() { int n=66; cout<
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 13
Keluarannya: 66 Program diatas memperlihatkan 15 token, yaitu main, (, ), {, int, n, =, 66, ;, cout, <<, endl, return, 0 dan } Token n adalah suatu variable Token 66,0 adalah suatu konstanta Token int, return dan endl adalah suatu keyword Token = dan << adalah operator Token(, ), {, ;, dan } adalah tanda baca Baris pertama berisi suatu prepocessor directive yang bukan bagian sebenarnya dari program
VARIABEL, DEKLARASI dan INISIALISASI Variabel adalah symbol dari suatu besaran yang merepresentasikan suatu lokasi di dalam memori komputer . Informasi yang tersimpan di dalam lokasi tersebut disebut nilai variable . Untuk memperoleh nilai dari suatu variable digunakan pernyataan penugasan ( assignment statement ), yang mempunyai sintaks sebagai berikut : variable = ekspresi ; Yang akan diolah terlebih dahulu adalah ekspresi, baru hasilnya dimasukkan kedalam variable Tanda “=” adalah operator penugasan. Contoh : #include main() { int n; n=66; // sama juga jika ditulis int n=66; cout<
Keluarannya : 66 n Deklarasi dari suatu variable adalah sebuah pernyataan yang memberikan informasi tentang variable kepada compiler C++. Sintaksnya adalah type variable ; dengan type adalah tipe data yang didukung oleh C++, beberapa contohnya yaitu: Tipe Data
Ukuran Memori (byte)
char Int
1 2
Jangkauan Nilai
-128 hingga +127 -32768 hingga +32767
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Jumlah Digit Presisi
Halaman: 14
Long 4 -2.147.438.648 hingga 2.147.438.647 float 4 3,4E-38 hingga 3,4E38 6-7 double 8 1.7E-308 hingga 1.7E308 15-16 Long 10 3.4E-4932 hingga 1.1E4932 19 double NB : Untuk mengetahui ukuran memori dari suatu tipe digunakan fungsi sizeof(tipe) Tipe data dapat diubah ( type cast ), misalkan: float x = 3.345; int p = int(x); maka nilai p adalah 3 ( terjadi truncating ). Contoh Deklarasi dan Inisialisasi int a,b,c; int p = 55; Dalam contoh, kita mendeklarasikan tiga variable yaitu variable a,b dan c namun belum kita inisialisasi. Sedangkan variable p kita inisialisasi ( diberikan nilai ). Dalam C++, untuk dapat menggunakan suatu variable, variable tersebut minimal kita deklarasikan terlebih dahulu. Apa yang terjadi, jika suatu variable telah dideklarasikan namun belum kita inisialisasi lalu kita mencetak nilai variable tersebut ? Contoh : #include main() { int n; cout<
Keluarannya: 18125 Darimana angka 18125 diperoleh ? >> Jika variable tidak diinisialisai, namun nilai keluarannya diminta, maka compiler dengan bijak akan menampilkan nilai acak yang nilainya tergantung dari jenis compilernya. KONSTANTA 1. Konstanta Oktal, digit yang digunakan 0-7 2. Konstanta Heksadesimal, digit yang digunakan 0-9, A-F 3. Konstanta Bernama a. Menggunakan keyword const AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 15
Contoh : const float PI = 3.14152965; Berbeda dengan variable, konstanta bernama tidak dapat diubah jika telah diinisialisasi. b. Menggunakan #define Contoh : #define PI 3.14152965 Keuntungan menggunakan #define apabila dibandingkan dengan Const adalah kecepatan kompilasi, karena sebelum kompilasi dilaksanakan, kompiler pertama kali mencari symbol #define ( oleh sebab itu mengapa # dikatakan prepocessor directive ) dan mengganti semua PI dengan nilai 3.14152965.
Contoh 1:
Anda seorang programmer ditugaskan untuk menghitung arus listrik yang mengalir pada tegangan 220 volt dengan daya listrik bervariasi 450 watt, 900 watt dan 1300 watt. Algoritma : Menghitung arus Listrik Kamus : voltase,watt, ampere : integer voltase ← 220 Input(watt) ampere ← watt/voltase Output(ampere)
Buatlah Program menggunakan C++ dari Algoritma diatas #Include Main() { //Deklarasi Konstanta int voltase = 220; Int watt, ampere; cout << “Masukkan Daya listrik:”; cin >> watt; ampere=watt/voltase; cout << ampere; }
Hasilnya: Jika daya 900 watt Maka 900 dibagi 220 sama dengan 4.090 A.
Studi Kasus Latihan 1:
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 16
Diketahui Y=9, G=7 dan V sama dengan Y dikalikan 1 dan ditambahkan G berapakah V? Latihan 2:
Diketahui : Namaku romeo, pacarku juliet, gajiku = 500000, gaji pacarku = 400000 Ditanyakan : gajiku dan gaji pacarku adalah? Buatlah Program menggunakan C++ dari soal latihan 2 (gunakan #define untuk mendefiniskan konstanta).
Latihan 3 :
Seorang anak SD hendak menghitung luas segiempat. Buatlah program menggunakan C++ untuk membantu anak tersebut, dengan ketentuan: Input : panjang dan lebar Proses : Luas=Panjang x lebar Output : Luas
Latihan 4 :
Seorang Ibu hendak menghitung jumlah uang belanja yang dihabiskan pada hari tu. Daftar belanjanya adalah: Beras 5 kg @ 1 kg = Rp. 7000 Daging ¼ kg @ 1 kg = Rp. 12000 Sayuran seharga Rp. 5000 Kentang ½ kg @ 1 kg = Rp. 4500 Buatlah program menggunakan C++ untuk membantu anak tersebut, dengan ketentuan: Input : Beras, sayuran, daging dan kentang. Proses : …. Output : Total Belanja
Latihan 5 :
Seorang anak SMP hendak menghitung luas segiempat dan keliling segiempat. Buatlah program menggunakan C++ untuk membantu anak tersebut, dengan ketentuan: Input : Luas = …. Proses : Keliling = …. Output : Luas dan Keliling? AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 17
Latihan 6 :
Seorang guru SMU hendak menghitung total nilai NEM dan rata-ratanya. Jumlah mata pelajaran = 6 terdiri dari; Bahasa Indonesia, Bahasa Inggris, Matematika, Kimia, Fisika dan Biologi. Buatlah program menggunakan C++ untuk membantu anak tersebut, dengan ketentuan: Input : Total NEM = …. Proses : Rata-rata NEM = …. Output : Total NEM dan rata-rata NEM? Latihan 7 :
Seorang murid sedang belajar matematika, menghitung koordinat titik. Diketahui koordinat titik A(5,6), koordinat titik B(7,9). Ditanyakan koordinat titik tengah dari titik A dan titik B. Buatlah program menggunakan C++ untuk membantu murid tersebut, dengan ketentuan: Input : …. Proses : …. Output : koordinat Titik tengah A dan B?
Sesi 3-4 Landasan Teori melalui pendekatan bahasa
C++:
Operator Aritmatika
Operator Increment dan Decrement Operator Bitwise Operator Relasi Operator Logika Operator Kondisi
Operator adalah symbol yang biasa dilibatkan dalam program untuk sesuatu operasi atau manipulasi. Contoh :
melakukan
a=b+c*d/4 a, b, c, d disebut operand =, +, *, / disebut operator
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 18
OPERATOR ARITMATIKA
Operator Deskripsi Contoh + Penjumlahan ( Add ) m+n Pengurangan ( Substract ) m–n * Perkalian ( Multiply ) m*n / Pembagian ( Divide ) m/n % Sisa Pembagian Integer ( Modulus ) m%n Negasi ( Negate ) -m NB : Operator seperti operator negasi (-) disebut unary operator, karena membutuhkan hanya satu buah operand Contoh : #include void main() { int m = 82, n = 26; cout<
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 19
OPERATOR NAIK DAN TURUN ( INCREMENT DAN DECREMENT )
Operator increment ++ Operator decrement -Contoh : #include main() { int m = 44, n = 66; cout<<”m = “< main() { int m = 66, n ; n = ++m; cout<<”m = “<
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 20
Keluarannya : m = 67, n = 67 m = 68, n = 67 m = 68 m = 69 m = 70
Penjelasan : Dalam penugasan yang pertama, m adalah pre-increment, menaikkan nilainya menjadi 67, yang selanjutnya dimasukkan ke n. Dalam penugasan kedua, m adalah post-increment, sehingga 67 dimasukkan dahulu ke n baru kemudian nilai m-nya dinaikkan, itu sebabnya mengapa nilai m = 68 dan n = 67. Dalam penugasan ketiga, m adalah post-increment, sehingga nilai m ( = 68 ) ditampilkan dahulu ( ke layar ) baru kemudian nilai m dinaikkan menjadi 69. Dalam penugasan keempat, m adalah pre-increment, sehingga nilai m dinaikkan dahulu menjadi 70 baru kemudian ditampilkan ke layar. Supaya lebih paham, perhatikan pula contoh dibawah. Contoh : #include main() { int m = 5, n; n = ++m * --m; cout<<”m = “<
Penjelasan : Dalam penugasan untuk n, pertama kali m dinaikkan (++m) menjadi 6, kemudian m diturunkan kembali menjadi 5, karena adanya –m. Sehingga nilai m sekarang adalah 5 dan nilai m = 5 inilah yang dievaluasi pada saat penugasan perkalian dilakukan. Pada baris terakhir, ketiga sub-ekspresi dievaluasi dari kanan ke kiri.
OPERATOR BITWISE
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 21
Operator Deskripsi Contoh << Geser n bit ke kiri ( left shift ) m << n >> Geser n bit ke kanan ( right shift ) m >> n & Bitwise AND m&n | Bitwise OR m|n ^ Bitwise XOR m^n ~ Bitwise NOT ~m NB : Seluruh operator bitwise hanya bisa dikenakan pada operand bertipe data int atau char Berikut ini diberikan tabel kebenaran untuk operator logika P = A operator B
A 0 0 1 1
AND B 0 1 0 1
P 0 0 0 1
A 0 0 1 1
XOR B 0 1 0 1
P 0 1 1 0
A 0 0 1 1
OR B 0 1 0 1
P 0 1 1 1
Note: A adalah Pernyataan 1 • B adalah pernyataan 2 • P adalah Hasil • 1 mewakili True • 0 mewakili False •
Contoh : #include void main() { int m = 82, n = 26; cout<> 2”<<” = “<<(m>>2)<
Halaman: 22
cout<
Keluarannya : 82 << 2 = 328 82 >> 2 = 20 82 & 26 = 18 82 | 26 = 90 82 ^ 26 = 72 ~82 = 83 Penjelasan : Nilai keluaran diatas, tergantung dari jenis compiler yang digunakan. Hasil diatas merupakan keluaran dari compiler Turbo C++. Pada Turbo C++ besar dari integer adalah 2 byte atau sama dengan 16 bit, untuk mengetahuinya digunakan perintah cout<> 2 00000000000101002 = 2010 82 & 26 00000000010100102 00000000000110102 ------------------------------------------ &
00000000000100102 = 1810 dan begitu juga untuk operasi OR dan XOR. ~82 digunakan 2’s complement, yaitu 8210 = 00000000010100102 lalu dinegasikan tiap bitnya menjadi 11111111101011012 kemudian LSB ditambah 1 menjadi 1111111110101110 = 6545410 nilai ini melebihi jangkauan maksimum int yang berkisar di –32768 sampai 32767, sehingga nilai yang keluar yaitu 83. Cara lain penulisan dengan menggunakan operator bitwise : m = m << n m <<= n m = m >> n m >>= n m=m&n m &= n m=m|n m |= n AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 23
m=m^n
m ^= n
OPERATOR RELASI
Operator relasi digunakan untuk membandingkan dua buah nilai. Operator ini biasa digunakan dalam instruksi percabangan. Operator Deskripsi == Sama dengan ( bukan assignment ) != Tidak sama dengan > Lebih besar < Lebih kecil >= Lebih besar atau sama dengan <= Lebih kecil atau sama dengan Contoh: #include main() { int m = 5, n =7; if(m == n) cout< n) cout<
Operator logika digunakan untuk menghubungkan dua atau lebih ungkapan menjadi sebuah ungkapan berkondisi. Operator && || !
Deskripsi logic AND logic OR logic NOT
Contoh : #include void main() { int m = 166; cout<<”(m>=0 && m<=150)
Contoh m && n m ||n !m
“<<(m>=0 && m<=150)<
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 24
cout<<”(m>=0 || m<=150)
“<<(m>=0 || m<=150)<
}
Keluarannya : (m>=0 && m<=150) 0 (m>=0 || m<=150) 1 Penjelasan : Hasil / keluaran dari operator logika adalah 0 dan 1. 0 jika keluarannya salah dan 1 jika keluarannya benar. OPERATOR KONDISI
Operator kondisi digunakan untuk memperoleh nilai dari dua kemungkinan ungkapan1 ? ungkapan2 : ungkapan3 Bila nilai ungkapan1 benar, maka nilainya sama dengan ungkapan2, bila tidak maka nilainya sama dengan ungkapan3 Contoh : #include main() { int m = 26, n = 82; int min = m < n ? m : n; cout<<”Bilangan terkecil adalah “<
C++
Pendeklarasian variable dan konstanta. prepocessor directive, Komentar, cout dan cin. Operator, Printf, scanf dan getch, IF
Dibawah ini adalah contoh soal menggunakan token diatas. Contoh: //prepocessor directive #include #include
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 25
main() { //deklarasi variable int age; char descrip[50]; // pencetakkan interface user ke monitor printf (“%s”,Masukkan Umur anda:”) //pemindahan isi variable scanf(“%i”,&age); //pengendalian nilai berdasarkan kondisi if(age<=5){ cout<<”Balita”; }else{ cout<<”Anak-anak”; } //menahan layar getch(); //mengembalikan proses return 0; }
Latihan 8: Diketahui sebuah algoritma dibawah ini, Buatlah program menggunakan C++: (Gunakan dengan operator increment atau decrement.)
Kamus data: F, G, H : integer Input(F,G,H) F ← F + 10 G ←G – 1 H ←G H ←H + 1 Output (F, G, H) Latihan 9: Diketahui sebuah algoritma dibawah ini, Buatlah program menggunakan C++:
Kamus : Z : Integer Algoritma: Z ←Z + 1 R ←I Z ←R * 5 Output (R) Latihan 10: Diketahui sebuah algoritma dibawah ini, Buatlah program menggunakan C++:
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 26
(gunakan struktur kendali IF lihat bentuk dari pernyataan IF pada bab pernyataan) Kamus : X : Integer Algoritma: X ←5 IF X <> 5 X ←R * 5 ELSE R ←X Output (R) Latihan 11: Buatlah program dengan c++ untuk menentukan tingkatan umur (gunakan if): Umur 0 s.d 5 : Balita Umur 6 s.d 12 : Anak-anak Umur 13 s.d 17 : Remaja Umur > 18 : Dewasa
Tugas 2 : Buatlah Program dengan c++ untuk menentukan bilangan ganjil dan genap
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 27
BAB II- PENCABANGAN DAN PENGULANGAN •
•
Pencabangan : adalah instruksi yang dipakai untuk memilih satu aksi dari beberapa kemungkinan aksi berdasarkan suatu syarat
Pencabangan jenis 1.1 (if-then): Suatu aksi hanya dilakukan bila persyaratan atau kondisi tertentu dipenuhi. jika kondisi bernilai benar kerjakan aksi jika salah, tidak ada aksi apapun yang dikerjakan. •
Notasi algoritmik : if Syarat then Aksi {True} endif {False}
•
Flow Chart:
Syar at
False
Aksi True
Exit AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 28
•
Pencabangan jenis 1.2 (if-then-else): Apabila syarat dipenuhi maka aksi-1 dilaksanakan bila syarat tidak dipenuhi maka aksi- 2 yang dilaksanakan. •
Notasi algoritmik : IF syarat THEN aksi-1 {true} ELSE aksi-2 {false} ENDIF
•
Flow Chart:
Syar at
False
Aksi-2
Aksi-1 True
Exit
•
Pencabangan jenis 2 (Case-of):
Perulangan adalah instruksi yang dapat mengulang sederetan Instruksi secara berulang-ulang sesuai persyaratan yang ditetapkan. Struktur instruksi perulangan pada dasarnya terdiri atas : Kondisi perulangan; suatu kondisi yang harus dipenuhi agar • perulangan dapat terjadi. Badan (body) perulangan; deretan instruksi yang akan diulang-ulang • pelaksanaannya. AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 29
•
Pencacah (counter) perulangan; suatu variabel yang nilainya harus berubah agar perulangan dapat terjadi dan pada akhirnya membatasi jumlah perulangan yang dapat dilaksanakan.BB
Jenis perulangan: For-next • While-do • Repeat-until • Bentuk umum : •
Pengulangan For For var← awal to akhir ……………. instruksi-instruksi …………….. Next var For I← 1 to 4
instruksi
Next i
Makna dari bentuk perulangan di atas adalah ulangi instruksi tersebut berdasarkan variable perulangan mulai dari nilai awal hingga nilai akhir. Dari gambar di atas instruksi akan dikerjakan sebanyak 4 kali, karena perulangan dimulai dari 1 sampai 4. Pengulangan While-do • Bentuk umum : While {kondisi} do ………….. instruksi-instruksi ………….. Endwhile Kon disi
False
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma True Loop
Halaman: 30
Dari bentuk pengulangan di atas instruksi akan dilaksanakan berulang kali selama kondisi bernilai TRUE , jika FALSE maka badan pengulangan tidak akan dilaksanakan yang berarti pengulangan selesai. Contoh: Algoritma Cetak_Angka {mencetak 1, 2, .., 8 ke piranti keluaran} Deklarasi : K: integer Deskripsi : K 1 {inisialisasi} while k <= 8 do write (k) k← k + 1 endwhile •
Pengulangan Repeat-until Bentuk umum : Repeat ………. instruksi ………. Until ( kondisi )
Intruksi instruksi
Kon disi
False
True AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 31
Intruksi ( atau runtunan instruksi) akan dilaksanakan berulang kali sampai kondisi bernilai true, jika kondisi bernilai false maka pengulangan masih terus dilakukan.
Contoh: Algoritma Cetak_Angka {mencetak 1, 2, .., 8 ke piranti keluaran} Deklarasi : K: integer Deskripsi : K 1 {inisialisasi} repeat write (k) k← k+1 until k > 8
Sesi 5 -
Landasan Teori melalui pendekatan bahasa
C++:
Pernyataan (Statement) Pernyataan Ungkapan Pernyataan Deklarasi Pernyataan Kosong Pernyataan Majemuk Pernyataan berlabel
Pernyataan digunakan untuk melakukan suatu tindakan, yaitu PERNYATAAN UNGKAPAN Pernyataan ini merupakan bentuk pernyataan yang paling sering digunakan. Pernyataan ini diakhiri dengan semicolon “ ; “. Contoh : var = 166; var++;
PERNYATAAN DEKLARASI Untuk menggunakan suatu variable minimal variable tersebut dideklarasikan terlabih dahulu Contoh : int var; Merupakan contoh deklarasi sebuah variable var dengan tipe data integer (int).
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 32
PERNYATAAN KOSONG Pernyataan ini tidak melaksanakan apapun. Contoh : while(ada);
PERNYATAAN MAJEMUK Merupakan sejumlah pernyataan yang berada di dalam sebuah blok { } Contoh : for(var = 0 ; var <10 ; var++) { nilai1 = 100; if(!nilai2) nilai2 = 0; nilai 3 = nilai1 + nilai2; }
PERNYATAAN BERLABEL Pernyataan goto, diperlukan untuk melakukan suatu lompatan ke suatu pernyataan berlabel yang ditandai dengan tanda “ : “. Contoh : goto bawah; pernyataan1; pernyataan2; : bawah pernyataan 3; Pada contoh diatas, pada saat goto ditemukan maka program akan melompat pernyataan berlabel bawah dan melakukan pernyataan 3.
PERNYATAAN KONDISI ( CONDITIONAL EXPRESSION ) Pertanyaan Kondisi dibagi menjadi, 1. Pernyataan if Digunakan dalam pengambilan keputusan
Bentuk umum: if(kondisi) pernyataan1 ; else pernyataan2; Pernyataan1 dilaksanakan jika dan hanya jika kondisi yang diinginkan terpenuhi, jika tidak, lakukan pernyataan2. Jika anda tidak mempergunakan pernyataan else program tidak akan error, namun jika anda mempergunakan pernyataan else tanpa didahului pernyataan if , maka program akan error. Jika pernyataan1 atau pernyataan2 hanya terdiri dari satu baris, maka tanda { } tidak diperlukan, namun jika lebih maka diperlukan. Bentuknya menjadi : if(kondisi) AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 33
{ pernyataan1; pernyataan1a; pernyataan1b; } else { pernyataan2; pernyataan2a; pernyataan2b; } Contoh : #include void main() { int m = 166; if(m == 0)cout<<”Nilainya sama dengan nol\n”; else { cout<<”Nilainya tidak sama dengan nol\n”; cout<<”Nilainya sama dengan “<
Contoh 1 : #include void main() { int m = 166; if(m > 1000) cout< 100) cout< 10) cout< void main() { int m = 166; AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 34
if(m > 1000) cout< 100) cout< 10) cout<
Keluarannya : 166 lebih besar dari 100 Mengapa ? Karena contoh 2 sama saja jika ditulis seperti dibawah ini #include void main() { int m = 166; if(m > 1000) cout< 100) cout< 10) cout<
Contoh diatas disebut juga nested conditional 2. Pernyataan switch Pernyataan if…else if jamak dapat dibangun dengan pernyataan switch. Bentuk umumnya adalah sebagai berikut.
switch(ekspresi) { case konstanta1 : pernyataan1; case konstanta2 : pernyataan2; case konstanta3 : pernyataan3; : : case konstantaN : pernyataanN; default : pernyataanlain; } Hal – hal yang perlu diperhatikan adalah : 1. Dibelakang keyword case harus diikuti oleh sebuah konstanta, tidak boleh diikuti oleh ekspresi ataupun variable. 2. Konstanta yang digunakan bertipe int atau char 3. Jika bentuknya seperti diatas maka apabila ekspresi sesuai dengan konstanta2 maka pernyataan2, pernyataan3 sampai dengan
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 35
pernyataanlain dieksekusi. Untuk mencegah hal tersebut, gunakan keyword break;. Jika keyword break digunakan maka setelah pernyataan2 dieksekusi program langsung keluar dari pernyataan switch. Selain digunakan dalam switch, keyword break banyak digunakan untuk keluar dari pernyataan yang berulang ( looping ). 4. pernyataanlain dieksekusi jika konstanta1 sampai konstantaN tidak ada yang memenuhi ekspresi. Contoh : // Program untuk melihat nilai akhir test // Nilai A jika nilai diatas 80, B jika 70<= nilai <80 // C jika 50<= nilai <70, D jika 30<=nilai <50 // E jika nilai < 30 #include void main() { int nilai; cout<<”Masukkan nilai test : “; cin>>nilai; switch(nilai/10) { case 10: case 9: case 8:cout<<’A’<
Keluaran : Masukkan nilai test : 45 D Masukkan nilai test : 450 Salah, nilai diluar jangkauan. Masukkan nilai test : nilai_test Salah, nilai diluar jangkauan. Ket : 45, 450 dan nilai_test adalah hasil input dari user 3. Pernyataan while Digunakan untuk pengambilan keputusan dan looping.
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 36
Bentuk : While(kondisi) { pernyataan } Jika kondisi tidak terpenuhi, maka pernyataan tidak akan dieksekusi.
Contoh: #include #include #define TINGGI 5 #define LEBAR 10 // Program menggambarkan karakter khusus pada sebuah // koordinat yang ditentukan void main() { char matrix[TINGGI][LEBAR]; int x,y; for(y=0;y=0 && y>=0) { for(y=0;y>x>>y; matrix[y-1][x-1]='\xBO'; } getch(); }
Penjelasan : Program ini adalah program menggambar karakter [] jika dicompile di Turbo C++ atau mengambar ♂ jika dicompile di Borland C++. ( ditunjukkan oleh karakter ’xBO’ ). AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 37
Karena adanya pernyataan while(x>=0 && y>=0), maka program akan langsung mengeksekusi pernyataan cout<<"Koordinat : "; cin>>x>>y; matrix[y-1][x-1]='\xBO'; jika user memasukkan bilangan negatif. Pada program diatas terdapat fungsi getch(). Gunanya adalah untuk memberhentikan keluaran program sampai user menekan tombol keyboard. Untuk menggunakannya, file conio.h harus diinclude. 4. Pernyataan do…while Pernyataan do…while mirip seperti pernyataan while, hanya saja pada do…
while pernyataan yang terdapat didalamnya minimal akan sekali dieksekusi. Bentuk : do{ pernyataan; } while(kondisi);
Terlihat, walaupun kondisi tidak terpenuhi, maka pernyataan minimal akan dieksekusi sekali. Contoh : #include #include #include // Program konversi bilangan desimal ke biner void main() { int p,n,i=0; cout<<"Masukkan bilangan desimal : "; cin>>p; double A[100]; do { A[++i]=p%2; p=p/2; floor(p); } while (p>1); cout<<"Nilai binernya : "; cout<
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 38
for(n=i;n>=1;n--) { cout<
Penjelasan : Coba anda masukkan bilangan negatif. Itulah letak kesalahan program ini ( sekaligus untuk menunjukkan sifat dari do…while ) Jika anda memasukkan bilangan positif, maka program ini akan menghasilkan nilai biner yang bersesuaian dengan nilai desimal yang anda masukkan.
5. Pernyataan for Pernyataan for digunakan untuk melakukan looping. Pada umumnya looping yang dilakukan oleh for telah diketahui batas awal, syarat looping dan perubahannya.
Bentuk : for( inisialisasi ; kondisi ; perubahan) { pernyataan; } Selama kondisi terpenuhi, maka pernyataan akan terus dieksekusi. Bila pernyataan hanya terdiri atas satu baris pernyataan, maka tanda kurung { } tidak diperlukan. Contoh : //Program mencetak angka 1-100 #include void main() { for(int x=1 ; x<=100 ; x++) cout< void main() { for(int x=1 ; ;x++) cout<
Program diatas akan menampilkan bilangan yang banyaknya tak terhingga sehingga dapat membuat komputer anda berhenti bekerja. Contoh diatas juga merupakan prinsip membuat bom program ( contohnya : bom mail ) AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 39
Pernyataan for dapat berada di dalam pernyataan for lainnya yang biasa disebut nested for Contoh : // Program menghasilkan segitiga pascal #include #include #include main() { unsigned int n,a,b,x,s[100],p[100]; cout<<"Masukkan nilai n: "; cin>>n; for(a=0,x=0;a<=n;a++,x+=2) { cout<
if (b<1||b==a) cout<<"1"<
PERNYATAAN BREAK
Pernyataan break akan selalu terlihat digunakan bila menggunakan pernyataan switch. Pernyataan ini juga digunakan dalam loop. Bila pernyataan ini dieksekusi, maka akan mengkakhiri loop dan akan menghentikan ierasi pada saat tersebut. PERNYATAAN CONTINUE
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 40
Pernyataan continue digunakan untuk pergi ke bagian awal dari blok loop untuk memulai iterasi berikutnya. Contoh : #include void main() { int n; for(;;) { cout<<”Masukkan bilangan integer : “; cin>>n; if(n % 2 == 0) continue; else if(n % 5 == 0) break; cout<<”\tLanjutkan loop berikutnya.\n”; } cout<<”Akhiri Loop.\n”; } Keluarannya : Masukkan bilangan integer : 9 Lanjutkan loop berikutnya Masukkan bilangan integer : 8 Masukkan bilangan integer : 5 Akhiri Loop
Materi Praktikum melalui pendekatan bahasa • •
•
•
C++
Pernyataan (Statement) Penyeleksian kondisi : If Tunggal, If – Else, If bersarang(nested IF), Switch Tunggal, Switch Bersarang Penyeleksian kondisi berulang (looping) : For, While, While-Do, Loop didalam loop, Continue dan Break Operator
Latihan 12: Buatlah program degan c++ dari algoritma sbb (gunakan IF tunggal dan switch): Input : 2 bilangan integer (x dan y) Proses : jika x> y maka tampilkan tulisan “x lebih besar dari y” jika y> x maka tampilkan tulisan “y lebih besar dari x” Output :sama dengan proses
Latihan 13: Buatlah program degan c++ dari algoritma sbb (gunakan IF else dan switch): Input : 3 sisi segitiga (s1, s2, s3) Proses : jika s1= s2 atau s1 = s3 atau s3 = s2 tampilkan tulisan : “Segitiga sama kaki”
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 41
jika s1= s2 dan s2 = s3 dan s1= s3 tampilkan tulisan : “Segitiga sama sisi” jika s1 ≠ s2 dan s2 ≠ s3 dan s1≠ s3 tampilkan tulisan : “Segitiga sembarang” Output:sama dengan proses
Latihan 14: Taxi menetapkan argonya berdasarkan kilometer. Jika kilometer yang ditempuh kurang dari 7 km harga per km nya adalah Rp. 3000. Jika lebih dari 7 km harga per km nya adalah Rp.2000. Buatlah programnya. Buatlah program degan c++ dari algoritma sbb (gunakan IF else dan switch): Latihan 15: Sistem kalender yang sekarang kita pakai adalah system kalender Gregorian yang ditemukan oleh Pope Gregory XIII pada tahun 1852. Menurut Gregorian, tahun kabisat adalah: Tahun yang angkanya habis di bagi 4, kecuali tahun abad. Tahun abad yang merupakan tahun kabisat adalah tahun yang habis dibagi 400
Catatan : tahun abad adalah tahun yang akhiranya 000 contoh 1000, 1900, 1800,2000, dll.
Jadi menurut Gregorian tahun 2000, 1980, 1984 adalah tahun kabisat sedangkan tahun 1900, 1700 bukan tahun kabisat karena tidak habis dibagi 400. Buatlah programnya dengan c++ (gunakan IF else dan switch). Latihan 16: Pertandingan Sepak bola memiliki aturan sebagai berikut:
Main Ke-1 Menang(M) Menang(M) Kalah(K) Kalah(K)
Main Ke-2 Menang(M) Kalah(K) Kalah(K) Kalah(K)
Skor 2 1 1 0
Aturan Medali : Jika skor = 2 maka tampilkan tulisan “Medali Emas” Jika skor = 1 (K)(M) maka tampilkan tulisan “Medali Perak” Jika skor = 1 (M)(K) maka tampilkan tulisan “Medali Perunggu” Jika skor = 0 maka tampilkan tulisan “Kalah nich yee” Buatlah programnya dengan c++ (gunakan IF else dan switch). Input : Main ke 1, Main ke 2 Proses : Lihat table diatas dan aturan medali Output : sama dengan proses
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 42
Tugas 3: Sesi 4
Biro tour “lpkia.ac.id” membuat aturan untuk wisata group sebagai berikut: Tujuan Kode Pangandaran pa Borobudur bo Taman Mini tm
Batas Min perserta 100 85 50
Biaya/ Peserta Rp. 150.00 Rp. 100.000 Rp. 80.000
Buatlah Algoritma dan programnya dengan c++. Input : Kode Tujuan, Jumlah Peserta Proses : lihat table Jika jumlah peserta dibawah batas minimal maka harus membayar extra 15% dari biaya diatas Total harga jika batas min terpenuhi = …. Total harga jika batas min tidak terpenuhi = …. Output : Total harga Latihan 17: Buatlah program untuk menampilkan deretan angka dari 1 s.d 10 (gunakan Penyeleksian kondisi berulang (looping) : For, While, While-Do) Latihan 18: Buatlah program untuk menampilkan deretan angka bilangan ganjil dan genap dari 1 s.d 10 (gunakan Penyeleksian kondisi berulang (looping) : For, While, While-Do) Latihan 19: Buatlah program untuk menampilkan deretan angka 1 s.d 100 dan carilah angka 9 diantara deretan tersebut? Latihan 20: Buatlah program untuk menghitung berapakah total nilai rupiah yang harus disiapkan oleh juru bayar pada saat ia melakukan proses penggajian. Asumsikan bahwa data yang akan diinput dari keyboard adalah nama karyawan dan nilai gajinya bersihnya dimana jumlah karyawan-nya ada 10 orang. (gunakan Penyeleksian kondisi berulang (looping) : For, While, While-Do)
BAB III-ARRAY (LARIK) Array adalah kumpulan data-data beripe sama dan menggunakan nama yang sama. Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel yang lain di dalam array dibedakan berdasarkan subscript . Sebuah subscript berupa bilangan didalam tanda kurung siku. Melalui subscript inilah masing-masing elemen array dapat diakses. Nilai subscribe pertama secara default adalah 0.
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 43
Sesi 13 -
Landasan Teori melalui pendekatan bahasa
C++: Array String
Pointer
C++ tidak mengecek array. Bila anda menyatakan int x[10], ini artinya 10 elemen yang dimulai dari 0. Karena itu elemen terakhir array adalah x[9]. Bila anda salah mereferensikannya dengan x[10], anda akan mendapatkan harga yang tidak terpakai. Akan lebih buruk lagi jika anda memberikan harga ke x[10], yang tidak dapat diterima. 1. Representasi Array Misalkan kita memiliki sekumpulan data ujian seorang siswa, ujian pertama bernilai 90, kemudian 95,78,85. Sekarang kita ingin menyusunnya sebagai suatu data kumpulan ujian seorang siswa. Dalam array kita menyusunnya sebagai berikut
ujian[0] ujian[1] ujian[2] ujian[3]
• •
= = = =
90; 95; 78; 85;
Perhatikan : Tanda kurung [ ] digunakan untuk menunjukkan elemen array Perhitungan elemen array dimulai dari 0, bukan 1 Empat pernyataan diatas memberikan nilai kepada array ujian. Tetapi sebelum kita memberikan nilai kepada array, kita harus mendeklarasikannya terlebih dahulu, yaitu : int ujian[4];
Perhatikan bahwa nilai 4 yang berada didalam tanda kurung menujukkan jumlah elemen array, bukan menunjukkan elemen array yang ke-4. Jadi elemen array ujian dimulai dari angka 0 sampai 3. Pemrogram juga dapat menginisialisasi array sekaligus mendeklarasikannya, sebagai contoh : int ujian[4] = {90,95,78,85}; Elemen terakhir dari array diisi dengan karakter ‘\0’. Karakter ini memberitahu kompiler bahwa akhir dari elemen array telah dicapai. Walaupun pemrogram tidak dapat melihat karakter ini secara eksplisit, namun kompiler mengetahui dan membutuhkannya. Sekarang kita akan membuat daftar beberapa nama pahlawan di Indonesia char pahlawan[3][15] ; char pahlawan[0][15] = “Soekarno”; char pahlawan[1][15] = “Diponegoro”; AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 44
char pahlawan[2][15] = “Soedirman”; Array diatas terlihat berbeda denga contoh array pertama kita. Perhatikan bahwa pada array pahlawan memilii dua buah tanda kurung [ ][ ]. Array seperti itu disebut array dua dimensi. Tanda kurung pertama menyatakan total elemen yang dapt dimiliki oleh array pahlawan dan tanda kurung kedua menyatakan total elemen yang dapat dimiliki setiap elemen array pahlawan. Dalam contoh diatas, tanda kurung kedua menyatakan karakter yang menyatakan nama pahlawan. 2. Menghitung Jumlah Elemen Array Karena fungsi sizeof() mengembalikan jumlah byte yang sesuai dengan argumennya, maka operator tersebut dapat digunakan untuk menemukan jumlah elemen array, misalnya
int array[ ] = {26,7,82,166}; cout< void ubah(int x[]); void main() { int ujian[] = {90,95,78,85}; ubah(ujian); cout<<" Elemen kedua dari array ujian adalah "<
Keluarannya : Elemen kedua dari array ujian adalah 100 POINTER
Pointer adalah variable yang berisi alamat memori variable lain dan sevara tidak langsung menunjuk ke variable tersebut. Analoginya – sebagai contoh – Andi berteman dengan Budi, lalu anda ingin mengetahui jumlah keluarga Budi untuk keperluan sensus penduduk. Anda tidak mengetahui alamat Budi, tetapi anda mengenal Andi. Untuk mencari jumlah keluarga Budi, maka pertama-tama anda pergi kerumah Andi, misalnya dirumah no AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 45
8321. Sesampai di Andi, Andi membaritahukan kepada anda bahwa alamat Budi ada pada alamat 9821. Kemudian anda pergi ke rumah Budi lalu mencatat jumlah keluarga yang dimiliki Budi yaitu lima orang ( misalkan ). Dalam contoh diatas, Andi bertindak sebagai pointer. Andi tidak memberitahukan jumlah keluarga Budi, tetapi Andi memberitahu alamat Budi, di alamat 9821 ( alamat Budi ) itulah anda mengetahui jumlah keluarga Budi. Jika alamat dari ditunjukkan dengan simbol & dan isi dari ditunjukkan dengan symbol *, maka hubungan analogi diatas adalah: Nama Andi Budi
Alamat 8321 9821
Isi 9821 = &Budi 5 = *(&Budi)
Dalam bentuk pointer, ditulis : Andi = &Budi; // baris 1 Budi = *(&Budi); // baris 2 Subtitusi pernyataan di baris 2 : Andi = *Andi; Contoh program yang menggambarkan hal tersebut : #include void main() { int *Andi; // Andi sebagai pointer int Budi = 5; // Budi bukan pointer, perhatikan perbedaan pada * Andi = &Budi // Isi dari Andi yaitu alamat Budi cout<<”Isi alamat memori Andi : “<
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 46
ditunjuk oleh Andi” . Karena alamat memori yang ditunjuk oleh Andi adalah alamat memori Budi, maka dapat dikatakan “isi dari alamat memori Budi” . 1. Pointer - Array Dalam bab sebelumnya kita telah membahas array, sekarang kita akan melihat bagaimana data disimpan di memori dalam sebuah array.
Contoh : #include void main() { int n; int array[4] = {10,20,30,40}; for(n=0;n<4;n++) { cout<<”Array[“<
Alamat setiap elemen array dapat diperoleh dengan cara &array[n]
•
atau
array+n
Isi dari setiap elemen array dapat diperoleh dengan cara array[n]
atau
*(array+n)
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 47
Dibawah ini adalah contoh pengaksesan memori dan isi memori dengan menggunakan cara kedua Contoh : #include void main() { int n; int array[4] = {10,20,30,40}; for(n=0;n<4;n++) { cout<<”Array[“< void main() { char nama[5] = “Andi”; cout<<”Nama awal : “<
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 48
Keluarannya : Nama awal : Andi Nama menjadi : Andy Jadi : • • •
String adalah array (susunan) dari karakter-karakter String dapat diakses dan dimanipulasi lewat pointer Alamat awal dari string dapat diperoleh dari namanya
3. Pointer Sebagai Argumen String Jika pointer dikirim sebagai argument, maka nilai aktualnya dapat dimodifikasi. Contoh : #include void ubah(char *); void main() { char *ptr,nama[5] = “Andi”; ptr = nama; // ptr sebagai pointer ke variable nama cout<<”Nama awal : “<
Keluarannya : Nama awal : Andi Nama menjadi : Andy 4. Alias Alias adalah nama lain dari suatu variable. Jika suatu perubaha terjadi pada variable alias maka akan berpengaruh kepada variable asli dan begitu juga sebaliknya. Contoh : #include void main() { int uang =10000; int &duit = uang; cout<<”Nilai uang Rp.“<
Keluarannya : AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 49
Nilai uang Rp.10000 Nilai duit Rp.10000 Uang dibelikan es krim Rp.1000, nilainya menjadi Rp.9000 Nilai duit juga berubah menjadi Rp.9000 Penjelasan : Perubahan pada uang menyebabkan perubahan pada duit karena duit memiliki alamat memori yang sama dengan uang. Jadi jika isi dari alamat memori uang atau duit berubah, maka nilai variable duit atau uang juga akan ikut berubah. 5. Argumen Baris Perintah Seringkali kita menggunakan perintah edit file.txt pada DOS, atau perintah vi file.txt pada Unix. Yang dimaksud dengan argumen baris perintah yaitu file.txt. Hal seperti itu dapat dibuat dengan menggunakan C++ dengan menyertakan argumen berikut pada fungsi main() void main(int argc, char *argv[]) { … } atau main(int argc, char *argv[]) { … return 0; }
Keterangan : Argc : Beisi jumlah parameter baris ditambah 1 • Argv : Berisi daftar nama argumen dan program, dengan rincian • sebagai berikut : argv[0] menunjuk nama program, lengkap dengan alamat path • argv[1] menunjuk argumen pertama ( kalau ada ) • argv[n[ menunjuk argumen ke-n ( kalau ada) • Contoh : // beri nama tes.cpp #include void main(int argc, char *argv[]) { for(int a=0;a
Penjelasan : Setelah dicompile dan di link akan muncul file tes.exe, misalkan anda simpan di d:\tes.exe Buka command prompt, pindah ke direktori d:\ ketikkan Tes argumen1 argument2 argument3, maka akan muncul tampilan AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 50
argv[0] = D:\TES.EXE argv[1] = argument1 argv[2] = argument2 argv[3] = argument3 Dibawah ini diberikan contoh penggunaan argumen baris perintah yang lain, supaya anda lebih memahami
Contoh : // Program mengubah nilai desimal ke biner // Simpan dengan nama dec2bin.cpp #include #include #include #include void main(int argc, char *argv[]) { if(argc !=2) { cerr<<"Pemakaian : dec2bin angka"; exit(1); } int p = atoi(argv[1]),n,i=0; double A[100]; do { A[++i]=p%2; p=p/2; floor(p); } while (p>1); cout<<"Nilai binernya : "; cout<=1;n--) { cout<
Materi Praktikum Array • Pointer •
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 51
Latihan 24: Buatlah program untuk mengurutkan data : Diketahui negara(Mayalsia, Brunei, Indonesia,Fhilipina, Singapura, Birma) Urutkan berdasarkan abjad(gunakan array). Latihan 25: Buatlah program untuk menghitung berapakah total nilai rupiah yang harus disiapkan oleh juru bayar pada saat ia melakukan proses penggajian. Asumsikan bahwa data yang akan diinput dari keyboard adalah nama karyawan dan nilai gajinya bersihnya dimana jumlah karyawan-nya ada 10 orang. (gunakan Penyeleksian kondisi berulang (looping) : For, While, While-Do, array dan pointer). Latihan 26: Diketahui deretan Angka sebagai berikut: 3 6 4 8 1 2 7 5 9 10 Urutkan angka tersebut gunakan dengan teknik algoritma buble sort, Selection, Insert
BAB IV – PROSEDUR, FUNGSI, FILE DAN APLIKASINYA Sesi 15 -
Landasan Teori: Operasi File Membuka File Memproses File Memeriksa File Menutup File
OPERASI FILE
Ada kalanya seorang programmer harus berhubungan dengan file. Sebagai contoh pada saat pembuatan program database, seorang programmer menyimpan data pada sebuah file dan pada kemudian waktu data tersebut dikeluarkan untuk diolah. Pada prinsipnya operasi yang dilakukan pada file terdiri dari tiga tahap, yaitu : 1. Membuka file 2. Melakukan pemrosesan pada file 3. Menutup file Dalam melakukan operasi file, programmer membutuhkan fungsi – fungsi yang berhubungan dengan operasi file yang terdapat pada file fstream.h. Oleh sebab
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 52
itu, untuk dapat melakukan operasi file, maka prepocessor directive berikut ditambahkan. #include MEMBUKA FILE
Pembukaan dari suatu file mempunyai dua tujuan, yaitu membaca isi file atau untuk menulis ke dalam file tersebut. Dalam C++ penanganan pembukaan file untuk membaca atau menulis ke dalam file berbeda. 1. Membuka file untuk dibaca
ifstream file_objek; Setelah objek_input diciptakan, maka file dibuka dengan cara file_objek.open(“nama_file”); Adapun dua pernyataan diatas dapat disederhanakan sebagai
berikut:
ifstream file_objek(“nama_file”);
2. Membuka file untuk ditulisi
ofstream file_objek; Setelah objek_output diciptakan, maka file dibuka dengan cara file_objek.open(“nama_file”); Adapun dua pernyataan diatas dapat disederhanakan sebagai
berikut:
ofstream file_objek(“nama_file”); 3. Membuka File dengan Modus Tertentu Pada point 1 dan 2 pembukaan file hanya bias dilakukan untuk keperluan membaca atau menulis saja, bukan untuk kedua-duanya, dan pada 7.1.2 jika isi dari nama_file sudah ada, maka isi yang lama akan dihapus dan digantikan dengan isi yang baru. Pada suatu waktu mungkin anda memerlukan cara supaya file yang anda buka dapat dipergunakan untuk membaca dan menulis sekaligus, atau isi file yang sudah ada tidak dihapus jika anda ingin menambah isi file yang baru. Untuk keperluan itu, anda harus memformat modus pembukaan file. Adapun modus pembukaan file yang disediakan oleh C++ adalah sebagai berikut : Modus ios::app
Keterangan Membuka file dengan modus keluaran dan memungkinkan operasi
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 53
ios::ate
ios::in ios::out
ios::nocreate
ios::noreplace
ios::trunc ios::binary
penambahan data pada file yang telah ada. Jika file belum ada, maka membuat file baru. Membuka file dengan modus masukan dan keluaran. Secara otomatis menempatkan pointer file ke posisi akhir file Membuka file dengan modus masukan. Penggunaannya sama dengan ifstream. Membuka file dengan modus keluaran. Penggunaannya sama dengan ofstream. Membuka file yang sudah ada. Jika file yang akan dibuka belum ada, maka C+ + tidak akan membuat file baru. Membuka file baru. Jika file sudah ada maka operasi pembukaan menjadi gagal. Jika file belum ada, maka akan dibuat file baru. Hal ini bertentangan dengan ios::nocreate Menghapus file yang sudah ada dan menciptakan file baru (replace) Membuka file dengan operasi baca-tulis secara binary.
Adapun contoh penggunaan dari modus – modus pembukaan file diatas adalah sebagai berikut : fstream file_objek (“nama_file”,ios::in | ios::out); Pernyataan diatas adalah dekalarasi file nama_file dengan sehinggan nama_file dapat dibaca dan ditulisi. PEMROSESAN FILE
Setelah file dibuka, maka dilakukan pemrosesan pada file yang telah dibuka tersebut, antara lain : 1. Menulis ke File
Contoh : #include #include void main() { ofstream file_objek; file_objek.open("latihan.txt"); cout<<"Latihan menulis ke dalam sebuah file\n"; for(int i=1;i<11;i++) file_objek<<"Ini adalah baris ke "<
Halaman: 54
} Pada direktori dimana anda men-save file tersebut akan terdapat sebuah file bernama latihan.txt 2. Membaca Isi File
Contoh : #include #include void main() { const int MAX = 80; char buffer[MAX+1]; ifstream file_objek; file_objek.open("latihan.txt"); cout<<"Membaca isi file latihan.txt\n"; while(file_objek) { file_objek.getline(buffer,MAX); cout<
Fungsi Anggota Good()
eof()
fail() bad()
Kegunaan Untuk memeriksa keberhasilan dari suatu operasi file. Jika operasi berhasil dilakukan, maka fungsi ini akan mengembalikan nilai 1 (TRUE) Untuk memeriksa apakah pointer telah mencapai akhir file. Jika ya fungsi ini akan mengembalikan nilai 1 (TRUE) Untuk memeriksa suatu kesalahan. Fungsi ini dapat digantikan dengan fungsi good() yang dinegasikan. Untuk memeriksa apakah ada operasi yang tidak absah. Jika ada, maka fungsi ini akan mengembalikan nilai 1 (TRUE)
Contoh : AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 55
/* Program ini menghasilkan output yang sama dengan program pada contoh 2 */ #include #include void main() { const int MAX = 80; char buffer[MAX+1]; ifstream file_objek; file_objek.open("latihan.txt"); cout<<"Membaca isi file latihan.txt\n"; while(!file_objek.eof()) { file_objek.getline(buffer,MAX); cout<
Program pada contoh diatas sama saja dengan contoh program pada point 2 Perbedaannya hanya pada while(file_objek) dan while(!file_objek.eof()) while(file_objek) jika diartikan dalam bahasa sehari – hari adalah jika isi dari file_objek (dalam hal ini, latihan.txt) masih ada, maka baca satu baris pada file latihan.txt lalu pindahkan pointer satu baris ke bawah. Jika isi pada baris tersebut tidak ada, maka hentikan loop. Sedangkan pada while(!file_objek.eof()) dapat diartikan, jika pointer tidak terdapat di baris paling akhir dari file_objek, maka lanjutkan loop. Jika tidak, maka hentikan loop. MENUTUP FILE
Setelah pemrosesan file berakhir, maka file perlu ditutup. Langkah ini dilakukan dengan cara file_objek.close(); Pemakaian fungsi close() sifatnya optional. Bila anda tidak mempergunakannya, compiler tidak akan mengeluarkan pesan error.
Dibawah ini diberikan contoh – contoh penggunaan operasi file pada suatu system operasi. Contoh : 1. Program menyalin suatu file AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 56
// Simpan dengan nama cp.cpp #include #include #include #include #include #define max 80 void main(int argc,char *argv[]) { char buffer[max+1]; if (argc!=3) { cerr<<"Pemakaian : cp file_yang_akan_dikopi file_baru\n"; exit(1); } strupr(argv[1]); ifstream input(argv[1], ios::binary); ofstream output(argv[2], ios::binary); if (!input) { cerr<<"File yang akan dikopi tidak ada, periksa kembali !!!\n"; exit(1); } for(;;) { input.read(buffer,max); output.write(buffer,max); if(input.eof())break; } input.close(); output.close(); }
2. Program Membaca Isi Suatu File // Simpan dengan nama baca.cpp #include #include #include #include #include void main(int argc,char *argv[]) { clrscr(); const int max=84; char buffer[max+1]; char namafile[64]; if(argc!=2) { cerr<<"Penggunaan : Baca nama_file\n"; exit(1); }
AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 57
strcpy(namafile,argv[1]); strupr(namafile); ifstream input; input.open(namafile); while(!input) { cerr<<"File Not Found !!!\n"; exit(1); } while (!input.eof()) { input.getline(buffer,max); cout<
Materi Praktikum • • • • •
Operasi File Membuka File Memproses File Memeriksa File Menutup File
Latihan 27: Sebuah perusahaan bermaksud mengkomputerisasi sistem penggajian dengan ketentuan sebagai berikut: Tabel Gaji Golongan Gaji Pokok Transport IV Rp. Rp. 1.000.000 200.000 III Rp. 750.000 Rp. 150.000 II Rp. 500.000 Rp. 100.000 I Rp. 300.000 Rp. 50.000 Aturan Tunjangan Keluarga: Jika pegawai berkeluarga (status: kawin) maka mendapatkan tunjangan • keluarga sebesar 40% dari gaji pokok. Jika Belum berkeluarga (status Belum Kawin) maka tidak mendapatkan • tunjangan Keluarga. Input: Golongan, status pernikahan Proses lihat tabel + aturan tujangan keluarga Pajak=…. Gaji Total =…. Output : Pajak, gaji Total AP- Algoritma – Dadan Nurdin Bagenda dan TEAM Algoritma
Halaman: 58