Pengenalan Algoritma: Pendahuluan, Sejarah, dan Mengapa Kita Harus Belajar Algoritma?

Pendahuluan

Sebenarnya algoritma itu apa sih?

Nah buat kamu yang merasa asing dengan kata ini, sebenarnya kamu sudah melakukan algoritma sebanyak puluhan bahkan ribuan kali lho.

Kamu melakukan algoritma ketika kamu berangkat dari rumah ke sekolah. Hal apa yang pertama kali kamu lakukan? Mungkin kamu hanya perlu berjalan kaki, atau juga dengan naik kendaraan seperti sepeda maupun kereta api.

Contoh lainnya adalah ketika kamu memasak sesuatu. Ya, salah satu contoh algoritma yang sangat jelas adalah resep, di dalamnya terdapat bahan dan langkah apa saja yang dilakukan sampai makanan selesai dibuat.

Dari dua contoh di atas, bisa disimpulkan bahwa:

Algoritma adalah suatu alur pikiran atau langkah-langkah untuk menyelesaikan pekerjaan yang dijelaskan dalam bentuk tulisan yang dapat dipahami oleh orang lain.

Alur pikiran ini tentu saja bisa berbeda-beda dari satu orang dengan orang yang lain tapi dengan tujuan dan hasil yang sama.

Dalam ilmu komputer,

  • penerima alur pikiran : komputer
  • pemberi perintah : manusia.

Perintah-perintah ini ditulis ke dalam sekumpulan instruksi yang dapat dimengerti oleh komputer atau istilah lainnya yaitu program. Program ini ditulis menggunakan bahasa pemrograman. Bahasa pemrograman ini banyak sekali jenisnya, seperti Bahasa PHP, Python, C++, dan masih banyak lagi.

 

Sejarah Algoritma

If you want to understand today, you have to search yesterday – Pearl Buck.

Ada baiknya jika kita mengetahui asal usul dari segala sesuatu, karena segala sesuatu memiliki sejarah, tentu saja untuk menambah ilmu juga.

Kamu mungkin berpikir algoritma adalah sesuatu yang baru, tapi ternyata istilah ini sebenarnya sudah muncul lebih dari 900 tahun.

Kata algoritma berasal dari seorang ahli Matematika Persia bernama Muhammad Ibn Musa Al-Khawarizmi yang juga dikenal sebagai Bapak Aljabar. Beliau lahir sekitar tahun 780 M di wilayah yang sekarang dikenal sebagai Uzbekistan dan meninggal pada tahun 850 M.

Gambar 1: Muhammad Ibn Musa Al Khwarizmi

Pada tahun 825 M, beliau menulis sebuah buku yang berjudul “Kitāb al-Jam’a wa-l-tafrīq bi-ḥisāb al-Hind” atau Buku Penjumlahan dan Pengurangan berdasarkan Kalkulasi Hindu.

300 tahun kemudian, buku tersebut ditemukan kembali dan diterjemahkan ke dalam bahasa Latin yang mengenalkan difusi angka India ke perangkaan timur tengah kemudian ke barat, yang akhirnya menggantikan angka romawi.

Bisakah kamu bayangkan mencoba mengalikan atau membagi dua angka di kertas menggunakan angka romawi? Tentu sulit kan?

Beliau menghasilkan panduan komprehensif untuk sistem penomoran, yang dikembangkan dari sistem Brahmi di India, hanya dengan 10 digit (0-9) yang dinamakan angka arab.

Gambar 2: Evolusi Angka Hindu-Arabic. Source: BBC Ideas

Nama al-Khawarizmi pun dilatinisasi menjadi algoritmi yang merupakan asal usul dari kata algoritma. Namanya juga diserap ke dalam bahasa Spanyol, guarismo, dan dalam bahasa Portugis, yaitu algarismo yang bermakna digit.

Pada akhir abad ke-19, kata algoritma berubah maknanya menjadi serangkaian aturan langkah demi langkah untuk memecahkan masalah.

 

Mengapa kita harus belajar algoritma?

Dasar dari pemrograman

Algoritma adalah dasar dari pemrograman. kita menggunakan algoritma untuk memecahkan masalah. Jika kita menulis program apapun, kita harus gunakan algoritma.

Jadi kenapa kita harus mempelajarinya?

Jawabannya adalah karena kita harus menggunakan algoritma dengan baik, secara efisien. Tanpa mempelajari algoritma, kita akan menghadapi masalah saat mencoba menyelesaikan masalah. Kita mungkin harus mengembangkan cara kita sendiri yang mungkin tidak terlalu efisien.

Menentukan cara yang terbaik untuk memecahkan masalah

Algoritma seringkali berbeda satu sama lain. Contohnya ketika menghitung akar kuadrat dari suatu bilangan. Sangat mungkin bahwa ada banyak cara untuk menghitung fungsi akar kuadrat.

Satu algoritma bisa menggunakan lebih banyak sumber daya (memori) daripada yang lain. Satu algoritma mungkin membutuhkan waktu 10 kali lebih lama untuk mengembalikan hasilnya seperti yang lain.

Kita memiliki beberapa cara untuk membandingkan kedua solusi ini. Meskipun keduanya bekerja, yang satu mungkin “lebih baik” dari yang lain. Pada akhirnya, seringkali ada banyak cara untuk menyelesaikan masalah.

Menemukan solusi dan kemudian memutuskan apakah itu solusi yang baik adalah tugas yang akan kita lakukan secara berulang-ulang.

Cara untuk Menghasilkan Program yang Memiliki Nilai

Algoritma yang baik dan penerapan yang tepat akan menghasilkan program yang menarik dan penting.

Bagaimana cara Google Maps bisa mencari tahu jalan dari Pamulang, Tangerang Selatan ke  Ciwidey, Bandung sehingga kita bisa pergi ke tempat wisata Kawah Putih? Mereka menggunakan Algoritma Pencarian Jalur (Algoritma Dijkstra).

Bagaimana cara Pixar mewarnai model 3d karakter berdasarkan pencahayaan di ruang virtual? Mereka menggunakan Algoritma Rendering.

Algoritma-algoritma ini lebih kompleks dibandingkan algoritma sehari-hari, tapi tetap mengacu ke hal yang sama, yaitu sekumpulan instruksi.

Jika kamu menerapkan algoritma yang benar, kamu dapat menghemat usaha dan membuat program kamu menjadi lebih cepat.


Referensi:

Sjukani, M. (2013). Algoritma (Algoritma dan Struktur Data 1) dengan C, C++, dan Java, Edisi 8: Teknik-Teknik Dasar Pemrograman Komputer. Jakarta: Mitra Wacana Media.

https://www.khanacademy.org/computing/computer-science/algorithms/intro-to-algorithms/v/what-are-algorithms

https://id.wikipedia.org/wiki/Muḥammad bin Mūsā al-Khawārizmī