Struktur Dasar Algoritma: Prinsip, Struktur, dan Cara Penyajian

Struktur dasar algoritma merupakan konsep dasar ilmu komputer yang mengacu pada pengorganisasian dan manipulasi data dengan cara yang efisien dan efektif. Mempelajari struktur data dan algoritma memungkinkan pengembang menulis kode dengan benar sekaligus memecahkan masalah kompleks dan memahami cara kerja program komputer.

Algoritma merupakan sekumpulan instruksi untuk memecahkan masalah tertentu dan diimplementasikan dengan satu atau lebih struktur data, dan efisiensi suatu algoritma bergantung pada struktur data yang dipilih dan langkah-langkah yang diambil untuk menyelesaikan masalah. Beberapa algoritma umum termasuk algoritma pencarian, algoritma pengurutan, dan algoritma grafik.

Prinsip Kerja Algoritma

Prinsip kerja algoritma adalah mengikuti serangkaian instruksi atau aturan untuk menyelesaikan suatu tugas atau memecahkan suatu masalah. Mereka dapat dinyatakan sebagai bahasa alami, bahasa pemrograman, pseudocode, diagram alur, dan tabel kontrol. Ekspresi bahasa alami jarang terjadi karena lebih ambigu.

Bahasa pemrograman biasanya digunakan untuk mengekspresikan algoritma yang dieksekusi oleh komputer. Algoritma berbeda dengan kecerdasan buatan dimana algoritma mendefinisikan proses pengambilan keputusan. Sementara itu, kecerdasan buatan menggunakan data untuk benar-benar membuat keputusan.

Jika algoritma komputer hanyalah serangkaian instruksi berkode untuk menyelesaikan tugas atau memecahkan masalah, maka kecerdasan buatan lebih merupakan jaringan yang kompleks, yang terdiri dari kelompok algoritma dan lebih memajukan otomatisasi ini. Kecerdasan buatan mampu meningkatkan, memodifikasi, dan menciptakan algoritma lebih lanjut untuk menghasilkan solusi unik lainnya dan memperkuat hasilnya dengan terus belajar dari akumulasi data.

Algoritma kecerdasan buatan yang menentukan rekomendasi medsos berdasar pengalaman pengguna dan sering dikenal sebagai algoritma pembelajaran.

Struktur Dasar Algoritma

Struktur dasar algoritma dibagi dalam 3 bagian yakni sequential, branching, dan looping. Apa maksud dari ketiganya? Berikut penjelasan singkatnya:

  1. Algoritma Sekuensial (sequential)

Diantara jenis lainnya, algoritma ini adalah jenis yang paling sering digunakan. Algoritma ini menggunakan tahapan atau sequential yang dilakukan berurutan sesuai urutan dari penulisannya. Dalam kehidupan nyata contoh dari algoritma ini adalah menanak nasi, mengisi bensin, membuat kopi, dan sebagainya.

  1. Algoritma Percabangan (Branching)

Sama halnya dengan aktivitas harian kita, kegiatan bisa dilakukan ataupun tidak, bergantung dari situasi. Hal ini juga berlaku pada algoritma dimana terkadang ada aksi yang harus dikerjakan atau tidak dikerjakan dan hal ini bergantung pada situasi tertentu. Struktur ini biasanya digunakan dalam suatu kondisi dimana ketika itu ada satu atau beberapa aksi dengan pilihan yang lebih dari satu atau banyak.

Contoh dari algoritma ini seperti ketika kamu hendak berbelanja online tapi saldo dalam e-wallet habis. Ketika ini kamu punya dua kemungkinan yakni mengganti metode pembayaran atau melakukan top-up e-wallet.

  1. Algoritma Perulangan (Looping)

Sesuai namanya, algoritma ini melakukan hal yang berulang. Ini serupa dengan kegiatan harian manusia yang selalu dilakukan secara berulang. Namun tentu berbeda dari manusia, sistem komputer tidak mengenal lelah atau bosan dengan perulangan.

Salah satu contoh algoritma ini dalam kehidupan manusia adalah ketika menyikat gigi. Ketika menyikat gigi kita melakukan gerakan perulangan menyikat di seluruh permukaan gigi. Algoritma perulangan disini berperan untuk memastikan jika gigi dibersihkan dengan baik.

Cara Penyajian Algoritma

Penulisan sistematis adalah cara terbaik dalam penyajian algoritma. Beberapa metode penyajian algoritma adalah:

  1. Naratif

Sesuai namanya, penyajian algoritma naratif ditulis menggunakan cerita layaknya bahasa keseharian dan tidak dalam beberapa langkah yang terpisah. Naratif dalam algoritma dinyatakan sebagai arahan dalam bentuk paragraf dan instruksi tentang bagaimana peraturan harus dipatuhi.

Algoritma dalam bentuk naratif dapat dianggap sebagai pendahulu kode semu (pseudocode) atau diagram alur (flowchart)

Contoh:

Cara mencari keliling lingkaran.

Minta pengguna memasukkan nilai non-negatif untuk radius dan menyimpannya. Jika radius yang dimasukkan negatif atau bukan angka, teruslah meminta pengguna dan terima nilai hingga nilai yang dimasukkan sesuai. Gunakan rumus C=2*3.14* r untuk menghitung dan menyimpan keliling. Keluarkan keliling ke pengguna dan hentikan pemrosesan.

  1. Flowchart

Penyajian algoritma ini menggunakan bentuk urutan dari simbol dasar yang sering ditemui dalam flowchart. Menariknya setiap simbol memiliki arti sendiri yang lantas digambarkan sesuai dengan arah dari tanda panah. Ingat, antara satu simbol dengan simbol lain saling berkaitan sehingga jika ada perintah untuk simbol A, maka perintah tersebut akan mempengaruhi simbol B. Sederhananya, flowchart memuat perintah yang saling terkait satu sama lain.

  1. Pseudocode

Ini adalah cara penyajian algoritma baik dalam bahasa Inggris maupun bahasa Indonesia yang seringkali dijadikan sebagai sebuah outline dalam program komputer. Penulisan dari algoritma ini menggunakan bahasa yang mudah dipahami oleh komputer. Dalam bahasa kerennya, penyajian algoritma ini juga disebut dengan bahasa pemrograman. Namun dalam artian lain menyebutkan jika pseudocode merupakan tiruan dari bahasa pemrograman karena isinya yang berupa kode-kode.

Memang cara penyajian algoritma ada tiga macam. Meski begitu hasil akhirnya tetaplah sama. Oleh karena itulah tidak ada aturan khusus yang mengharuskan untuk menggunakan jenis penyajian tertentu. Setiap orang bebas memilih mana jenis yang paling mudah dipahami menurutnya.

Baca juga: Contoh Struktur Data yang Biasa Dipelajari Mahasiswa Ilmu Komputer

Yuk bergabung di S1 Computer Science di BINUS @Malang! Prodi Computer Science menjadi salah satu bidang studi dengan tingkat kebutuhan sangat tinggi di dunia kerja yang serba digital. BINUS @Malang telah menghasilkan lulusan berdaya saing tinggi dengan kemampuan yang sangat mumpuni di bidang sains komputer.