STRUKTUR DATA

Sabtu, 28 April 2012
I.1. PENGERTIAN

        Berbicara dengan struktur data maka perlu memperhatikan beberapa aspek seperti
logika, algoritma dan kompleksitas program. Struktur data menjadi sangat penting dalam
mendisain sebuah program yang efisien dengan akses yang sangat efektif. Sebuah program
merupakan proses bentukan dari stuktur data dan algoritma.
Data diorganisasi sedemikian rupa dengan cara yang berbeda-beda, baik menurut
logika maupun model model matematika kemudian disusun menurut aturan-aturan yang
benar yang disebut dengan struktur data. Data adalah fakta-fakta / angka-angka yang sudah
terekam tetapi belum digunakan untuk suatu keperluan. Struktur adalah elemen-elemen
pebentuk atau pengaturan hubungan antar elemen dalam suatu sistem.
Model data dapat dipandang dengan 2 cara yaitu :
1. Struktur yang cukup menghubungkan data dalam dunia nyata
2. Struktur sederhana untuk dapat mengefektifkan proses data yang diperlukan.
Struktur data dibagi atas 3 tingkatan struktur yaitu :
1. Defenisi fungsional
2. Referensi logika
3. Struktur fisik
Nilai data (data value) adalah suatu data yang dipandang sebagai satu kesatuan tunggal
(single entity) sedangkan tipe data adalah kombinasi antara himpunan nilai data (set of
value) dan himpunan operasi terhadap nilai-nilai data tersebut.
Struktur data abstrak dibagi menjadi beberapa bagian yaitu :
1. List linier (Linked list)
2. linked list banyak (Multi linked list)
3. Tumpukan (Stack)
4. Antrian (Queue)
5. Pohon (Tree)
6. Grafik (Graph)
Struktur data non abstrak dikelompokkan dalam beberapa bagian yaitu :
1. Set
2. Array
3. Record
4. File
5. Pointer, dan lain-lain
Tipe data abstrak (TDA)
Dapat dipadang sebagai model matematika dan sekumpulan operasi yang
didefenisikan terhadap suatu model.
Struktur Data
Bahan Ajar Matakuliah oleh Sinar Sinurat, ST
9
Contoh :
Himpunan bilangan bulat : {...,-3,-2,-1,0,1,2,3,...} operasi yang dapat dilakukan terhadap
himpunan ini adalah gabungan, irisan, dan lain-lain.
TDA dapat dibagi menjadi :
1. Generalisasi : proses membangkitkan tipe-tipe data dasar / primitif (real, integer, dan
lain-lain) seperti juga prosedur yang merupakan generalisasi dari operasi-operasi dasar,
seperti : +, -, *, /, dan lain-lain
2. Enkapsulasi : Merupakan TDA yang melingkupi / menyelimuti tipe data, artinya
defenisi jenis data dan operasi-operasi yang diperbolehkan dilokalisasi dalam satu
bagian program. Tipe data dari sebuah variabel adalah kumpulan nilai tertentu yang
dimuat oleh variabel tersebut. Misalnya tipe data boolean yang hanya bernilai true atau
false dan tidak boleh yang lain.

 I.2. KONSEP ARRAY

