• Pemecahan masalah adalah inti dari ilmu komputer dan pemrograman komputer.
  • Bayangkan sebuah masalah mendasar, yaitu mencoba menemukan satu nama di buku telepon. 
  •   
  • Pada buku telepon, nama pemilik nomor telepon diurutkan berdasarkan abjad. 
  • Jumlah nomor telepon yang tertera di dalam buku telepon bisa mencapai ratusan ribu, dan tebal buku telepon bisa mencapai ribuan halaman.
  • Bagaimana Anda mencari suatu nomor telepon menggunakan buku tersebut?
  • Salah satu pendekatannya bisa dengan membaca dari halaman pertama ke halaman berikutnya hingga mencapai halaman terakhir.
  • Pendekatan lain bisa dengan membuka dua halaman sekaligus, untuk mempercepat pencarian.
  • Pendekatan terakhir dan mungkin lebih baik adalah langsung menuju ke halaman tengah buku telepon dan melihat, "Apakah nama yang saya cari berada di kiri halaman ini atau di kanan halaman ini?" Kemudian, ulangi proses ini terus menerus hingga Anda menemukan nama yang Anda cari. 
  • Masing-masing pendekatan di atas disebut dengan "algoritma". Kecepatan masing-masing algoritma, dapat digambarkan sebagai berikut, yang disebut sebagai notasi Big-O:
    big o notation
  • Perhatikan bahwa algoritma pertama, disorot dengan warna merah, memiliki Big-O sebesar n, karena jika ada 100 nama di buku telepon, diperlukan hingga 100 kali percobaan untuk menemukan nama yang benar. Algoritme kedua, di mana dua halaman ditelusuri sekaligus, memiliki Big-O sebesar 'n/2' karena Anda akan menelusuri dua kali lebih cepat di seluruh halaman. Algoritma terakhir memiliki Big-O sebesar dari log2n karena merupakan cara tercepat untuk menemukan nama yang dicari, namun ukuran algoritma (jika sudah ditulis dalam bahasa pemrograman) menjadi berlipat ganda.

Terakhir diubah: Selasa, 18 Juli 2023, 09:03