Pertemuan 1 - Array, Pointer, Linked List - 2101711122 - Bela Kristianti
Struktur data adalah cara menyimpan atau merepresentasikan data didalam komputer agar bisa dipakai 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.
Beberapa contoh
umum dari struktur data meliputi :
1. Arrays
Kumpulan elemen data yang serupa. Elemen data memiliki tipe data yang sama

2. Linked List
Struktur data yang sangat dinamis dimana elemen dapat ditambahkan ke atau dihapus dari mana saja sesuka hati. Setiap elemen disebut node
3. Queue
Queue pada struktur data atau antrian adalah sekumpulan data yang mana
penambahan elemen hanya bisa dilakukan pada suatu ujung disebut dengan
sisi belakang(rear), dan penghapusan(pengambilan elemen) dilakukan lewat
ujung lain (disebut dengan sisi depan atau front).
Queue atau antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out).
4. Stacks
Pengertian Stack
atau Tumpukan adalah suatu stuktur data yang penting dalam pemrograman
yang mempunyai sifat LIFO (Last In First Out), benda yang terakhir masuk
ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack.
Stack (Tumpukan) adalah list linier yang dikenali elemen puncaknya (TOP) dan
Aturan penyisipan dan penghapusan elemennya tertentu. Penyisipan selalu
dilakukan “di atas“ TOP dan Penghapusan selalu dilakukan pada TOP
5. Binary Trees
Sebuah pohon biner (binary tree) adalah himpunan
terbatas yang mungkin kosong atau terdiri dari sebuah simpul yang disebut
sebagai akar dan dua buah himpunan lain yang disjoint yang merupakan pohon
biner yang disebut sebagai sub pohon kiri (left) dan sub pohon kanan (right)
dari pohon biner tersebut. Pohon biner merupakan tipe yang sangat penting dari
struktur data dan banyak dijumpai dalam berbagai terapan. Karakteristik yang
dimiliki oleh pohon biner adalah bahwa setiap simpul paling banyak hanya
memiliki dua buah anak, dan mungkin tidak punya anak. Istilah-istilah yang
digunakan sama dengan istilah pada pohon secara umum.
Tipe Data Struktur
Tipe Data adalah kumpulan objek dan satu set operasi
yang bekerja pada objek tersebut.
Sebagai contoh, tipe data int terdiri dari:
objek: 0, +1, -1, +2, -2, dll
operasi: +, -, *, /,%, dll
Contoh tipe data yang telah ditentukan adalah int,
char, float.
Abstract Data Type
Abstract Data Type (ADT) adalah tipe data yang
disusun sedemikian rupa sehingga spesifikasi objek dan spesifikasi operasi pada
objek dipisahkan dari representasi objek dan pelaksanaan operasi.
C / C ++ memiliki konsep yang disebut class dan
struct yang membantu programmer dalam mengimplementasikan tipe data abstrak.
Contoh :
structure Number is
objects : an integer x
functions :
bool
is_zero() if ( x == 0 ) return TRUE else
return FALSE
bool
equal(y) if ( x == y ) return TRUE else
return FALSE
void
set(y) x = y
void
add(y) x = x + y
int
get () return x
A. Array
- Kumpulan elemen data yang serupa
- Elemen data ini memiliki tipe data yang sama (homogen)
- Elemen-elemen array disimpan di lokasi memori berturut-turut dan direferensikan oleh sebuah indeks
- Indeks Array dimulai dari nol
- One Dimensional Array
- Two Dimensional Array
- Multi Dimensional Array
Initialization of Arrays
Contoh : int
marks[5] = {10, 20, 30, 40, 50};
Inputting Values
Contoh : int
i, marks[10];
for
(i=0; i<10; i++)
scanf(“%d”,
&marks[i]);
Assigning Values
Example: int i, arr1[10], arr2[10];
for(i=0;
i<10; i++)
arr2[i]
= arr1[i];
Ada sejumlah operasi yang bisa dilakukan
pada array, yaitu :
pada array, yaitu :
- Traversal
- Insertion
- Searching
- Deletion
- Merging
- Sorting
Pointer adalah tipe data yang nilainya mengacu pada nilai lain yang tersimpan. Di tempat lain dalam memori komputer menggunakan alamatnya.
- Operator alamat (&)
Operator & bersifat unary (hanya
memerlukan satu operand saja).
Operator & menghasilkan alamat dari
operandnya.
- Operator dereferencing (*)
Operator * bersifat unary (hanya
memerlukan satu operand saja).
Operator * menghasilkan nilai yang
berada pada sebuah alamat.
Deklarasi Pointer :
int
x;
int
*px;
maka x adalah integer dan px adalah
pointer ke integer. Jika kita mengatakan:
px = & x;
maka & x mengembalikan alamat x dan
menugaskannya sebagai nilai px.
Untuk menetapkan nilai x bisa kita
katakan
x = 5;
atau
* px = 5;
C. Linked List
- Linked List adalah sekumpulan elemen bertipe sama yang mempunyai keterurutan
tertentu,
yang setiap elemennya terdiri dari dua bagian.
- Struktur berupa rangkaian elemen saling berkait dimana setiap elemen dihubungkan
elemen
lain melalui pointer (alamat elemen). Penggunaan pointer untuk mengacu
elemen
berakibat elemen-elemen bersebelahan secara logik, walau tidak bersebelahan
secara
fisik di memori.
1. Single Linked List
Pada gambar di atas, tampak bahwa sebuah data terletak pada sebuah lokasi memori area.
Tempat yang disediakan pada satu area memori tertentu untuk menyimpan data dikenal
dengan sebutan node atau simpul. Setiap node memiliki pointer yang menunjuk ke simpul
berikutnya sehingga terbentuk satu untaian, dengan demikian hanya diperlukan sebuah
variable pointer. Susunan berupa untaian semacam ini disebut Single Linked List (NULL
memiliki nilai khusus yang artinya tidak menunjuk ke mana-mana, biasanya Linked List pada
titik akhirnya akan menunjuk ke NULL).
Pembuatan Single Linked List dapat menggunakan 2 metode : LIFO (Last In First Out), aplikasinya: Stack (tumpukan), FIFO (First In First Out), aplikasinya: Queue (antrean)
Pada gambar di atas, tampak bahwa sebuah data terletak pada sebuah lokasi memori area.
Tempat yang disediakan pada satu area memori tertentu untuk menyimpan data dikenal
dengan sebutan node atau simpul. Setiap node memiliki pointer yang menunjuk ke simpul
berikutnya sehingga terbentuk satu untaian, dengan demikian hanya diperlukan sebuah
variable pointer. Susunan berupa untaian semacam ini disebut Single Linked List (NULL
memiliki nilai khusus yang artinya tidak menunjuk ke mana-mana, biasanya Linked List pada
titik akhirnya akan menunjuk ke NULL).
Pembuatan Single Linked List dapat menggunakan 2 metode : LIFO (Last In First Out), aplikasinya: Stack (tumpukan), FIFO (First In First Out), aplikasinya: Queue (antrean)
2. Double Linked List
Salah satu kelemahan Single Linked List adalah pointer hanya dapat bergerak satu arah saja,
maju/mundur, kanan/kiri, sehingga pencarian data pada Single Linked List hanya dapat
bergerak dalam satu arah saja. Untuk mengatasi kelemahan tersebut, dapat menggunakan
metode Double Linked List. Linked List ini dikenal dengan nama Linked List berpointer ganda
atau Double Linked List.
Salah satu kelemahan Single Linked List adalah pointer hanya dapat bergerak satu arah saja,
maju/mundur, kanan/kiri, sehingga pencarian data pada Single Linked List hanya dapat
bergerak dalam satu arah saja. Untuk mengatasi kelemahan tersebut, dapat menggunakan
metode Double Linked List. Linked List ini dikenal dengan nama Linked List berpointer ganda
atau Double Linked List.
3. Circular Double Linked List
Merupakan Double Linked List yang simpul terakhirnya menunjuk ke simpul terakhirnya
menunjuk ke simpul awalnya menunjuk ke simpul akhir, sehingga membentuk suatu lingkaran.
Merupakan Double Linked List yang simpul terakhirnya menunjuk ke simpul terakhirnya
menunjuk ke simpul awalnya menunjuk ke simpul akhir, sehingga membentuk suatu lingkaran.
4. Operasi pada Linked List
Operasi yang terpenting pada linked list, yaitu menambahkan node (insert) dan menghapus node (delete).
5. Structure Declaration
struct tdata {
int age;
char name [100];
float score;
};
};
Kode
di atas mendefinisikan sebuah struktur bernama tdata yang memiliki tiga
anggota: age (int), name (char []) dan score (float).
Membuat variabel struktur mirip dengan membuat variabel tipe data primitif.
tdata x; // variabel dari tdata
tdata arr [100]; // array tdata
Membuat variabel struktur mirip dengan membuat variabel tipe data primitif.
tdata x; // variabel dari tdata
tdata arr [100]; // array tdata
6. Linked List versus Array
- Array :
Kumpulan data elemen linier
Simpan nilai di lokasi memori
berurutan
Bisa acak dalam mengakses
data
- Linked :
Linear koleksi dari node
Tidak menyimpan simpulnya di
lokasi memori berturut-turut
Dapat diakses hanya secara
berurutan

Komentar
Posting Komentar