ALGORITMA & PEMROGRAMAN CHAPTER : V DASAR ALGORITMA PEMGROGRAMAN X By : Ahmad Mardhani Chan, ST
1 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago MODUL INFORMATIKA MATERI 1 ALGORITMA & PEMROGRAMAN Apa itu algoritma? Agar memahami dengan lebih dalam apa itu algoritma, maka sebaiknya kita terlebih dahulu merujuk pada beberapa sumber di bawah ini. Pertama, menurut praktisi matematika dan komputer, Seymour Lipschutz dan Marc Lipson, pengertian algoritma adalah suatu daftar langkah demi langkah yang terhingga dari instruksi-instruksi yang terdefinisikan dengan jelas yang digunakan untuk memecahkan permasalahan tertentu. Kedua, dilansir dari Bitlabs, algoritma adalah instruksi yang ditujukan ke komputer agar dirinya bisa menyelesaikan tugas yang diberikan. Instruksi tersebut harus ditulis secara spesifik agar tugas bisa diselesaikan dengan benar, mulai dari istilah yang dipakai sampai dengan langkah-langkahnya. Ketiga, bersumber dari Tech Target, algoritma adalah prosedur atau formula untuk memecahkan masalah, yang dilakukan berdasarkan urutan tertentu. Sebuah program komputer dapat dilihat sebagai algoritma yang rumit. Dalam matematika dan ilmu komputer, algoritma biasanya berarti prosedur kecil yang memecahkan masalah berulang. Dari ketiga sumber di atas, dapat ditarik kesimpulan bahwa algoritma adalah semua susunan logis yang diurutkan berdasarkan sistematika tertentu dan digunakan untuk memecahkan suatu masalah. Fungsi algoritma Pada dasarnya fungsi utama dari algoritma adalah untuk memecahkan suatu masalah. Suatu algoritma pemrograman membawa keuntungan serta fungsi penting dalam aktivitas pembuatan program. Algoritma pada umumnya digunakan untuk membantu setiap orang yang ingin mengkonversikan sebuah permasalahan ke bahasa pemrograman. Dari fungsinya ini, algoritma adalah hasil dari pemikiran yang terkonsep sehingga perintah dalam algoritma dapat dilaksanakan oleh komputer lewat bahasa pemrograman. Beberapa yang perlu kamu ketahui terkait fungsi algoritma adalah sebagai berikut: • Membantu memecahkan suatu permasalahan dengan logika dan sistematis. • Memudahkan dalam membuat suatu program untuk penyelesaian masalah tertentu. • Dapat digunakan berkali-kali untuk menyelesaikan suatu permasalahan. • Membuat sebuah program yang rumit dan besar menjadi sederhana. • Mengatasi permasalahan yang ada secara urut. • Memecahkan program yang rumit sehingga memungkinan adanya perhitungan tingkat tinggi. • Menggunakannya secara berulang atau lebih dari satu kali penggunaan. • Memudahkan dalam tracking kesalahan karena alur kerjanya yang jelas.
2 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago • Memudahkan dalam memodifikasi program tanpa harus merubah dan mengganggu modul lainnya. • Memudahkan membuat program yang lebih rapi dan terstruktur sehingga lebih mudah dipahami dan dikembangkan. Perbedaan algoritma dengan program Beberapa orang sering kesulitan memahami pengertian algoritma dan sering menjadi salah interpretasi antara pengertian algoritma dan program. Pada nyatanya, keduanya memang berhubungan namun memiliki pemahaman yang berbeda. Berikut ini adalah perbedaan algoritma dengan program: 5 Ciri algoritma Menurut Donald E. Knuth, algoritma harus memiliki lima ciri penting yang saling berhubungan satu dengan lainnya. Adapun kriteria algoritma ini diantaranya sebagai berikut: 1. Finiteness (keterbatasan) Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas, dengan kata lain ada tujuan akhir yang dicapai, sehingga suatu program akan berhenti ketika tujuan akhir telah tercapai. Program yang tidak pernah berhenti mengindikasikan bahwa program tersebut berisi algoritma yang salah. 2. Definiteness (kepastian) Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous). Ada intruksiintruksi yang jelas dan juga tidak ambigu, sehingga tidak terjadi kesalahan di dalam menghasilkan output. 3. Input (masukan) Input ini merupakan suatu permasalahan yang dihadapi serta akan dicarikan solusinya. Algoritma ini mempunyai nol atau lebih input, yaitu besaran yang diberikan kepada algoritma untuk diproses. 4. Output (keluaran) Algoritma memiliki nilai nol atau lebih keluaran (output). Output ini tentunya harus berupa solusi atau penyelesaian dari suatu masalah. Output dapat berupa pesan atau besaran yang berhubungan dengan input. 5. Effectiveness (keefektivitasan) Algoritma harus sangkil (effective), setiap urutan atau langkah harus sesederhana mungkin, sehingga dapat dikerjakan dalam sejumlah waktu yang masuk akal.
3 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago PENULISAN ALGORITAMA Sebelum ditulis dalam bahasa pemrograman, solusi suatu persoalan dapat dituliskan dalam beberapa cara, yaitu sebagai berikut : 1. Menggunakan bahasa sehari-hari berupa teks yang terstruktur, yang dituangkan dalam urutan langkah. 2. Menggunakan Flowchart, yaitu ditulis dengan simbol-simbol yang mewakili urutan instruksi pengambilan keputusan, pengulangan, atau uraian kejadian pemecahan masalah. 3. Menggunakan Pseudocode, yaitu dituliskan mendekati perintah bahasa pemrograman yang akan digunakan sebagai alat implementasi program. Ciri penting algoritma 1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas. 2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas). 3. Algoritma memiliki nol atau lebih masukkan. 4. Algoritma memiliki nol atau lebih keluaran. 5. Algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakandalam waktu yang masuk akal). A. FLOWCHART Flowchart / diagram alir terdiri dari sekumpulan simbol dimana setiap simbol menggambarkan sebuah arti tertentu. Flowchart ini lebih banyak digunakan karena bentuknyayang sederhana dan memberikan gambaran alur visual. Tetapi flowchart sangat menyulitkan untuk program yang panjang dan rumit karena menjadi sulit untuk dibaca. Flowchart juga lebihmudah untuk memahami alur eksekusi, yang lebih sulit diabstraksikan ketimbangpseudocode. A.1. Fungsi Flowchart Flowchart digunakan untuk menganalisis, mendesain, mendokumentasikan sebuah proses atau program di berbagai bidang, bukan hanya program komputer. Secara khusus, flowchartberfungsi untuk membantu menggambarkan proses apa yang sedang terjadi dan yang akan terjadi dari sebuah simbol dan tanda penghubungnya. Selain itu, flowchart ini mampu memperjelas sebuah alur dari suatu sistem. Dalam konteks modul ini, flowchart dipakai untuk mendeskripsikan alur eksekusi sebuah program. A.2. Tujuan Flowchart Flowchart dibuat untuk: (a) menggambarkan urutan atau tahapan dari penyelesaian masalah; (b) alur eksekusi sebuah program Flowchart membantu analis dan pemrogram untuk menuangkan solusi persoalan ke dalam bagianbagian yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian apa.
4 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago A.3. Jenis flowchart Flowchart sendiri terdiri dari lima jenis, masing-masing jenis memiliki karakteristik dalam penggunaanya. Berikut adalah jenis-jenisnya: 1. Flowchart dokumen Pertama ada flowchart dokumen (document flowchart) atau bisa juga disebut dengan paperwork flowchart. Flowchart dokumen berfungsi untuk menelusuri alur form dari satu bagian ke bagian yang lain, termasuk bagaimana laporan diproses, dicatat, dan disimpan. 2. Flowchart program Selanjutnya kita akan membahas flowchart program. Flowchart ini menggambarkan secara rinci prosedur dari proses program. Flowchart program terdiri dari dua macam, antara lain: flowchart logika program (program logic flowchart) dan flowchart program komputer terinci (detailed computer program flowchart). 3. Flowchart proses Flowchart proses adalah cara penggambaran rekayasa industrial dengan cara merinci dan menganalisis langkah-langkah selanjutnya dalam suatu prosedur atau sistem. 4. Flowchart sistem Yang keempat ada flowchart sistem. Flowchart sistem adalah flowchart yang menampilkan tahapan atau proses kerja yang sedang berlangsung di dalam sistem secara menyeluruh. Selain itu flowchart sistem juga menguraikan urutan dari setiap prosedur yang ada di dalam sistem. 5. Flowchart skematik Terakhir ada flowchart skematik. Flowchart ini menampilkan alur prosedur suatu sistem, hampir sama dengan flowchart sistem. Namun, ada perbedaan dalam penggunaan simbol-simbol dalam menggambarkan alur. Selain simbol-simbol, flowchart skematik juga menggunakan gambargambar komputer serta peralatan lainnya untuk mempermudah dalam pembacaan flowchart untuk orang awam. A.4. Siklus dalam Flowchart Siklus dalam flowchart adalah siklus input-proses-output atau sering disebut siklus IPO. SiklusIPO dapat kita analogikan sebagai komponen hardware komputer. Komponen input seperti keyboard, mouse, scanner, dan sebagainya dapat kita andaikan sebagai input (penerimaan suatu perintah atau data yang akan diproses). A.5. Simbol Flowchart NO LAMBANG NAMA FUNGSI 1 Flowline Menunjukkan arah proses. Setiap flowline menghubungkan dua blok. 2 Terminal / Terminator Menyatakan permulaan atau akhir suatu program 3 Input / output Menunjukkan proses memasukkan atau mengeluarkan data eksternal.
5 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago NO LAMBANG NAMA FUNGSI 4 Manual Input Data atau informasi ke dalam sebuah sistem 5 Process Menyatakan suatu proses yang dilakukan oleh komputer 6 Decision Menunjukkan suatu kondisi tertentu yang akan menghasilkan beberapa kemungkinan : ya atau tidak, atau kondisi lain yang dituliskan dalam alur percabangan keluarnya. 7 Connector Menyatakan sambungan dari proses ke proses lainnya dalam halamanyang sama 8 Predefined Process (subprogram) Menyatakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi harga awal 9 Document Mencetak keluaran dalam bentuk dokumen (melalui printer) 10 Predefined Process Menunjukkan proses bernama yang didefinisikan di tempat lain. 11 Manual Operation Langkah proses yang tidak otomatis 12 Off-page Connector Konektor di luar halaman digunakan saat target berada di halaman lain. 13 Delay Setiap periode penundaan yang merupakan bagian dari proses 14 Multi-document Beberapa dokumen 15 Display Tampilan mesin
6 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago B. Pseudocode Apa itu Pseudocode? Pseudocode secara harfiah berarti ‘kode semu’. Maksudnya, pseudocode adalah sebuah cara penulisan program yang informal dan dapat dibuat dengan kaidah yang ditentukan sendiri. Dengan kata lain, pseudocode merupakan urutan logika yang bertujuan untuk dipahami manusia dengan mudah. Tentu Anda cukup kesulitan bukan untuk bisa membaca dan memahaminya? Bahkan, pada bahasa tingkat tinggi seperti JavaScript dan bahasa Python yang tujuannya untuk mudah dibaca manusia pun, rasanya masih cukup sulit dipahami bagi rata-rata orang. Apalagi dalam bahasa pemrograman, Anda tidak diperbolehkan membuat kesalahan atau keluar dari aturan. Tapi, dengan algoritma pseudocode, justru sebaliknya. Anda dapat membuat aturan yang Anda tentukan sendiri.
7 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago Pseudocode bukanlah bahasa pemrograman, jadi tidak masalah bahasa apa yang Anda gunakan untuk menulis. Umumnya, pseudocode ditulis dengan bahasa Inggris karena lebih mudah ketika mengkonversikannya ke bahasa pemrograman. Tapi juga tidak masalah jika Anda menggunakan bahasa Indonesia.
8 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago Selain itu, Anda tidak perlu terlalu memikirkan perihal titik koma, kurung kurawal, sintaks untuk fungsi lainnya. Yang terpenting, Anda harus mampu menjelaskan alur yang Anda pikirkan dan lakukan. A.1. 4 Fungsi Pseudocode Kira-kira, apa sih fungsi pseudocode? Pseudocode berfungsi sebagai outline yang membantu programmer dalam memahami alur dan logika untuk pemecahan masalah sebelum diubah menjadi script bahasa pemrograman. Dengan pseudocode, Anda tidak perlu membanjiri otak dengan sintaks pengkodean yang rumit. Jika dijabarkan, fungsi pseudocode dalam coding adalah: 1. Sebagai Media Dokumentasi Dokumentasi akan menjadi patokan agar proses perancangan program sesuai dengan yang diharapkan. Dokumentasi menjadi aspek yang penting dalam membangun proyek, karena dokumentasi akan diperlukan bagi programmer untuk dapat menelusuri logika program, jika kedepannya terjadi error atau bug. 2. Sebagai Titik Tengah Antara Flowchart dan Kode Bagi pengembang pemula, seringkali agak kesulitan menerjemahkan alur diagram atau flowchart ke kode pemrograman. Nah, adanya pseudocode ini menjadi titik tengah yang baik, karena dapat membuat transisi berjalan efektif dan efisien. 3. Sebagai Jembatan Komunikasi Maksud pseudocode sebagai jembatan yaitu, seorang programmer bekerja bersama orang-orang dari divisi lain. Seperti mitra bisnis, manajer, desainer, dan sebagainya. Nah, dengan menggunakan pseudocode, maka programmer akan lebih mudah menjelaskan mekanisme kode. Sehingga, komunikasi menjadi lebih efektif. 4. Mempercepat Proses Penyelesaian Hadirnya pseudocode ini tidak lain adalah untuk mempercepat pembuatan sistem. Tidak seperti bagan alur yang memiliki format tersendiri dan strukturnya yang relatif sulit dipahami langsung, pseudocode justru menggunakan struktur sederhana dan mudah dibaca. Hal ini juga membuatnya lebih mudah untuk dimodifikasi. Maka untuk proses konversi ke bahasa pemrograman tidak harus menunggu waktu lama, sebab alur algoritma sudah digambarkan dengan lebih jelas. Itulah beberapa fungsi pseudocode. Intinya, pseudocode adalah metode awal yang memudahkan programmer dalam menuliskan kode-kode program, sehingga meminimalisir kendala saat proses pengkodean.
9 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago A.2. Struktur Pseudocode yang Umum Digunakan Walau tidak memiliki ketentuan pasti, akan tetapi pseudocode tetap memiliki struktur penulisan. Struktur ini menjadi acuan agar pembuatan algoritma dapat berjalan dengan baik. Adapun struktur yang biasanya digunakan pseudocode terdiri dari: • Judul Program – Pada bagian ini, Anda bisa menulis judul algoritma pseudocode guna menunjukan algoritma program apa yang sedang dikerjakan; Contoh : Program <NamaProgram> maka ditulis, a. Program Menentukan_Keliling_Persegi b. Program Menghitung_luas_persegi_panjang • Deklarasi – Pada bagian deklarasi, Anda bisa mengisinya dengan keterangan seperti variabel atau konstanta yang digunakan dalam penulisan algoritma; Contoh : Deskripsi <namaVariabel: <tipe_data>; maka ditulis a. Deskripsi Var sisi, keliling : integer; b. Deskripsi var panjang, lebar, luas : integer; • Implementasi – Di bagian ini berisi proses atau perintah atau langkah dari algoritma. Dengan kata lain, bagian ini merupakan inti dari pseudocode. Anda bisa menjabarkan proses-proses di sini; seperti proses kondisional (if/else), perulangan (for), sampai operasional (penjumlahan, pengurangan, dan lainnya). Contoh : Implementasi (berisi inti dari Algoritma tersebut); maka ditulis a. Implementasi Read(sisi); keliling ← isi*4; Write (keliling); b. Implementasi Read(panjang); Read(lebar); luas ← panjang*lebar; Write (luas);
10 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago Algoritma pseudocode untuk menentukan keliling persegi Judul: Program Menentukan_Keliling_Persegi Deklarasi Var sisi,keliling: integer; Implementasi Read(sisi); Keliling ← sisi*4; Write(keliling); Algoritma pseudocode untuk menentukan luas persegi panjang Judul: Program Menghitung_luas_persegi_panjang Deklarasi var panjang, lebar, luas : integer; Implementasi Read(panjang); Read(lebar); luas ← panjang*lebar; Write (luas); A.3. Notasi Pseudocode Notasi adalah semacam kode yang dipakai untuk memudahkan komunikasi. Notasi ini akan berguna untuk memahami fungsi-fungsi dan algoritma yang ada di sebuah kode pemrograman. Sebenarnya, algoritma pseudocode juga tidak memiliki ketentuan pasti dalam menentukan notasi. Meski begitu, ada beberapa notasi yang banyak digunakan, seperti: • INPUT – Notasi ini dimaksudkan untuk memasukkan sesuatu, seperti navigasi klik atau button; • OUTPUT – Ini adalah hasil atau keluaran dari input dan proses. Output akan menampilkan sesuatu; • WHILE – Ini merupakan proses yang terjadi dalam sistem. While termasuk dalam bentuk perulangan; • IF – THEN – ELSE – Notasi ini masuk dalam kategori bentuk percabangan; • CASE – Bentuk generalisasi dari IF – THEN – ELSE • REPEAT – UNTIL – Sebuah keputusan (decision), di mana bagian ini pilihan dibuat Nanti di bagian contoh pseudocode, Anda bisa lihat kalau notasi biasanya ditulis lebih menjorok agar mudah ditandai. Oh ya, notasi pseudocode di atas hanya contoh umumnya saja, ya. Tentunya Anda bisa mencocokkan sendiri notasi sesuai kebutuhan dalam perancangan sistem. Tips Memulai Membuat Pseudocode Meski tidak ada standar untuk sintaks pseudocode, ada baiknya Anda memahami tips dasar dalam menulis pseudocode, di antaranya seperti:
11 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago 1. Gunakan Teks Editor – Sebaiknya Anda gunakan teks editor daripada aplikasi pengolah kata seperti Microsoft Word. Mengapa? Karena teks editor akan membuat pseudocode lebih terlihat rapi, runut, dan ringkas; 2. Tulis Tujuan Proses – Dengan menuliskan satu atau dua baris untuk menjelaskan tujuan kode, Anda akan dapat dengan mudah melakukan pencarian dokumen pseudocode ini jika nantinya dibutuhkan. Selain itu, Anda juga bisa menghemat waktu, karena Anda tidak perlu lagi menjelaskan tujuan program kepada setiap orang yang melihat pseudocode Anda; 3. Tulis Hanya Satu Pernyataan per Baris – Setiap pernyataan dalam pseudocode Anda harus berisi satu tindakan saja untuk komputer. Tujuannya, agar Anda dapat fokus pada satu pemecahan masalah; 4. Gunakan Spasi Antar Blok – Anda bisa menggunakan spasi di antara “blok” teks agar membantu komponen pseudocode tetap rapi; 5. Gunakan Huruf Besar Untuk Perintah (Jika Diperlukan) – Anda mungkin perlu menggunakan huruf besar untuk perintah kunci seperti pada bahasa pemrograman aslinya. Misalnya, perintah “if” dan “then”, Anda ubah menjadi “IF” dan “THEN”.; 6. Tulis Dengan Terminologi Sederhana – Perlu Anda ingat, bahwa pseudocode ditujukan untuk demonstrasi ke orang awam. Misalnya, pelanggan atau divisi non-teknis. Itu kenapa tulislah pseudocode dengan bahasa yang mudah dimengerti; 7. Simpan Pseudocode Dengan Urutan yang Benar – Meskipun pseudocode sederhana, tapi Anda tetap harus menyimpan setiap bagian pseudocode sesuai urutan eksekusinya. Supaya ketika Anda ingin menggunakan pseudocode-nya lagi, Anda tidak keliru menentukan urutannya; 8. Jadilah kreatif – Pseudocode hadir untuk menjelaskan setiap proses secara lengkap. Pernyataan pseudocode sebenarnya mendekati pada pernyataan bahasa sehari-hari. Beberapa programmer malah menulis pseudocode tanpa menggunakan variabel, tapi menjelaskan apa yang harus dilakukan program. Misalnya, menulis nomor rekening, nama hari/bulan, atau jumlah transaksi; 9. Gunakan Notasi Standar Pemrograman – Meskipun tidak ada standar untuk pseudocode, tapi alangkah baiknya jika Anda menggunakan standar notasi bahasa pemrograman tertentu. Sebab, ini akan akan lebih memudahkan programmer lain untuk memahami langkah Anda. 10. Atur Setiap Bagian-Bagian (Sections) – Jika pseudocode Anda memiliki bagian-bagian (Sections) yang besar, maka Anda bisa menggunakan tanda kurung atau simbol lain untuk menyimpan semuanya. Ini digunakan agar pembaca tidak kebingungan saat melihat dan memahami pseudocode Anda; 11. Periksa Kembali Keterbacaan Pseudocode – Terakhir, jika Anda telah menyelesaikan pseudocode-nya, Anda harus mengecek apakah pseudocode yang telah Anda buat sudah jelas dan mudah dipahami. Lalu Anda juga bisa pastikan bahwa logika dalam pseudocode tersebut bisa dikonversi ke dalam bahasa pemrograman.
12 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago A.4. Contoh Pseudocode Setelah Anda memahami apa itu pseudocode sampai cara menulisnya, Anda tentu sudah sedikit banyak memiliki gambaran tentang pseudocode ini. Tapi, bagi Anda yang masih kurang puas terkait contoh pseudocode, maka Anda bisa lihat contohnya di bawah ini : Agar kamu lebih paham lagi mengenai pseudocode, mari kita lihat contoh-contoh algoritma pseudocode berikut ini : 1. Mencari luas lapangan sepak bola Judul Program luas_lapangan_sepak_bola Deskripsi var panjang, lebar, luas : integer; Implementasi panjang ← 100; lebar ← 64; luas ← panjang*lebar; print luas; 2. Menentukan sebuah bilangan adalah ganjil atau genap Judul Program ganjil_genap Deskripsi var bilangan : integer Implementasi READ bilangan IF (bilangan modulus 2 = 0) THEN PRINT “genap” ELSE PRINT “ganjil” ENDIF 3. Menghitung mundur Judul: Program hitung_mundur Deskripsi var bilangan : integer Implementasi FOR (bilangan ← 5; nilangan > 0; bilangan--) PRINT bilangan ENDFOR
13 DPK Kelas X SMK MULTI KARYA by : Mc’ Niago 4. Menghitung luas segitiga Judul: Program hitung_luas_segitiga Deskripsi var luas, alas, tinggi : integer; Implementasi alas ← 25 ; tinggi ← 30 ; luas ← ½*alas*tinggi write (luas) 5. Menghitung luas lingkaran Judul: Program hitung_luas_lingkaran Deklarasi var phi, float; var r, luar, integer; Implementasi phi ← 22/7 ; read (r) ; (diinput user) luas ←phi*r*r write (luas);