Abstract Data Type

Abstract Data Type

Abstract Data Type (ADT) adalah kumpulan dari elemen-elemen data yang disajikan

dengan satu set operasi yang digambarkan pada elemen-elemen data tersebut.(JENI)

Apa itu struktur data?

  1. Cara menyimpan data didalam komputer sehingga dapat digunakan secara efisien.(Wikipedia)

  2. Merupakan organisasi informasi, biasanya di memory, untuk efisiensi algoritma yang lebih baik. (http://www.nist.gov/dads)

  3. Representasi data yang diberikan dan operasi yang diperbolehkan pada data untuk mendapatkan efisiensi.(Weiss)

Dari 3 definisi diatas setidaknya kita sudah mempunyai gambaran tentang struktur data, ga tau gambarnya kayak apa??

Daripada saya ikut bingung mikirin gambarnya struktur data, kita cari tau aja mengapa koq kita membutuhkannya/mempelajarinya. Tapi sebelum lanjut ada jawaban dari beberapa mahasiswa yang sedang mengampu mata kuliah ini. Sebut saja bunga, fulan, dan mawar.Mereka berkata.

Bunga: “terpaksa mas“,

Fulan : „dah kadung ngambil mata kuliahnya..“

Mawar: “karena dosennya Pak Marji mas…”

Continue reading “Abstract Data Type”

Algoritma dan Pemrograman

Definisi Algoritma

Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untukmemecahkan suatu permasalahan.

Kamus besar bahasa Indonesia (Balai Pustaka 1988) secara formal mendefinisikan

algoritma sebagai:

Algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.

Dari pengertian diatas sudah jelas bahwa algoritma tidak hanya identik dengan ilmu komputer atau teknik informatika, bahkan resep makanan merupakan suatu algoritma juga karena merupakan urutan sitematis untuk memecahkan masalah(membuat makanan)[MUN00]. Dan perlu diingat bahwa algoritma tidak terikat dengan bahasa pemrograman apapun, jadi dengan algoritma kita bisa menggunakan semua bahasa pemrograman yang kita mau. Yang terpenting algoritma harus dinyatakan langkah (dalam bentuk) yang dapat dimengerti oleh programmer lain . Jadi terserah kita mau bikin algoritmanya sebagai cerita atau gambar yang jelas orang lain bisa mengerti maksudnya. Dan sebagai programmer juga harus memiliki keahlian membaca algoritma. Sebagai analogi, Seorang pianis tidak dapat memainkan musik bila ia tidak mengerti not balok. Sama halnya dengan programmer, menurut [GOL88] seharusnya programmer mengerti setiap langkah dalam suatu algoritma, dan mengerjakan operasi yang bersesuaian dengan langkah tersebut.

Continue reading “Algoritma dan Pemrograman”

ALGORITMA Kompresi SHANNON

Dalam proses penyimpanan data biasanya diperlukan optimasi besarnya file yang akan disimpan, mengingat kebanyakan user tidak selalu mempunyai ruang hardisk yang begitu besar. Kalaupun memiliki media penyimpanan yang cukup besar pastilah akan dioptimalkan penggunaannya. Salah satu caranya yaitu menggunakan kompresi data untuk menghemat ruang penyimpanan.

Untuk proses kompresi dewasa ini(zip, rar,tar.gz) menggunakan gabungan beberapa algoritma kompresi dasar seperti LZW, SHANNON-FANO, HUFFMAN, gunzip, dan lain-lain. Pada coretan blog ini saya akan sedikit memaparkan tentang ALGORITMA SHANNON. Pada prinsipnya algoritma ini menggunakan pendekatan top down dalam penyusunan binary tree.  Metode ini sangat efisien untuk mengompresi file text yang berukuran besar.

Untuk langkah-langkahnya sebagai berikut :

  1. Mengurutkan karakter berdasarkan probabilitasnya yang terbesar.
  2. Membagi menjadi 2 berdasarkan selisih paling sedikit dari nilai dua kelompok karakter yang terurut tadi.
  3. Secara rekursif dibagi menjadi 2 bagian, setiap bagian memiliki nilai yang sama atau dengan selisih paling sedikit.
  4. Mengasign nilai 1 kekanan dan 0 ke kiri pada pohon biner.

Continue reading “ALGORITMA Kompresi SHANNON”