A.
PENGERTIAN STRUKTUR DATA
Dalam istilah ilmu komputer,
sebuah struktur data adalah cara penyimpanan, penyusunan dan pengaturan
data di dalam media penyimpanan komputer sehingga data tersebut dapat digunakan
secara efisien.Sedangkan Data adalah representasi dari fakta
dunia nyata. Fakta atau keterangan tentang kenyataan yang disimpan, direkam
atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol.
Konstanta
digunakan untuk menyatakan nilai tetap sedangkan variable digunakan dalam
program untuk menyatakan nilai yang dapat berubah-ubah selang eksekusi
berlangsung.
Ada
empat istilah data, yaitu:
1. Tipe
data adalah jenis atau macam data di dalam suatu variable dalam bahasa
pemrograman.
2. Objek
data mengacu kumpulan elemen, D (domain).
3. Representasi
data : Suatu mapping dari struktur data ‘d’ ke suatu set ke struktur data ‘e’
(d===e) misal bolean di representasikan dalam 0 dan 1.
4. Struktur
data biasa dipakai untuk mengelompokan beberapa
informasi yang terkait menjadi sebuah kesatuan.
Dalam teknik pemrograman,
struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu
kolom yang tampak oleh pengguna (user) atau pun kolom yang hanya digunakan
untuk keperluan pemrograman yang tidak tampak oleh pengguna.Setiap baris dari kumpulan kolom-kolom tersebut
dinamakan catatan (record). Lebar kolom untuk data dapat berubah dan
bervariasi. Ada kolom yang lebarnya berubah secara dinamis sesuai masukan dari
pengguna, dan juga ada kolom yang lebarnya tetap. Dengan sifatnya ini, sebuah
struktur data dapat diterapkan untuk pengolahan database (misalnya untuk
keperluan data keuangan) atau untuk pengolah kata (word processor) yang
kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada
berkas-berkas lembar-sebar (spreadsheet), pangkal-data (database),
pengolahan kata, citra yang dipampat (dikompres), juga pemampatan berkas dengan
teknik tertentu yang memanfaatkan struktur data.
Secara garis besar type data dapat dikategorikan
menjadi:
Type data sederhana.
Type data sederhana.
Type data sederhana majemuk,
misalnyaString
Struktur Data, meliputi:
a)
Linier
: Stack, Queue, sertaList dan Multilist
b)
Non
Linier : Pohon Biner dan Graph
Pemakaian struktur data yang tepat didalam proses pemrograman akan
menghasilkan algoritma yang lebih jelas dan tepat, sehingga menjadikan program secara
keseluruhan lebih efisien dan sederhana.
Struktur data yang standar yang biasanya digunakan dibidang informatika adalah:
Struktur data yang standar yang biasanya digunakan dibidang informatika adalah:
Ø
List
linier (Linked List) dan variasinya
Ø
Multilist
Ø
Stack (Tumpukan)
Ø
Queue
(Antrian)
Ø
Tree (
Pohon)
Ø
Graph (
Graf )
B.
PEMBUATAN STRUKTUR DATA
Untuk membuat menjadi struktur data,
kita harus melakukan dulu aktivitas terhadap objek data, yaitu :
v Mendeskkripsikan kumpulan operasi sah yang
diterapkan ke elemen-elemen objek data.
v Menunjukan mekanisme kerja operasi-operasi.
Objek data integer ditambah operasi (+ ,
- , * , / , mod ,cell , floor , < , >) dan operasi-operasi lain yang
memanipuasi objek data integer menyatakan struktur data.
Struktur data = Objek data + { Operasi manipulasi }.
Tahap pembuatan struktur data adalah :
Ø Tahap pertama : Spesifikasi
Pendeskripsian / spesifikasi struktur
data menyatakan apa yang dapat dilakukan struktur data, bukan cara
penerapannya.
Spesifikasi dapat dilakukan dengan dua
cara, yaitu :
·
Spesifikasi
secara formal
·
Spesifikasi
secara informal
Ø Tahap kedua : Implementasi
Implementasi menyatakan cara penerapan
struktur data dengan struktur data yang telah ada.Implementasi struktur data
adalah proses pendefinisian tipe data abstrak sehingga semua operasi dapat
dieksekusi computer. Implementasi struktur penyinpanan item-item data serta
algoritma-algoritma untuk implementasi operasi-operasi sehingga menjamin
terpenuhinya karakteristik struktur data, relasi item-item data atau invariant
pada struktur data itu.
Ø Tahap ketiga : Pemrograman
Pemrograman terstruktur adalah
penerjemahan menjadi pernyataan di bahasa pemrograman tertentu. Prosesnya
terdiri dari :
·
Deklarasi yang
mendefinisikan objek-objek data dan hubungannya…
·
Pembuatan
prosedur / rutin untuk operasi-operasi dasar yang menjaga invariant pada
struktur data itu .
Sesuai dengan relasi yang didefinisikan
di spesifikasi perancangan harus memilih tipe-tipe data yang telah ada untuk
merepresentasikan struktur data.
Struktur data di bangun menggunakan
fasilitas pembentukan atau pembuatan struktur data yang disediakan bahasa
seperti array, record, dan sebagainya atau yang telah di buat seperti stack,
queue, atau himpunan menggunakan linked list.
Pembuatan struktur data adalah pembentukan tipe data
lengkap yang mempunyai empat property berikut :
1.
Nama : Identifier tipe data
2.
Domain : Domain / himpunan semesta nilai di tipe
data
3.
Konstanta
(penyebutan anggota-anggotanya) : Cara penyebutan anggota-anggota tipe data
4.
Operasi-operasi
terhadap tipe data itu (operator) : Daftar
operasi terhadap anggota tipe data sehingga kelakuan objek data sesuai
spesifikasi.
C. ARRAY
2.1 Pengertian Array
Array
atau larik didefinisikan sebagai pemesanan alokasi memory berurutan.definisi
ini kurang tepat, karena terjadi kerancuan antara struktur data dan
representasinya.Memang benar array hampir selalu di implementasikan menggunakan
memory berurutan tapi tidak selalu demikian.
Semua elemem array
bertipe sama. Array cocok untuk organisasi kumpulan data homogen yang ukuran
atau jumlah elemen maksimumnya telah diketahui dari awal.
Homogen adalah bahwa
setiap elemen dari sebuah array tertentu haruslah mempunyai tipe data yang
sama.
2.2
Karakteristik Array
a) Mepunyai
batasan dari pemesanan alokasi memori (bersifat statis)
b) Mempunyai
tipe data sama (bersifat homogen)
c) Dapat
diakses secara acak.
2.3
Deklarasi Array
Ada tiga hal yang harus
di ketahui dalam mendeklarasikan array, yaitu :
a) Type
data array
b) Nama
variable array
c) Subkrip
/ index array.
Contoh
deklarasi dari array adalah sebagai berikut :
int A[5] ; artinya
variabel A adalah kumpulan data sebanyak 5 bilangan bertipe
integer.
2.4
Jenis Array
1. Array
Dimensi Satu
Deklarasi
: Type_Data Nama_Variabel [index]
|
p
= Perkalian dari index sebelumnya (untuk arraybdimensi dua dan tiga).
Pemetaan
(Mapping) Array Dimensi Satu Ke Storage
Rumus :
@A[i] = B + (i – 1) * L
Dimana :
@A[i] : Posisi array yang dicari
B :
Posisi awal index di memori computer
i :
Subkrip atau index array yang di cari
L :
Ukuran atau besar memori suatu tipe data
2. Array
Dimensi Dua
Deklarasi : Type_Data Nama_Variabel [index1]
[index2]
|
p
= Perkalian dari statemen sebelumnya
Pemetaan
(Mapping) Array Dimensi Dua Ke Storage
Terbagi
dua cara pandang (representasi) yang berbeda :
·
Secara kolom per kolom (coloumn major
order / CMO)
|
·
Secara baris per baris (row major order
/ RMO)
|
Keterangan :
@M[i][j]
= Posisi array yang di cari, M[0][0 = Posisi alamat awal index array, i =
Baris, j = Kolom, L = Ukuran memory type data, K = Banyaknya elemen per kolom,
N = Banyaknya elemen per baris.
3. Array
Dimensi Tiga
Deklarasi : type_Data Nama_Variabel
[index1][index2][index3]
|
p
= Perkalian dari statemen sebelumnya
Pemetaan
(Mapping) Array Dimensi Tiga Ke Storage
|
TRIANGULAR
ARRAY (ARRAY SEGI TIGA)
Triangular array dapat
merupakan Upper Triangular (seluruh elemen di bawah diagonal utama = 0),
ataupun Lower Triangular (seluruh elemen di atas diagonal utama = 0).
|
SPERSE
ARRAY (ARRAY JARANG)
Suatu array yang sangat
banyak elemen nol-nya.
2.5
Operasi Dasar Pada Array
Operasi
terhadap elemen di array dilakukan dengan pengaksesan langsung. Nilaidi
masing-masing posisi elemen dapat diambil dan nilai dapat disimpan tanpa
melewati
posisi-posisi lain.
Terdapat dua tipe
operasi, yaitu :
1. Operasi terhadap
satu elemen / posisi dari array
2. Operasi terhadap
array sebagai keseluruhan
Dua operasi paling
dasar terhadap satu elemen / posisi adalah
1. Penyimpanan nilai
elemen ke posisi tertentu di array
2. Pengambilan nilai
elemen dari posisi tertentu di array
Operasi-operasi dasar
terhadap array secara keseluruhan adalah :
1. Operasi penciptaan
2. Operasi penghancuran
3. Oparasi pemrosesan
traversal
4. Operasi pencarian
(table look-up)
5. Operasi sorting
2.6
Penciptaan Dan Penghancuran
Operasi
penciptaan biasa disebut inisialisasi.Operasi ini untuk mempersiapkan struktur
data untuk operasi-operasi berikutnya.Operasi penghancuran menyatakan ketidak berlakuan
struktur data atau membebaskan memory, menyerahkan memory ke manajemen memory
agar dapat di pergunakan keperluan lain.Operasi penghancuran penting terutama
bila struktur data di implementasikan secara dinamis menggunakan pointer
2.7
Penyimpanan Dan Pengambilan Nilai
Biasanya
bahasa pemrograman menyediakan sintaks tertentu untuk penyimpanan dan
pengambilan nilai elemen pada posisi tertentu di array.
Contoh :
A[10] = 78, berarti
penyimpanan nilai 78 ke posisi ke-10 dari array A
C = A[10], berarti pengambilan
nilai elemen posisi ke-10 dari array A
2.8 Pemrosesan Transversal
Operasi
pemrosesan transversal adalah pemrosesan mengolah seluruh elemen secara
sistematik.
2.9 Pencarian Di Array (Table Look-Up)
Pencarian di array
(table look-up) adalah proses pencarian suatu nilai di array. Klasifikasi
pencarian di array adalah :
1) Pencarian
sekuen (sequential searching),yaitu:
a. Tanpa
Boolean, terbagi:
·
Tanpa sentinen
·
Dengan sentinen
b. Menggunakan
boolean
2) Pencarian
secara biner / dikotom (binary = dichotomy searching).
2.10
Pengurutan Array
Pengurutan
atau sorting adalah proses yang paling sering di lakukan dalam pengolahan
data.pengurutan di bedakan menjadi dua, yaitu :
- Pengurutan internal
Pengurutan
dilakukan terhadap sekumpulan data di media memory internal komputer dimana
data dapat di akses elemennya secara langsung.
- Pengurutan eksternal
Pengurutan
data di memory sekunder.Biasanya data bervolume besar sehingga tidak mampu
dimuat semuanya di memori utama.
2.11
Keunggulan Dan Kelemahan Array
Ø Keunggulan
array adalah sebagai berikut :
- Array sangat cocok untuk pengaksesan acak. Sembarang elemen di array dapat diacu secara langsung tanpa melalui elemen-elemen lain.
- Jika berada di suatu lokasi elemen, maka sangat mudah menelusuri ke elemen-elemen tetangga, baik elemen pendahulu atau elemen penerus 3
- Jika elemen-elemen array adalah nilai-nilai independen dan seluruhnya harus terjaga,maka penggunaan penyimpanannya sangat efisien.
Ø Kelemahan
array adalah sebagai berikut :
Array mempunyai
fleksibilitas rendah, sehingga tidak cocok untuk berbagai aplikasi karena array mempunyai batasan sebagai
berikut :
- Array harus bertipe homogen. Kita tidak dapat mempunyai array dimana satu elemenadalah karakter, elemen lain bilangan, dan elemen lain adalah tipe-tipe lain
- Kebanyakan bahasa pemrograman mengimplementasikan array statik yang sulitdiubah ukurannya di waktu eksekusi. Bila penambahan dan pengurangan terjaditerus-menerus, maka representasi statis
•
Tidak efisien dalam penggunaan memori
•
Menyiakan banyak waktu komputasi
•
Pada suatu aplikasi, representasi statis tidak dimungkinkan
Bila penambahan dan
pengurangan terjadi terus menerus, maka representasi statis (array):
- Tidak efisien dalam penggunaan memory
- Menyiakan banyak waktu komputasi
- Pada suatu aplikasi, representasi statis tidak di mungkinkan.
Tidak ada komentar:
Posting Komentar