Pertemuan 1
Data Structure
Session 1
Array adalah kumpulan data sejenis yang posisinya bersebelahan
sehingga bisa diakses langsung dengan menunjuk memory nya .
Contoh :
Nama
|
Andy
|
Bagus
|
Cinta
|
Deny
|
Index
|
0
|
1
|
2
|
3
|
Kita
dapat menunjuk “Andy” dengan mengetik Nama[0];
Atau
kita juga dapat mengetik Nama[*Index+1];
·
Storing Array Values
Dapat diakses dengan 3 cara :
1.
Assign , yaitu dengan menggunakan tanda sama
dengan / “=”
2.
Input, yaitu dengan menggunakan fungsi dari “scanf”
3.
Initialization , yaitu dengan cara memberikan
langsung nilai tersebut dari user
Contoh: int index=0;
Int umur = {10,20,30};
Linklist adalah kumpulan data tidak
sejenis ayng posisinya tidak beraturan sehingga tidak bisa diakses langsung
seperti array

A(X012)
C(X001)
D(X102)
dimana (X012) dst adalah memory variable tersebut
A disebut sebagai Head
|
|
B disebut sebagai Tail
|
Perbedaan Array dan
Linklist
Array: 1. Homogen (type data)
2.
Static (Memory)
Linklist
: 1. Heterogen (Type Data)
2.
Dynamic (Memory)
Operation in Array
1.
Traversal , yaitu memasukkan nilai
Contoh : a[0] = a[10];
Contoh : a[0] = 8;
3.
Searching, yaitu mencari data
4.
Deletion , yaitu menghapus data
5.
Merging , yaitu menggabungkan data
6.
Sorting, yaitu mengurutkan data
Pointer
Adalah mengakses sebuah
value suatu variabel dengan mengakses address variable tersebut
Contoh :
Int *A; -> psingle pointer
Int **B; -> double pointer
Int x;
A = &x;
B = &A;
*B = 10;
printf(“%d”,x);
Session 2
Type dari Data Structure ada 5 :
1.
Array
(Sudah
dijelaskan diatas)
2.
Queue , konsep dari queue ini adalah “First in
First Out”, yang lebih dahulu masuk , ia akan lebih dahulu keluar
Contoh : Antrian ATM
Queue ada 2 jenis yaitu :
-
Circular Queue , bisa kembali ke front lagi
Contoh :
0 1 2 3 4
| |
Front Rear
Maka setelah mengakses 4, system akan kembali lagi ke
0
-
Priority Queue, berdasarkan kepentingan
Contoh : Jika ada yang lebih penting , maka ia akan di dahulukan
3.
Stack , konsep stack adalah “First in Last Out”
Contoh : Tumpukkan Buku
4.
Binary Trees
Contoh :
BT BST
3 3
7 5 2 5
4 7
BT : bebas mengisi value nya
BST :
sisi kiri harus lebih kecil dari value atasnya, dan sebaliknya
5.
Abstract Data Type
LINK LIST
Cara mengakses memory pada linked list:
Int *px = (int *)malloc(sizeof(int));
...
...
free(px);
Ket : int *
disebut sebagai tap casting
Free digunakan unutk menghapus
memory dari px dan dapat digunakan unutk yang lain, jika tidak menggunakan
free, maka system akan menjadi lambat
Konsep LinkedList adalah memakai memory sesuai kebutuhan
Macam – macam LinkedList :
1.
Single Linked List , yaitu hanya memiliki 1
tangan unutk “next”
Step-step :
- Buat Struct
untuk Data yang disimpan
- Deklarasi var
pointer
- Malloc
- Isi data di
memory
- Membuat Linked
List
2.
Circular Linked List
3.
Double Linked List
4.
Circular Double Linked List
5.
Header Linked List