Data Structures Pertemuan 1
Data stuktur ialah sebuah cara penyusunan, penyimpanan dan pengaturan data dalam computer sehingga data dapat digunakan secara efisien.
Struktur data terdiri dari:
- Static memory allocation (array)
- Dynamic memory allocation (linier dan non linier)
Contoh struktur data yang biasa digunakan:
Array
Linked list
Queue
Stacks
binary tree
- ARRAY
-bersifat homogen (memilki tipe data yang sama)
-merupakan kumpulan data yang sejenis
-bisa diakses dengan mudah (contoh: nama[1])
-indeksnya dimulai dari nol “0”
-array juga memiliki alamat yang saling bersebelahan
1. Store value di array
-inisialisasi
contoh: int angka[2]={1,2};
-input value
contoh:
alamat[10];
for (int i=0; i<10; i++)
scanf(“%d”, &alamat[i]);
-assign value
contoh:
int i, arr1[10], arr2[10];
for(i=0; i<10; i++)
arr2[i] = arr1[i];
2. Operasi dalam array
Traversal=>passing nilai
Insertion=>memasukkan nilai ke dalam array
Searching=>mencari dalam alamat array\
Deletion=>menghapus
Merging=>menggabungkan array yang satu dengan yang lainnya
Sorting=>mengurutkan array
3. Pointer(bersaudaraan dengan array)
Dimana kita memerintahkan pointer untuk menunjuk kepada alamat daru suatu array.
Contoh:
Int a;
Int *b;
b=&a;
maka apabila a mengalami perubahan nilai, b juga akan berubah nilainya menikuti a.
* =single pointer (menunjuk kepada alamat sebuah array)
** =double pointer yang menunjuk ke pointer
*** =triple pointer yang menunjuk ke double pointer
dan seterusnya.
- LINKED LIST
Merupakan dynamic data struktur, dan setiap elemennya dinamakan node.
Linked list merupakan suatu tipe data yang bersifat acak, berbeda dengan array yang memiliki alamat yang bersebelahan, linked list memiliki alamat yang bersifat berjauhan.
Diilustrasikan melalui gambar diatas, dimana kotak a tidak bias ;angsung mengakses data ke D, namun harus secara bertahap dimana A harus melalui B dan C untuk dapat mengakses ke D.
- QUEUE
Elemen yang pertama kali dimasukkan lah yang merupakan elemenyang pertama kali keluar.
Ketika orang pertama maju, maka front akan berpindah kepada orang ke 2, dan begitulah seterusnya sampai kepada front bertemu dengan rear maka proses tersebut berhenti.
- Circular queue
Memilliki proses yang sama dengan queue biasa namun perbedaannya terletak kepada: circular queue memiliki kelebihan untuk dapat mulai dari awal lagi setelah front bertemu dengan rear, sehgingga proses tidak angsung berhenti ketika front telah bertemu dengan rear.
- Priority queue
Memiliki proses yang sama juga dengan queue biasa, namun yang memiliki priotitas lah yang merupakan elemen yang pertam kali akan masuk.
Diilustrasukan seperti: ketika antrian di rumah sakit sedang sangat panjang, dan salah seorang yang berada di antrian terakhir merupakan ibu2 yang sedang hamil dan perutnya sudah berkontraksi, maka ibu2 tersebut berhak untuk diprioritaskan untuk tidak mengantri lebih lama lagi.
- STACKS
Stacks dapat direspresentasikan sebagai array linier
Terdiri atas lifo dan filo
Dimana
Lifo(Last In First Out)/fifo(First In Last Out)=>yang terakhir masuk lah yang keluar duluan, dapat diilustrasikan sebagai sebuah beton yang ditumpuk, maka tdak mungkinkan untuk mengeluarkan beton paling bawah terlebih daahulu, namun kita harus mengeluarkannya dari yang paling atas.
- BINARY TREES
- BT
Tree yang dimana kita bebas dalam memasukkan angkanya
- BST
Tree dimana angka yang terletak di cabang sebelah kiri haruslah lebih kecil dan yang di sebelah kanan harus lebih besar.
- DATA TYPE
Merupakan tipe tipe data yang terdapat dalam pemrograman seperti
1. Integer:
Byte
Shortint
Integer
Word
Longint
2. Real:
Real
Single
Double
Extended
Comp
3. Char
- ABSTRACT DATA TYPE
Merupakan proses representasi data dan program dalam bentuk sama dengan pengertiannya, dengan menyembunyikan rincian dari implementasi.
Seperti contohnya pada c dan c++ memiliki yang disebut struct dan class.