STRUKTUR DATA
PENGERTIAN DATA
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.
Pengertian data ini menyiratkan
suatu nilai yang bisa dinyatakan dalam bentuk konstanta / variable.
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:
Tipe data adalah jenis atau macam
data di dalam suatu variable dalam bahasa pemrograman.
Objek data mengacu kumpulan elemen,
D (domain).
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.
Struktur data biasa dipakai untuk
mengelompokan beberapa informasi yang
terkait menjadi sebuah kesatuan.
Tipe data sederhana terbagi menjadi
dua, yaitu:
Data sederhana tunggal. Misalnya : Integer, real / float,
Boolean dan character.
Data sederhana majemuk. Misalnya : String.
Secara garis besar type data dapat
dikategorikan
menjadi :
1. Type data sederhana.
a. Type data sederhana tunggal,
misalnya Integer, real, boolean dan karakter.
b. Type data sederhana majemuk,
misalnya String.
2. Struktur Data, meliputi.
a. Struktur data sederhana,
misalnya array dan record.
b. Struktur data majemuk, yang
terdiri dari Linier : Stack, Queue, serta List dan Multilist
Pemakaian struktur data yang tepat
di dalam 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 :
1. List linier (Linked List) dan
variasinya
2. Multilist
3. Stack (Tumpukan)
4. Queue (Antrian)
5. Tree ( Pohon )
6. Graph ( Graf )
Variable dan Konstanta
1. Variable
• Untuk menyimpan suatu nilai, dan
nilai yang ada padanya dapat diubah selama eksekusi berlangsung.
• Penamaan variable bersifat case
sensitive (huruf besar dan huruf kecil dianggap berbeda).
• Harus dideklarasikan dahulu
sebelum digunakan.
Contoh : Int atas, tinggi;
Variable
tipe data
2. Konstanta
• Sebuah variable dengan tipe data
tertentu dan memiliki nilai tipe data yang akan selalu tetap di dalam program.
Contoh : const phi: 3.14;
3. Tipe Data Sederhana pada C++
a. Tipe Int
Merupakan Bilangan Bulat dan tidak
mengandung pecahan, seperti: ..
-3,-2,-1,0,1,2,3
b. Real / Floating Point
Type data yang merupakan bilangan
pecahan. Jenis data real/float ditulis dengan menggumakan titik (koma) decimal.
Misal: 0.32 4,35 -131.128
Type Real dapat juga ditulis dengan
rumus :
M= Pecahan
R= Radix
E=Exponen
X= Hasil Bilangan
Misal : 3.2*10 pangkat -1= 0.32 4.35*
10 pankat 2= 435
c. Tipe float
d. Boolean atau Logical
Type data yang hanya mempunyai dua
bentuk keluaran yang nilai True dan False ( Benar dan salah ) yang dinyatakan
dengan 1 dan 0, sehingga satuan data yang terpakai cukup satu bit saja.
Operator yang digunakan adalah : And, Or, Not,Xor.
e. Character
Type data yang terdiri dari aksara
(symbol) yang meliputi digit numeric, character alfabet, dan special character.
Untuk menuliskan tipe char, karakter perlu ditulis di dalam tanda petik
tunggal(‘).
Contoh :
‘A’-karakter berupa huruf A
‘1’-karakter berupa angka 1
‘*’-karakter symbol *
2. PENGERTIAN STRUKTUR DATA
Struktur data adalah suatu koleksi
/ kelompok data yang dapat di karakteristikan oleh organisasi serta operasi
yang di definisikan terhadapnya.
Dalam teknik pemrograman,struktur
data berarti tata letak yang berisi kolom-kolom data,baik itu kolom yang tampak
oleh pengguna (user) ataupun kolom yang hanya digunakan untuk keperluan
pemrograman yang tidak tampak oleh pengguna.
Struktur data meliputi :
Struktur data sederhana, misalnya
array dan Record.
Struktur data majemuk, yang terdiri
:
- Linier : Stack, Queue, serta List dan Multilist
-
Non Linier : Pohon Biner dan
Graph
Pemakaian struktur data yang tepat
di dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan
tepat, sehingga menjadikan program secara keseluruhan lebih efisien dan
sederhana.
Struktur data standar yang biasanya
digunakan dibidang informatika adalah :
- ADT , Array , Struk
- List linier (Linked List) dan
variasinya
- Multilist
- Stack (Tumpukan)
- Queue (Antrian)
- Tree ( Pohon )
- Graph ( Graf )
PEMBUATAN STRUKTUR DATA
Untuk membuat menjadi struktur
data, kita harus melakukan dulu aktivitas terhadap objek data, yaitu :
Mendeskkripsikan kumpulan operasi
sah yang diterapkan ke elemen-elemen objek data.
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. Pendeskripsian ini melibatkan level logic sehingga dapat
digunakan konvensi matematika untuk menyatakan sifat-sifat struktur data yang
dikehendaki.
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 :
Nama : Identifier tipe data.
Domain : Domain / himpunan semesta nilai di tipe data.
Konstanta (penyebutan
anggota-anggotanya) : Cara penyebutan anggota-anggota tipe data.
Operasi-operasi terhadap tipe data
itu (operator) : Daftar operasi terhadap anggota tipe data sehingga kelakuan
objek data sesuai spesifikasi.
ARRAY
1. PENGERTIAN
Array atau larik di definisikan
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. KARAKTERISTIK ARRAY
Mepunyai batasan dari pemesanan
alokasi memori (bersifat statis)
Mempunyai tipe data sama (bersifat
homogen)
Dapat diakses secara acak.
2.1. DEKLARASI ARRAY
Ada tiga hal yang harus di ketahui
dalam mendeklarasikan array, yaitu :
Type data array
Nama variable array
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.2. JENIS ARRAY
1. ARRAY DIMENSI SATU
Deklarasi : Type_Data Nama_Variabel [index]
Rumus untuk menentukan jumlah
elemen dalam array adalah :
|
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
ARRAY DIMENSI DUA
Deklarasi : Type_Data Nama_Variabel [index1] [index2]
Menentukan jumlah elemen dalam
array dimensi dua :
|
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.
ARRAY DIMENSI TIGA
Deklarasi : type_Data Nama_Variabel [index1][index2][index3]
Menentukan jumlah elemen dalam
array dimensi tiga :
|
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).
Dalam array Lower Triangular dengan
N baris, jumlah maksimum elemen <> 0, tidak lebih dari:
|
SPERSE
ARRAY (ARRAY JARANG)
Suatu array yang sangat banyak
elemen nol-nya.
2.3. OPERASI DASAR PADA ARRAY
Operasi terhadap elemen di array
dilakukan dengan pengaksesan langsung. Nilai
di 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.3.1. 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.3.2. 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.3.3. PEMROSESAN TRANSVERSAL
Operasi pemrosesan transversal
adalah pemrosesan mengolah seluruh elemen secara sistematik.
2.3.4. PENCARIAN DI ARRAY (table
look-up)
Pencarian di array (table look-up)
adalah proses pencarian suatu nilai di array.
Klasifikasi pencarian di array adalah :
Pencarian
sekuen (sequential searching),yaitu:
Tanpa Boolean, terbagi:
Tanpa sentinen
Dengan sentinen
Menggunakan boolean
Pencarian secara biner / dikotom
(binary = dichotomy searching).
2.4. 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.
3. 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 elemen adalah
karakter, elemen lain bilangan, dan elemen lain adalah tipe-tipe lain
Kebanyakan bahasa pemrograman mengimplementasikan array statik yang sulit
diubah ukurannya di waktu eksekusi. Bila penambahan dan pengurangan terjadi
terus-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.
KESIMPULAN
Struktur data merupakan salah satu
bahan dasar pembuatan program. Pemakaian struktur data yang tepat di dalam
proses pemrograman, akan menghasilkan algoritma yang jelas dan tepat sehingga
menjadikan program secara keseluruhan lebih sederhana. Array merupakan bagian
dari struktur data yaitu termasuk kedalam struktur data sederhana yang dapat di
definisikan sebagai pemesanan alokasi memory sementara pada komputer. Apabila
kita membuat program dengan data yang sudah kita ketahui batasnyamaka kita
menggunakan Array (type data statis), namun apabila datanya belum kita ketahui
batasnya maka gunakan pointer (type data dinamis).
0 komentar :
Posting Komentar