Minggu, 28 Februari 2016

Data Struktur Bina Nusantara Univ Pertemuan 1



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
Text Box: A                Contoh :

  A(X012)
 

     B(X120)
 
 
   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];

  2.       Insertion , yaitu memasukkan nilai tetapi secara langsung oleh user
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