Menilai Sebuah Algoritma


Ketika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untuk memecahkan masalah itu ada kemungkinan bisa banyak (tidak hanya satu). Dan kita memilih mana yang terbaik di antara teknikteknik itu. Hal ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan. Yang menjadi pertanyaan adalah bagaimana mengukur mana algoritma yang terbaik?. Beberapa persyaratan untuk menjadi algoritma yang baik adalah :

  • Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
  • Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
  • Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
  • Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
  • Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).
  • Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.
  • Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti. Contoh : Tambahkan 1 atau 2 pada x. Instruksi di atas terdapat keraguan.
  • Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.
  • Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya. Contoh : Hitung akar 2 dengan presisi sempurna. Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah. Misal : Hitung akar 2 sampai lima digit di belakang koma.
  • Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
  •  Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.
Sedangkan kriteria Algoritma menurut Donald E. Knuth adalah :
  • Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
  • Output: algoritma harus memiliki minimal satu buah output keluaran.
  • Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
  • Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).
  • Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1
Namun ada beberapa program yang memang dirancang untuk unterminatable : contoh Sistem Operasi.




Pengertian Logika Dan Algoritma


Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism.

Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.




Struktur Dasar Algoritma


Sebuah algoritma dapat dibangun dari tiga buah struktur dasar yang membentuk konstruksi suatu algoritma. Struktur-struktur dasar tersebut ialah:

Runtunan (sequence)
Pada struktur sekuensial instruksi dikerjakan secara berurutan baris perbaris mulai dari baris pertama hingga baris terakhir, tanpa ada loncatan atau perulangan. Pada struktur ini Tiap instruksi dikerjakan satu per satu.

Pemilihan (selection)
Struktur seleksi adalah instruksi yang dipakai untuk memilih satu aksi dari beberapa kemungkinan aksi berdasarkan suatu syarat.

Pengulangan (repetition)
Struktur perulangan adalah instruksi yang dapat mengulang sederetan instruksi secara berulang-ulang sesuai persyaratan yang ditetapkan. Struktur instruksi perulangan pada dasarnya terdiri atas :
  • Kondisi perulangan, yaitu suatu kondisi yang harus dipenuhi agar perulangan dapat terjadi.
  • Badan atau body perulangan, yaitu deretan instruksi yang akan diulang-ulang pelaksanaannya.
  • Pencacah (counter) perulangan, yaitu suatu variabel yang nilainya harus berubah agar perulangan dapat terjadi dan pada akhirnya membatasi jumlah perulangan yang dapatdilaksanakan.




Karakteristik Chip

Berikut adalah karakteristik penting dari chip :
  • Ukuran bus data internal (internal data bus size): Jumlah saluran yang terdapat dalam mikroprosesor yang menyatakan jumlah bit yang dapat ditransfer antar komponen di dalam chip.
  • Ukuran bus data eksternal (external data bus size): Jumlah saluran yang digunakan untuk transfer data antar komponen antara chip dan komponen-komponen di luar chip.
  • Ukuran alamat memori (memory address size): Jumlah alamat memori yang dapat dialamati oleh chip secara langsung.
  • Kecepatan clock (clock speed): Rate atau kecepatan clock untuk menuntun kerja chip.
  • Fitur-fitur spesial (special features): Fitur khusus untuk mendukung aplikasi tertentu seperti fasilitas pemrosesan floating point, multimedia dan sebagainya.
  • Prinsip kerja chip ini adalah trasmiting atau mengirim kode data melalui getaran yang bisa jutaan atau bahkan milyaran getar per detik.

Jenis-Jenis Chip



Chip Logic
Merupakan suatu chip yang berfungsi dan bekerja sebagai unit pemroses yang menjalankan perintah-perintah dan melakukan suatu perhitungan. Dalam prosesnya, logic chip ini dibantu oleh memory chip sebagai media penyimpan data yang digunakan pada waktu proses berlangsung
 
Chip memori
Jenis-jenis chip memori yang umum dikenal ada dua, yaitu RAM dan ROM.
  1. Chip RAM(random access memory), chip ini berfungsi untuk menyimpan data dan instruksi program sementara. Terdapat dua macam alat penyimpan, yakni penyimpan primer dan sekunder. Penyimpan primer (primary storage) adalah penyimpan sementara (temporer) saat bekerja dan biasanya disebut pula memori atau memori utama. Sedangkan peyimpanan sekunder (secondary storage) atau cukup disebut penyimpan, merupakan alat penyimpan secara permanen. Memori adalah media penyimpan yang berbentuk chip, sedangkan penyimpan menunjuk pada media semacam disk dan tape. Chip RAM secara temporer menyimpan instruksi perangkat lunak serta data sebelum dan sesudah diproses oleh CPU.
  2. Chip ROM
    (read-only memory), berfungsi untuk menyimpan instruksi start-up yang bersifat tetap. Tidak seperti RAM yang datanya selalu ditambah dan berubah, ROM tidak dapat ditulisi atau dihapus oleh pengguna komputer tanpa alat-alat khusus. Chip ROM khusus berisi instruksi start-up yang sudah ditentukan sebelumnya. Oleh sebab itu, chip ROM diisi oleh pabrik pembuatnya dengan program-program yang berisi instruksi khusus untuk operasi dasar komputer, misalnya untuk menghidupkan komputer (BIOS) atau menampilkan karakter ke layar. Chip ROM isinya tidak akan hilang meskipun komputer tidak lagi dialiri listrik.
Microprocessor
Mesin kecil sebagai pemroses dan pengendali utama proses yang terjadi pada komputer, yang dibuat dalam bentuk chip. Meskipun ukurannya secara fisik tidak terlalu besar, tetapi pemikir utama dari sebuah komputer adalah pada microprocessor ini, dan di sinilah proses utama diolah.



Pengertian Chip





Orang jepang menyebutnya “beras Industri- bertanggung jawab terhadap proses miniaturisasi pada piranti elektronik, computer dan alat komunikasi. chip mampu menyimpan dan memproses data pada peranti-peranti elektronik yang kita kenal –oven microwave, kontroler game, pensintesa music, kamera, system injeksi bahan bakar mobil, pager dan satelit.


Terdapat beragam jenis chip, misalnya chip mikroprosesor, memori, logik, komunikasi, grafis dan chip coprosessor matematik. Salah satu microchip yang paling penting adalah microprosessor(“prosesor mikroskopis” atau “prosesor dalam chip”), yaitu sirkuit mini dari prosesor computer – atau CPU, komponen yang bertugas untuk memproses atau memanipulasi data ke dalam bentuk informasi. Jika dimodifikasi untuk digunakan pada mesin – mesin selain computer, mikroprosesor dinamakan mikrokontroler atau embedded computer.