Materi Struktur Data Pertemuan I

14
STRUKTUR DATA Royan Habibie Sukarna, S.Kom

description

Materi struktur data pertemuan pertama, menjelaskan pengertian, definisi, dan linked list

Transcript of Materi Struktur Data Pertemuan I

STRUKTUR DATA

STRUKTUR DATARoyan Habibie Sukarna, S.Kom

DefinisiStruktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisienData adalah representasi dari fakta dunia nyataFakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol

Hubungan Algoritma & Struktur DataAlgoritma yang baik + Struktur data yang tepat = program yang baikPemilihan algoritma dan struktur data yang tepat harus mempertimbangkan skala data, CPU, memori, dsb.Perlu pengetahuan algoritma dan struktur apa saja yang ada dan mungkin dipakai

Manfaat Struktur DataPemakaian 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.Membuat program lebih ringkas, lebih bersih, lebih elegan, lebih mudah dan lebih mampu berkinerja tinggi (karena efisien dalam penggunaan memori dan waktu)Program berjalan membutuhkan waktu beberapa detik, di mana struktur yang lain mungkin akan membutuhkan ribuan detik.

Linked ListLinked List adalah 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 BerantaiLinked List saling terhubung dengan bantuan variabel pointerMasing-masing data dalam Linked List disebut dengan node (simpul) yang menempati alokasi memori secara dinamis dan biasanya berupa struct yang terdiri dari beberapa field.

Array Vs Linked List

Bentuk NodePengertian:Single : artinya field pointer-nya hanya satu buah saja dan satu arah serta pada akhir node, pointernya menunjuk NULLLinked List : artinya node-node tersebut saling terhubung satu sama lain.

Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data.Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada saat pembacaan isi linked list.

Linked List dalam PascalVariabel Statis, Dinamis, dan Pointer

Variabel Statis Vs Variabel DinamisVariabel StatisVariabel DinamisSuatu tipe data yang bersifat statis (ukuran dan urutannya sudah pasti)Ruang memori yang dipakai oleh variabel tersebut tidak dapat dihapusVariabel yang akan dialokasikan hanya pada saat diperlukanDapat dihapus pada saat program dieksekusiukuran variabel akan selalu berubah.

Variabel Pointerberisi alamat memori yang digunakan oleh variabel dinamikadalah suatu variabel yang menunjuk ke alamat memori yang digunakan untuk menampung data yang akan diproses.

Deklarasi Variabel Pointer :Var : ^Contoh Pendeklarasian :VarJumlahData: ^Integer;NamaSiswa : ^String[25];NilaiSiswa : ^Real;Pendeklarasian variabel pointer tidak jauh berbeda dengan pendeklarasian variabel biasa, hanya perlu ditambahkan simbol topi ( ^ ) biasa juga disebut ceret atau circumflex. Simbol topi tersebut menandakan bahwa variabel tersebut menunjuk ke lokasi tertentu di memori.

Operasi pada PointerPada pointer ada dua operasi dasar yang dapat dilakukan yaitu :1. Operasi mengkopi simpul2. Operasi mengkopi isi simpulContoh : VarP1, P2 : ^Byte;=======================================P1:=P2; -> mengkopi simpulP1^:=P2^;-> mengkopi isi simpul

Linked List dalam PascalDeklarasi Linked List di dalam Pascal :Type PSimpul =^SimpulSimpul =RecordInfo : Tipe Data;Next : PSimpul;End;VarHead, Tail : PSimpul;Variabel Head dan Tail selanjutnya dialokasikan dengan statement New(), yang dihasilnya nantinya merupakan link list yang sudah terbentuk.

Point-point dalam Linked ListLink list selalu memiliki pointer petunjuk yang selalu menunjuk pada awal dari list yang disebut Head.Link list juga selalu memiliki pointer petunjuk menunjuk pada akhir dari list yang disebut Tail, kecuali untuk jenis circular.Setiap simpul yang terbentuk selalu memiliki nilai NIL, kecuali jika simpul tersebut sudah ditunjuk oleh simpul yang lainnya (Link list belum terhubung).Posisi simpul terakhir pada link list selalu bernilai NIL karena ia tidak menunjuk pada simpul yang lainnya, kecuali bentuk circular. Operasi yang dapat dilakukan pada Link List diantaranya adalah :Menambah Simpul (di Depan, Belakang dan Tengah).Menghapus Simpul (di Depan, Belakang dan Tengah).Membaca isi link list (Membaca maju dan mundur).