Pengantar Algoritma

Komputer (hardware) dibuat sebagai alat bantu untuk menyelesaikan masalah. Permasalahan apapun dapat diselesaikan oleh komputer asalkan langkah-langkah penyelesaian disediakan oleh manusia (brainware). Dengan kata lain, manusia menulis program (software) yang berisi urutan langkah-langkah penyelesaian masalah, lalu program tersebut "dimasukan" ke dalam komputer. Dalam hal ini, komputer hanya bertindak menjalankan perintah-perintah yang tertulis di dalam program tersebut. Sebenarnya manusia sendiri mampu melaksanakan perintah-perintah tersebut, tetapi komputer  memiliki kelebihan dibandingkan dengan manusia. Komputer adalah benda mati, jadi ia tidak  mengenal lelah dan bosan. Komputer mampu mengerjakan perintah yang banyak sekalipun, selain itu juga ia mampu mengerjakan suatu perintah yang sama secara berulang - ulang, 100 kali, satu juta kali, atau berapa kalipun yang manusia perintahkan. Manusia suka pelupa, sedangkan komputer tidak. Komputer memiliki memori yang besar sehingga ia mampu menyimpan data dan informasi dalam volume yang banyak.

Dari paragraf di atas terdapat tiga kata yang disebutkan, yaitu : hardware, software dan brainware, yang merupakan tiga komponen utama dalam sistem komputerisasi. Komputer akan dapat berfungsi dengan baik apabila ia telah diprogramkan. Sebagai ilustrasi sederhana, misalkan Anda ingin menggunakan komputer untuk mengurutkan sekumpulan nilai. Permasalahan pengurutan (sorting) banyak ditemukan dalam kehidupan sehari-hari. Kita lebih mudah membaca data yang terurut daripada data yang tersusun secara acak. Data yang terurut mempermudah kita untuk mencari data tertentu (misalnya mencari nama dalam katalog buku telepon). Data yang terurut juga memudahkan kita menentukan rangking (misalnya dalam menyeleksi siswa baru berdasarkan nilai tes masuk). Jika data yang diurutkan hanya sedikit (misalnya 10 data), tentunya komputer tidak terlalu  diperlukan dan manusia masih mampu untuk mengurutkannya secara manual. Namun bagaimana jika data yang diuruutkan berjumlah sangat banyak (misalnya 10.000 atau satu juta data)? Tentu manusia mampu melakukannya, tetapi akan membutuhkan waktu yang sangat lama dan juga membutuhkan ketelitian, kesabaran dan lain sebagainnya. Disinilah peran komputer dalam membantu manusia untuk  melakukan pengurutan data tersebut. Seperti yang telah disebutkan sebelumnya, yang mana bahwa komputer mampu melakukan perintah yang diberikan tanpa mengenal lelah dan bosan namun tetap memberikan hasil pekerjaan yang teliti dalam waktu yang relatif sangat cepat.

Sekarang coba Anda pikirkan, bagaimana cara Anda mengurutkan sejumlah data? Misalkan Anda memiliki setumpuk kartu yang diberi nomor 1 sampai 50. Kartu tersebut semula tersusun acak, dan sekarang Anda perlu mengrutkannya kembali dari nomor kecil ke nomor besar (nomor di atas dan nomor besar di bawah). Secara tradisional, langkah-langkah yang Anda lakukan adalah mencari kartu dengan nomor terbesar (50), lalu meletakkannya diposisi paling bawah. Selanjutnya, mencari nomor terbesar kedua (49), lalu meletakannya diatas kartu pertama. Dan begitu-pun seterusnya, Anda mencari kartu terbesar ketiga, terbesar keempat, sampai akhirnya seluruh kartu sudah terurut dengan nomor kecil di atas dan nomor besar di bawah. Sebagaai catatan Anda juga dapat melakukan cara sebaliknya, yaitu dengan cara mencari kartu dengan nomor terkecil (1), lalu letakan pada posisi pertama. Selanjutnya kartu terkecil nomor dua (2) diletakan di bawah kartu pertama. Begitu seterusnya, Anda mencari kartu dengan nomor terkecil ketiga, terkecil keempat, sampai akhirnya seluruh kartu telah terurut dengan nomor kecil di atas dan nomor besar di bawah.

Sekarang, mari kita tuliskan langkah-langkah pengurutan 50 buah kartu tersebut :

  • Langkah 1: Cari kartu dengan nomor terbesar
  • Langkah 2: Tempatkan kartu tersebut pada posisi paling bawah (posisi 50)
  • Langkah 3: Cari kartu dengan nomor terbesar kedua
  • Langkah 4: Tempatkan kartu tersebut pada posisi 49
  • Langkah 5: Cari kartu dengan nomor terbesar ketiga
  • Langkah 6: Tempatkan kartu tersebut pada posisi 48
  • Langkah 7: Cari kartu dengan nomor terbesar keempat
  • Langkah 8: Tempatkan kartu tersebut pada posisi 47
........(dst)

Perhatikanlah bahwa sebenarnya di dalam langkah-langkah penyelesaian di atas hanya terdapat dua perintah, yaitu mencari kartu dengan nomor tebesar dan menempatkan kartu tersebut dan menempatkan kartu tersebut pada posisi yang benar. Kedua perintah ini diulang berkali-kali tetapi dengan acuan yang berbeda (kedua, ketiga dan seterusnya). Langkah-langkah penyelesaian di atas dapat kita tulis lebih sederhana sbb :
  • Langkah 1: Cari kartu dengan nomor terbesar
  • Langkah 2: Tempatkan kartu tersebut pada posisi tepat
  • Langkah 3: Ulangi langkah 1 untuk 49 kartu yang lain
Secara umum, jika kita memiliki n buah kartu, maka langkah-langkah pengurutannya dapat dibuat secara lebih umum, seperti di bawah ini :
  • Langkah 1: Cari kartu dengan nomor terbesar
  • Langkah 2: Tempatkan kartu tersebut pada posisi tepat
  • Langkah 3: Ulangi langkah 1 untuk n - 1 buah kartu yang lain
Perhatikan bahwa langkah 1 masih perlu dirinci lagi menjadi langkah-langkah yang lebih primitif. Dan tentunya nanti kita akan mempelajarinya lebih dalam lagi.

Ide pengurutannya tumpukan kartu dengan cara di atas mengilhami orang untuk menulis program pengurutan sekumpulan data dengan bantuan komputer. Data yang akan diurutkan harus dimasukan dulu kedalam memori komputer dengan cara "pembacaan", selanjutnya data tesebut diurutkan dengan langkah-langkah yang sudah dijelaskan di atas. Agar program dapat dijalankan oleh komputer, maka program tersebut harus ditulis dalam bahasa khusus komputer. Bahasa khusus komputer yang digunakan dalam menulis program dinamakan bahasa pemrograman. Orang yang memmbuat program komputer disebut pemrogram (programmer), dan kegiatan merancang dan menulis program disebut pemrograman.

referensi penulis : materi kuliah (slide), buku algoritma dan pemrograman dalam bahasa pascal dan C edisi ke tiga penulis : Rinaldi Munir penerbit : Informatika

Tidak ada komentar:

Posting Komentar

Komen-nya di bawah ini ya gan :