Di artikel kali ini saya akan menjelaskan mengenai hal-hal yang berkaitan dengan algoritma, dari mulai pengertian algoritma, struktur algoritma, jenis, istilah dan contoh algoritma dalam bahasa natural, flow chart maupun pseudocode.Saya menyajikan artikel ini karena kebetulan saya mengajar mata pelajaran bahasa pemrograman dasar di smk jurusan TKJ dan MM kelas X kurikulum 2013. selain sebagai bahan ajar, apa yang disajikan di artikel ini semoga bermanfaat untuk anda guru maupun siswa yang kebetulan ingin memahami tentang algoritma.Algoritma benar-benar harus dipelajari dengan tujuan untuk memahami instruksi logika bahasa pemrograman, saat ini ada banyak sekali bahasa pemrograman seperti Java, Pascal, visual basic, C++ dan bahasa pemrograman lainnya.Instruksi bahasa pemrograman untuk pemula akan sulit sekali dipahami, salah satu pendekatan untuk memahami instruksi logika bahasa pemrograman tersebut adalah dengan mempelajari algoritma.Dengan belajar algoritma, maka otak kita akan dilatih untuk memahami cara berfikir logika instruksi bahasa pemrograman, sehingga jika algoritma sudah dipahami dengan benar maka anda tidak akan kesulitan memahami bahasa pemrograman, apapun bahasa pemrogramannya.Jadi untuk anda yang ingin bisa membuat aplikasi komputer seperti ingin membuat game, atau aplikasi komputer lainnya, maka anda harus menguasai bahasa pemrograman, dan untuk menguasai bahasa pemrograman apapun nama bahasa pemrogramannya, maka yang harus anda pelajari adalah Algoritma.
Pengertian Algoritma?
Jika anda kebetulan baru pertama kali mendengar istilah algoritma, anda mungkin akan bertanya, sebenarnya apa itu algoritma? baiklah akan saya jelaskan.
Algoritma adalah urutan langkah-langkah penyelesaian masalah secara sistematis dan logis, langkah-langkah penyelesaian masalah untuk kasus yang dapat diproses secara terkomputerisasi, sedangkan menurut wikipedia algoritma adalah prosedur langkah-demi-langkah untuk penghitungan. Algoritma digunakan untuk penghitungan, pemrosesan data, dan penalaran otomatis.
Kenapa harus belajar algoritma?, Jika anda ingin menguasai bahasa pemrograman, apapun bahasa pemrogramannya, baik itu pascal, java, android, visual basic maka salah satu yang harus dipelajari sebelum terjun ke dunia bahasa pemrograman adalah algoritma, dengan mempelajari algoritma maka anda akan dilatih cara berfikir sorang programmer ketika memecahkan masalah terkomputerisasi.
Walaupun kasus-kasus algoritma pada akhirnya akan mengerucut ke kasus-kasus yang dapat dipecahkan secara terkomputerisasi, namun sebagai pendekatan untuk memahami algoritma, kasus-kasus yang dipelajari akan bermulai dari kasus-kasus dalam kehidupan sehari-hari walaupun kasus tersebut sebenarnya tidak bisa dipecahkan dengan komputer.
Struktur Dasar Algoritma
Struktut algoritma adalah urutan bagaimana pemrosesan instruksi dalam algoritma dilakukan dan juga bagaimana struktur instruksi algoritma tersebut dibagun.
Struktur dasar algoritma dibagi menjadi 3 bagian sebagai berikut:
1. Runtunan (Sequence)
Sequence atau runtunan dalam struktur algoritma adalah bahwa instruksi-insturksi dalam algoritma diproses secara beruntun langkah demi langkah dari awal sampai akhir dimulai dari langkah pertama hingga langkah terakhir.
Harus selalu diingat, bahwa Runtunan ini juga berlaku di dalam bahsa pemrograman, ketika instruksi bahasa pemrograman yang kita tulis di proses oleh komputer, maka komputer akan memproses dan menterjemahkan bahasa pemrograman tersebut secara beruntun dari awal hingga akhir dimulai dari instruksi pada baris pertama hingga baris terakhir.
Dengan struktur runtunan ini, akan menentukan bagaimana insturksi harus ditulis, intruksi mana yang harus didahulukan dan intruksi mana yang harus diakhirkan.
b. Pemilihan (Selection)
Pada umumnya instruksi algoritma setidaknya akan mengandung pemilihan, atau selection, instruksi ini akan muncul apabila ada kasus yang memiliki 2 atau lebih alternatif penyelesaian.
Misalkan dalam kehidupan sekali-kali, untuk kasus menyalakan komputer. Langkah-langkah cara menyalakan komputer sebenarnya sangat mudah, namun pada prosesnya bisa terjadi 2 atau lebih alternatif penyelesaian.
Contoh:
langkah 1: colokan kabel listrik,
langkah 2: tekan tombol power pada cashing.
langkah 3: jika setelah power ditekan komputer mati, maka periksa listrik atau periksa kabel dll, jika komputer menyala, lanjutkan ke langkah berikutnya.
....
....
Langkah 3 di atas merupakan salah satu bentuk pemilihan atau selection, bahwa pada saat proses menyalakan komputer bisa kemungkinan terjadi 2 kondisi, komputer tatap mati atau hidup, dimana kedua kondisi tersebut akan memiliki alternatif penyelesaian yang berbeda.
Di dalam struktur algoritma pemilihan atau selection tersebut akan kerap sekali ditemukan, sehingga struktur algoritma tidak lepas dari pemilihan/ selection. pemilihan atau selection dipelajari di bab algoritma Selection / Flow Control).
3. Pengulangan (Repitition)
Struktur dasar algoritma yang ketiga adalah pengulangan atau repitition, artinya kasus-kasus pemecahan masalah dalam algoritma maupun bahasa pemrograman pada kenyataannya tidak akan lepas dari kasus-kasus yang membutuhkan pengulangan.
Di algoritma sendiri untuk mengatasi kasus pengulangan data, memiliki intruksi tersendiri, dengan intruksi tersebut pengulangan akan lebih mudah ditulis secara singkat dan praktis daripada harus di tulis satu-persatu.
Contoh:
Da kasus di algoritma yang membuat sebuah data harus diulang beberapa kali, misal untuk kasus mencetak angka 1 sampai 5.
Penyelesaian pengulangan sebenarnya sangat mudah, bisa saja kita tulis satu persatu misal;
langkah 1: tulis angka 1
langkah 2: tulis angka 2
langkah 3: tulis angka 3
...
...
langkah 5: tulis angka 5.
Membuat intruksi pengulangan dengan menuliskannya satu persatu tentunya bukanlah cara praktis, jika hanya 5 baris mungkin saja bisa dibuat secara manual, ditulis satu-satu, namun bagaimana jika yang harus diulang sebanyak 1.000 (seribu baris misalnya), saya yakin anda akan kerepotan menuliskannya.
Oleh karena itu karena kerap sekali pengulangan ditemukan di kasus-kasus pemecahan masalah terkomputerisasi, maka di algoritma dikenal struktur pengulangan yang akan lebih memudahkan dan mempercepat penulisan proses pengulangan secara praktis dan cepat. (pengulangan ini biasanya dipelajari di materi algoritma Looping/ pengulangan).
Jenis-jenis bentuk Algoritma
Sebagai pendekatan untuk memahami intruksi bahasa pemrograman, maka algoritma mengenal 3 bentuk yaitu:
1. Algoritma Bahasa Natural
2. Algoritma Flow chart
3. Algoritma Pseudocode
1. Algoritma Bahasa Natural
Algoritma bahasa natural adalah jenis algoritma dimana penulisan langkah-langkah intruksi menggunakan bahasa yang paling dipahami (bahasa inggris, bahasa indonesia) atau bahasa apapun yang paling dipahami.
Algoritma jenis ini merupakan pendekatan awal untuk memahami algoritma, kasus-kasus atau permasalahan yang bisa digunakan untuk dapat dipecahkan menggunakan algoritma bahasa natural tidak harus kasus-kasus yang dapat diselesaikan secara terkomputerisasi.
Algoritma bahasa natural hampir dapat menyelesaikan berbagai kasus, kasus-kasus dalam kehidupan sehari-hari, kasus matematika dan perhitungan dan kasus apapun bisa dipecahkan dengan menggunakan algoritma bahasa natural.
Untuk lebih memahami algoritma bahasa natural, anda bisa baca: Contoh algoritma bahasa natural dalam kehidupan sehari-hari
2. Algoritma Flow Chart
Algoritma flow chart merupakan salah satu bentuk penyajian algoritma yang menggunakan bentuk gambar dan simbol yang dapat dibaca dan dipahami secara logis.
Untuk dapat menyajikan pemecahan masalah dalam bentuk algoritma flowchart maka anda dituntut harus memahami terlebih dahulu simbol-simbol flow chart yang digunakan. seperti yang terlihat pada gambar di bawah ini:
Untuk lebih memahami bagaimana pemecahan masalah menggunakan algoritma flowchart anda bisa baca :
3. Algoritma Pseudocode
Penyajian algoritma yang ke tiga adalah algoritma pesudocode, apa itu algoritma pseudocode ?
Secara sederhana algoritma pseudocode adalah penulisan langkah-langkah penyelesaian masalah menggunakan pendekatan instruksi bahasa pemrograman, dengan tujuan agar lebih mudah dipahami ketika instruksi tersebut ditulis atau dikonversi kedalam bahasa pemrograman sebenarnya.
Penulisan algoritma pseudocode sebenarnya tidak mengenal aturan syntax (cara penulisan intruksi/kode) khusus, namun syntax atau instruksi yang digunakan biasanya disesuaikan dengan bahasa pemorgraman yang nanti akan digunakan.
Seperti misalnya jika algoritma nanti akan dikonvesi ke bahasa pemrograman pascal, maka instruksi algoritma pseudocode akan menggunakan syntax yang hampir mirip dengan kode bahasa pemrograman pascal, begitu juga ketika bahasa pemrograman yang akan digunakan menggunakan bahasa C, maka instruksi algoritma peudocode akan menggunakan pendekatan bahasa C, begitu juga untuk bahasa pemrograman lainnya.
Aturan penulisan algoritma pseudocode
Berikut adalah aturan penulisan algoritma pseudocode dengan pendekatan bahasa pemrograman pascal:
1. Struktur Algoritma pseudocode
Ketika membuat algoritma pseudocode menggunakan pendekatan bahasa pemrograman pascal maka langkah-langkah penulisannya dibagi menjadi 3 bagian sebagai berikut:
a. Bagian Judul
Judul harus dimulai dengan kata ALGORITMA diikuti dengan nama judul.
Aturan penulisan nama judul:
Tidak boleh mengandung spasi, spasi dapat diganti dengan karakter _ (underscore)
Tidak boleh diawali dengan angka
Tidak boleh menggunakan istilah-istilah yang sudah digunakan sebagai keyword di bahasa pemrograman.
Bisa menggunakan huruf besar huruf kecil dan kombinasinya selama tidak menyalahi aturan diatas.
b. Bagian Deklarasi
Bagian deklarasi adalah bagian dalam algoritma yang digunakan untuk mendefinisikan jenis-jenis variable yang akan digunakan dalam proses algoritma. bagian ini dimulai dengan tulisan Deklarasi:
Jika anda pemula dan sulit memahami apa itu variable, sebaiknya anda membaca dulu mengenai konsep dasar algoritma yang sudah saya tulis sebeumnya.
c. Bagian Deskripsi
Bagian deskripsi adalah bagian yang berisi proses algoritma, pada bagian ini ditulis proses penyelesaian masalah. pada bagian ini diawali dengan tulisan Deskripsi:
d. Komentar
Komentar sifatnya opsional boleh dicantumkana tau tidak, komentar isinya untuk memberi penjelasan atau keterangan mengenai instruksi didalam algoritma penulisan komentar bisa diletakan dibaris mana saja didalam struktur algoritma, namun penulisan komentar harus di dalam tanda kurung kurawal {....}
contoh penulisan komentar:
{Ini komentar}
2. Instuksi / Syntax penulisan algoritma psedeocode
Selain memahami bagian penulisan algoritma di atas juga harus memahami instruksi atau syntax penulisan.
Untuk instruksi atau syntax dalam penulisan algoritma pseudocode umumnya akan menyesuaikan dengan pendekatan bahasa pemrograman yang akan digunakan.
Seperti misalnya jika bahasa pemrograman yang akan digunakan untuk mengkonversi algoritma tersebut adalah pascal, maka syntax algoritma pseudocode akan mengandung instruksi dan aturan penulisan yang digunalan dalam bahasa pemrograman pascal. begitu juga ketika menggunakan bahasa pemrograman yang lainnya.
Berikut beberapa syntax algoritma pseudocode bahasa pemrograman pascal yang sering digunakan untuk memahami algoritma tahap awal.
a. Penulisan variable
Penulisan variable ada dibagian deklarasi, aturan penulisannya kurang lebih seperti di bawah ini:
var1:var2,var3 : tipe_data
Untuk tipe_data, ada banyak sekali jenis nama tipe data yang bisa digunakan seperti integer, string, char, byte dll silahkan pelajari di artikel internet..
b. Masukan
untuk menulis instruksi masukan dari pengguna maka ditulis dengan instruksi:
read(variable_masukan)
c. Keluaran
untuk mencetak keluaran maka penulisannya adalah sebagai berikut:
write(variable_keluaran)
d. Instruksi lainnya menyesuaikan dengan instruksi bahasa pemrograman yang digunakan, akan dijelaskan lebih lanjut sesuai dengan kasus algoritma yang ingin dipecahkan.
Contoh:
Berikut adalah contoh algoritma pseudocode dengan pendekatan bahasa pemrograman pascal untuk kasus menghitung luas segitiga dengan ketentuan.
Luas dan alas diinput oleh pengguna dan hasil dari perhitungan disimpan dalam variable hasil kemudian hasilnya ditampilkan sebagai output.
ALGORITMA hitung_luas_segitiga
{Algorima pseudocode untuk menghitung luas segitiga}
Deklarasi:
{Deklarasi variable yang digunakan diproses perhitungan}
hasil,alas,tinggi : Integer
Deskripsi :
{Input dari pengguna disimpan divariable alas dan tinggi}
read(alas,tinggi}
{perhitungan luas (1/2 alas x tinggi ) disimpan di variable hasil}
hasil <- 1/2 * alas * tinggi
{Menampilkan hasil perhitungan}
write(hasil)
Konsep memahami algoritma?
Untuk lebih mudah memahami algoritma maka anda bisa memahami konsep dasarnya terlebih dahulu, konsep dasar yang banyak dijadikan contoh untuk memahami algoritma adalah pada kasus menukarkan 2 buah isi gelas.
jadi ada 2 gelas, gelas A berisi Air Susu dan gelas B berisi Air Kopi. bagaimana langkahnya agar Gelas A isinya menjadi Kopi dan gelas B isinya menjadi air susu.
Ketika kita dihadapkan pada contoh kasus di atas, otak kita akan mencoba untuk menemukan cara/ logikanya.
berarti kita harus menyediakan 1 gelas Lagi yaitu gelas kosong sebut saja gelas C. dengan adanya gelas kosong tersebut, maka kita bisa menukarkan kedua isi gelas tersebut.