Halo coders!… Welcome back!, Apakah rekan-rekan siap untuk belajar Fundamental dari Pemrograman?
Jika benar maka, anda berada di tempat yang tepat.
Sesuai dengan tujuan utama kami untuk membahas materi pembelajaran tentang programming, pada kesempatan kali ini saya, akan membahas salah satu materi fondasi yang diperlukan untuk menjadi seorang programmer yaitu adalah Algoritma Pemrograman, dan menariknya mari kita pahami dengan cara dengan konsep memasak mie instan.
Pengertian Algoritma
Algoritma adalah serangkaian prosedur / perintah / aturan yang dirancang / didefinisikan secara jelas (tidak ambigu) dan dapat diikuti dengan oleh manusia ataupun computer untuk menyelesaikan suatu tugas atau masalah tertentu.
Singkatnya Algoritma dapat diartikan dengan serangkaian langkah-langkah berupa perintah atau petunjuk yang dirancang untuk menyelesaikan masalah.
Dalam programming Algortima merupakan bagian paling mendasar dari suatu aplikasi atau sistem. Pada dasarnya suatu program adalah rangkaian sekumpulan algoritma yang terstruktur untuk mengolah input menjadi output. Bisa dikatakan bahwa semakin kompleks suatu aplikasi maka algoritma yang menyusunya semakin banyak dan rumit, dan seiring berjalannya waktu bahkan bermunculan algoritma-algoritma turunan atau yang memiliki fungsi lebih advance.
Meskipun dalam dunia sci-tech (science technology) disebut dengan algoritma, namun saya rasa rekan-rakan juga pernah mempelajarinya di SMP atau bahkan SD dalam mata pelajaran Bahasa Indonesia yaitu prosedur. Ya, karena seingat saya di masa sekolah dulu saya, terdapat silabus yang intinya tentang : “Siswa dapat memahami dan mengimplementasikan prosedur dalam kehidupan sehari-hari”.
Dalam konteks yang lebih umum algoritma dapat disebut juga dengan Blueprint.
Blueprint
Blueprint atau dalam Bahasa Indonesia disebut dengan Cetak Biru adalah suatu dokumen baku yang mengatur atau memberikan panduan yang dapat dilakukan oleh manusia untuk mencapai tujuan (Tujuan yang dimaksud adalah menggunakan sesuatu, membuat sesuatu, dan lain sebagainya).
Mungkin dapat coba saya analogikan seperti ini. Taukah anda tentang game survival yang terdapat mekanik crafting.
Secara umum mekanik crafting pada game digunakan untuk merakit tool atau item.
- Player harus mengumpulkan terlebih dahaulu resources dapat berupa kayu, batu, logam, tanaman, atau bahan lainnya.
- Selanjutnya player dapat mengolah resources yang telah terkumpulkan di workshop / laboratorium / Meja Kerajinan (Crafting Table) atau semacamnya.
Dalam Proses pengolahan resources sebeneranya menukarkan seesources sejumlah yang ditentukan pada blueprint yang di akses pada workshop.
Contoh-contoh blueprint:
- Dari yang paling umum adalah Panduan memasak yang biasanya terdapat pada makanan atau minuman instan, Panduan penggunaan atau perakitan perlatan elektronik, dll.
- Yang sedikit formal, bisa berupa julnis (Petunjuk Teknis) dalam instansi yang cukup serius atau critical biasanya disahkan orang-orang yang ahli dalam bidangnya, Resep Obat dari dokter untuk ditebus di apotek kerana menyangkut nyawa manusia.
- Bahkan ada juga blueprint yang berfungsi untuk mengarahkan manusia untuk tetap berada di jalan yang benar, yang tentunya bergantung dengan kerpercayaan masing-masing ya.
- dan tentu saja sesuai dengan pokok pembahasan kita kali ini algoritma sudah pasti blueprint, namun blueprint belum tentu algoritma, karena bisa jadi juga blueprint yang tidak memenuhi karakteristik dari algoritma.
Jika kita membahas scope program, saya rasa algoritma bisa disebut sebagai blueprint. Namun jika kita berbicara dalam scope lebih besar misal aplikasi terdapat blueprint yang lebih cocok adalah FSD, beserta dokumen-dokumen relate lainya. Miskipun jika anda mencoba membongkar dokumen-dokumen teknis tersebut maka isinya adalah algoritma juga.
Sejarah Algoritma
Algoritma bukan lah suatu hal baru, mungin karana anda baru saja mencoba bekecimpung dalam dunia IT atau mingkin anda baru saja bersekolah dengan jurusan yang relate dengan Teknologi dan Komputasi.
Mengapa saya tulis begitu? karena saya juga berfikir begitu saat pertama kali mengenal “Algoritma”. Algoritma adalah suatu hal yang baru bagi saya.
Sebelum kita pelajari lebih lanjut mari kita FLASHBACK terlebih dahulu!
Algoritma di masa Babylonia Kuno (sekitar 1800–1600 SM) merupakan bentuk awal prosedur sistematis untuk memecahkan masalah matematika, jauh sebelum konsep “algoritma” modern didefinisikan. Bangsa Babilonia menggunakan sistem bilangan seksagesimal (basis 60) dan mencatat langkah-langkah komputasi mereka pada tablet tanah liat. Beberapa algoritma dan kontribusi matematika utama dari Babylonia Kuno: Algoritma Akar Kuadrat (Metode Babilonia), Algoritma Perkalian dan Pembagian, Penyelesaian Persamaan Kuadrat dan Kubik, Teorema Pythagoras, Geometri dan Pengukuran. [1]
Shulba Sutras adalah teks-teks kuno India berbahasa Sanskerta yang disusun sekitar 800-200 SM, yang berisi panduan geometris untuk membangun altar ritual (vedis). Secara harfiahShulba berarti “tali” atau “pengukur” sehingga teks ini sering disebut “Aturan Tali” (pendekatan geometri menggunakan tali dan pasak).[2]
Algoritma Sieve of Eratosthenes adalah metode kuno efisien dari abad ke-3 SM oleh ilmuwan Yunani, Eratosthenes, untuk menemukan semua bilangan prima hingga batas tertentu. Cara kerjanya: buat daftar angka dari 2 hingga , tandai kelipatan dari setiap bilangan prima (mulai dari 2, 3, 5, dst.) sebagai bukan prima. Bilangan yang tersisa adalah prima.[3]
Muhammad ibn Musa al-Khwarizmi, matematikawan Persia abad ke-9, merupakan figur sentral dalam sejarah ilmu pengetahuan. Karya monumentalnya, Kitab al-Jabr wal-Muqabala, tidak hanya melahirkan cabang ilmu Aljabar, tetapi juga memperkenalkan sistem penomoran Hindu-Arab ke dunia Barat. Istilah “Algoritma” sendiri diserap dari latinisasi namanya, Algoritmi.[4]
Setalah saya mencoba membaca jurnal-jurnal di atas, saya mulai overthingking, hingga akhirnya dicatat pada abat ke-9 dalam ilmu pengetahuan oleh seorang matematikawan terkemuka di zamannya, dan di zaman-zaman sebelumnya, terkait ditemukannya peniggalan yang relate dengan matematika dan algoritma, mencoba membayangkan saja membuat merinding.
Saat ini mungkin algoritma menjadi dasar dalam programming, namun zaman-zaman sebelumnya hanya matematikawan yang berhasil capainya. Jika saya terlahir dimasa itu, saya tidak ada disirkel para matematikawan tersebut.
Sangat luar biasa bukan manusia di berbagai masa nya, sehingga saya yang tinggal di zaman dimana teknologi yang serba cangih pun jadi merasa takut, akan kah saya bisa berkontribusi dalam perkembangan teknologi dimasa moderen ini. Meski begitu tidak ada salahnya untuk mencoba, bukan?
Konsep Dasar Algoritma
Sepertihalnya dengan komputer yang terdiri dari 3 perangkat utama yaitu: Input, Proses, dan Output, algortima juga memiliki 3 konsep tersebut sebagai fase dasar, berkut:
- Input: Sesuai dengan namanaya input atau masukan adalah suatu nilai berupa data yang akan dimasukkan ke dalam algoritma. (Data yang dinputkan *Dalam game dengan mekanik crafting bisa disebut dengan ingredient atau bahan).
- Proses: Merupakan serangkaian instruksi atau langkah-langkah yang dijalankan oleh algoritma untuk mengolah data yang diinputkan.
- Output: Hasil akhir yaitu dapat berupa informasi atau solusi hasil dari proses.
Kriteria Algoritma
Dalam programming algoritma dirancang dengan memiliki beberapa kriteria. Hal buruk yang akan terjadi jika kriteria tersebut tidak terpenuhi maka program yang dibuat akan mal-function atau sudah pasti error.
-
Definiteness
Suatu algoritma harus jelas atau meiliki kepastian, tidak boleh ambigu atau mimiki arti atau tidak memiliki lebih dari satu maksud yang bisa jadi bias atau pun seperti hubungan anda dengan mereka.
Seperti lah nya dengan menjalin hubungan yang penuh dengan kepastian tentunya harus diikat dengan kontrak atau hitam di atas putih atau pun cetak biru.Pernahkan anda mengetahui orang-orang yang alhi dalam bermain kata-kata, dalam pembuatan suatu kontrak atau peraturan, seorang ahli grammer tersebut bisa jadi melakukan kesalahan menuliskan kalimat yang memiliki maksut ganda, nah disitulah terjadi celah yang memungkinkan untuk munculnya anomali, atau kalo di real life mungkin suatu pihak yang memahami anomali tersebut untuk mendapatkan keuntungan.
Saat suatu complailer atau interpreter memproses code yang memiliki maksut ganda maka output nya error, atau mungkin menampilkan suatu hasil yang diluar dugaan.
-
Finiteness (Keterbatasan)
Seperti halnya dengan keinginan client atau sifat alami manusia yang tidak pernah cukup, hal tersebut akan menjadi masalah besar jika hal tersebut terdapat pada algoritma. Oleh sebab itu algoritma harus memiliki batasan atau limitasi untuk menjamin program akan selesai dan tidak berjalan tanpa henti. Secara mendasar suatu algoritma dirancang berdasarkan beberapa langkah dan akan berhenti saat semua prosesnya telah eksekusi. Namun terdapat kasus dimana suatu kondisi yang seharusnya menjadi batasan pada algoritma tidak terpenuhi sehingga memicu terjadinya proses perulangan yang membuat suatu program mengalami infinity looping atau perulangan yang tidak terbatas sehingga tidak akan pernah menghasilkan output.
Meskipun dikenal dengan infinity looping, namun tentu saja memiliki akan ada batasan dimana looping tersebut akan berhenti.
- Pada dasarnya manusia diciptakan sebagai makhluk yang paling sempurna, namun dengan segala keterbatasannya. Sudah pasti cipataan manusia pun juga meiliki keterbatasan. Disini dapat kita artikan bahwa brainware pun memiliki limit, tanpa ada yang mengoprasikan maka maka program akan selalu berhenti.
- Batas selanjutnya terapat pada device, besar data yang diproses suatu device memiliki batasan. Jika device telah mencapai batasnya maka sistem operasi akan melakukan aksi daruratnya, secra otomatis terminate proses atau melakukan reboot.
- Dalam scope yang lebih kecil aplikasi complainer atau web server, biasanya akan memaksakan proses hingga terbentur dengan request time out handler.
-
Feasibility (Kelayakan / Kepraktisan)
Tidak semua algoritma “benar” atau layak, jadi ada juga algoritma yang secara teori benar namun, akan tidak dapat diimplementasikan ke dalam bentuk code. Hal semacam ini sangatlah wajar terjadi, bahkan saya sendiri sering mengalaminya. Sebagai developer ketika mendapatkan kasus semacam ini maka dapat langsung menghubungi ke Sistem Analis atau ke Teknikal lead untuk dapat mendiskusikan masalah dan mendapatkan solusi.
-
Correctness (Kebenaran / Keakuratan)
Suatu algoritma harus memiliki hasil yang benar atau “konsisten” untuk input yang valid.
Dalam ilmu komputer pembuktian sering kali dilakukan berdasarkan syarat berupa input untuk memenuhi prekondisi dan syarat berupa output setelah dieksekusi untuk mencapai postkondisi.
Terkait cara memvalidasi di saat pengembangan suatu fitur adalah mencoba dengan beberapa kasus serupa tapi tak sama, kemudian dapat membandingkan hasil output dari sistem dangan uji coba olahan data manualnya (perhitungan manual), dengan begitu dapat diukur kebenaran dari hasil algortima anda.
Pengetahuan teoritis terkait keiteria algoritma ini sebenarnya tidak terlalu penting sebatas pengetahuan saja, jika di sekolah / kampus, mungkin tingkat kepentinganya sebatas jawaban dari soal ujian saja. Namun suatu hari nanti jika rekan-rekan coding, anda dapat mencocokkan kasus-kasus yang anda temui terkait bug dan anomali pada project anda dengan kriteria algoritma tersebut, maka anda akan menyadari sesuatu. Anda dapat mengidentifikasi root cause dari suatu anomali atau bug dengan mengkomparasi antara algorima yang ada dengan hasil kriteria algorima.
Contoh Algoritma Dasar
Berikut adalah beberapa jenis **Algoritma Pemrograman** yang menjadi fondasi hampir semua program komputer:
Dalam programming terdapat beberapa contoh algoritma yang sangat umum untuk anda ketahui, berikut:
-
Algoritma Sequencial
Algoritma Sequencial, sesungguhnya saat suatu program running maka akan membaca source code secara sequensial atau berurutan dari atas sampai ke bawah. Dalam bahasa kerennya bisa kita sebut dengan Syncronus.
-
Algoritma Brancing
Algoritma Brancing, algoritma yang memungkinkan satu program dapat memiliki kondisi, sehingga memungkinakan suatu program memiliki opsi dalam pemprosesan. Contoh: IF, IF ELSE, IF ELSE IF, SWITCH CASE.
-
Algoritma Looping
Algoritma Looping, sesuai dengan namanya merupakan algoritma yang berfungsi untuk mengulang jika kondisinya terpenuhi. Contoh: WHILE, DO WHILE, FOR.
Sebenarnya masih ada algoritma basic lain yang dapat digunkaan untuk belajar yaitu algoritma serching dan sorting, namun terkait algortima tersebut akan lebih relate jika kami bahas pada Article Structur Data.
Algoritma Memasak Mie Instan
Taukah anda jika algoritma sebenaranya telah tertanam dalam kehidupan sehari-hari manusia, satu hal yang sangat umum adalah Memasak Mie Instan, dan ingat karena panduan memasak (blueprint berupa resep masakan) merupakan bentuk simple dari algoritma. Berikut adalah breakdown nya :
-
Input
Input dapat berupa bahan-bahan yang digunakan memasak, Bahan: Mie Instan, Air, Bahan bakar kompor. -
Proses
Terkait proses seharusnya sesuai dengan yang tecantum pada bagian belakang bungkus mie instan, berikut:- Persiapkan alat: Gunting/alat pemotong, Peralatan Masak (Panci, Kompor, sendok dll), dan Peralatan penyajian (piring /mangkok).
- Masukkan mi dalam 400cc (2 gelas), air mendidih aduk selama 2 menit.
- Siapkan bumbu, minyakm kechap dan saus di piring sambil menungggu mie masak,
- Keluarkan mi dari air dan tiriskan
- campurkan mi denganbumbu, kecap dan saus cabe , aduk hingga rata, taaburkan bawang gorang dan mie siap untk disajikan.
-
Output
Mie yang sudah siap untuk dihidangkan.
Heheehehee…
Jika saya tidak salah menduga pasti anda tertawa melihat judul atau cara saya meng-analogi ini. Menurut saya ini adalah cara yang cukup masuk akal untuk menjelaskan algoritma. Bagaimana jika algoritma memasak mie instan saya gunakan sebagai konsep untuk membuat cooking game?
Untuk mengukur seberapa jauh pemahaman anda izikan saya bertanya,
- 1.
- 2.
- 3.
Cara Belajar Algoritma
Sejujurnya saya tidak terlalu ingat bagaimana saya mempelajari algoritma, sejauh saya mencoba merecall ingatan saya, saya hanya mendengarkan penjelasan dari dosen di kelas dan di lab, kemudian membuat laporan. Saya rasa cukup dengan membaca dan memahami artikel ini merupakan salah satu usaha untuk mengenal tentang algoritma, tentu saja membaca buku atau artikel lainnya yang relate, dan atau bahkan bertanya kepada rekan yang lebih ahli dalam bidangnya akan menjadi usaha dalam mempelajari algoritma.
Dan mungkin untuk pemula mungkin akan lebih baik jika anda banyak mempelajari case by case dimulai dari yang sederhana terlebih dahulu, seperti contoh-contoh yang saya sebutkan di atas.
Namun jika anda ingin mencoba belajar dengan cepat, baca dan pahami semua basic-nya kemudian silahkan langsung coba untuk membangun sistem yang lucu-lucu terlebih dahulu juga boleh, misal: perpustakan, koprasi, dll, tentunya tanpa bantuan chatbot ya!
Demikian artikel pembahasan tentang Basic Pemrograman: Algoritma, Saya sebagai team member yang IKUT menulis, mengucapkan mohon maaf atas segala keurangan, dan terima kasih
References:
[1] J.-H. He, “An Old Babylonian Algorithm and Its Modern Applications,” Symmetry, vol. 16, no. 11, p. 1467, Nov. 2024, https://doi.org/10.3390/sym16111467.
[2] I. G. Pearce, “Mathematics in the service of religion: II. Sulba Sutras,” Indian Mathematics – Redressing the Balance. School of Mathematics and Statistics, University of St Andrews, Scotland. [Online]. Available: https://mathshistory.st-andrews.ac.uk/Projects/Pearce/chapter-5/#:~:text=Previous%20Page,=b2+c2.. [Accessed: Feb. 28, 2026].
[3] H. Gok Asido, “ALGORITMA PENCARIAN BILANGAN PRIMA” Program Studi Teknik Informatika, Institut Teknologi Bandung. Available: https://informatika.stei.itb.ac.id/~rinaldi.munir/Stmik/2006-2007/Makalah_2007/MakalahSTMIK2007-120.pdf. [Accessed: Feb. 28, 2026].
[4] M. O. I. Elamin, “Muhammad ibn Musa al-Khwarizmi: The Pioneer of Algorithms and His Enduring Legacy in Artificial Intelligence,” Journal of Ecohumanism, vol. 3, no. 8, pp. 10853–10874, 2024, doi: 10.62754/joe.v3i8.5896.


