Struktur Data Linear Created by Fifth Group, S3B TI Anggota Agus Ariyanto 201043500247 Dodi Apriyadi 201043500108 Rusdiyanto 201043500129 Trimasari P. 201043500136
Agar penyimpanan lebih efisien Agar tersusun lebih terurut STRUKTUR DATA Struktur data menyangkut susunan fisik data dalam komputer. Struktur data menyerupai beberapa bentuk teknik kompresi data Agar penyimpanan lebih efisien Agar tersusun lebih terurut Agar data retrieval lebih efektif 01/01/2019 S3B T. Informatika
Struktur data dibagi atas : a. Struktur data linier b. Struktur data non-linier A. Struktur Data Linier Struktur data linier adalah struktur data yang menggam barkan hubungan tentang elemen-elemen yang berdekatan. Terdiri dari : 1. ARRAY : a. dimensi satu (vektor matriks) b. dimensi dua (matriks) c. multi dimensi 01/01/2019 S3B T. Informatika
Array ( larik ) Setiap elemen diakses langsung melalui indeksnya. Array (larik) adalah tipe terstruktur yang terdiri dari sejumlah komponen- komponen dengan tipe yang sama. Banyaknya komponen dalam satu larik adalah tetap dan lokasi dalam suatu larik ditunjukkan oleh suatu INDEKS. Setiap elemen diakses langsung melalui indeksnya. Indeks larik harus tipe data yang menyatakan keterurutan misalnya integer atau karakter. Banyaknya elemen larik harus sudah diketahui sebelum program dieksekusi. S3B T. Informatika 01/01/2019
Tipe elemen larik dapat berupa tipe sederhana, tipe terstruktur atau tipe larik lain. Nama lain array adalah Larik, tabel atau vektor Yang penting dalam array adalah pengalamatan memori dan digunakan pengalam atau secara statik.
Karakteristik Pemakaian Array : jumlah elemen array terbatas semua elemen array bisa diakses secara acak panjang elemen sama. Contoh : int A[10 ]; float B [5]; Aplikasi penggunaan array diantaranya adalah a. stack (tumpukan) b. queue (antrian) c. deque (antrian dengan 2 pintu) 01/01/2019 S3B T. Informatika
a. stack (tumpukan) Adalah suatu list yang semua operasi penambahan (insertion) dan penghapusan (deletion) elemennya dilaksanakan pada satu ujung atas (TOP). Elemen pertama yang akan dihapus adalah elemen terakhir yang disisipkan, sehingga disebut sebagai“Last In First Out” (LIFO ). 01/01/2019 S3B T. Informatika
STACK (Tumpukan) Stack atau Tumpukan adalah bentuk khusus dari list linier (linear list) yang penambahan dan penghapusan elemennya hanya boleh melalui salah satu sisi. Posisi untuk menambah dan menghapus elemen pada stack disebut TOP atau puncak. Elemen pada puncak stack diacu dengan TOP(S). Bila stack kosong, maka TOP(S) tidak terdefinisi. Penambahan dan pengurangan elemen pada STACK menggunakan prinsip LIFO (Last In First Out). 01/01/2019 S3B T. Informatika
Last In First Out
Operasi-operasi pada struktur data STACK: CREATE = pembentukan stack (alokasi memori) PUSH = menambah elemen baru POP = mengambil/menghapus elemen dari stack ISEMPTY= memeriksa apakah stack kosong Fungsi-fungsi untuk operasi stack adalah TOP = menunjuk kepada elemen puncak pada stack jika stack kosong maka TOP(S) tidak terdefinisi NOEL = jumlah elemen dalam stack (Number Of ELements) 01/01/2019 S3B T. Informatika
TOP(S) tidak terdefinisi Stack S = [] CREATE(S) NOEL(S) = 0 TOP(S) tidak terdefinisi Stack S = [] PUSH elemen A NOEL(S) = 1 TOP(S) = A Stack S = [A] 01/01/2019 A S3B T. Informatika
PUSH elemen G NOEL(S) = 2 TOP(S) = G Stack S = [A,G] PUSH elemen K TOP(S) = K Stack S = [A,G,K] 01/01/2019 G A K G A S3B T. Informatika
PUSH elemen G NOEL(S) = 2 TOP(S) = G Stack S = [A,G] PUSH elemen M TOP(S) = M Stack S = [A,G,M] G A M G A 01/01/2019
PUSH elemen W NOEL(S) = 4 TOP(S) = W Stack S = [A,G,M,W] PUSH elemen F TOP(S) = F Stack S = [A,G,M,W,F] W M G A F W M G A 01/01/2019
Misalnya pada compiler, sistem operasi, dsb. Aplikasi Stack Stack sangat luas pemakaiannya dalam penyelesaian berbagai macam problem. Misalnya pada compiler, sistem operasi, dsb. Kasus yang sering menggunakan stack adalah penjodohan tanda kurung (matching parentheses) 01/01/2019
History pada web browser. Undo Log pada text editor. Pemrosesan struktur bersarang (nested) : loop, rekursi, fungsi, dll. Algoritma back tracking-Artificial Intelegence 01/01/2019
Deklarasi Struktur Data Stack #define maxsize 100 // mendefinisikan maks ukuran data // dlm stack typedef struct { int top; // indeks TOP char items [ maxsize ] // array } stack; // nama tipe data baru yg dibuat // adalah stack
b. queue (antrian) adalah struktur data linear dimana penambahan komponen dilakukan di satu ujung, sementara pengurangan dilakukan di ujung lain (yang satu lagi). Prinsip: FIFO(First In First Out)atauFCFS (First Come First Serve),yang lebih awal masuk akandilayani terlebih dahulu . 01/01/2019
Jenis Queue Normal queue. Circular queue. DE-queue (double ended). Ex. High and low priority policy Priority queue.
Waiting list – birokrasi. Simulasi sistem antrian. Penggunaan Queue Waiting list – birokrasi. Simulasi sistem antrian. Antrian printer jobs. Antrian proses multitasking dalam CPU. Antrian playlist winamp. 01/01/2019
Operasi Dasar Enqueue Memasukkan item ke dalam queue. Dequeue Mengeluarkan item dari queue. Is_Full Mengecek apakah queue penuh. Is_Empty Mengecek apakah queue kosong. Initialize Membuat queue untuk pertama kali.
Deklarasi Struktur Data Queue #define maxsize 100 typdef struct { int jumlah; //jumlah data int depan; //ujung depan int belakang; //ujung belakang char data [ maxsize ]; //array isi queue }queue;
LINKED LIST (LIST BERKAIT ) a. linear singly linked list b. linear doubly linked list c. circular singly linked list d. circular doubly linked list Aplikasi linked list pada struktur data linier diantaranya : a. linked stack b. linked queue 01/01/2019
Singly and Doubly A linked list node containing a single forward pointer may be declared as follows struct Node { int data; /* or whatever */ struct Node *next_in_line; }; pointer to next Node structure A linked list node containing a forward and a backward pointer may be declared as follows struct Node { int data; struct Node *next_in_line; struct Node *previous_in_line; }; pointer to next Node structure pointer to previous Node structure
Circular Linked List
Stack – Linked List Jika sebuah linked list SELALU menambahkan node baru dan menghapus node lama dari salah SATU ujungnya saja (posisi Head ataukah Tail) STACK. TOP = head untuk single linked list. TOP = tail untuk double linked list. HOW?
Queue – Linked List Jika sebuah linked list SELALU menambahkan node baru di ujung Tail dan SELALU menghapus node lama dari ujung Head QUEUE. Front = head. Rear = tail. Single atau Double linked list?
01/01/2019 PENGELOLAAN MEMORI Dapat secara STATIS atau DINAMIS. a. Secara STATIS : menempati lokasi memori yang tetap (fixed size),tidak dapat dikembangkanatau diciutkan. Misal : array alamat memori menjadi kunci array
01/01/2019 b. Secara DINAMIS : menempati lokasi memori dimana dapat dikembangkan atau diciutkan sesuai dengan kebutuhan. Pengelolaan alamat dinamis (dynamic address) ditunjukkan oleh pointer.