Diktat kuliah Algoritma dan Pemograman

25,065 views

Published on

Kalian bisa belajar coding bahasa C++ pada Diktat kuliah Algoritma dan Pemograman ini, Semoga bermanfaat gan !

Published in: Education
2 Comments
13 Likes
Statistics
Notes
No Downloads
Views
Total views
25,065
On SlideShare
0
From Embeds
0
Number of Embeds
67
Actions
Shares
0
Downloads
895
Comments
2
Likes
13
Embeds 0
No embeds

No notes for slide

Diktat kuliah Algoritma dan Pemograman

  1. 1. DIKTAT KULIAH ALGORITMA DAN PEMROGRAMAN Disusun oleh Sumarsono Program Studi Teknik Informatika Fakultas Sains dan Teknologi Universitas Islam Negeri Sunan Kalijaga Yogyakarta 2013 i
  2. 2. KATA PENGANTAR Assalamu’alaikum wr wb Kami panjatkan rasa syukur kepada Allah Subhanahuwata’ala yang telah melimpahkan rahmatNya, sehingga kami mampu menyelesaikan penyusunan buku panduan praktikum Pemrograman Terstruktur. Buku ini ini terdiri dari 14 modul dengan asumsi setiap modul diselesaikan dalam 1 kali praktikum. Setiap modul berisi pengantar materi yang akan dibahas, kemudian dilanjutkan dengan latihan soal dikerjakan di kelas serta latihan soal dikerjakan di rumah. Adapun materi utama yang dibahas adalah pengantar bahasa c, tipe data, operator, array, struct / class, kondisi percabangan if dan switch case, perulangan for dan while, function, pointer, header, files hingga manajemen memori. Diharapkan setelah mahasiswa mempelajari secara tekun dan rajin dengan melakukan praktek berulang-ulang baik di kelas maupun di rumah, mahasiswa akan mampu dan trampil dalam pemrograman dasar khususnya bahasa C. Selanjutnya, kami ucapkan banyak terima kasih kepada seluruh asisten pemrograman terstruktur yang telah banyak membantu sehingga modul pemrograman terstruktur ini dapat diselesaikan. Wassalamu’alaikum wr wb Yogyakarta, Juni 2012 Dosen Pengampu Sumarsono ii
  3. 3. DAFTAR ISI Halaman Judul……………………………………………………………………………. i Kata pengantar……………………………………………………………………………. ii Daftar isi………………………………………………………………………………….. iii BAB 1 : Pengenalan Algoritma .......................................................................................... 1 BAB 2 : Flowchart dan Pseudocode ................................................................................... 9 BAB 3 : Pengantar Pemrograman C ................................................................................... 14 Modul 4 : Algoritma Sequence ........................................................................................... 19 Modul 5 : Algoritma Percabangan 1 ................................................................................... 23 Modul 6 : Algoritma Percabangan 2 ................................................................................... 26 Modul 7 : Algoritma Perulangan 1 ..................................................................................... 28 Modul 8 : Algoritma Perulangan 2 .................................................................................... 32 Modul 9 : Array dimensi tunggal ....................................................................................... 36 Modul 10 : Array dimensi banyak ...................................................................................... 40 Modul 11 : String ................................................................................................................ 44 Modul 12 : Pengenalan Fungsi ........................................................................................... 50 Modul 13 : Fungsi Lanjut ................................................................................................. 54 Modul 14 : File Header ..................................................................................................... 55 iii
  4. 4. BAB 1 PENGANTAR ALGORITMA A. Pengertian Algoritma Algoritma berasal dari nama penulis buku Arab yaitu Abu Ja'far Muhammad ibnu Musa Al- Khuwarizmi. Algoritma Langkah-langkah yang logis dan terstruktur untuk menyelesaikan suatu masalah Algoritma merupakan suatu : a. Tahapan-tahapan untuk mencapai hasil. b. Tahapan itu bisa berarti proses. c. Hasil itu bisa berarti produk. Algoritma juga merupakan suatu : 1. Susunan yang terurut dan logis dalam menyelesaikan masalah. 2. Setiap masalah sangat dimungkinkan memiliki proses penyelesaian yang berbeda. 3. Perbedaan penyelesaian terhadap suatu masalah dipengaruhi oleh kemampuan dan pengetahuan seseorang terhadap masalah yang dihadapi Ciri-ciri Algoritma yang baik adalah : a. Ditulis secara berurutan b. Tidak ada yang bermakna “ganda” (ambiguous) c. Penyelesaiannya “Berhingga” atau ada titik akhir. Identifikasi masalah : Dengan disadari atau tidak disadari dalam kehidupan kita sehari-hari banyak halhal rutinitas yang dikerjakan secara terurut, misalnya bagaimana cara manusia berpakaian, bagaimana cara manusia mandi, bagaimana cara manusia memasak nasi, dan lain-lain. Tentu setiap orang memiliki cara pandang dan langkah urutan yang berbeda dalam menggunakan pakaian secara lengkap. Itulah algoritma. Banyak masalah-masalah dimasyarakat yang sebenarnya adalah suatu algoritma tetapi tidak berhubungan sama sekali atau diselesaikan atau dikerjakan dengan menggunakan bantuan komputer, seperti contoh yang telah disebutkan diatas. Asalkan kita dapat menyusun dengan benar dan logis urutan-urutan menurut norma yang ada maka kita sebenarnya telah menyusun algoritma. Perhatikan contoh dibawah ini, bagaimana anda menyusun urutan yang logis dalam memasak mie instan dengan berbagai variasi pelengkapnya. 1
  5. 5. Gambar 1. Mie Rebus Telor Gambar 2. Mie Goreng Udang Sambal Jawaban dari gambar diatas, tentu anda memiliki tata cara tersendiri untuk menghasilkan masakan terbaik dari sisi tampilan maupun rasa. Dengan bahan dasar yang sama tetapi menghasilkan bentuk yang berbeda tentunya dalam proses pembuatannya memiliki urutan yang berbeda-beda. Jika anda menggunakan urutan dan tata cara yang sama tentunya anda tidak menggunakan urutan yang logis untuk menghasilkan masakan terbaik. Itulah algoritma. B. Kaitan Algoritma dan Komputer Suatu algoritma dapat diselesaikan dan diwujudkan dengan menggunakan bantuan komputer. Lantas komputer yang seperti apa? yaitu : a. Komputer yang bisa memahami keinginan manusia. b. Komputer yang bisa memahami bahasa manusia. c. Komputer yang bisa menterjemahkan bahasa manusia dengan bahasa komputer. d. Komputer yang bisa berfungsi sebagai bahasa penterjemah. e. Bahasa penterjemah ini dimaksudkan untuk menterjemahkan bahasa yang dibuat oleh manusia dengan bahasa yang dipahami oleh mesin komputer. 2
  6. 6. Bahasa Penterjemah Orang mengatakan istilah penterjemah disini dengan istilah “Compiler”. Di dunia pemrograman komputer, istilah compiler ini sudah tidak asing lagi, hal ini karena compiler menjadi sarana utama untuk menterjemahkan bahasa program dengan bahasa mesin. Compiler sudah melekat kepada merk bahasa program yang telah disediakan (produksi) oleh perusahaan besar. Contoh-contoh bahasa program yang banyak beredar dimasyarakat, diantaranya : C. Cara Penyelesaian Masalah dengan Komputer Untuk menyelesaikan masalah hingga pemanfaatan komputer, dapat dilihat pada bagan dibawah ini Identifikasi Detail Masalah Algoritma Program Komputer Hasil / Solusi 3
  7. 7. BAB 2 NOTASI ALGORITMA Sebelum menjelaskan tentang notasi algoritma, perlu ada penjelasan terkait dengan algoritma, bahwa algoritma itu memiliki ciri dan sifat tertentu. Ciri-ciri algoritma adalah :  Ada input  Ada proses  Ada output  Memiliki instruksi-instruksi yang jelas dan tidak ambigu Sifat Algoritma adalah :  Tidak menggunakan simbol atau sintaks dari suatu bahasa pemrograman  Tidak tergantung pada suatu bahasapemrograman  Notasi-notasinya dapat digunakan untuk seluruh bahasa manapun  Algoritma lebih bersifat general. Pada dasarnya suatu algoritma dapat ditulis menggunakan 2 cara yaitu A. Diagram Alir ( Flowchart) Suatu gambar dengan simbol yang spesifik menjelaskan tentang aliran logika dari suatu masalah untuk menghasilkan solusi. Setiap simbol dihubungkan dengan suatu garis panah. Beberapa simbol yang sering digunakan seperti tabel dibawah ini B. Pseudo-code Pseudo-code berarti menyerupai kode. Maksud kode adalah elemen-elemen dalam bahasa pemrograman komputer seperti simbol aritmatika, perintah input dan output tetapi bahasa yang digunakan adalah bahasa yang mudah dipahami secara universal dan lebih ringkas. Kode-kode ini merupakan penjelasan cara menyelesaikan suatu masalah. Contoh masalah 1 : Sequence 4
  8. 8. Mencari nilai Luas persegepanjang Algoritma : Untuk mendapatkan nilai luas persegipanjang, pertama tentukan nilai panjang dan lebarnya. Kemudian hitunglah (kalikan) dua nilai tersebut. Hasil perkaliannya merupakan nilai luas persegipanjang. Penyelesaikan dengan pseudo-code : 1. Input panjang 2. Input lebar 3. Hitung luas  panjang * lebar 4. Print luas Penyelesaikan dengan Flowchart : Mulai Input panjang Input lebar Luas = panjang * lebar Output Luas Selesai Contoh masalah 2 : Percabangan Apa yang dilakukan ketika mengendarai kendaraan dalam persimpangan lampu traffic signal ? jika Green berarti Go jika tidak Green berarti Stop. Algoritma : Untuk melakukan GO atau STOP sangat tergantung nilai Signalnya. Jika Signal berisi Green maka actionnya GO. Jika bukan Green maka Actionnya STOP. Penyelesaikan dengan pseudo-code : 1. Read Signal 2. If Signal is Green then Set Action GO Else Set Action STOP 3. Print Action Penyelesaikan dengan Flowchart : 5
  9. 9. Contoh masalah 3 : Perulangan Mencetak angka dari sederatan angka 1 sampai dengan 99 ? Algoritma : Pertama lakukan inisialisasi terhadap sebuah variable dgn angka 0, kemudian tambahkan variable tersebut dgn 1 sehingga nilai variable tersebut bertambah 1. Kemudian cetaklah nilai variable tersebut. Lakukan pengecekan apakah nilai variable tersebut sudah mencapai 100? Jika belum maka lakukan lagi perintah penambahan nilai 1 terhadap variablenya. Jika sudah mencapai seratus maka aliran selesai. Penyelesaikan dengan pseudo-code : 1. Inisialisasi nilai X dengan 0 2. Tambahkan nilai X dengan 1 3. Print X 4. If X=100 then kembali ke langkah no 2 Mulai Inisialisasi X  0 Tambahkan X  X + 1 Output X Ya X=1 00 tidak Selesai 6
  10. 10. BAB 3 PENGENALAN PEMROGRAMAN C 1.1 Pengantar Program merupakan serangkaian instruksi yang dissusun untuk menyelesaikan sebuah masalah dengan menggunakan komputer. Program juga merupakan perwujudan atau implementasi dari penyusunan algoritma baik dalam bentuk flowchart maupun pseudo-code kedalam bahasa pemrograman tertentu. Bahasa C merupakan perkembangan dari bahasa BCPL yang dikembangkan oleh Martin Richards pada tahun 1967. Selanjutnya bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut bahasa B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar tahun 1970-an di Bell Telephone Laboratories Inc. (sekarang adalah AT&T Bell Laboratories). Bahasa C pertama kali digunakan di computer Digital Equipment Corporation PDP-11 yang menggunakan system operasi UNIX. Hingga saat ini penggunaan bahasa C telah merata di seluruh dunia. Hampir semua perguruan tinggi di dunia menjadikan bahasa C sebagai salah satu mata kuliah wajib. Selain itu, banyak bahasa pemrograman populer seperti PHP dan Java menggunakan sintaks dasar yang mirip bahasa C. Oleh karena itu, kita juga sangat perlu mempelajarinya. 1.2 Editor Bahasa C / C++ Dipasaran tersedia berbagai produk untuk editor Bahasa C seperti : Turbo C, C Free, Codeblock, atau Dev C++, dan lain-lain. Contoh editor C-Free 1.3 Penulisan Program Bahasa C Program Bahasa C tidak mengenal aturan penulisan di kolom tertentu, jadi bisa dimulai dari kolom manapun. Namun demikian, untuk mempermudah pembacaan program dan untuk keperluan dokumentasi, sebaiknya penulisan bahasa C diatur sedemikian rupa sehingga mudah dibaca, mudah dalam penelusuran baris program. Bagan inti dari Bahasa C++ adalah : 7
  11. 11. Proses pembentukan file EXE. 1.4 Tipe Data 8
  12. 12. Tipe data dan Operator Tipe data Operator Tipe data Var 2 Tipe data Var hasil integer Integer float Float Float Float Float Var 1 Integer Integer Float +-* / sqrt +-* / sqrt +-* / sqrt 1.5 Variable Variabel adalah suatu pengenal (identifier) yang digunakan untuk mewakili suatu nilai tertentu di dalam proses program. Berbeda dengan konstanta yang nilainya selalu tetap, nilai dari suatu variable bisa diubah-ubah sesuai kebutuhan. Nama dari suatu variable dapat ditentukan sendiri oleh pemrogram dengan aturan sebagai berikut: 1. Terdiri dari gabungan huruf dan angka dengan karakter pertama berupa huruf. 2. Bahasa C bersifat case-sensitive artinya huruf besar dan kecil dianggap berbeda. Jadi antara nim, NIM dan Nim dianggap berbeda, 3. Tidak boleh mengandung spasi. 4. Tidak boleh mengandung symbol-simbol khusus, kecuali garis bawah (underscore). Yang termasuk symbol khusus yang tidak diperbolehkan antara lain : $, ?, %, #, !, &, *, (, ), -, +, = dsb 5. Panjangnya bebas, tetapi hanya 32 karakter pertama yang terpakai. Contoh penulisan variabel yang benar : NIM, nim, nama_mhs, f3098, f4, nilai. Contoh penamaan variable yang salah: %nilai_mahasiswa, 80mahasiswa, rata-rata, nama mhs, awas! Contoh Deklarasi Variable : int x,y; float a,b char huruf double x long int x Contoh Inisialisasi variabel int jumlah = 10; char kata = ‘a’; float a = 10.5; 1.6 Konstanta Konstanta merupakan suatu nilai yang tidak dapat diubah selama proses program berlangsung. Konstanta nilainya selalu tetap. Konstanta harus didefinisikan terlebihdahulu di awal program. Konstanta dapat bernilai integer, pecahan, karakter dan string. Contoh konstanta : 50; 13; 3.14; 4.50005; ‘A’; ‘Bahasa C’. 9
  13. 13. Contoh Konstanta bernama const float PHI = 3.141592; const int MAX = 15; Deklarasi konstanta juga bisa menggunakan preprocessor #define. Contohnya: #define PHI 3.14 #define nim “0111500382” 1.7 Contoh Program #include <iostream.h> void main(){ //deklarasi variable sesuai tipe datanya int x; float y; char z; double w; //Inisialisasi atau memberi nilai awal kepada variable x = 10; y = 9.45; z = 'C'; w = 3.45E+20; //Menampilkan kalimat dan nilai ke layar monitor Cout<<”Nilai dari x adalah "<< x; Cout<<”Nilai dari y adalah "<< y; Cout<<”Nilai dari z adalah "<< z; Cout<<”Nilai dari w adalah "<< w; } 10
  14. 14. BAB 4 ALGORITMA SEQUENCE (RUNTUNAN) Dalam algoritma runtunan (sequence) bahwa setiap pernyataan dikerjakan secara berurutan sesuai dengan urutan penulisannya. Sebuah instruksi dilaksanakan setelah instruksi sebelumnya selesai dilaksanakan sehingga urutan instruksi menentukan keadaan akhir algoritma. Hal-hal yang menjadi menjadi perhatian dalam sequence adalah  Tiap aksi dikerjakan satu persatu  Tiap aksi dilakukan tepat sekali saja, tidak ada aksi atau baris perintah yang diulang-ulang  Urutan aksi yang dilaksanakan pemrosesan sama dengan urutan aksi sebagaimana yg tertulis di dlm algoritmanya  Akhir dari aksi, merupakan akhir algoritma. Contoh runtunan Diberikan 2 buah gelas, A dan B; gelas A berisi air berwarna merah, gelas B berisi air berwarna biru. Pertukarkan isi kedua gelas itu sedemikian sehingga gelas A berisi air berwarna biru dan gelas B berisi air berwarna merah seperti ilustrasi tabung dibawah ini : Tentunya anda tidak bisa melakukan seperti dibawah ini Tuangkan air dari gelas A kedalam gelas B Tuangkan air dari gelas B kedalam gelas A Caranya : Kita siapkan satu buah gelas C untuk menampung sementara air dari gelas A sebelum dipindah ke gelas B Algoritma yang benar adalah  Tuangkan air dari gelas A kedalam gelas C  Tuangkan air dari gelas B kedalam gelas A  Tuangkan air dari gelas C kedalam gelas B Contoh Soal : Soal 1 Menghitung Luas dan Keliling Lingkaran 1. Algoritma mencari nilai Akar dan nilai Pangkat dari suatu bilangan adalah  Masukkan nilai suatu bilangan X  Masukkan nilai suatu bilangan Y  Hitung akar adalah sqrt(X)  Hitung pangkat adalah pow(X, Y)  Cetak akar dan pangkat 11
  15. 15. 2. Pseudocode mencari nilai Akar dan nilai Pangkat dari suatu bilangan adalah Deklarasi X, Y : int Akar, pangkat : float; Deskripsi Input (X) Input (Y) akar  sqrt(X) pangkat  pow(X,Y) Print (akar) Print (pangkat) 3. Flowchart mencari nilai Akar dan nilai Pangkat dari suatu bilangan adalah Mulai Input X, Y akar <- sqrt( X) pangkat <- pow( X,Y) Cetak akar, pangkat Selesai Soal 2 Menghitung Konversi Suhu dari Celcius menjadi Reamur dan Fahrenheit 1. Algoritma mencari nilai konversi suhu adalah  Masukkan nilai suhu Celsius  Hitung konversiFahrenheit adalah 9 * C / 5 + 32  Hitung konversiReamur adalah 4 * C / 5  Cetak konversiFahrenheit dan konversiReamur 2. Pseudocode mencari nilai Akar dan nilai Pangkat dari suatu bilangan adalah Deklarasi C : int konversiFahrenheit, konversiReamur : float; Deskripsi Input (C) konversiReamur  4 * C / 5 konversiFahrenheit  9 * C / 5 + 32 Print (konversiReamur) Print (konversiFahrenheit) 12
  16. 16. 3. Flowchart mencari nilai Akar dan nilai Pangkat dari suatu bilangan adalah Mulai Input C konversiReamur  4 * C /5 konversiFahrenheit  9 * C/5 +32 Cetak konversiReamur konversifahrenheit Selesai Soal 3 Menghitung jarak antara dua titik 1. Algoritma nilai jarak antara dua titik adalah  Masukkan titik koordinat X1 dan Y1  Masukkan titik koordinat X2 dan Y2  Hitung jarak adalah sqrt (pow((X1- X2),2) + pow((Y1 – Y2),2))  Cetak jarak 2. Pseudocode nilai jarak antara dua titik adalah Deklarasi X1,X2,Y1,Y2: int Jarak : float; Deskripsi Input (X1,X2, Y1, Y2) Jarak  sqrt (pow((X1- X2),2) + pow((Y1 – Y2),2)) Print (jarak) 13
  17. 17. 3. Flowchart nilai jarak antara dua titik adalah Mulai Input X1, X2, Y1, Y2 Jarak  sqrt (pow((X1- X2),2) + pow((Y1 – Y2),2)) Cetak jarak Selesai Soal 4 Menghitung simpangan baku 1. Algoritma nilai simpangan baku dari 3 buah data adalah  Masukkan data pertama, kedua dan ketiga X1, X2, dan X3  Hitung Xrata 3 data tersebut (X1 + X2 + X3) / 3  Hitung SimpanganBaku adalah sqrt ((pow((X1-Xrata),2) + pow((X2-Xrata),2) + pow((X3-Xrata),2) ) / 3 )  Cetak SimpanganBaku 2. Pseudocode nilai simpangan baku adalah Deklarasi X1,X2,X3 : int Xrata, SimpanganBaku : float; Deskripsi Input (X1,X2, X3) Xrata  (X1 + X2 + X3) / 3 SimpanganBaku  sqrt ((pow((X1-Xrata),2) + pow((X2-Xrata),2) + pow((X3-Xrata),2) ) / 3 ) Print (SimpanganBaku) 14
  18. 18. 3. Flowchart nilai simpangan baku adalah Mulai Input X1, X2, X3 Xrata  (X1 + X2 + X3) / 3 SimpanganBaku  sqrt ((pow((X1-Xrata),2) + pow((X2-Xrata),2) + pow((X3-Xrata),2) ) / 3 ) Cetak SimpanganBaku Selesai Implementasi coding program C++ // Latihan 1 #include <math.h> #include<iostream.h> void main() { int x,y; float akar,pangkat; cout<<"Nilai Akar dan Pangkatn"; cout<<"=================================== n"; cout<<"Bilangan Basis ="; cin>>x; cout<<"Bilangan Pemangkat ="; cin>>y; akar = sqrt(x); pangkat = pow(x,y); cout<<"Nilai Akar dari "<<x <<" adalah "<<akar<<"n"; cout<<"Nilai pangkat dari "<<x <<" dan "<<y<<" adalah "<<pangkat<<"n"; } 15
  19. 19. // Latihan 2 #include<iostream.h> void main() { int C; float F,R; cout<<"Bilangan Celcius =";cin>>C; R = 4 * C / 5; F = 9 * C / 5 + 32; cout<<"Nilai Konversi ke Reamur adalah "<<R<<"n"; cout<<"Nilai Konversi ke Fahrenheit adalah "<<F<<"n"; } // Latihan 3 #include<iostream.h> #include<math.h> void main() { int X1,X2,Y1,Y2; float jarak; cout<<"Jarak titik (X1,Y1) dengan (X2,Y2) n"; cout<<"=================================== n"; cout<<"Titik Koordinat X1 =";cin>>X1; cout<<"Titik Koordinat Y1 =";cin>>Y1; cout<<"Titik Koordinat X2 =";cin>>X2; cout<<"Titik Koordinat Y2 =";cin>>Y2; jarak = sqrt (pow((X1- X2),2) + pow((Y1 - Y2),2)); cout<<"Jarak antara titik koordinat 1 dan 2 adalah "<<jarak<<"n"; } 16
  20. 20. // Latihan 4 #include<iostream.h> #include<math.h> void main() { int X1,X2,X3; float Xrata, SB; cout<<"Simpangan Baku dari 3 buah data n"; cout<<"=================================== n"; cout<<"Data ke 1 =";cin>>X1; cout<<"Data ke 2 =";cin>>X2; cout<<"Data ke 3 =";cin>>X3; Xrata = (X1+X2+X3) / 3; SB= sqrt ((pow((X1-Xrata),2)+pow((X2-Xrata),2)+pow((X3-Xrata),2) ) / 3 ); cout<<"X rata-rata adalah "<<Xrata<<"n"; cout<<"Simpangan Baku adalah "<<SB<<"n"; } 17
  21. 21. BAB 5 ALGORITMA PERCABANGAN 1 Percabangan merupakan proses penyeleksian kondisi yang menyebabkan satu atau lebih statement/perintah akan diproses atau dapat juga menyebabkan satu atau lebih statement/perintah tidak diproses, tergantung dari hasil kondisi yang diseleksinya. Untuk mengecek suatu ekspresi (kondisi) dapat digunakan pernyataan If ..... atau If......else atau Nested If atau Switch Dalam algoritma percabangan / seleksi/ pemilihan anda dituntut untuk memahami operator relational seperti dalam tabel dibawah ini Operator < <= > >= == != Arti Kurang dari Kurang dari sama dengan Lebih dari Lebih dari sama dengan Sama dengan Tidak sama dengan Contoh If (x < y) : Apakah x kurang dari y If ( x <= y) : Apakah x kurang dari sama dengan y If (x > y) : Apakah x lebih dari y If (x >= y) : Apakah x lebih dari sama dengan y If (x = = y) : Apakah x sama dengan y If ( x != y) : Apakah x tidak sama dengan y Bentuk dasar dari percabangan Kondisi Yes No Statement 1 Statement 2 Contoh : Kondisi : kondisi yang ditest untuk menentukan apakah statemen akan dikerjakan Statemen : statemen-statemen yang akan dikerjakan jika kondisi bernilai true / false jika kondisi bernilai True maka Statement 1 di eksekusi jika kondisi bernilai false maka Statement 2 di eksekusi 18
  22. 22. Contoh : Menampilkan bilangan genap apabila bilangan yang di input habis di bagi 2. IF (bilangan % 2 == 0) cout(“Bilangan Genap”) IF (bilangan % 2 != 0) cout(“Bilangan Ganjil”) Algoritmanya :     Menginput nilai pada variabel ‘Bilangan’ Jika (Bilangan habis dibagi 2) maka kerjakanbaris 3; jika tidak kerjakan baris 4 Menampilkan/mencetak “Bilangan Genap” selesai Pseudo-code input(Bilangan) if (Bilangan % 2 == 0) “Bilangan Genap” Flowchart mulai Input bil yes Bil % 2 = 0 no selesai 19 Output “Bilangan Genap”
  23. 23. Bagaimana algoritmanya jika flowchart diatas diubah menjadi flowchart seperti gambar dibawah ini mulai Input bil yes Bil % 2 = 0 Output “Bilangan Genap” no output “Bilangan Ganjil” selesai Bagaimana pula jika flowchart menjadi seperti gambar dibawah ini mulai Input Bil yes Bil % 2 = 0 no Hasil =”Bilangan ganjil” Output Hasil selesai 20 Hasil =”Bilangan genap”
  24. 24. Latihan 1. Dibaca dua buah bilangan yang membedakan apakah A > B, apabila lebih besar maka berkomentar “Benar” 2. Dibaca dua buah bilangan yang membedakan apakah A < B, apabila lebih kecil maka berkomentar “Salah” 3. Apabila tinggi seseorang > 160cm, dikategorikan “Manusia Melar” 4. Apabila yang dimasukkan angka > 5, maka Y = angka*10+100 5. Apabila nilai ujian < 60, maka “Tidak Lulus” 6. Jika Total Belanja > 5jt, maka mendapat diskon 5% dari total belanja 7. Menentukan bilangan yang dimasukkan adalah bilangan genap 8. Apabila Total Belanja < 100.000, maka “Tidak Mendapatkan Diskon”. [Total Belanja = Quantity Barang*Harga Brg] 9. Menentukan tahun yang dimasukkan adalah tahun kabisat 21
  25. 25. BAB 5 ALGORITMA PERCABANGAN 2 Dalam percabangan yang kedua ini, akan dibahas tentang cabang-cabang dari percabangan (Nested if) serta dibahas juga tentang switching. A. Nested If Nested if disebut juga dengan pernyataan bersarang. Jika didalam suatu ”pernyataan if ” memunculkan suatu ”pernyataan if” yang baru maka yang demikian itu disebut dengan nested if. bentuk flowchart dasar dari nested if dapat dilihat pada gambar dibawah ini. Gambar ini menjelaskan bahwa suatu Nested if hanya dapat dieksekusi jika ”pernyataan if” nya menghasilkan kondisi benar atau nilai kebenaran TRUE No yes No yes No Bentuk programnya, seperti dibawah ini : If (employed==’y’) { If (recentGrad ==’y’) { cout<<”you are the top”; } else { cout<<”you must be recent college”; } } 22 yes Nested If
  26. 26. else { cout<<”you must be employed to qualify ”; } Bentuk nested if yang lain adalah Contoh Nested If Problema masalah Diketahui bahwa waktu komputer disimpan dalam format 24 jam. Anda diminta untuk mencetak waktu dalam format AM/PM Penyelesaian dengan algoritma : 1. Tentukan Jam 2. Tentukan Menit 3. if Jam sama dengan 0 then Cetak 12 Else If jam diantara 1 dan 12 then Cetak jam Else Cetak jam – 12 4. Cetak tanda titik “.” 5. Cetak menit 6. if jam kurang dari 12 then Cetak “AM” Else Cetak “PM” 23
  27. 27. Flowchartnya adalah B. Switch Perintah SWITCH merupakan pernyataan yang dirancang untuk menangani pengambilan keputusan yang melibatkan sejumlah pilihan alternatif yang diantaranya untuk menggantikan pernyataan IF bertingkat. Perintah yang digunakan untuk mengimplementasikan struktur multi alternative. Statement switch akan menyeleksi kondisi yang diberikan kemudian membandingkan hasilnya dengan konstanta-konstanta yang ada di case. Apabila hasil dari kondisi sama dengan nilai dari konstanta tertentu, misalnya konstanta2, maka yang akan diproses adalah statement yang ada pada case konstanta2 sampai ditemui statement break. Jika semua konstanta yang dibandingkan tidak ada yang sama, maka yang diproses adalah statement yang berada di default. Ada 2 macam switch :  Swicth tunggal  Swicth bersarang Bentuk Flowchart Switch Tungg al : 24
  28. 28. “Untuk kasus yang lebih dari dua kasus, struktur CASE dapat menyederhanakan kasus IF..THEN..ELSE yang bertingkat-tingkat” Format penulisan switch tunggal: switch (switch-expression) { case value1: statement(s) 1; break; case value2: statement(s) 2; break; … case valueN: statement(s) N; break; default: statement(s) for default; } Contoh penulisan switch di program : cin<<X; switch (X) { case 1: cout>>"Nilainya 65"; break; case 2: cout>>"Nilainya 70"; break; case 3: cout>>"Nilainya 80"; break; case 4: cout>>"Nilainya 90"; break; default: cout>>"Tidak ada nilainya"; } C. Latihan 1. Mencari jumlah hari dari suatu bulan tertentu. Sebagai catatan : bulan 4, 6, 9 11 jumlah hari 30. Bulan 2 tergantung tahunnya ( 28/29 hari) 2. Dalam acara orientasi studi, seorang peserta harus mencari tandatangan. Tandatangan dosen dinilai 3, tandatangan mahasiswa senior yang panitia dinilai 2, tandatangan karyawan dan mahasiswa senior lain 1. Peserta dinyatakan lulus bila berhasil mendapatkan nilai 80 atau lebih, mendapat hukuman ringan bila < 80 tapimasih lebih dari 60, selain itu mendapat tugas berat 3. Apabila memasukkan 1 maka “Senin”, kalau tidak apabila memasukkan 2, maka “Selasa” kalau tidak apabila memasukkan 3 maka “Rabu”, kalau tidak apabila memasukkan 4 maka “Kamis”, kalau tidak apabila memasukkan 5 maka “Jum’at”, kalau tidak apabila memasukkan 6 maka “Sabtu”, kalau tidak apabila memasukkan 7 maka “Minggu”, kalau tidak semuanya maka “Kode Dari Hari Tidak Ada”. 25
  29. 29. 4. Membuat menu sebagai berikut : Menu : A : Menghitung Kubus 1. Isi Kubus 2. Luas Kubus B : Menghitung Luas Lingkaran 5. Pembelian yang mencapai nilai tertentu akan mendapatkan suatu potongan pembelian yang besarnya sesuai tabel berikut : Total Pembelian (Rp) Potongan(Rp) 0 – 1000 100 1001 – 10.000 500 10.001 – 30.000 2.000 > 30.000 4.000 Hitung besarnya potongan dan nilai yang harus dibayar untuk masing-masing 6. Bulan februari mempunyai jumlah hari yang unik. Jumlah harinya ada yang 28 hari dan ada yang 29 hari. Bulan februari mempunyai jumlah hari 29 bila berada pada tahun kabisat (tahun yang habis dibagi empat). Pada tahun yang bukan kabisat jumlah harinya 28. Jika dibaca sebuah penanggalan pada tanggal, bulan februari dan tahunnya, tentukan tanggal pada hari berikutnya. Contoh : Input : Tanggal Sekarang : 28 - 2 – 1999 Output : Tanggal Besok : 1 - 3 - 1999 ======================================= Input : Tanggal Sekarang : 28 - 2 – 1996 Output : Tanggal Besok : 29 - 2 - 1996 26
  30. 30. BAB 6 PERULANGAN 1 A. Pengertian Perulangan/Repeatition digunakan untuk mengulang sebuah statement atau sekumpulan statement sesuai dengan kondisi yang terjadi (diwakili oleh loop control variabel) yang diberikan. Biasanya loop control variable ini menggunakan operator logika atau relational. Nilai dari Loop control variable digunakan untuk mengotrol perulangan. Perulangan ini merupakan kontradiksi dengan runtunan / sequence. Dalam algoritma sequence, tidak diperkenankan suatu baris program yang telah diekseksi dilakukan eksekusi kembali. Tetapi dalam algoritma perulangan dimungkinkan terjadi pengulangan eksekusi terhadap baris program yang telah dieksekusi sebelumnya. Eksekusi baris program yang ada diatasnya tersebut terjadi jika kondisinya menuntut hal tersebut. Bentuk umum perulangan seperti gambar dibawah ini yes no Ada beberapa istilah dalam sistem perulangan yaitu : 1. Loop mengulang langkah-langkah dalam sebuah program 2. Body Of Loop Perintah-perintah yang diulang dalam loop 3. Loop Control Variable Variabel yang nilainya digunakan untuk mengontrol perulangan Dua macam Loop Control Variabel 1. Counter digunakan jika jumlah perulangan menjadi syarat perulangan. Contoh : mencari suku ke-n dari deret : 1+3+5+.. 27
  31. 31. 2. Event jika kejadian tertentu menjadi syarat dihentikannya perulangan Contoh : menampilkan suku-suku deret : 1+3+5+.. sampai yang ditampilkan >200 Syarat Loop Control Variabel 1. Diinisialisasi dilakukan diluar Loop, dalam arti sebelum masuk Loop 2. Selalu di Test setiap kali body loop dijalankan, nilai loop control variabel dicek apakah memenuhi syarat perulangan. Jika ya, maka di ulang, jika tidak berhenti 3. Di Update nilai dari loop control variabel harus diupdate agar proses perulangan dapat berhenti. Letaknya di dalam Body Of Loop Contoh flowchart Perulangan mulai Generate angka random: X Input angka : A Output “kebesaran Y A< X N Y A> X N Output “well done” selesai 28 Output “kekecilan”
  32. 32. B. Perulangan : While Perulangan dapat diimplementasikan dengan menggunakan kata tercadang WHILE. Bentuk flowchart dari while seperti digambar dibawah ini Dari gambar diatas, dapat dijelaskan sebagai berikut : Bagian pernyataan pada while tidak akan dijalankan sama sekali, apabila kondisi yang pertama bernilai salah. Untuk setiap pengulangan yang dikerjakan maka kondisinya akan di cek. Jika kondisinya masih benar, proses loop dilakukan lagi (kembali ke baris diatasnya) dan jika salah maka proses loop berahir. C. Contoh Perulangan Contoh :Menampilkan nilai Z dari nilai awal Z = 2 dan pengulangan akan dihentikan setelah variabel Z mencapai nilai 12. Algoritmanya: 1. Z  2 2. Selama (Z <= 12) kerjakan baris 3 dan 4, kalau nilai Z sudah mencapai > 12 maka kerjakan baris 5 3. Menampilkan/mencetak nilai z 4. Z Z + 1 5. Selesai Flowchartnya : 29
  33. 33. Manual alur logikanya sebagai berikut nilai awal z = 2 kondisi true: z=2  z=2+1 z=3  z=3+1 z=4  z=4+1 dst z=12  z=12+1 kondisi false: z=13  z=13+1 Programnya : void main() { int Z = 12; while (Z<=12) { cout<<Z; Z++ // Z = Z + 1; } } D. Kondisi Boolean Contoh : Menampilkan tulisan “Mahasiswa UIN Hebat” pengulangan akan dihentikan jika didalam perulangan terdapat status = false. Algoritmanya: 1. status  true 2. Selama (Z = true) kerjakan baris 3 dan 4, kalau nilai status sama dengan false maka kerjakan baris 5 3. Menampilkan/mencetak “Mahasiswa UIN Hebat” 4. status false 5. Selesai 30
  34. 34. Flowchartnya : mulai Status  true N Status=true Y Output “mahasiswa UIN Hebat” Status  false selesai E. Latihan 1. Tampilkan angka 0 sampai dengan 100 dengan step 5 (mis: 0,5,10,15,… 100) 2. Menampilkan tulisan “Mahasiswa UIN Hebat” . didalam perulangan terdapat pertanyaan “Menampilkan tulisan kembali ?”. jika ada jawaban “Y” maka nilai Status = true, jika bukan jawaban “Y” maka nilai status=false. Pengulangan akan dihentikan hanya jika didalam perulangan terdapat status = false. 31
  35. 35. BAB 7 PERULANGAN 2 A. Perulangan FOR Perulangan/Repeatition FOR juga digunakan untuk mengulang sebuah statement atau sekumpulan statement sesuai dengan kondisi yang terjadi. Struktur perulangan for biasa digunakan untuk mengulang suatu proses yang telah diketahui jumlah perulangannya. Dari segi penulisannya, struktur perulangan for tampaknya lebih efisien karena susunannya lebih simpel dan sederhana. Sintak : for( initialization; test-condition; increment ) { Daftar Statement; } Keterangan :  Inisialisasi : pernyataan untuk menyatakan keadaan awal dari variabel kontrol.  test condition : ekspresi relasi yang menyatakan kondisi untuk keluar dari perulangan.  increment : pengatur perubahan nilai variabel kontrol. Contoh : Algoritma menampilkan ‘Halo’, sebanyak 10 kali” Algoritmanya : 1. x  1 2. Selama (x <=10) kerjakan baris 3 dan 4 3. Menampilkan/mencetak “Halo” 4. x  x+1 Flowchartnya : mulai x1 N x<=10 Y Output “Hallo” xx+ 1 selesai 32
  36. 36. Programnya : void main() { int x ; for (x=1; x<=10; x++) { cout<<”Hallo”; } } Contoh : Algoritma menghitung total nilai dan rata-rata terhadap data-data yang diinputkan berulang-ulang Algoritmanya : 1. Memasukkan nilai dari variabel N 2. Total  0 3. x = 1 4. Selama (x <= N) kerjakan baris 5 s.d. 7 5. Masukkan nilai dari variabel IsiData 6. Menghitung Total Total + IsiData 7. x x+1 8. Menghitung Rata2  Total / N 9. Mencetak/Menampilkan Total 10. Mencetak/Menampilkan Rata2 11. Selesai Flowchartnya : 33
  37. 37. Programnya : B. Perulangan For bercabang Perulangan for bercabang adalah adanya pernyataan for didalam sekelompok blok yang dieksekusi. Simak potongan program dibawah ini : void main() { Int i, j; for (i=1;i<=3; i++) { for (j=1; j<=i; j++) { cout<<i , j ; } } } Bagaimana algoritma dan flowchartnya ? 34
  38. 38. C. Perulangan While dan If Dalam perulangan while ini, terdapat pernyataan IF didalam blok pernyataannya. Perhatikan flowchart dibawah ini mulai done  true N done Y Input nilaiMTK NilaiMTK<60 Y N done  false selesai Programnya : void main() { bool done = true; while(done) { cout<< Nilai Matematika = "; cin>>x; if(x<60){ done = false; } } } D. Latihan Studi kasus : buatlah algoritma yang meniru pembacaan kata sandi (password) dari pirantii masukan keyboard. Sebelumnya Kata sandi disimpan dalam dalam yang telah ditetapkan(konstanta). Apabila kata sandi yang dibaca salah, maka pembacaan kata sandi boleh diulang maksimum 3 kali. 35
  39. 39. BAB 8 ALGORITMA FUNCTION A. Pengertian Function/fungsi adalah satu blok kode yang melakukan tugas tertentu atau satu blok instruksi yang dieksekusi ketika dipanggil dari bagian lain dalam suatu program. Bentuk Umum deklarasi fungsi : TipeNilaiBalik NamaFungsi (tipeparameter,....) Fungsi harus dideklarasikan terlabih dahulu sebelum didefiniskan, hal ini agar compiler bahasa pemrograman dapat mengetahui tentang identitas dari fungsi tersebut. Identitas tersebut yaitu jumlah dan tipe parameter yang diterima beserta nilai balik fungsi (bila ada). Dari bentuk definisi suatu fungsi maka akan langsung dapat diketahui tugas dan maksud dari fungsi tersebut, hal ini karena bentuk definisi fungsi itu menspesifikasikan tugas fungsi tersebut. Fungsi merupakan elemen utama dalam bahasa C karena bahasa C sendiri terbentuk dari kumpulan fungsi-fungsi. Dalam setiap program bahasa C, minimal terdapat satu fungsi yaitu fungsi main(). Fungsi banyak diterapkan dalam program-program C yang terstruktur. Keuntungan penggunaan fungsi dalam program yaitu program akan memiliki struktur yang jelas (mempunyai readability yang tinggi) dan juga akan menghindari penulisan bagian program yang sama. Dalam bahasa C fungsi dapat dibagi menjadi 2 :  fungsi pustaka atau fungsi yang telah tersedia dalam Program C Free/C++ fungsi ini terletak dalam file header (.h)  fungsi yang didefinisikan atau dibuat oleh programmer. B. Beberapa fungsi pustaka yang telah tersedia Fungsi Operasi String (tersimpan dalam file header “string.h”) strcpy() strlen() ari suatu string. strcat() strupr() Digunakan untuk mengubah setiap huruf dari suatu string menjadi huruf capital. 36
  40. 40. strlwr() Fungsi Operasi Karakter (tersimpan dalam header “ctype.h”) islower() Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kecil. isupper() Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan huruf kapital. per(char); isdigit() Fungsi akan menghasilkan nilai benar (bukan nol) jika karakter merupakan sebuah digit. Fungsi Operasi Matematik (tersimpan dalam header “math.h” dan “stdlib.h”) sqrt() ung akar dari sebuah bilangan. pow() Bentuk umum : pow(bilangan, pangkat); C. Membuat function sendiri Sintak tipe_data_fungsi nama_fungsi(parameter_fungsi1, parameter_fungsi2, . . ); Bentuk selengkapnya adalah tipe_data_fungsi nama_fungsi(parameter_fungsi, . .) { statement statement ………... } Keterangan :  tipe_data_fungsi, adalah tipe data yang akan dikembalikan/dihasilkan oleh function. Misalnya : int, char, float, void  nama_fungsi, adalah nama yang memungkinkan kita memanggil function. Misalnya : kali, bagi, kurang, hitung  parameter_fungsi(dispesifikasikan sesuai kebutuhan). Setiap parameter terdiri dari tipe data diikuti identifier, seperti deklarasi variable Misalnya: int x, int y, char z  statement, merupakan bagian badan suatu function. Dapat berupa instruksi tunggal maupun satu blok instruksi yang dituliskan diantara kurung kurawal {}. 37
  41. 41. Contoh membuat function #include <stdio.h> int addition(int a, int b); //deklarasi function main(){ int z; z = addition(5,3); cout<<z; return 0; } /*pendefinisian function*/ int addition(int a, int b) { int hasil hasil=a+b; return (hasil); } #include <stdio.h> int subtraction(int a,int b); int subtraction (int a, int b){ int r; r=a-b; return (r); } main (){ int x=5, y=3, z; z = subtraction (7,2); cout<<”The first result is "<< z; cout<<"The second result is "<< subtraction (7,2); cout<<"The third result is "<< subtraction (x,y); z= 4 + subtraction (x,y); cout<<"The fourth result is”<< z; return 0; } D.Function tanpa tipe (Kegunaan void) Deklarasi fungsi akan selalu diawali dengan tipe dari fungsi, yang menyatakan tipe data apa yang akan dihasilkan dari fungsi tersebut. Jika tidak ada nilai yang akan dikembalikan, maka dapat digunakan tipe void. 38
  42. 42. #include <stdio.h> void dummyfunction (void) { printf("I'm a function!!n"); } main (){ dummyfunction (); return 0; } E. Function Passing ( Pengiriman nilai parameter antar fungsi) Sintak Tipe_fungsi nama_fungsi(parameter_fungsi, parameter fungsi_2, dst…) Secara umum pengiriman parameter antar fungsi dibagi menjadi 2 :  Passing By Value, data yang dikirimkan berupa nilai dari variable. Misalnya ada sebuah fungsi yang mempunyai variable lokal A, kemudian dia memanggil fungsi lain dan menaruh variable A pada parameter fungsi yang baru dipanggil tersebut. Maka yang terjadi adalah fungsi yang baru tersebut mengcopy nilai A dan menaruh nilainya di variable lokalnya sendiri, misalnya ditaruh di B kemudian di proses.  Passing By Reference, data yang dikirimkan berupa alamat dari suatu variable. Misalnya ada sebuah variable lokal A dalam sebuah fungsi, kemudian alamat dari variable lokal A disimpan dalam variable pointer A_ptr dengan pernyataan A_ptr=&A, artinya A_ptr menunjuk ke Alamat A. Maka saat variable pointer A_ptr ini di passing ke fungsi lain, fungsi yang dipanggil itu dapat memodifikasi nilai dari variable A. Passing By Value #include <stdio.h> int main(void) { float A = 6.0, B = 10.0, C; float add_numbers (float, float); C = add_numbers (A, B); Cout<<" The Result is “<< C; return(0); } float add_numbers (float X, float Y) { float D; D = X + Y; return(D); } 39
  43. 43. Passing By Reference #include <stdio.h> int main(void) { float A = 6.0,B = 10.0, C; float *A_ptr, *B_ptr; A_ptr=&A; B_ptr=&B; C = add_numbers (A_ptr, B_ptr); cout<<”The Result is "<< C; return(0); } float add_numbers (float *ptr1, float *ptr2) { float D; D = *ptr1 + *ptr2; return(D); } 40
  44. 44. BAB 9 ARRAY Array/larik :  Maksud dari penggunaan Array dalam suatu pemrograman adalah untuk melakukan memanipulasi banyak nilai ke sekelompok variabe  Merupakan sebuah variabel yang menyimpan sekumpulan data yang memiliki tipe sama.  Array adalah kumpulan data bertipe sama dan bernama sama.  Setiap data tersebut menempati lokasi atau alamat memori yang berbeda-beda dan biasa disebut Elemen Array  Elemen array adalah variabel dalam array  Setiap elemen Array dapat diakses melalui indeks yang ada didalamnya  Indeks array pada C++ selalu berurutan dan dimulai dari 0  Variabel Array dideklarasikan dengan mencatumkan tipe dan nama variabel yang diikuti dengan banyaknya lokasi memori yang ingin dibuat. (Mis.: int c[5]; ) Contoh Array : A[1], A[2], A[3]…….. A[100], secara visual digambarkan sebagai berikut A A 1 2 3 1 125 2 211 3 356 99 100 99 145 100 250 A = Nama Array [1], [2]. [3]….[100] = index 125, 211, 356, 145,250 = variable dalam array 41
  45. 45. 42

×