• Tidak ada hasil yang ditemukan

ALGORITMA Apakah Itu Algoritma

N/A
N/A
Protected

Academic year: 2021

Membagikan "ALGORITMA Apakah Itu Algoritma"

Copied!
11
0
0

Teks penuh

(1)

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

(2)

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

(3)

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

(4)

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

(5)

 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

(6)

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

(7)

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

(8)

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

(9)

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:

(10)

1. Start

2. Read ('phi, jari2, tinggi')

3. Volume Lingkaran  phi*jari2*jari2*tinggi 4. Write (' Volume Lingkaran ')

5.

Finish / END / STOP

1.7. Mengeksekusi dan Menguji Program

Setelah program dibuat dan dikompilasi, program perlu dijalankan untuk diuji kebenarannya. Ada beberapa kemungkinan kesalahan yang terjadi sewaktu proses kompilasi hingga pengeksekusian program, yaitu:

1. Kesalahan sintaksis. Kesalahan sintaksis disebabkan adanya kesalahan dalam menuliskan program yang tidak sesuai dengan kaidah baku dari bahasa pemrograman. Contoh, suatu pernyataan C ataupun C++ tidak diakhiri dengan titik-koma (;), sementara kaidah baku bahasa C dan C++

mengharuskan setiap pernyataan diakhiri dengan titik-koma. Kesalahan sintaksis terdeteksi sewaktu kompilasi bila Anda menggunakan kompiler C atau C++, tetapi dapat jadi terdeteksi pada saat eksekusi pada bahasa pemrograman yang beroritentasi pada interpeter (misalkan pada interpreter Python, dan Perl).

2. Kesalahan logika. Kesalahan logika adalah kesalahan yang terjadi karena ada logika yang salah. Misalkan, Anda menuliskan 31.4, atau 3.41 untuk menyatakan phi, padahal yang betul adalah 3.14. Akibatnya, hasil yang didapatkan tidak benar. Kesalahan seperti ini terkadang sulit untuk dideteksi terutama kalau program sangat kompleks.

3. Kesalahan runtime. Kesalahan runtime atau terkadang disebut kesalahan

fatal adalah kesalahan yang terjadi karena suatu operasi dalam program

tidak dapat dilakukan oleh komputer. Sebagai contoh, jika terdapat operasi

pembagian dengan nol, maka suatu pesan kesalahan akan ditampilkan dan

eksekusi program dihentikan.

(11)

Di dalam terminologi program terdapat istilah yang dinamakan kutu (bug) yang menyatakan suatu kesalahan pada program. Pencarian bug seringkali sulit dilakukan dan memakan waktu. Ibarat mencari jarum dalam tumpukan jerami. Untuk menangani hal seperti itu pemrogram terkadang memanfaatkan peranti yang dinamakan debugger, yaitu perangkat lunak yang ditujukan untuk mempermudah dalam mencari kesalahan (bug) dalam program. Adapun proses untuk mencari kesalahan dan membetulkannya biasa disebut debugging.

1.8. Latihan Soal

1. Jelaskan pengertian dari algoritma.

2. Sebutkan dan jelaskan ada berapa cara penulisan algoritma pemrograman.

3. Buatlah dengan menggunakan algoritma, kalimat, pseudo-code, dan flowchart dari sebuah perhitungan luas dan keliling lingkaran.

4. Buatlah dengan menggunakan algoritma, kalimat, pseudo-code, dan flowchart

dari sebuah perhitungan luas dan keliling luas segitiga sama kaki.

Gambar

Tabel 1.1. Simbol Flowchart Umum
Gambar 1.2. Flowchart program menghitung luas persegi panjang
Tabel 1.2. Algoritma dalam kehidupan sehari-hari
Gambar 1.3. Flowchart program menghitung volume lingkaran

Referensi

Dokumen terkait

Dari perhitungan life cycle cost juga didapatkan hasil bahwa, jumlah maintenance site crew yang. optimal yakni sebanyak 4 crew , jumlah maintenance site crew

Tahap selanjutnya setelah persiapan praktek pengalaman lapangan adalah tahap pelaksanaan praktek pengalaman lapangan. Tahapan ini adalah tahapan penting, karena tahapan

Regresi linier majemuk/berganda dalam penelitian ini digunakan untuk mengetahui pengaruh dua variabel independen yaitu tingkat kepatuhan wajip pajak dan pemeriksaan

Bobot basah biomassa embrio somatik sagu dalam medium cair SPS pada semua interval dan lama perendaman secara nyata lebih tinggi dibandingkan dengan medium padat (Tabel 1)..

Tujuan penelitian ini adalah untuk mendapatkan informasi tentang jumlah siswa, penyebab, keseringan, jenis buku, manfaat buku yang dipinjam bagi setiap siswa dan

Ringkasan hasil uji independent sample t-test terhadap motivasi belajar, hasil belajar kognitif dan retensi belajar siswa pada kelas eksperimen dan kelas

(4) kemampuan mengidentifikasi data atau informasi lain yang diperlukan tetapi tidak diketahui secara langsung dari soal1. (5) kemampuan memunculkan berbagai kemungkinan

Berkenaan dengan hal tersebut, agar Saudara dapat membawa dokumen asli atau rekaman yang sudah dilegalisir oleh pihak yang berwenang untuk setiap data yang telah dikirim melalui