Resume Struktur Data
Resume Struktur Data
Nim : 2155201019
Struktur Data
Cara menyimpan data-data pada memori komputer maupun file secara efektif sehingga
dapat digunakan dengan efisien, termasuk operasi-operasi didalamnya. (bambangwirawan,
2004)
Koleksi dari objek-objek yang pengorganisasiannya dicirikan berdasarkan pada cara
pengaksesan objek tersebut. (sofyan, 2005)
Satu kesatuan informasi yang terorganisasi dengan sejumlah operasi atas informasi tersebut
seperti:
Array
Record
Dll
Struktur Data adalah cara menyimpan atau mempresentasikan data didalam komputer agar
bisa dipakai secara efisien.
Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam
bentuk tulisan suara, gambar, sinyal atau simbol.
Tipe data standar merupakan tipe data yang tersedia pada kebanyakan komputer sebagai
built-in features.
Tipe data standar yaitu :
Interger
Tipe Interger merupakan subset dari bilangan bulat yang ukurannya dapat bervariasi pada
komputer-komputer yang berbeda-beda.
Real
Tipe Real merupakan subset bilangan real (bukan bilangan bulat).
Boolean
Tipe Boolean adalah tipe data logika yang memiliki dua nilai yaitu true dan false.
Char
Tipe Char merupakan himpunan karakter yang dapat dicetak.
Tipe Char terdiri atas 26 huruf latin, 10 angka Arab, dan sejumlah karakter grafik, seperti
tanda seru. Karakter dapat berisi karakter kosong yang digunakan sebagai pemisah (spasi).
Karakter kosong (blank).
Array adalah suatu tipe data terstuktur yang berupa sejumlah data sejenis (bertipe data
sama) yang jumlahnya bisa statis ataupun dinamis dan diberi suatu nama tertentu.
Elemen-elemen array tersusun secara berderet dan sekuensial di dalam memori sehingga memiliki
alamat yang besebelahan/berdampingan.
Elemen-elemen array bertipe data sama tapi bisa bernilai sama atau berbeda-beda.
Sequential Search
Adalah suatu teknik pencarian data dalam array ( 1 dimensi ) yang akan menelusuri semua
elemen-elemen array dari awal sampai akhir, dimana data-data tidak perlu diurutkan terlebih
dahulu.
Kemungkinan terbaik (best case) adalah jika data yang dicari terletak di indeks array terdepan
(elemen array pertama) sehingga waktu yang dibutuhkan untuk pencarian data sangat sebentar
(minimal).
Kemungkinan terburuk (worst case) adalah jika data yang dicari terletak di indeks array terakhir
(elemen array terakhir) sehingga waktu yang dibutuhkan untuk pencarian data sangat lama
(maksimal).
Binary Search
Data yang ada harus diurutkan terlebih dahulu berdasarkan suatu urutan tertentu yang dijadikan
kunci pencarian.
Adalah teknik pencarian data dalam dengan cara membagi data menjadi dua bagian setiap kali
terjadi proses pengurutan.
Interpolation Search
Teknik ini dilakukan pada data yang sudah terurut berdasarkan kunci tertentu
Contoh ilustrasi: jika kita hendak mencari suatu nama di dalam buku telepon, misal yang berawalan
dengan huruf T, maka kita tidak akan mencarinya dari awal buku, tapi kita langsung membukanya
pada 2/3 atau ¾ dari tebal buku.
Struktur data yang paling kecil, sederhana, dan primitif dengan bit tunggal (single bit)
Satuan yang paling dasar dimana variabelnya hanya mengandung 2 nilai, yaitu :
AND jika kedua nilai variabel true, maka hasilnya true, kalau tidak hasil nya false
OR jika salah satu nilai variabelnya true, maka hasilnya true, jika tidak maka hasilnya false
NOT jika nilai variabelnya true, maka hasilnya false, jika nilai variabelnya false maka hasilnya
true
XOR jika salah satu nilai variabelnya true, maka hasilnya true kalau tidak, maka hasilnya false.
Record
Record = struct
Pointer
suatu variabel penunjuk yang menunjuk pada suatu alamat memori komputer tertentu.
variabel level rendah yang dapat digunakan untuk menunjuk nilai integer, character, float, double,
atau single, dan bahkan tipe-tipe data lain
Variabel biasa, sifatnya statis dan sudah pasti, sedangkan pada pointer sifatnya dinamis dan dapat
lebih fleksibel
Variabel pointer yang tidak menunjuk pada nilai apapun berarti memiliki nilai NULL, dan disebut
sebagai dangling pointer karena nilainya tidak diinisialisasi dan tidak dapat diprediksi.
Operasi variabel pointer dapat dikerjakan oleh variabel pointer yang lain, contoh :
X = 10;
Ptr1 = &X;
Ptr2 = Ptr1;
Operasi penugasan
Nilai dari suatu variabel pointer dapat disalin ke variabel pointer yang lain.
Contoh:
y = 35;
x1 = &y;
x2 = x1;
Suatu variabel pointer hanya dapat dilakukan operasi aritmatika dengan nilai integer saja.
Operasi aritmatika
Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya)
dalam memori.
Salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling
sambung menyambung, dinamis dan terbatas.
Masing-masing data dalam Linked List disebut dengan node (simpul) yang menempati alokasi
memori secara dinamis dan biasanya berupa struct
yang terdiri dari beberapa field.
Koleksi dari objek-objek yang homogen dengan operasi penambahan elemen (enqueue) dan
pengambilan elemn (dequeue) melalui dua tempat yang berbeda yaitu belakang dan depan.
Enqueue (queue,IB) menambah elemen baru pada queue yang berisi info baru (IB) pada posisi
yang paling belakang
Syarat :
Dequeue (queue, ID) mengeluarkan elemen dari queue yang berada pada posisi yang paling
depan dan infornya di simpan dalam info dequeue (ID)
HUBUNGAN QUEUE
Single
double
Kedepan
Kebelakang
Pertemuan 11 : Tree
Binary Tree
Suatu tree dengan syarat bahwa tiap node hanya boleh memiliki maksimal dua subtree dan kedua
subtree tersebut harus terpisah.
Tiap node dalam binary tree hanya boleh memiliki paling banyak dua child.
Operasi-operasi Tree
Insert: menambah node ke dalam Tree secara rekursif. Jika data yang akan dimasukkan lebih
besar daripada elemen root, maka akan diletakkan di node sebelah kanan, sebaliknya jika lebih
kecil maka akan diletakkan di node sebelah kiri. Untuk data pertama akan menjadi elemen
root.
Find: mencari node di dalam Tree secara rekursif sampai node tersebut ditemukan dengan
menggunakan variable bantuan ketemu. Syaratnya adalah tree tidak boleh kosong.
Traverse: yaitu operasi kunjungan terhadap node-node dalam pohon dimana masing-masing
node akan dikunjungi sekali.
Find Min dan Find Max : mencari nilai terkecil dan terbesar pada Tree
Jenis Transverse
Graph adalah kumpulan dari simpul dan busur yang secara matematis dinyatakan sebagai :
G = (V, E)
Dimana
G = Graph
Jika setiap busur mempunyai nilai yang menyatakan hubungan antara 2 buah simpul, maka busur
tersebut dinyatakan memiliki bobot.
Bobot sebuah busur dapat menyatakan panjang sebuah jalan dari 2 buah titik, jumlah rata-rata
kendaraan perhari yang melalui sebuah jalan, dll.
Istilah pada graph
Incident
Jika e merupakan busur dengan simpul-simpulnya adalah v dan w yang ditulis e=(v,w), maka v dan w
disebut “terletak” pada e, dan e disebut incident dengan v dan w.
Degree sebuah simpul adalah jumlah busur yang incident dengan simpul tersebut.
Indegree sebuah simpul pada graph berarah adalah jumlah busur yang kepalanya incident dengan
simpul tersebut, atau jumlah busur yang “masuk” atau menuju simpul tersebut.
Outdegree sebuah simpul pada graph berarah adalah jumlah busur yang ekornya incident dengan
simpul tersebut, atau jumlah busur yang “keluar” atau berasal dari simpul tersebut.
Metode Hashing
Untuk mengatasi kerugian yang timbul dari cara korespondensi satu-satu yang telah disebutkan itu,
digunakan metode lain yang dinamakan Metode Hashing.
Metode Hashing intinya digunakan untuk mengurangi banyaknya ruang alamat yang digunakan serta
melakukan pemetaaan (melakukan konversi) dari kunci rekaman yang memiliki cakupan nilai yang
luas ke nilai alamat yang memiliki cakupan yang telah dipersempit.
Fungsi Hash
Untuk melakukan pemetaan (konversi) dari kunci rekaman ke alamat rekaman digunakan suatu
fungsi yang dinamakan Fungsi Hash.
Output dari fungsi hash dinamakan sebagai home address dari rekaman yang kuncinya diproses.
Fungsi Modulo
Home address dicari dengan cara mencari sisa hasil bagi nilai kunci dengan suatu nilai tertentu.
f (key )→key mod n
Dengan nilai n dapat berupa 2 kemungkinan, yaitu :
• Banyaknya ruang alamat yang tersedia
• Bilangan prima terdekat yang berada di atas nilai banyaknya data, setelah itu
banyaknya ruang alamat disesuaikan dengan n
Metode Pemotongan
Home address dicari dengan memotong nilai kunci ke jumlah digit tertentu yang lebih
pendek
Contoh : Nilai NIP yang tadinya 9 digit dipotong menjadi hanya 3 digit dengan mengambil 3
nomor terakhir. Misalnya : NIP 132312090 akan memiliki home address 090 atau 90.
Metode Pelipatan
Diandaikan kunci rekaman ditulis di atas kertas dan dilipat ke dalam bagian-bagian yang
sama panjang, lalu setiap bagian dijumlahkan
Contoh, Nilai NIP yang 9 digit dibagi ke dalam 3 bagian masing-masing 3 digit, terus dilipat
pada bagian-bagian tersebut. NIP 132312090 akan menjadi 3 bagian yaitu 132, 213, dan
090 yang dijumlahkan dan menghasilkan 435 (dengan carrier) atau 335 (tanpa carrier)
Metode Pengkuadratan
Home address dicari dengan mengkuadratkan setiap digit pembentuk kunci, lalu semua
hasilnya dijumlahkan
Contohnya : NIP 132312090 memiliki home address = 12+32+22+32+12+22+02+92+02 =
1+9+4+9+1+4+0+81+0 = 104
Penambahan Kode ASCII
Metode ini dapat digunakan jika kunci bukan berupa kode numerik. Home address dicari
dengan menjumlahkan kode ASCII setiap huruf pembentuk kunci.
Contoh : Rekaman dengan kunci ADE memiliki home address 65+68+69 = 192