Vous êtes sur la page 1sur 94
J». i a SS LeoRITMA EM ROC PASCAL Jan al Daftar Isi Apakak Algoritma dan Pemrograman Itu? ... Masalah 12 Algoritm: 1.3 Sejarah Algoritma 4.4. Program dan Pemrograman .. 15 Belajar Memprogram dan Belajar Bahasa Pemrograman 1.6 Notasi Algoritmik 1.7 Pemrograman Prosedural . 2 24 22 3. Notasi Algoritmik emeeene 31 Pseudo-code .. . 32 Struktur Teks Algoritma.. 324 Bagian Judul .. : 3.2.2 Bagian Deklarasi 3.2.3 Bagian Algoritma .. Daftarist 25 25 26 26 28 31 asrees 33 34 4 4a 42 43 44 45 46 5 5a 52 53 6. 61 62 63 65 66 67 68 69 Translasi Notasi Algoritmik ke Bahasa Pascal dan C.... Kompilator Bahasa Pascal dan C... Tipe, Operator, dan Ekspresi. 4aa 412 413 414 415 Pengisian Nilai ke dalam Nama Peubah 4.5.11 Pengisian Nilai Secara Langsung .. 45.12, Pembacaau. 45.2 Ekspresi 4.5.2.1 Ekspresi Aritmetik. 4.5.2.2 Ekspresi Relasional.. 45.2.3 Ekspresi String 4.5.3 Menuliskan Nilai ke Piranti Keluaran. ‘Tabel Trauslasi Notasi Algoritmik Pengisian Nilai, Pembacaan, dan Penulisan ke dalam Notasi Bahasa Pascal dan C Pemilihan.....-. Menganalisis Kasus. 86 mt 2 113 6 47 123, 125, 130 ay — Agora dan Pemrograman 6.10 Tabel Translasi Notasi Algoritmik Struktur Pemilihan ke dalam Notasi Pascal dan C. 7 Pengulangan ....... 74 Struktur Pengulangan.. 7.2 Pernyataan FOR. 7-3 Pernyataan WHILE. 7-4 Pernyataan REPEAT. 7-5 WHILE atau REPEAT?. 7.6 Tabel Translasi Notasi Algoritmik Struktur ke Notasi Pascal dan C 7-7 Membaca/Menulis dari/ke Arsip ...... 8. Contoh-contoh Pemecahan Masalah I. 9. Pengantar Pemrograman Modular. 9.1 Contoh Pemrograman Modular.. 9.2 Keuntungan Pemrograman Modular... 10. Prosedur. oe 10.1 Pendefinisian Prosedur. 10.2 Pemanggilan Prosedur.. 10.3 Nama Global, Nama Lokal, dan Lingkup . 10.4 Parameter. 10.4. 10.4.2 10.4.3 Parameter Masukan/Keluaran.. 10.4.4 Program dengan Prosedur atau Tanpa Prosedur? 10.4.5 Prosedur dengan Parameter atau Tanpa Parameter.. 10.4.6 Parameter Masukan atau Parameter Kelvaran 10.5 Translasi Notasi Algoritmik Prosedur ke dalam Notasi Bahasa Paseal dan C.. - a1, Fuugsi at m2 413 Pemanggilan Fungs 314 Prosedur atau Fungsi? 415 Contoh-coutoh Tambahan. 1.6 Translasi Notasi Algoritmik untuk Fungsi ke dalam Notasi Bahasa Pascal dan Bahasa C. 155 156 157 163 168 172 178 387 195 236 239 242. 249 249 249 250 267 267 268 274 280 282 285 12, wa 122 123 12.4 125 12.6 12.7 12.8 14. 14. 14.2 14.3 144 145 15. 151 15.2 153 15.4 15.6 15.7 Larik Apakah Larik Itu? Mendeklarasikan Larik.. Cara Mengacu Elemen Lari Pemrosesan Larik. , 12.4.1 Ukuran Efektif Larik. 12.4.2 Menginisialisasi Larik. 12.4.3 Mengisi Elemen Larik dengan Pembacaan. 303 12.4.4 Mencetak Elemen-elemen Larik.. 305 12.4.5 Menghitung Nilai Rata-rata.. 305 12.4.6 Kapan Menggunakan Larik? 306 12.4.7 Mencari Nilai Maksimum Larik... 308 12.4.8 Mencari Nilai Minimum Larik. 313 12.4.9 Menyalin Latik sone nnnnnene 315 12.4.10 Menguji Kesamaan Dua Buah Larik Larik Bertipe Terstruktur Bekerja dengan Dua Buah Larik.. ‘Translasi Notasi Algoritmik Larik ke dalam Notasi Bahasa Pascal dan Bahasa C. 322 String sebagai Larik Karakter.. 333 Contoh-contoh Pemecahan Masalah Il... 341 Matriks.. sees Definisi Matriks.. Pendeklarasian Matriks. Pemrosesan Matriks ‘Translasi Notasi Algoritmik Matriks ke dalam Bahasa PASCAL dan Bahasa C.. 372 Contoh-contoh Tambahan. ~ 376 Algoritma Penearian .. 395 Spesifikasi Masalah Pencarian 396 Algoritma Pencarian Beruntun 397 Algoritma Pencarian Bagidua.. senna 410 Pencarian pada Larik Terstruktur. 416 Pakai yang Mana? Algoritma Pencarian Beruntun atau Pencarian Bagidua? 419 Pencarian pada Larik yang’ a9 Algoritma Pencarian Beruntun dan Pencarian ‘Bagidua dalam Bahasa PASCAL dan Bahasa C 420 Tigra Pmograrion 16. Algoritma Pengurutan, 427 16.1 Masalah Pengurutan.. 428 16.2 Algoritma Pengurutan .. 429 16.3 Algoritma Pengurutan Apung..... 431 16.4 Algoritma Pengurutan Seleksi 436 16.5 Algoritma Pengurutan Sisip.. 447 16.6 Algoritma Pengurutan Shell... 451 16.7 Penggabungan Dua Buah Lark Terurut 454 16.8 Pengurutan pada Larik Terstruktur 457 16.9 Algoritma Pengurutan dalam Bahasa PASCAL dan 458 17. Pemrosesan Arsip Beruntun 467 17.1 Definisi Arsip Beruntun.. 468 172. Pendeklarasian Arsip didalam Algoritma 469 17.3 Fungsi Pustaka untuk Arsip Beruntun 47. 17.4 Membuat Arsip Beruntun, 475 17.5 Membaca Arsip Beruntun. 476 17.6 Contoh Kasus Pengelolaan Data Mahasiswa 481 17.7 Menyalin Arsip . 487 17.8 Menggabung Dua Buah Arsip .. 489 17.9 Pemutakhiran Arsip 493, 17.10 Arsip Beruntun dalam 497 47.11 Arsip sebagai Parameter Prosedur 505 17.12 Arsip Teks. — 18. 18.1 38.2 Definisi Rekursif. 183 18.4. Rekursif dengan List Berkait = 543, 18.5 Bagaimanakah Program Rekursif Bekerja? 551 38.6 Kapan Tidak Menggunakan Rekursif? 559 18.7. Menghilangkan Rekursifitas. 561 18.8. Rekursif dalam Bahasa PASCAL dan C. 569 49. Contoh-contoh Pemeeahan Masala IT sss Daftar Pustaka ee 501 a Apakah Algoritma dan Pemrograman Itu? Pemrograman sudah menjadi kegiatan yang sanget penting di era eknologi informasi. Program yang berjalan di komputer desktop, laptop, telepon genggam, PDA, dan sebagainya, tidak tercipta begitu saja, tetapi ditulis melalui proses analisis dan perancangan yang cermat. Sebuah program komputer pada dasarnya mengimplementasikan suatu algoritma. Dengan kata lain, algoritma adalah ide dibalik program komputer apa pun, Tetapi, tahukah Anda apakah algoritma itu? Apakah program? Bab awal ini akan mengantarkan pembaca kepada pemahaman yang baik mengenai algoritma dan pemrograman. Beberapa ilustrasi dalam kehidupan schari-hari diberikan untuk lebih memperjelas pemahaman kedua istilah ini ini, Pada bab-bab selanjutnya pembaca akan mempelajari lebih mendalam dasar- dasar menulis algoritma dan pemrograman. 1.1 Masalah Manusia. hidup dengan segala masalah yang melingkupinya. Hidup pada @asarnya adalah serangkaian aktivitas menyelesaikan masala. ‘Dalam Bahasa Indonesia, istiah lain yang sepadan pengertiannya dengan kata “masalah” adalah “persoalan” (problem). Di dalam buku kita tidak membedakan makna kedua istilah ini, oleh Karena itu’ kita akan menggunakan kedua istilah ini secara bergantian, kadang-kadang kita sebut ‘masalah kadang-kadang kita namakan persoalan, Menurut [NEAQ6], masalah adalah pertanyaan atau tugas yang kita cari jawabannya. “Bab 1—Apakah Aigorima dan Pemrograman tii? zg Contoh beberapa masalah dalam kehidupan sehari-hari misalnya: 1. Diberikan setumpuk kartu pasien di sebuah tempat praktek dokter yang tersusun acak. Setiap kartu mempunyai nomor registrasi pasien. Bagaimana mengurutkan kartu-kartu tadi berdasarkan nomor urut pasien sehingga tersusun dengan nomor kecil di atas dan nomor besar di bawah (Gambar 1.1)? Jawaban dari masalah ini adalah barisan kartu pasien yang sudah terurut dari kecil ke besar. 2. Diberikan sebuah daftar yang berisi nama-nama mahasiswa baru yang diterima di sebuah perguruan tinggi. Daftar tersebut hanya berisi nomor peserta ujian yang diterima. Carilah apakah seorang calon mahasiswa ‘baru yang nomor peserta ujiannya diketahui terdapat di dalam daftar tersebut? Jawaban dari masalah ini adalah “ya” jika nomor tersebut ditemukan di dalam daftar, atau “tidak’ jika tidak terdapat di dalamnya, 3. Diberikan daftar nama pejabat baru beserta jumlah kekayaannya. Tentukan pejabat mana yang mempunyai kekayaan paling besar? Jawaban dari masalah ini adalah nama pejabat yang mempunyai kekayaan paling besar. ‘Tentu masih banyak lagi masalah yang muncul di bidang pekerjaan seseorang. Seorang pustakawan mempunyai masalah dalam mengelola daftar buku yang dipinjam, seorang statistikawan mempunyai masalah ‘mengolah hasil jajak pendapat, seorang mahasiswa tingkat akhir mempunyai masalah dalam menganalisis hasil eksperimen, dan sebagainya. Gambar 4.1. Mengurutkan kartu, masalah seharihad yang banyak kita temui (Sumber: www Infodesign.com.au). Beberapa masalah yang muncul di dalam dunia nyata banyak memiliki kemiripan substansi. Misalnya masalah mengurutkan tumpukan kartu yang tersusun acak secara substansi sama dengan masalah mengurutkan sekumpulan nilai ujian agar terurut menaik atau menurun. Begitu pula masalah meneari nama pejabat yang mempunyai kekayaan terbesar secara substansi sama dengan masalah mencari nama siswa yang meraih nilai wjian nasional tertinggi. Oleh karena itu, secara generik kita sering aay igri a Perro gran mendeksripsikan masalah-masalah yang muncul di dunia nyata dengan ‘menggunakan beberapa ukuran (parameter), misalnya sebagai berikut: 1. [Masalah pengurutan] Diberikan sebuah senarai (list) S yang terdiri dari nbuab nilai bilangan bulat. Bagaimana mengurutkan n buah nilai tersebut sehingga terurut secara menaik? 2, (Masala pencarian} Tentukan apakah suatu nilai x terdapat di dalam sebuah senarai S yang beririn buah bilangan bulat! 3. (Masalah mencari elemen terbesar] Diberikan senarai (list) S yang terdiri dari n buah nilai bilangan bulat. Carilah elemen terbesar di dalam senarai tersebut, Setiap masalah umumnya mengandung satu atau lebih parameter yang dinyatakan di dalam masalah tersebut. Misalnya pada contoh masalah pengurutan di atas, $ dan n adalah parameter masalah. Parameter ini di dalam peruyataan masalah belum diberi nilai spesifik, dan semua nilai paramete? merupakan masukan (input) untuk masalah tersebut. Setiap pemberian nilai untuk semua parameter masalah dinamakan instansiasi masalah (instance of a problem). Jawaban tethadap instansiasi masalah disebut solusi [NEA96]. Sebagai contoh, instansiasi masalah untuk masalah pengurutan adalah S=[15,4,8,11,2,10,19, 9 n=7 dan solusinya adalah barisan nilai terurut S = [2, 4, 8, 10, 11, 15, 19]. Gambar 1.2 memperiihatkan keadaan awal S dan keadaan akhir S sesudah diurutkan. Sebelum terurut: s]2]4]e}i}i] 15] 19 yong belum torurut(stas) dan yang sudah terurut menaik(bawah). 1.2. Algoritma Untuk masalah dengan instansiasi yang kecil, kita dapat menemukan solusinya dengan mudah dan cepat. Bagaimana kalau instansiasi masalah berukuran besar? Misalnya pada masalah pengurutan, jika n = 1000 jelas, tidak mudah mengurutkan data sebanyak itu. Oleh Karena itu, kita perlu Bab 1 ~ Apakah Aigoritma dan Pemrograman iu? menuliskan prosedur yang berisi langkah-langkah pengurutan sehingga prosedur tersebut dapat ‘dijalankan’ oleh sebuah pemroses (komputer, manusia, robot, dan sebagainya) untuk menghasilkan solusi setiap instansiasi masalah pengurutan. Kita katakan langkah-langkah pengurutan itu untuk memecehkan’masalah. Prosedur yang berisi langkah-langkah penyelesaian masalah disebut algoritma. Algoritma adalah urutan Jangkab-langkah untuk memecahkan suatu masalah, ‘Terdapat beberapa definisi lain dari algoritma - tetapi pada prinsipnya senada dengan definisi yang diungkapkan di atas ~ yang kita kutip dari berbagai literatur, antara lain: Algoritma adalah deretan langkah-langkah komputasi yang mentransformasikan data masukan menjadi keluaran [COR92]. Algoritma adalah deretan instruksi yang jelas untuk memecabkan masalah, yaitu untuk memperoleh keluaran yang diinginkan dari suatu masukan dalam jumlah waktu yang terbatas. (LEVo3]. Algoritma adalah prosedur komputasi yang terdefinisi dengan baik yang menggunakan beberapa nilai sebagai masukan dan menghasilkan beberapa nilai yang disebut keluaran. Jadi, algoritma adalah deretan Jangkah komputasi yang mentransformasikan masukan menjadi keluran {CORS9]. Mari kita tinjau kembali masalah mengurutkan Kartu. Jika kita mempunyai setumpuk kartu yang berjumlah n = 50 buah, maka secara tradisional Tangkah-langkah yang biasa dilakukan orang kalau mengurutkan Kartu adalah dengan mencari kartu bernomor terkecil lebih dabulu, lalu letakkan pada posisi pertama (atas). Selanjutnya, cari kartu dengan nomor terkecil berikutnya, alu letakkan di bawah kartu pertama. Begitnlah, kita mencari Kartu dengan nomor terkecil ketiga, keempat, dan seterusnya, sampai hanya tersisa satu kartu (kalau sudah tersisa satn kartu maka tidak perlu diurutkan lagi), dan kita memperoleh tumpukan kartu yang seluruh kartunya sudah terurut dari nomor kecil ke besar. Langkah-langkah pengurutan 50 buah kartu dapat kita tuliskan sebagai berikut (setiap langkah diberi nomor urut 1, 2, 3, dan seterusnya): 1. Cari kartu dengan nomor terkecil 2. Tempatkan kartu tersebut pada posisi paling atas 3. Cari kartu dengan nomor terkecil berikutnya |. Tempatkau karrtu tersebut di bawah kartu pertama 5. Cari kartu dengau uomor terkecil berikutnya 6. Tempatkan kartu tersebut di bawah kartu kedua aa ‘Aigoriima dan Pemrograman xx, Cari kartu dengan nomor terkecil berikutnya xxx.Tempatkan kartu tersebut di bawah kartu ke-48, (tersisa satu kartu lagi, tetapi tidak perln diurutkan lagi) Perhatikanlah bahwa sebenaruya di dalam rangkaian langkah-langkah di atas terjadi pengulangan dua langkah penting, yaitu (i) cari kartu dengan nomor terkecil, dan (ii) tempatkan kartu tersebut pada posisi yang tepat. Kedua langkah utama ini diulang berkali-kali sampai hanya tersisa sebanyak 1 Kartu saja (berarti jumlah pengulangan adalah sebanyak n = 50 - 1 = 49 kali). Maka, secara garis besar kita dapat menuliskan langkah-langkah mengurutkan n buah kartu sebagai berikut: 1. Cari Kartu dengan nomor terkecil di antara kartu yang tersisa. 2, Tempatkan kartu tersebut pada posisi yaug tepat. 3. Ulangi kembali dari langkah 1 sebanyak n ~ 1 kali. Langkah-langkah yang kita tuliskan di atas itulah yang disebut algoritma, Dikatakan bahwa kita telah menspesifikasikan algoritma pengurutan. Perhatikan bahwa langkah 1 dan 2 masih perlu lebih dirinci lagi. Bagaimana langkah-langkah mencari nomor terkecil? Bagaimana menempatkan nilai terkecil pada posisi yang scharusnya, apakah memerlukan proses pertukaran’ tempat dengan kartu yang lain? Hal ini akan kita bahasa di dalam Bab 2 nanti Dalam kebidupan sehari-hari kita banyak menemukan langkah-langkab pengerjaan sesuatu meskipun kita tidak menyebutnya sebagai algoritma: “Itu bukan algoritma, tapi cara melakukan sesuatu’. Contohnya resep membuat masakan (terdapat di dalam tabloid, majalah, atau buku resep masakan), panduan praktikum (terdapat di dalam buku modul praktikum), cara menggunting pola pakaian (terdapat di dalam majalah wanita), langkah-langkah mengaktifkan voucher pulsa ponsel (terdapat di belakang kartu prabayar), cara mencari saluran (ditulis di buku panduan TV), cara merakit barang elektronik, dan sebagainya. Contoh langkah-langkah pengerjaan di dalam resep masakan: 1. Tuangkan satu gelas santan ke dalam wajan. 2. Masukkan bumbu-bumbu yang sudah dihaluskan, aduk hingga merata. 3. Tambahkan garam, merica, dan kecap asin. 4. Masak dengan api sedang sambil diaduk. Contoh langkah-langkah pengerjaan di dalam praktikum kimia: 1. Siapkan tabung reaksi ukuran 100 ce 2. Teteskan 50 cc larutan H.So, ke dalam tabung. 3. Campurkan 20 ce larutan NaOH ke dalamnya, aduk hingga tereampur merata. Contoh langkah-langkah pengisian pulsa kartu prabayar: 1. Tekan #888 lalu tombol ( Pr Parograman Wu? 2, Tekan “2” untuk mulai memasukkan pulsa. 3. Masukkan 14 digit kartu prabayar 4. Akhiri dengan menekan tombol, # Meskipun kita tidak menyebntkan langkah-langkah pengerjaan itu sebagai algoritma, tetapi dalam konteks ini semua di atas adalah algoritma. Sekarang Anda sudah mulai mengerti bahwa sebuah algoritma mengerjakan sebuah proses. Secara umum, benda yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot, atau alat-alat mekanik/elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau mengeksekusi algoritma yang menjabarkan proses tersebut. Melaksanakan algoritma berarti mengerjakan langkah- langkah di dalam algoritma tersebut. Ibu-ibu yang mencoba resep suatu masakan akan membaca satu per satu langkah pembuatannya, lalu ia mengerjakan proses sesuai yang ia baca. > Setiap masalah mempunyai algoritma pemecahannya. Tugas kita sebagai pemecah masalah (problem solver) untuk mendeskripsikan Iangkah-langkah penyelesaiannya, Di bawah ini diberikan contoh masalah sederhana dalam kehidupan sehari-hari dan algoritma pemecahanuya. 1) Misalkan ada dua buah ember atau bejana yang berisi air (larutan) yang berwarna, sebut ember A dan B. Ember A berisi air yang berwarna merah, sedangkan ember B berisi air berwarna birn (Gambar 1.3). Volume air di dalam kedua ember sama. Bagaimana mempertukarkan isi kedua ember itu sedemikian sehingga nantinya ember A akan berisi air berwarna biru dan ember B berisi air berwarna merah. Ember A Kita tidak bisa langsung mempertukarkan air di dalam kedua ember tadi begitu saja sebab cara seperti itu menyebabkan terjadinya percampuran, Agar bisa dipertukarkan, kita memerlukan sebuah ember tambahan sebagai tempat -penampungan sementara. Misalkan tambahan tersebut adalah ember C. Dengan menggunakan ember C ini, algoritma mempertukarkan isi kedua buah ember adalah seperti algoritma berikut ini:

Vous aimerez peut-être aussi