ALGORITMA
Tujuan Praktikum :
Mahasiswa memahami pengertian apa itu algoritma.
Mahasiswa memahami perbedaan antara algoritma dan pemprograman
Mahasiswa memahami apa itu Algoritma kalimat
Mahasiswa memahami apa itu Flowchart
Mahasiswa memahami apa itu Algoritma pseudocode
1.1. Apakah Itu Algoritma
Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan dan mempunyai efek tertentu. Algoritma dapat dituliskan dengan banyak cara, mulai dari menggunakan bahasa alami yang digunakan sehari-hari, simbol grafik bagan alir, sampai menggunakan bahasa pemograman seperti bahasa C atau C++.
Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al- Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya
“Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur- angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
1.2. Definisi Algoritma
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma.
Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah
atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu.
Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.
1.3. Beda Algoritma Dan Program
Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa :
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada
sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan
membuat program menjadi kurang baik, demikian juga sebaliknya. Pembuatan algoritma mempunyai banyak keuntungan di antaranya:
Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Keuntungan menggunakan Algoritma adalah logika pemecahan masalah dapat dibuat bertingkat, mulai dari yang global sampai yang terperinci. Algoritma merupakan bentuk fleksibel untuk diterapkan ke berbagai bahasa pemrograman. Notasi penulisan Algoritma ada 3, yaitu:
1. Algoritma kalimat 2. Flowchart
3. Algoritma pseudocode 2.3.1. Algoritma Kalimat
Algoritma kalimat adalah langkah-langkah pemecahan masalah yang dituangkan dengan untaian kalimat deskriptif atau menggunakan bahasa yang biasa digunakan sehari-hari. Contoh:
PROGRAM persegi panjang. Program untuk menghitung luas persegi panjang, dengan menggunakan algoritma kalimat, yaitu:
1. Masukkan/input panjang dan lebar persegi panjang.
2. Hitung luas persegi panjang dengan rumus : Luas = Panjang x Lebar 3. Tampilkan luas persegi panjang.
Penggunaan algoritma kalimat dalam kehidupan sehari-hari seperti halnya, yaitu:
Ketika seseorang hendak menelpon, yaitu:
1. Mengangkat gagang telepon, dan mendengarkan nada panggil
2. Memutar nomor telepon yang dituju 3. Apakah ada jawaban ?
a. Jika ada jawaban, tanyakan apakah yang dituju ada ? a1. Jika ada, lakukan pembicaraan
a2. Jika tidak ada, titip pesan dan tutup pembicaraan b. Jika tidak ada jawaban, kerjakan langkah 4 4. Letakkan gagang telepon
Ketika seseorang hendak mengirim surat kepada teman, yaitu:
Mengirim surat kepada teman
1. Tulis surat pada secarik kertas surat.
2. Ambil sampul surat.
3. Masukkan surat ke dalam sampul.
4. Tutup sampul surat menggunakan perekat.
5. Jika kita ingat alamat teman tersebut, maka tulis alamat pada sampul surat.
6. Jika tidak ingat, lihat buku alamat, kemudian tulis alamat pada sampul surat.
7. Tempel perangko pada surat.
8. Bawa surat ke kantor pos untuk diposkan.
2.3.2. Flowchart
Flowchart berasal dari kata flow berarti aliran, chart berarti gambar, diagram atau simbol-simbol. Flowchart merupakan diagram alir yang mengambarkan langkah- langkah pemecahan masalah dengan menggunakan notasi grafik atau gambar atau simbol.
Tujuan Membuat Flowchat, adalah:
Menggambarkan suatu tahapan penyelesaian masalah
Secara sederhana, terurai, rapi dan jelas
Menggunakan simbol-simbol standar
Simbol-Simbol Flowchart, terdiri dari gambar-gambar seperti berikut ini dapat dilihat pada tabel 1.1, merupakan simbol flowchart yang umum digunakan. Untuk membuat suatu diagram alir, Anda dapat menggunakan perangkat lunak seperti Visio, yED graph editor, gliffy Diagram, Cacoo, Creately, Endraw max, SmartDraw, Apache OpenOffice Draw, Inkscape, Pencil, atau bahkan word (melalui AutoShapes) di lingkungan windows.
Tabel 1.1. Simbol Flowchart Umum
Simbol Nama Fungsi
Terminator Permulaan / akhir program Garis alir (Flow
line) Arah aliran program
Preparation Proses inisialisasi / pemberian harga awal
Proses Proses perhitungan / proses pengolahan data
Input / Output Proses input / output data, parameter informasi
Predefined Process (Sub Program)
Permulaan sub program / proses menjalankan sub program.
Decision
Perbandingan pernyataan, penyeleksian data yang memberikan
pilihan untuk langkah sebelumnya On Page
Connector
Penghubung bagian flowchart yang berada pada satu halaman
Off Page Connector
Penghubung bagian-bagian flowchart yang berada pada halaman
berbeda
Sebagai contoh sederhana, Anda diminta untuk melakukan perhitungan luas persegi
panjang dengan menggunakan komputer. Pada masalah ini Anda dapat menentukan
keluaran berupa luas dan masukan berupa panjang dan lebar. Setelah itu Anda harus menentukan bagaimana luas persegi panjang dihitung berdsarkan data panjang dan lebar.
Dengan logika sederhana, Anda dapat menghitung luas persegi panjang seperti berikut:
Luas = panjang * lebar.
Gambar 1.1. Persegi Panjang terdiri dari panjang dan lebar
Anda dapat menuangkan algoritma natural seperti berikut:
1. Peroleh nilai panjang dan lebar persegi panjang.
2. Hitung luas persegi panjang dengan menggunakan rumus panjang * lebar.
3. Tampilkan nilai luas persegi panjang.
Algoritma tidak selamanya dinyatakan dalam bahasa manusia (algoritma natural) seperti yang dicontoh di depan. Kadang-kadang dinyatakan dalam bentuk pseudokode (pseudocode), yaitu suatu bentuk algoritma yang menggunakan berbagai notasi yang dimaksudkan untuk menyederhanakan bentuk kalimat manusia.
Pseudokode sering kali mengarah ke bahasa pemprograman tertentu. Sebagai contoh:
1. lebar l 2. panjang p 3. luas p * l 4. write(luas)
Adakalanya suatu algoritma disajikan dalam bentuk diagram alir (flowchart).
Diagram alir adalah suatu stadar untuk menggambarkan urutan langkah dalam suatu proses. Setiap langkah dalam algoritma dinyatakan dengan sebuah simbol dan aliran setiap langkah (dari suatu langkah ke langkah yang lain) dinyatakan dengan garis yang dilengkapi panah. Berikut ini pada gambar 1.2 merupakan contoh flowchart program untuk menghitung luas persegi panjang.
Panjang
Lebar
Gambar 1.2. Flowchart program menghitung luas persegi panjang
2.3.3. Algoritma Pseudocode
Pseudo-code merupakan cara untuk menerangkan suatu algoritma dengan menggunakan tata cara penulisan bahasa pemrograman tertentu. Sebagaimana namanya, pseudo-code tidak dapat dieksekusi langsung pada komputer, tetapi merupakan model dan harus diubah menjadi kode pemrograman yang sebenarnya. Beda antara algoritma dan pseudo-code, pada Tabel 1.2 merupakan contoh algoritma mencari luas persegi panjang.
Tabel 212. algoritma mencari luas persegi panjang
1.4. Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara primitif yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan
Algoritma Pseudo-code
Masukkan panjang Input panjang
Masukkan lebar Input lebar
Nilai luas adalah panjang x lebar Luas panjang x lebar
Tampilkan luas Print luas
sebelumnya bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian.
Tabel 1.2. Algoritma dalam kehidupan sehari-hari
No Proses Algoritma Contoh langkah dalam algoritma 1 Membuat kue Resep Kue Masukkan telor ke dalam wajan, kocok
sampai mengembang
2 Membuat pakaian Pola pakaian Gunting kain dari pinggir kiri bawah kea rah kanan sejauh 5cm
3 Merakit mobil Panduan merakit Sambungkan komponen A dengan komponen B
4 Kegiatan sehari-
hari Jadwal harian
Pukul 06.00 : mandi pagi, Pukul 07.00 : berangkat kuliah
5 Mengisi voucer HP Panduan
pengisian Tekan 888, masukkan nomer voucer
1.5. Menuangkan Algoritma ke dalam Bentuk Program
Langkah menuangkan algoritma ke dalam program ditentukan oleh faktor bahasa pemprograman yang akan digunakan. Sebagai contoh, langkah “Hitung luas persegi panjang dengan menggunakan rumus “panjang * lebar” perlu diterjemahkan menjadi pernyataan berikut pada sejumlah bahasa pemprograman.
Tabel 1.3. Pernyataan Pada beberapa bahasa pemrograman
Bahasa Pernyataan
BASIC luas = panjang * lebar
C, C++, MATLAB, JAVA luas = panjang * lebar;
COBOL COMPUTE luas = panjang * lebar
PASCAL luas := panjang * lebar
1.6. Penggunaan Algoritma
Bahasa natural / Algoritma kalimat (Bahasa Indonesia, Bahasa Inggris, dan bahasa manusia lainnya), akan tetapi algoritma ini sering membingungkan (ambiguous).
Algoritma flow chart (diagram alir), bagus secara visual akan tetapi repot kalau
algoritmanya panjang. Pseudo-code sudah lebih dekat ke bahasa pemrograman, namun sulit dimengerti oleh orang yang tidak mengerti pemrograman. Berikut ini contoh pengunaan ketiga algoritma tersebut dalam kehidupan sehari-hari, yaitu:
a). Algorithma kalimat ketika seseorang ingin membuat program menghitung volume lingkaran:
1. Mulai
2. menetapkan nilai Phi yaitu 3.14
3. memasukan nilai jari-jari (jari2), dan tinggi lingkaran
4. menghitung volume lingkaran dengan rumus L=phi*jari2*jari2 *tinggi 5. mencetak nilai Volume
6. Selesai
b). Flowchart untuk menghitung luas lingkaran, yaitu:
Gambar 1.3. Flowchart program menghitung volume lingkaran
c). Psedocode untuk menghitung volume lingkaran, yaitu:
1. Start
2. Read ('phi, jari2, tinggi')
3. Volume Lingkaran phi*jari2*jari2*tinggi 4. Write (' Volume Lingkaran ')
5.