W152100006
Struktur Data
01
Abstract Kompetensi
Mampu menyusun Algoritma dan program terkait Sub-CPMK 1. Mahasiswa mampu mampu
dengan Fungsi Rekursif menyusun Algoritma dan program terkait
dengan Fungsi Rekursif
PENDAHULUAN
1. TRUKTUR DATA
Sebelum dibahas tentang pengertian dari Struktur Data, Tipe Data dan Abstraksi Data kita
akan mendefinisikan kata Data dan Struktur terlebih dahulu, karena kedua kata itu akan
banyak dipergunakan dalam buku ini.
Data adalah Bahan yang digunakan dalam perhitungan atau operasi untuk menghasilkan
informasi yang berguna.
Maka struktur data dapat didefinisikan sebagai : Pengaturan atau hubungan dari data di
dalam suatu sistem.
Kita tentu sering bekerja dengan program, pertanyaan yang mungkin timbul adalah, “dimana
letak kegunaan dari struktur data dalam hubungannya dengan program ?”.
PROGRAM
2. TIPE DATA
Tipe data adalah Identifikasi yang umum dari suatu kelompok data sehingga kelompok data
tersebut dapat dibedakan dari kelompok lainnya.
Secara umum, tipe data dapat dikelompokkan ke dalam 2 kelas; tipe data atomik dan tipe data
struktur. Suatu data disebut sebagai tipe atomic bila data tersebut tidak dapat diuraikan ke
dalam bentuk yang lebih sederhana. Contohnya adalah: tipe data Integer, tipe data Char, dll.
Sedangkan tipe data struktur atau tipe data atomik. Contohnya adalah : tipe data array, record,
dll.
Berikut akan dikemukan contoh dari masing-masing tipe data dengan menggunakan deskripsi
yang biasanya dilakukan dalam bahasa C.
Jenis tipe data diatas adalah tipe data struktur, komponennya terdiri dari tipe data INTEGER
(dapat diuraikan ke dalam tipe data atomic berbentuk INTEGER), struktur atau hubungan
antara komponennya disusun dalam bentuk ARRAY.
Mengenai tipe data ARRAY akan dibahas lebih lanjut dalam modul 2.
Jika tipe data abstrak tersebut kita implementasikan dengan menggunakan bahasa
pemrograman, maka kita dapat menuliskan program untuk melakukan operasi-operasi seperti
yang telah disebutkan pada level abstrak di atas. Tipe data yang berada dalam bahasa
pemrograman dikatakan berada pada level virtual.
Pada akhirnya, pada saat program dijalankan, tipe data virtual harus secara physic diload ke
dalam memory/processor dari mesin computer yang dipergunakan untuk menjalankan
program tersebut. Tipe data yang demikian dikatakan berada pada level physical.
Secara ringkas kita dapat membagi tipe data ke dalam 3 level abstraksi, yaitu :
Adalah tipe data yang berada dalam virtual memory atau dalam bahasa pemrograman.
Adalah tipe data yang secara physic atau nyata berada dalam memory/main processor.
Pada level physical, semua data dinyatakan dalam binary digit (bit), yaitu berupa angka 0
dan 1. data tipe ini sangat menyulitkan manusia dalam membaca, menulis atau
mengubahnya. Maka diciptakanlah bahasa pemrograman yang memudahkan manusia
untuk berkomunikasi dengan computer. Bahasa pemrograman tingkat tinggi (high level
language) merupakan bahasa pemrograman yang paling mudah dimengerti oleh manusia.
Dalam bahasa pemrograman ini biasanya telah tersedia beberapa tipe data yang dapat
* int
* char
* long
Terminologi yang pertama adalah pre, yang merupakan singkatan dari precondition;
menyatakan kondisi yang harus dipenuhi agar operasi dapat menghasilkan hasil yang benar.
Terminologi yang kedua adalah post, yang merupakan singkatan dari postcondition; kondisi
yang merupakan hasil dari operasi.
Sebagai contoh akan didefinisikan tipe data abstrak yang disebut letterstring yang merupakan
kumpulan huruf ‘a’ sampai ‘z’, ‘A’ sampai ‘Z’ dan spasi. Hasil dari letterstring bias berupa
suatu kalimat yang mempunyai arti tertentu, atau juga bias hanya merupakan kumpulan huruf
yang tidak mempunyai arti apa-apa.
Contoh :
▪ aaaaaiiiiieeeekkkkkk
▪ Algoritma / Pseudocode
Berdasarkan definisi letterstring maka nomor 1 dan 2 dari contoh di atas adalah letterstring,
sedangkan 3 dan 4 bukan letterstring karena mengandung elemen yang nilainya tidak
diperkenankan dalam letterstring (/, angka 3,2,6, dan tanda () ).
Batasan lain yang dispesifikasikan adalah jumlah huruf dalam letterstring tidak boleh
melebihi 80 huruf, dan letterstring dengan 0 huruf (tanpa huruf) diperkenankan.
Post - leftletter berisi huruf paling kiri dari letterstring, dan jumlah
huruf dalam
{operasi untuk mengecek apakah suatu string tidak berisi huruf (kosong)}
Setelah kita membahas spesifikasi dari tipe data abstrak dan melihat bagaimana
mudahnya menerjemahkan spesifikasi tersebut ke dalam bahasa pemrograman, dapat
disimpulkan beberapa keuntungan dari tipe data abstrak diantaranya kebebasan
implementasi (implementation independence), integritas dan penyederhanan masalah
(simplicity).
5. PE DATA PHYSICAL
Seperti telah dibahas pada bab 1.3 bahwa tipe data physical adalah tipe data yang secara
physic atau nyata berada dalam memory / main processor. Tipe data ini perlu dipelajari lebih
rinci mengingat hal ini mempengaruhi pertimbangan antara besarnya tempat yang dibutuhkan
untuk menyimpan data dengan kecepatan / efesiensi pengambilan data untuk menghasilkan
design yang efektif.
Dua hal penting yang harus diperhatikan bila kita berbicara mengenai tipe data physical
adalah: memory dan processor yang dipergunakan.
5.1. Memory
Bentuk SAM yang umum ditemukan adalah magnetic tape, kecepatan accessnya
sangat rendah, kapasitasnya sangat besar (walaupun sekarang dapat ditemukan
magnetic disk yang mempunyai kapasitas sebesar magnetic tape), selalu non-volatile
dan portable. Karena sifat tersebut di atas maka memory jenis ini biasanya
dipergunakan untuk memback-up data.
Memory jenis ini biasanya ditemukan dalam bentuk magnetic disk (piringan magnet),
bias berupa diskette atau hard disk. DAM ini accessnya cukup cepat (walaupun kalau
dibandingkan dengan RAM masih kalah cepat), kapasitasnya cukup besar (dari
Megabyte hingga GigaByte), non-volatile, dan sangat mudah dibawa (portable)
karena ukurannya yang kecil.
Memory jenis ini sangat cepat, relative lebih kecil, pada umumnya bersifat volatile
(walaupun ada beberapa tipe yang bersifat non-volatile) dan non-portable.
4. Cache Memory
Memory ini jauh lebih cepat dibandingkan dengan RAM, kapasitasnya lebih kecil dan
harganya cukup tinggi.
5. Registered
Walaupun memory jenis ini sangat tinggi harganya, kapasitasnya sangat kecil tetapi
register mutlak diperlukan untuk melakukan operasi di dalam computer. Kecepatan
dari register adalah yang tertinggi dibandingkan dengan semua jenis yang ada.
Cache
RAM
DAM
5.2. Processor
Processor yang dipergunakan sangat menentukan range/batasan dari native data type.
Ambil contoh Personal Computer (PC), dengan processor yang berbeda, jumlah bit yang
diproses juga akan berbeda. Misalkan processor 8088 dan 80286 hanya memproses data
8 bit, 80386 memproses 16 bit dan 80486 memproses 32 bit.
6. SOAL LATIHAN
Soal Latihan
1. Apa yang dimaksud dengan struktur data?
1. Daniel F Stubbs & Neil W. Webre (1985). Data Structures with Abstract Data Type
and Pascal. Brook/ Cole Publishing Company
3. Maria, Anna (1998), Struktur Data, Buku Ajar Universitas Bina Nusantara Jakarta.
4. Kristanto, Andri (2003), Struktur Data dengan C++, Penerbit Graha Ilmu