Array merupakan struktur data yang paling sederhana, kesederhanaannya dapat
dilihat dari pemberian notasi model linier (dimensi). Dalam array linier dengan jumlah data
terbatas (finite) didefenisikan sebagai berikut : A1, A2, A3, ..., An atau dengan notasi dalam
kurung :
A(1), A(2), A(3), ..., A(n)
atau dengan notasi dalam kurung siku :
A[1], A[2], A[3], ... A[n].
Dilihat dari notasi-notasi di atas bahwa A adalah variabel operand dan 1, 2, 3, ... , n adalah
indeks yang menyatakan sekuensi proses.
Selain model notasi linier satu dimensi juga diperbolehkan untuk dua atau tiga
dimensi misalnya, dengan dimensi 2 :
A[1,1], A[1,2], ..., A[1,n], A[2,1], A[2,2], …, A[m,n]
dan oleh karena itu array disebut juga dengan dense list (struktur data statis).
Dimensi Array :
1. Array 1 dimensi : List dan vektor
2. Array 2 dimensi : tabel dan matriks
3. Array multidimensional : secara teoritis bahwa jumlah dimensi tidak terbatas akan tetapi
hanya dibatasi oleh besarnya memory
4. Array-array special :
− Array segitiga (triagular array) :
􀂾 Lower triangular array : array 2-dimensi berbentuk bujur sangkar (U1 = U2),
dimana semua komponen di atas diagonal berisi 0
􀂾 Upper triangular array : perbedaan lower triangular array adalah semua komponen
di bawah diagonal yang berisi 0. Penyimpanan memerlukan lebih sedikit memory,
karena angka 0 tidak perlu disimpan. Rumus AMF untuk triangular array adalah :
Address (S[i,j] = C0 + C1 x (i x (i-1)) + C2 x j, dimana C0 = B, C1 = L/2 , C2 = L
Jumlah elemen = (U x (U+100/2 dan
Jumlah memory = L x jumlah elemen
− Array jarang (Sparse Array) : Array yang kebanyakan komponennya mempunyai satu
nilai yang sama, misalnya nilai 0, hanya sebagian kecil yang tidak sama dengan 0.

I.3. KONSEP LINKED LIST

List dianalogikan sebagai daftar (record), kemudian beberapa daftar / record
digabung atau dihubungkan sebagai rangkaian suatu proses yang disebut dengan link. Suatu
entitas dimana record-recor yang termuatdi dalamnya dihubungkan (linked) menjadi satu
proses bersama disebut linked list. Linked list untuk pertama kalinya dapat dikenali dan
dihubungkan dengan suatu pointer head. Perhatikan diagram berikut dalam gambar 1.1






Gambar 1.1. Bentuk list

Pada gambar 1.1. ditunjukkan bahwa head akan merujuk (menyimpan alamat) record
tersebut. Rangkaian linked list dikenali dengan head, listlist terkait dan tail










I.4. KONSEP TREE

Tree (pohon) adalah struktur data yang menyatakan frekuensi data dengan relasi
dalam suatu hirarki antara elemen-elemen data, induk relasi tersebut adalah root (akar) dan
cabang-cabang yang memiliki data disebut dengan leave dan leaf.
Contoh :
Record : mahasiswa {nim, nama, alamat{jalan, area{kota,kdpos}}, umur, jurusan, hobby}
Perhatikan diagram berikut dalam gambar 1.3.






                            Gambar 1.3. Bentuk pohon

I.5. KONSEP STACK

Stack (tumpukan) adalah struktur data (list linier) yang menganut paham LIFO (last
in first out), dimana proses yang dapat dilakukan adalah sisip dan hapus data, dan selalu
mengambil posisi di akhir tumpukan (top of stack) dengan bentuk penotasiannya dengan
postfix. Operasi pada stack adalah PUSH (memasukkan data dalam stack) dan POP
(mengambil data dari stack). Perhatikan diagram berikut dalam gambar 1.4.
 
    Gambar 1.4. Bentuk Tumpukan

I.6. KONSEP QUEUE

Queue (antrian) adalah struktur data (list linier) yang menganut paham FIFO (first in
first out) dimana operasi penghapusan dilakukan di depan (front) list dan operasi sisip
dilakukan di belakang (rear) list. Perhatikan diagram berikut dalam gambar 1.5.

       Gambar 1.5. Bentuk Antrian

1.7. KONSEP GRAPH

Graph (grafik) merupakan bagian struktur data yang mengindikasikan adanya relasirelasi
(many to many) yang beraturan dan tidak beraturan diantara pasangan elemen-elemen
data baik untuk tipe yang sama atau berbeda dengan berbentuk network / jaringan.

Gambar 1.6. Bentuk salah satu graph

0 komentar:

Posting Komentar