Anda di halaman 1dari 11

Nama : Dhita Ketrin Febriana Shinta

Nim : 2155201019

Matkul : Struktur Data

Dosen Pengampu : Sukri, ST.,M.Kom

Pertemuan 1 : Kontrak Kuliah

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

Pertemuan 2 : Konsep Dasar Struktur Data

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).

Pertemuan 3 : Konsep Array


Definisi Array

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.

Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-dimensi.

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.

Prinsip pencarian biner adalah:

 Data diambil dari posisi 1 sampai posisi akhir N


 Kemudian cari posisi data tengah dengan rumus (posisi awal + posisi akhir) / 2
 Kemudian data yang dicari dibandingkan dengan data yang di tengah, apakah sama atau
lebih kecil, atau lebih besar?
 Jika lebih besar, maka proses pencarian dicari dengan posisi awal adalah posisi tengah + 1
 Jika lebih kecil, maka proses pencarian dicari dengan posisi akhir adalah posisi tengah – 1
 Jika data sama, berarti ketemu.

Interpolation Search

Teknik ini dilakukan pada data yang sudah terurut berdasarkan kunci tertentu

Teknik searching ini dilakukan dengan perkiraan letak data.

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.

Jadi kita mencari data secara relatif terhadap jumlah data.

Pertemuan 4 : Data Type

Struktur data yang paling kecil, sederhana, dan primitif dengan bit tunggal (single bit)

Satuan yang paling dasar dimana variabelnya hanya mengandung 2 nilai, yaitu :

Nilai 0 dan Nilai 1 (false dan true)

Tipe data boolean (logical)

 Memiliki nilai true dan false


 Dapat di konversi operator

 AND, OR, NOT, dan XOR


AND, OR, NOT, dan XOR

 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.

Pertemuan 5 : Record dan Pointer

Record

Record = struct

Mendefenisiskan variabel yang terdapat dalam kurung kurawal

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.

Deklarasi variabel pointer

Operasi variabel pointer dapat dikerjakan oleh variabel pointer yang lain, contoh :

X = 10;

Ptr1 = &X;

Ptr2 = Ptr1;

Ptr1 dan Ptr2 menghasilkan alamat variabel X yang sama.

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 yang biasa dilakukan adalah operasi penambahan dan pengurangan.

Operasi penambahan dengan suatu nilai menunjukkan lokasi data berikutnya (index selanjutnya)
dalam memori.

Pertemuan 6 & 7 : List/Linked List

Struktur data yang berisi node tersesun secara berurut.

Salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling
sambung menyambung, dinamis dan terbatas.

Linked List sering disebut juga Senarai Berantai

Linked List saling terhubung dengan bantuan variabel pointer

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.

List dapat dibagi menjadi 2, yaitu :

 Single linked list


Tempat yang disediakan memory untuk menyimpan data disebut node simpul, setiap node
memiliki pointer (penunjuk) yang menunjuk ke node berikutnya sehingga terbentuk suatu
untaian.
Dalam single LINKED LIST pointer hanya dapat bergerak ke satu arah saja, maju / mundur, kanan /
kiri, sehingga pencarian datanya juga hanya satu arah saja.
 Double Link List
adalah elemen-elemen yang dihubungkan dengan dua pointer dalam satu elemen dan list
dapat melintas baik di depan atau belakang.
Elemen double link list terdiri dari tiga bagian:
• Bagian data informasi.
• Pointer next yang menunjuk ke elemen berikutnya.
• Pointer prev yang menunjuk ke elemen sebelumnya.

Pertemuan 9 & 10 : Queue atau Antrian

Koleksi dari objek-objek yang homogen dengan operasi penambahan elemen (enqueue) dan
pengambilan elemn (dequeue) melalui dua tempat yang berbeda yaitu belakang dan depan.

Operasi pada queue

 Buat queue  mengisialisasi /mendefenisian queue yang kosong


 Queue kosong mencetak apakah queue dalam keadaan kosong atau tidak
 Queue penuh  mencetak apakah queue dalam keadaan penuh atau tidak

Operasi pada queue

Enqueue (queue,IB)  menambah elemen baru pada queue yang berisi info baru (IB) pada posisi
yang paling belakang

Syarat :

awal : queue tidak penuh

Akhir : queue bertambah satu elemen

Dequeue (queue, ID)  mengeluarkan elemen dari queue yang berada pada posisi yang paling
depan dan infornya di simpan dalam info dequeue (ID)

awal : queue tidak kosong

Akhir : queue berkurang satu elemen

HUBUNGAN QUEUE

Queue terhadap linkedlist

 Single
 double

Queue terhadap Pointer(penggeseran)

 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.

Node pada binary tree

Jumlah maksimum node pada setiap tingkat adalah 2n

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.

 Count: menghitung jumlah node dalam Tree

 Height : mengetahui kedalaman sebuah Tree

 Find Min dan Find Max : mencari nilai terkecil dan terbesar pada Tree

 Child : mengetahui anak dari sebuah node (jika punya).

Jenis Transverse

 PreOrder: cetak node yang dikunjungi, kunjungi left, kunjungi right.

 InOrder: kunjungi left, cetak node yang dikunjungi, kunjungi right.

 PostOrder: kunjungi left, kunjungi right, cetak node yang dikunjungi.

Pertemuan 12 & 13 : Graph

Graph adalah kumpulan dari simpul dan busur yang secara matematis dinyatakan sebagai :

G = (V, E)

Dimana

G = Graph

V = Simpul atau Vertex, atau Node, atau Titik

E = Busur atau Edge, atau arc

Graph Berbobot (Weighted 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 (derajat), indegree dan outdegree

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.

Pertemuan 14 & 15 : Hashing

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.

Macam-Macam Fungsi Hash

 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

Anda mungkin juga menyukai