Selasa, 10 November 2015


Belajar Algoritma Pemrograman Melalui Animasi

Algoritma memiliki peran yang sangat penting dalam kehidupan suatu program. Dengan algoritma yang sesuai, suatu program biasa dapat berubah menjadi program yang luar biasa. Sebagai contoh apabila suatu program dibuat untuk mengurutkan penduduk kota Bandung berjumlah sekitar 46.000.000 jiwa berdasarkan umur. Algoritma untuk melakukan tugas tersebut dapat dipilih dari beberapa algoritma yang telah dikembangkan diantaranya insertion sort, selection sort, buble sort, shell sort, mergesort, heapsort, dan quicksort. Tidak semua algoritma yang telah disebutkan ini cocok untuk semua kondisi. Untuk kasus pengurutan penduduk kota Bandung apabila salah memilih algoritma pengurutan maka waktu yang dibutuhkan untuk mengurutkannya dapat memakan waktu berhari-hari, namun apabila algoritma yang dipilih tepat maka waktu yang dibutuhkan untuk mengurutkan penduduk kota Bandung ini dapat diselesaikan dalam hitungan menit.
Algoritma merupakan bidang tersendiri di Ilmu Komputer. Bahkan di kampus tempat saya menuntut ilmu (Ilmu Komputer, Universitas Pendidikan Indonesia) ada empat mata kuliah yang berhubungan langsung dengan Algoritma. Mempelajari algoritma pemrograman itu tidak mudah karena membutuhkan pemahaman yang mendalam untuk menguasainya.
Animasi banyak membantu kita untuk memvisualisasikan sesuatu yang sulit untuk dibayangkan. Misalnya membantu memahami bagaimana planet-planet mengellilingi matahari, membantu memahami bagaimana pergerakan lempeng bumi, membantu memahami bagaimana cara kerja suatu mesin, membantu memahami asal muasal tsunami, bahkan membantu kita untuk memahami cara kerja suatu algoritma. Artikel kali ini kita akan membahas tiga situs yang menyediakan animasi untuk beragam algoritma yang umum (maupun tak umum) yang banyak diimplementasi dalam berbagai macam program komputer.

Sorting Algorithm Animations

Sorting Algorithm Animations
Sesuai namanya, situs ini mengkhususkan diri untuk animasi algoritma pengurutan, salah satu algoritma paling penting didunia ini. Pengurutan seringkali kita temui dikehidupan sehari-hari. Salah satunya seperti pada contoh di atas.
Situs ini memberikan animasi untuk 8 algoritma pengurutan yaitu:
  • Insertion
  • Selection
  • Bubble
  • Shell
  • Merge
  • heap
  • Quick
  • Quick3
Selain itu ada pula empat jenis kasus untuk dicoba untuk melihat cara kerja algoritma pengurutan yang diinginkan. Keempat opsi itu ialah:
  • Random (acak)
  • Nearly sorted (hampir terurut)
  • Reversed (terbalik)
  • Few unique (campur-campur)
Untuk melihat cara kerja setiap algoritma dalam menyelesaikan kasus kita cukup mengklik salah satu atau semua kasus yang ada (tombol panah warna hijau akan mengaktifkan baris, kolom, atau semuanya). Dibawah ini adalah gambar pada saat semua animasi kasus pengurutan sedang diaktifkan.
Sorting in Action
Sorting in Action

Algomation

Algomation
Algomation.net

Algomation merupakan situs yang mendedikasikan diri untuk melihat, membuat dan berbagi semua jenis algoritma. Semua algoritma yang ada disitus ini dapat dilihat dan dibagikan oleh semua pengguna. Pengguna yang terdaftar disitus ini dapat membuat animasi baru atau mengembangkan animasi yang telah ada. Algomation dibuat oleh Duncan Meech.
View Algomation
View Algomation

Algomation dibuat dengan teknolog NodeJS dan Express serta memanfaatkan MongoDB sebagai media penyimpanan basis datanya. Situs ini disimpan di Heroku. Disisi klien situs ini dikembangkan dalam bahasa pemrograman JavaScript (ES5) dengan beragam pustaka open source termasuk JQuery 2.x, UnderscoreJS dan editor ACE Code. Untuk menggambar layout graf, digunakan springyjs dan dagre. Selain menggunakan pustaka open source Duncan Meech juga membuat sendiri graphic dan API layoutnya.

VisuAlgo

VisuAlgo.net
VisuAlgo.net

VisuAlgo merupakan situs yang juga menyediakan beragam animasi algoritma pemrograman populer yang dikembangkan oleh salah satu dosen di National University of Singapore (NUS), Dr. Steven Halim.
Konsep VisuAlgo muncul di tahun 2011 saat Dr. Steven Halim membutuhkan alat untuk membantu mahasiswanya memahami algoritma dan struktur data. Bersama beberapa mahasiswanya di NUS, beberapa visualisasi dikembangkan, mulai dari algoritma pengurutan sederhana sampai ke algoritma dan struktur data yang kompleks seperti graf, string serta algoritma geometri. Saat ini ada 18 jenis animasi algoritma dan struktur data yang tersedia.
Pilihan animasi algorimat dan struktur data
Pilihan animasi algorimat dan struktur data

VisuAlgo mengandung banyak algoritma yang dibahas dibuku yang juga ditulis oleh Dr. Steven Halim Competitive Programming 3. Saat ini, ada beberapa algoritma tingkat lanjut yang hanya ada di VisuAlgo. Contohnya, animasi Graph Traversal, Depth-First Search(DFS) dan Breadth-First Searc(BFS) beserta varian-variannya.
VisuAlgo sampai saat ini masih terus dikembangkan dan dapat diakses di alamat visualgo.net.
For your information, Dr Steven Halim ini orang Indonesia loh.
Minimum Spanning Tree in Action
Minimum Spanning Tree in Action

(bas/sorting-algorithm/algomation/visualgo/fedoraku)

Tidak ada komentar:

Posting Komentar