Pertemuan 1 DATA & STRUKTUR DATA
|
|
- Yulia Muljana
- 5 tahun lalu
- Tontonan:
Transkripsi
1 Pertemuan 1 DATA & STRUKTUR DATA
2 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang tepat didalam proses pemrograman, akan menghasilkan Algoritma yang lebih jelas dan tepat sehingga menjadikan program secara keseluruhan lebih sederhana.
3 Pada garis besarnya, Data dapat dikategorikan menjadi : A. Type Data Sederhana / Data Sederhana Terdiri dari : 1. Data Sederhana Tunggal Misalnya : Integer, Real/Float, Boolean dan Character 2. Data Sederhana Majemuk Misalnya : String B. Struktur Data Terdiri dari : 1. Struktur Data Sederhana Misalnya Array dan Record
4 2. Struktur Data Majemuk Terdiri dari : a. Linier Misalnya : Stack, Queue dan Linear Linked List. b. Non Linier Misalnya : Pohon (Tree), Pohon Biner (Binary Tree), Pohon Cari Biner (Binary Search Tree), General Tree serta Graph.
5 TYPE DATA SEDERHANA (Dalam Program C++) 1. INTEGER Merupakan Bilangan Bulat dan tidak mengandung pecahan. seperti :...-3,-2,-1,0,1,2,3,... Type data Integer Type Range Ukuran (Byte) Integer Long
6 TYPE DATA SEDERHANA (Dalam Program C++) 2. FLOAT Type data yang merupakan bilangan pecahan. Jenis Data float ditulis dgn menggunakan Misalnya : , titik(koma) desimal. Type Real dapat juga ditulis dengan Rumus : M * R e = X M = Pecahan, R = Radix, e = Exponen, X = Hasil Bilangan, Misalnya : 3.2 * 10-1 = * 10 2 = 435
7 TYPE DATA SEDERHANA (Dalam Program C++) Type data FLOAT Type Range Ukuran (Byte) Float 3.4 x s/d 3.4 x Double 1.7 x s/d 1.7x Long Double 3.4 x s/d 1.1x
8 3. BOOL ATAU LOGICAL Type data yang hanya mempunyai dua bentuk keluaran yaitu nilai True dan False (Benar dan Salah) yang dinyatakan dengan 1 dan 0, Sehingga satuan data yang terpakai cukup satu bit saja. Operator yang digunakan adalah : And, Or dan Not.
9 Bool atau Logical Input NOT (!) AND (&&) OR ( ) A B C!A!B!C A&&B&&C A B C
10 CHARACTER Type data yang terdiri dari aksara (simbol) yang meliputi digit numerik, character alfabetik dan spesial character. Untuk menuliskan tipe char, karakter perlu ditulis di dalam tanda petik tunggal ( ) Contoh : A karakter berupa huruf A 1 karakter berupa angka 1 * karakter simbol *
11 STRING Merupakan type data majemuk yang terbentuk dari kumpulan character sebanyak 256 (default) dengan jangkauan niai Kumpulan character yang digunakan untuk membentuk String dinamakan alfabet. Pemberian nilai String diapit dengan tanda petik ganda ( ) Bentuk umum penulisan tipe data ini adalah : tipe_data pengenal [panjang] ; pengenal = nama variabel panjang = bilangan bulat yg menunjukan jumlah karakter Contoh : char nama[15] ;
12 Fungsi pada Operasi STRING 1. Strcpy() 2. Strcat() 3. Strcmp() 4. Strlen() 5. Strchr () untuk menyalin nilai string. untuk menggabungkan nilai string. untuk membandingkan 2 nilai string. untuk mengetahui panjang nilai string. untuk mencari nilai karakter dalam string. Diharapkan dosen memberikan contoh aplikasi programnya
13 Jenis-jenis Operator Dalam Bahasa C++ pow sqrt Operator Aritmatika Pangkat Menghitung akar Keterangan % Sisa hasil bagi (modulus) *, / Perkalian, Pembagian +, - Penjumlahan, Pengurangan
14 Jenis-jenis Operator Dalam Bahasa C++ Operator Pemberi Nilai Aritmatika * = Perkalian / = Pembagian Keterangan % = Sisa hasil bagi + = Penjumlahan - = Pengurangan Operator Logika && Dan (AND) Atau (OR)! Bukan (NOT) Keterangan
15 Jenis-jenis Operator Dalam Bahasa C++ Operator Unary Keterangan + Tanda Plus - Tanda Minus Operator Penambah & Pengurang ++ Penambahan -- Pengurangan Keterangan
16 Jenis-jenis Operator Dalam Bahasa C++ Operator Relasi Keterangan = Sama dengan (assignment)!= Tidak sama dengan > Lebih besar < Lebih kecil == Sama dengan (bukan assignment) >= Lebih besar atau sama dengan <= Lebih kecil atau sama dengan
17 Jenis-jenis Operator Dalam Bahasa C++ Operator Bitwise ~ NOT << Shift Left >> Shift Right & AND Keterangan ^ XOR OR
18 TYPE TERSTRUKTUR (Dalam Program C++) Bermanfaat untuk mengelompokkan sejumlah data dengan tipe data yang berlainan. Contoh : struct data_pegawai { int nip; char nama[25]; char alamat[40]; }
19 Latihan Soal Struktur Data (Pertemuan 1) 1. Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah : a. Boolean d. Integer b. String e. float c. Char 2. ==, <=, >=,!=, termasuk dalam operator a. Aritmatika d. Relasi b. Unary e. Bitwise c. Binary
20 2. ==, <=, >=,!=, termasuk dalam operator a. Aritmatika d. Relasi b. Unary e. Bitwise c. Binary 3. Type data yang menghasilkan bentuk keluaran nilai True dan False (Benar dan Salah), adalah : a. Boolean d. Integer b. String e. float c. Char
21 4. void main() {...(a)... x,y,z; clrscr(); cout << \n input nilai X= ; cin >> x; cout << \n input nilai Y= ; cin >> y; z = x + y; cout << \n hasil penjumlahan = << z; getch(); } Tipe data yang tepat untuk (a) adalah. a. Boolean d. Integer b. String e. Array c. Char
22 5. void main() { int r = 10; int s; clrscr(); s = r; cout << r = << r << \n ; cout << s = << s << \n ; getch(); } Hasil eksekusi dari program diatas adalah. a. r = 11, s = 21 d. r = 10, s = 21 b. r = 11, s = 20 e. r = 10, s = 20 c. r = 12, s = 21
23 Pertemuan 2 ARRAY DIMENSI 1 & 2
24 Definisi Array Array / Larik : Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen. Terurut : Dapat diartikan bahwa elemen tersebut dapat diidentifikasi sebagai elemen pertama, elemen kedua dan seterusnya sampai elemen ke-n. Homogen : Adalah bahwa setiap elemen dari sebuah Array tertentu haruslah mempunyai type data yang sama.
25 Definisi Array Sebuah Array dapat mempunyai elemen yang seluruhnya berupa integer atau character atau String bahkan dapat pula terjadi suatu Array mempunyai elemen berupa Array. Karakteristik Array : 1. Mempunyai batasan dari pemesanan alokasi memory (Bersifat Statis) 2. Mempunyai Type Data Sama (Bersifat Homogen) 3. Dapat Diakses Secara Acak
26 Definisi Array 3 Hal yang harus diketahui dalam mendeklarasikan array : a. Type data array b. Nama variabel array c. Subskrip / index array Jenis Array (yang akan dipelajari) adalah : a. Array Dimensi Satu (One Dimensional Array) b. Array Dimensi Dua (Two Dimensional Array) c. Array Dimensi Tiga (Thee Dimensional Array)
27 Array Dimensi Satu 1.ARRAY DIMENSI SATU (One Dimensional Array) Dapat disebut juga dengan istilah vektor yang menggambarkan data dalam suatu urutan Deklarasi : Type_Data Nama_Variabel [index] Misalnya : int A[5]; Penggambaran secara Logika : Elemen Array A[1] A[2] A[3] A[4] A[5] Subscript / Index
28 void main() { int bil [5]; clrscr; cout<<"masukkan 5 bilangan genap : "<<endl; for (int i = 0; i < 5; i++) { cout<<"bilangan "; cout<< i + 1 <<" : "; cin>> bil[i]; cout<<endl; } cout<<endl; cout<<"5 bilangan genap yang dimasukkan <<endl; for (int i = 0; i < 5; i++) cout<<" "<<bil[i]; getch(); } Array Dimensi Satu
29 Array Dimensi Satu Rumus untuk menentukan jumlah elemen dalam Array : n (Elemen Array) i=1 = Perkalian dari elemen sebelumnya (untuk array dimensi dua & tiga) Contoh : Suatu Array A dideklarasikan sbb : int A[10]; maka jumlah elemen Array dimensi satu tersebut adalah = 10
30 PEMETAAN (MAPPING) ARRAY DIMENSI SATU KE STORAGE Rumus = B + (i 1) * L Dimana : Posisi Array yg dicari B : Posisi awal index di memory komputer i : Subkrip atau indeks array yg dicari L : Ukuran / Besar memory suatu type data Contoh : Suatu Array A dideklarasikan sebagai berikut : int A[5]; dengan alamat awal index berada di 0011 (H) dan ukuran memory type data integer = 2 Tentukan berapa alamat array A[3]?
31 PEMETAAN (MAPPING) ARRAY DIMENSI SATU KE STORAGE Rumus = B + (i 1) * L Diketahui = A[3] B = 0011 (H) i = 3 L = 2 Penyelesaian : A[3] = 0011(H) + (3 1) * 2 = 0011(H) + 4 (D) = 0011(H) + 4 (H) = 0015(H) 4 Desimal = 4 Hexa A[1] A[2] A[3] A[4] A[5]
32 KONVERSI BILANGAN 1. Decimal adalah bilangan berbasis sepuluh yang terdiridari 0, 1, 2, 3, 4, 5, 6, 7, 8, dan 9 2. Hexadecimal adalah bilangan berbasis enam belas yang terdiri dari 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, dan F Tabel di bawah adalah contoh konversi bilangan Decimal, dan Hexadecimal
33 Contoh KONVERSI ANTAR BILANGAN Konversi Bilangan Decimal ke Hexadecimal Contoh 254 (10) =...(16) Caranya dengan membagi bilangan tersebut dengan enam belas sampai bilangan tersebut tidak bisa lagi dibagi enam belas (kurang dari enam belas) dengan mencatat setiap sisa pembagian. 254 : 16 = 15 sisa 14 atau E (lihat tabel di atas) 15 : 16 = sisa 15 atau F (lihat tabel di atas) Jadi 254 (10) = FE (16) diurutkan dari sisa pembagian terakhir.
34 Contoh Penerapan Array Dimensi 1 Pada Program C indeks value 21d2 21d4 21d6 21d8 21da 21dc 21de 21e0 alamat %x adalah hexadesimal
35 Array Dimensi Dua 2. ARRAY DIMENSI DUA (Two Dimensional Array) Sering digunakan dalam menterjemahkan matriks pada pemrograman. Deklarasi : Type_Data Nama_Variabel [Index1] [index2]; Misal : int A[3][2]; Penggambaran secara Logika :
36 Array Dimensi Dua Menentukan jumlah elemen dalam Array dimensi dua: n (Elemen array) i=1 = Perkalian dari elemen sebelumnya (untuk array dimensi dua & tiga) Contoh : Suatu Array X dideklarasikan sbb : int X[4][3]; maka jumlah elemen Array dimensi dua tersebut adalah : (4) * (3) = 12
37 PEMETAAN (MAPPING) ARRAY DIMENSI DUA KE STORAGE Terbagi Dua cara pandang (representasi) yang berbeda : 1. Secara Kolom Per Kolom (Coloumn Major = M[0][0] + {(j - 1) * K + (i - 1)} * L 2. Secara Baris Per Baris (Row Major Order / = M[0][0] + {(i - 1) * N + (j - 1)} * L Keterangan = Posisi Array yg dicari, M[0][0] = Posisi alamat awal index array,i = Baris, j = kolom, L = Ukuran memory type data K = Banyaknya elemen per kolom, N = Banyaknya elemen per baris
38 Penggambaran secara logika Misal : int M[3][2]; (Array dengan 3 Baris & 2 Kolom) Berdasarkan Cara pandang : 1. Kolom Per Baris (Row Major Order / RMO) M[0,0] M[0,1] M[1,0] M[1,1] M[2,0] M[2,1] Jumlah elemen per baris = 2 2. Baris Per Kolom (Coloumn Major Order / CMO) M[0,0] M[1,0] M[2,0] M[0,1] M[1,1] M[2,1] Jumlah elemen per kolom =
39 Contoh Pemetaan : Suatu Array X dideklarasikan sebagai berikut : Float X[4][3], dengan alamat index X[0][0] berada di 0011 (H) dan ukuran type data float = 4 Tentukan berapa alamat array X[3][2] berdasarkan cara pandang baris dan kolom? index (H)? index
40 Lanjutan Contoh Pemetaan : Penyelesaian : Secara Baris Per Baris (Row Major Oder / + {(i - 1) * N + (j - 1)} * L X[3][2] = 0011 (H) + {(3 1) * 3 + (2 1)} * 4 = 0011 (H) + 28 (D) 1C (H) = 0011 (H) + 1C (H) = 002D (H)
41 Penyelesaian : Lanjutan Contoh Pemetaan : Secara Kolom Per Kolom (Coloumn Major Oder / + {(j - 1) * K + (i - 1)} * L X[3][2] = 0011(H) + {(2 1) * 4 + (3 1)} * 4 = 0011(H) + 24 (D) 18 (H) = 0011(H) + 18 (H) = 0029(H)
42 #include<stdio.h> #include<conio.h> main() { int a[3][5]; for (int i=0;i<3;i++) { for (int j=0;j<5;j++) { printf("%x ",&a[j][i]); } printf("\n"); } getch(); } Contoh program array dua dimensi
43 #include<stdio.h> #include<conio.h> main() { int a[3][5]; for (int i=0;i<3;i++) { for (int j=0;j<5;j++) { printf("%x ",&a[i][j]); } printf("\n"); } getch(); } Contoh program array dua dimensi
44 Latihan : 1. Suatu array A dideklarasikan sbb : int A[50] dengan alamat awal berada di 0011(H). Tentukan berapa alamat array A[20] dan A[40]? 2. Suatu array X dideklarasikan sbb : Float X[4][5] dengan alamat awal berada pada 0011(H). Tentukan berapa alamat array X[4][3], berdasarkan cara pandang baris dan kolom?
45 Latihan Soal Struktur Data (Pertemuan 2) 1. Setiap elemen dari sebuah Array haruslah mempunyai type data yang sama, termasuk dalam karakteristik array yaitu : a. Statis d. Heterogen b. Dinamis e. Homogen c. Terurut 2. Array yang sering digunakan dalam menterjemahkan matriks pada pemrograman, adalah array berdimensi : a. Satu d. Satu dan Dua b. Dua e. Satu dan Tiga c. Tiga
46 2. Array yang sering digunakan dalam menterjemahkan matriks pada pemrograman, adalah array berdimensi : a. Satu d. Satu dan Dua b. Dua e. Satu dan Tiga c. Tiga 3. Contoh aplikasi array dimensi dua adalah.. a. Input data suhu b. Input nama hari c. Input nilai mahasiswa perkelas dan matakuliah d. Input nilai ipk mahasiswa e. Input nama bulan
47 3. Contoh aplikasi array dimensi dua adalah.. a. Input data suhu b. Input nama hari c. Input nilai mahasiswa perkelas dan matakuliah d. Input nilai ipk mahasiswa e. Input nama bulan 4. Terdapat Array : A [5][4] maka jumlah elemen Array tersebut adalah a. 25 d. 15 b. 35 e. 20 c. 9
48 4. Terdapat Array : A [5][4] maka jumlah elemen Array tersebut adalah a. 25 d. 15 b. 35 e. 20 c Diketahui float A[5] dan lokasi awal terletak di alamat 00F (H), maka lokasi A[3] adalah.. a. 00FC (H) d. 01B (H) b. 017 (H) e. 111 (H) c. 071 (H)
49 5. Diketahui float A[5] dan lokasi awal terletak di alamat 00F (H), maka lokasi A[3] adalah.. a. 00FC (H) d. 01B (H) b. 017 (H) e. 111 (H) c. 071 (H) 1. Setiap elemen dari sebuah Array haruslah mempunyai type data yang sama, termasuk dalam karakteristik array yaitu : a. Statis d. Heterogen b. Dinamis e. Homogen c. Terurut
50 Pertemuan 3 ARRAY DIMENSI BANYAK
51 3. ARRAY DIMENSI TIGA (Three Dimensional Array) Digunakan untuk mengelola data dalam bentuk 3 dimensi atau tiga sisi. Deklarasi : Type_Data Nama_Variabel [index1] [ndex2] [index3]; Misal : int A [3][4][2]; Penggambaran secara Logika :
52 Menentukan jumlah elemen dalam Array dimensi 3 : n (index array) i=1 = Perkalian dari statemen sebelumnya Contoh : Suatu Array X dideklarasikan sbb : int A [3][4][2]; maka jumlah elemen Array dimensi tiga tersebut adalah : (3) * (4) * (2) = 24
53 PEMETAAN (MAPPING) ARRAY DIMENSI TIGA KE STORAGE Rumus = M[0][0][0] + {((m-1) *(jum.elemen2 * jum.elemen3)) + ((n-1)*(jum.elemen 3)) + ((p-1)}* L Contoh : Suatu Array A dideklarasikan sebagai berikut : int A [2][4][3], dengan alamat awal index A[0][0][0] berada di 0011 (H) dan ukuran type data int = 2 Tentukan berapa alamat array di A[2][3][2]?
54 Contoh Pemetaan : Penyelesaian : 1.Tentukan jumlah elemen array A [2][4][3] = (2) * (4) * (3) = 24 2.@M[m][n][p] = M[0][0][0] + {((m-1) *(jum.elemen2 * jum.elemen3)) + ((n-1)*(jum.elemen 3)) + ((p-1)}* L + A[2][3][2] = 0011 (H) + {((2 1) * 4 * 3) + ((3-1) * 3) (2-1)} * 2 = 0011 (H) + { } * 2 = 0011 (H) + 38 (D) 26 (H) = 0011 (H) + 26 (H) = 0037 (H)
55 Contoh Program array dimensi 3 /* *Judul Program : Array dimensi 3 *Bahasa Program : Bahasa C *Pembuat Program : Hendro Pramana Sinaga *Tanggal Pembuatan : 5 Mei 2012 */ #include <stdio.h> #include <conio.h> printf("liga Champions : \n\n"); for(i=0; i<5; i++) { ++h; printf("grup %c \n", h); main() { char h=64, nama[5][4][22] = { "AC Milan","Barcelona","Porto","Monaco", "Liverpool","Real Madrid","CSK Moskow","PSG", "Inter Milan","Arsenal","Atletico Madrid","Ajax", "AS Roma","Manchester United","Dortmund","Valencia", "Manchester City","Bayern Munich","Napoli","Vilareal" for(s=0; s<4; s++) { printf(" %d. %s \n", s+1, nama[i][s]); } printf("\n"); } } getch(); };
56 Tampilan Program
57 TRINGULAR ARRAY (ARRAY SEGITIGA) Tringular Array dapat merupakan Upper Tringular (seluruh elemen di bawah diagonal utama = 0), ataupun Lower Tringular (seluruh elemen di atas diagonal utama = 0). Dalam Array Lower Tringular dengan N baris, jumlah maksimum elemen <> 0 pada baris ke-i adalah = I, karenanya total elemen <> 0, tidak lebih dari N S I = N(N+1) / 2 I=1
58 Contoh Tringular Array Gambar (a) Upper Triangular Array (b) Lower Triangular Array
59 Tringular Array (Lanjut) Contoh : Diketahui suatu array segitiga atas memiliki 3 baris dan kolom, tentukan berapakah jumlah elemen yang bukan nol pada array tersebut. I = N(N+1) / 2 I = 3 (3+1) / 2 = 12 / 2 = 6 Contoh bentuk array nya adalah seperti dibawah ini : Dan lain-lain
60 Tringular Array (Lanjut) Suatu Array Upper Tringular dan Array Lower Tringular dapat dengan order yang sama, dapat disimpan sebagai suatu array dengan order yang berbeda, Contohnya :
61 SPARSE ARRAY (ARRAY JARANG) Suatu Array yang sangat banyak elemen nol-nya, contohnya adalah Array A pada Gambar berikut :
62 Latihan 1. Suatu array A dideklarasikan sbb: Float A[5][5][5] dengan alamat awal A[0][0][0] = 0021(H), berapakah alamat array A[2][3][2] dan A[5][4][3]? 2. Suatu array B dideklarasikan sbb: Char B[3][4][3] dengan alamat awal A[0][0][0] = 0021(H), berapakah alamat array A[2][3][2] dan A[3][4][3]?
63 Latihan Soal Struktur Data (Pertemuan 3) 1. Array yang sangat banyak elemen nol-nya, dikenal sebagai : a. Upper tringular Array d. One Dimensional Array b. Lower tringular Array e. Multi Dimensional Array c. Sparse Array 2 Array yang seluruh elemen dibawah diagonal utamanya = 0, dikenal sebagai : a. Upper tringular Array d. One Dimensional Array b. Lower tringular Array e. Multi Dimensional Array c. Sparse Array
64 2 Array yang seluruh elemen dibawah diagonal utamanya = 0, dikenal sebagai : a. Upper tringular Array d. One Dimensional Array b. Lower tringular Array e. Multi Dimensional Array c. Sparse Array 3. Terdapat Array : A [3][4][5] maka jumlah elemen Array tersebut adalah a. 25 d. 15 b. 35 e. 60 c. 12
65 3. Terdapat Array : A [3][4][5] maka jumlah elemen Array tersebut adalah a. 25 d. 15 b. 35 e. 60 c Diketahui suatu array segitiga memiliki 4 baris dan kolom. Jumlah elemen yang bukan nol pada array segitiga tersebut adalah.. a. 10 d. 16 b. 8 e. 20 c. 4
66 4. Diketahui suatu array segitiga memiliki 4 baris dan kolom. Jumlah elemen yang bukan nol pada array segitiga tersebut adalah.. a. 10 d. 16 b. 8 e. 20 c Deklarasi Array X adalah int A [2][4][5], dengan alamat awal index A[0][0][0] berada di 0021(H) dan ukuran type data int = 2 Tentukan berapa alamat array di A[2][2][2]? a (H) d (H) b (H) e (H) c (H)
67 5. Deklarasi Array X adalah int A [2][4][5], dengan alamat awal index A[0][0][0] berada di 0021(H) dan ukuran type data int = 2 Tentukan berapa alamat array di A[2][2][2]? a (H) d (H) b (H) e (H) c (H) 1. Array yang sangat banyak elemen nol-nya, dikenal sebagai : a. Upper tringular Array d. One Dimensional Array b. Lower tringular Array e. Multi Dimensional Array c. Sparse Array
68 Pertemuan 4 SINGLE LINKED LIST (Non Circular)
69 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut dengan perubah dinamis (Dinamic variable) Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.
70 Perbedaan Perubah Statis & Dinamis Pada perubah statis, isi Memory pada lokasi tertentu (nilai perubah) adalah data sesungguhnya yang akan diolah. Pada perubah dinamis, nilai perubah adalah alamat lokasi lain yang menyimpan data sesungguhnya. Dengan demikian data yang sesungguhnya dapat dimasukkan secara langsung. Dalam hal cara pemasukkan data dapat diilustrasikan seperti dibawah ini
71 DEKLARASI POINTER Pointer digunakan sebagai penunjuk ke suatu alamat memori Dalam pemrograman C++, Type Data Pointer dideklarasikan dengan bentuk umum : Type Data * Nama Variabel; Type Data dapat berupa sembarang type data, misalnya char, int atau float. Sedangkan Nama veriabel merupakan nama variabel pointer
72 Contoh penggunaan pointer dalam program C++: Void main() { int x,y,*z; x = 75; //nilai x = 75 y = x; //nilai y diambil dari nilai x z = &x; //nilai z menunjuk kealamat pointer dari nilai x getch(); }
73 LINKED LIST (LINKED LIST) Salah satu Struktur Data Dinamis yang paling sederhana adalah Linked List atau Struktur Berkait atau Senarai Berantai, yaitu suatu kumpulan komponen yang disusun secara berurutan dengan bantuan Pointer. Linked List (Senarai Berantai) disebut juga dengan Senarai Satu Arah (One-Way List). Masing-masing komponen dinamakan dengan Simpul (Node).
74 Perbedaan Karakteristik Array dan Linked List
75 Setiap simpul dalam suatu Linked List terbagi menjadi dua bagian,yaitu : 1. Medan Informasi Berisi informasi yang akan disimpan dan diolah. 2. Medan Penyambung (Link Field) Berisi alamat berikutnya. Bernilai 0, Jika Link tersebut tidak menunjuk ke Data (Simpul) lainnya. Penunjuk ini disebut Penunjuk Nol.
76 LINKED LIST (LINKED LIST) Lanjutan Linked juga mengandung sebuah variabel penunjuk List, yang biasanya diberi nama START (AWAL), yang berisi alamat dari simpul pertama dalam List.
77 Penyajian Linked List dalam Memory
78 Penyajian Linked List dalam Memory Lanjutan)
79 Bentuk Node Single Linked List non Circular Single : field pointer-nya hanya satu dan satu arah,pada akhir node pointernya menunjuk NULL Menempati alamat memori tertentu Linked List : node-node tersebut saling terhubung satu sama lain.
80 Single Linked List Non Circular (Lanjutan) Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data. Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada saat pembacaan isi linked list.
81 Pembuatan Single Linked List non Circular Deklarasi Node : typedef struct TNode{ int data; TNode *next; }; Keterangan: Pembuatan struct bernama TNode yang berisi 2 field, yaitu field data bertipe integer dan field next yang bertipe pointer dari TNode
82 Pembuatan Single Linked List non Circular Lanjutan Setelah pembuatan struct, buat variabel head yang bertipe pointer dari TNode yang berguna sebagai kepala linked list. Digunakan perintah new untuk mempersiapkan sebuah node baru berserta alokasi memorinya, kemudian node tersebut diisi data dan pointer nextnya ditunjuk ke NULL. TNode *baru; baru = new TNode; baru->data = databaru; baru->next = NULL;
83 Single Linked List non Circular Menggunakan Head Dibutuhkan satu buah variabel pointer : head yang akan selalu menunjuk pada node pertama
84 Deklarasi Pointer Penunjuk Head Single Linked List Manipulasi linked list tidak dapat dilakukan langsung ke node yang dituju, melainkan harus menggunakan suatu pointer penunjuk ke node pertama (Head) dalam linked list Deklarasinya sebagai berikut: TNode *head;
85 Fungsi Inisialisasi Single Linked List void init() { head = NULL; } Function untuk mengetahui kondisi Single Linked List Jika pointer head tidak menunjuk pada suatu node maka kosong int isempty() { if (head == NULL) return 1; else return 0; }
86 Single Linked List Non Circular dengan Head Menambah Node di Depan Penambahan node baru akan dikaitan di node paling depan, namun pada saat pertama kali (data masih kosong), maka penambahan data dilakukan dengan cara: node head ditunjukkan ke node baru tersebut. Prinsipnya adalah mengkaitkan node baru dengan head, kemudian head akan menunjuk pada data baru tersebut sehingga head akan tetap selalu menjadi data terdepan.
87 Single Linked List Non Circular dengan Head void insertdepan(int databaru) { TNode *baru; baru = new TNode; baru->data = databaru; baru->next = NULL; if(isempty()==1) { head=baru; head->next = NULL; } else { baru->next = head; head = baru; } printf( Data masuk\n ); }
88 Ilustrasi Penambahan Node Didepan
89 Ilustrasi Penambahan node didepan (lanjutan)
90 Single Linked List Non Circular dengan Head Menambah Node di Belakang Penambahan data dilakukan di belakang, namun pada saat pertama kali, node langsung ditunjuk oleh head. Penambahan di belakang membutuhkan pointer bantu untuk mengetahui node terbelakang. Kemudian, dikaitkan dengan node baru. Untuk mengetahui data terbelakang perlu digunakan perulangan.
91 Single Linked List Non Circular dengan Head void insertbelakang (int databaru) { TNode *baru,*bantu; baru = new TNode; baru->data = databaru; baru->next = NULL; if(isempty()==1) { head=baru; head->next = NULL; } else { bantu=head; while(bantu->next!=null){ bantu=bantu->next; } bantu->next = baru; } printf("data masuk\n ); }
92 Ilustrasi Penambahan Node Dibelakang
93 Ilustrasi Penambahan node di belakang
94 Menghapus Node di Depan Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus dilakukan penggunakan suatu pointer lain (hapus) yang digunakan untuk menunjuk node yang akan dihapus, barulah kemudian menghapus pointer hapus dengan menggunakan perintah delete. Sebelum data terdepan dihapus, terlebih dahulu head harus menunjuk ke node berikutnya agar list tidak putus, sehingga node setelah head lama akan menjadi head baru Jika head masih NULL maka berarti data masih kosong!
95 Menghapus Node Di depan void hapusdepan () { TNode *hapus; int d; if (isempty()==0){ if(head->next!= NULL){ hapus = head; d = hapus->data; head = head->next; delete hapus; } else { d = head->data; head = NULL; } printf( %d terhapus\n,d); } else cout<<"masih kosong\n"; }
96 Ilustrasi menghapus node di depan
97 Menghapus Node di Belakang Membutuhkan pointer bantu dan hapus. Pointer hapus digunakan untuk menunjuk node yang akan dihapus, pointer bantu untuk menunjuk node sebelum node yang dihapus yang akan menjadi node terakhir. Pointer bantu digunakan untuk menunjuk ke nilai NULL. Pointer bantu selalu bergerak sampai sebelum node yang akan dihapus, kemudian pointer hapus diletakkan setelah pointer bantu. Selanjutnya pointer hapus akan dihapus, pointer bantu akan menunjuk ke NULL.
98 Menghapus Node di Belakang void hapusbelakang(){ TNode *hapus,*bantu; int d; if (isempty()==0){ if(head->next!= NULL){ bantu = head; while(bantu->next->next!=null){ bantu = bantu->next; } hapus = bantu->next; d = hapus->data; bantu->next = NULL; delete hapus; } else { d = head->data; head = NULL; } printf( %d terhapus\n,d); } else printf( Masih kosong\n ); }
99 Ilustrasi menghapus node di belakang
100 Function untuk menghapus semua elemen Linked List void clear() { TNode *bantu,*hapus; bantu = head; while(bantu!=null) { hapus = bantu; bantu = bantu->next; delete hapus; } head = NULL; }
101 Menampilkan / Membaca Isi Linked List Linked list ditelusuri satu-persatu dari awal sampai akhir node. Penelusuran dilakukan dengan menggunakan pointer bantu, karena pointer head yang menjadi tanda awal list tidak boleh berubah/berganti posisi. Penelusuran dilakukan terus sampai ditemukan node terakhir yang menunjuk ke nilai NULL. Jika tidak NULL, maka node bantu akan berpindah ke node selanjutnya dan membaca isi datanya dengan menggunakan field next sehingga dapat saling berkait. Jika head masih NULL berarti data masih kosong!
102 "; Menampilkan / Membaca Isi Linked List void tampil(){ TNode *bantu; bantu = head; if(isempty()==0){ while(bantu!=null){ cout<<bantu->data<<" } bantu=bantu->next; } printf( \n ); } else printf( Masih kosong\n );
103 Single Linked List non Circular Menggunakan Head dan Tail Dibutuhkan dua variabel pointer : head dan tail Head selalu menunjuk pada node pertama, sedangkan tail selalu menunjuk pada node terakhir. Kelebihan dari Single Linked List dengan Head & Tail adalah pada penambahan data di belakang, hanya dibutuhkan tail yang mengikat node baru saja tanpa harus menggunakan perulangan pointer bantu.
104 Single Linked List non Circular Menggunakan Head dan Tail Inisialisasi Linked List TNode *head, *tail; Fungsi Inisialisasi Linked List void init(){ head = NULL; tail = NULL; } Function untuk mengetahui kondisi LinkedList kosong / tidak int isempty(){ if(tail == NULL) return 1; else return 0; }
105 Menambah Node di depan dengan Haid dan Tail void insertdepan(int databaru){ TNode *baru; baru = new TNode; baru->data = databaru; baru->next = NULL; if(isempty()==1){ head=tail=baru; tail->next=null; } else { baru->next = head; head = baru; } printf( Data masuk\n ); }
106 Ilustrasi penambahan node didepan dengan Head dan Tail
107 Ilustrasi Penambahan node di depan dengan Head dan Tail
108 Menambah Node di Belakang Dengan Head dan Tail void tambahbelakang(int databaru){ TNode *baru,*bantu; baru = new TNode; baru->data = databaru; baru->next = NULL; if(isempty()==1){ head=baru; tail=baru; tail->next = NULL; } else { tail->next = baru; tail=baru; } printf("data masuk\n ); }
109 Ilustrasi penambahan node di depan dengan Head dan Tail
110 Ilustrasi Penamabahan node di depan dengan Head dan Tail
111 Menghapus Node di Depan (Dengan Head dan Tail) Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus dilakukan penunjukkan terlebih dahulu dengan pointer hapus pada head, kemudian dilakukan pergeseran head ke node berikutnya sehingga data setelah head menjadi head baru, kemudian menghapus pointer hapus dengan menggunakan perintah delete. Jika tail masih NULL maka berarti list masih kosong!
112 Menghapus Node didepan dengan Head dan Tail void hapusdepan(){ TNode *hapus; int d; if (isempty()==0){ if(head!=tail){ hapus = head; d = hapus->data; head = head->next; delete hapus; } else { d = tail->data; head=tail=null; } printf( %d terhapus\n,d); } else printf("masih kosong\n ); }
113 Ilustrasi menghapus node didepan dengan Head dan Tail
114 Menghapus Node di Belakang (Dengan Head dan Tail) Penghapusan node tidak boleh dilakukan jika keadaan node sedang ditunjuk oleh pointer, maka harus dilakukan penunjukkan terlebih dahulu dengan variabel hapus pada tail. Jika tail masih NULL maka berarti list masih kosong! Dibutuhkan pointer bantu untuk membantu pergeseran dari head ke node berikutnya sampai sebelum tail, sehingga tail dapat ditunjukkan ke bantu, dan bantu tersebut akan menjadi tail yang baru. Setelah itu hapus pointer hapus dengan menggunakan perintah delete.
115 Menghapus Node dibelakang dengan Head dan Tail void hapusbelakang(){ TNode *bantu,*hapus; int d; if (isempty()==0){ bantu = head; if(head!=tail){ while(bantu->next!=tail){ bantu = bantu->next; } hapus = tail; tail=bantu; d = hapus->data; delete hapus; tail->next = NULL; }else { d = tail->data; head=tail=null; } cout<<d<<" terhapus\n"; } else cout<<"masih kosong\n"; }
116 Ilustrasi Menghapus node di belakang null
117 Function untuk menghapus semua elemen LinkedList dengan HEAD & TAIL void clear() { TNode *bantu,*hapus; bantu = head; while(bantu!=null) { hapus = bantu; bantu = bantu->next; delete hapus; } head = NULL; tail = NULL; }
118 Latihan Soal I Struktur Data (Pertemuan 4) 1. Diketahui suatu deklarasi variabel int x,y,*z; variabel yang merupakan penunjuk ke pointer adalah : a. x d. x dan y b. y e. x, y dan z c. z 2. Perintah yang tepat untuk mempersiapkan sebuah node baru berserta alokasi memorinya, adalah. a. Create d. New b. Null e. Insert c. Input
119 2. Perintah yang tepat untuk mempersiapkan sebuah node baru berserta alokasi memorinya, adalah. a. Create d. New b. Null e. Insert c. Input 3. Jika Tail = Null, maka kondisi Linked List adalah : a. Penuh d. Tidak dapat ditambah b. Kosong e. Baru c. Terisi
120 3. Jika Tail = Null, maka kondisi Linked List adalah : a. Penuh d. Tidak dapat ditambah b. Kosong e. Baru c. Terisi 4. Gambar diatas menunjukkan bentuk penghapusan node pada posisi : a. Belakang d. Tengah dan Depan b. Depan e. Depan dan Belakang c. Tengah
121 4. Gambar diatas menunjukkan bentuk penambahan node pada posisi : a. Belakang d. Tengah dan Depan b. Depan e. Depan dan Belakang c. Tengah 5. Perintah yang tepat untuk menyatakan Linked list berada dalam kondisi kosong, adalah. a. head=tail d. bantu=head b. head=tail=null e. bantu=tail c. bantu=null
122 5. Perintah yang tepat untuk menyatakan Linked list berada dalam kondisi kosong, adalah. a. head=tail d. bantu=head b. head=tail=null e. bantu=tail c. bantu=null 1. Diketahui suatu deklarasi variabel int x,y,*z; variabel yang merupakan penunjuk ke pointer adalah : a. x d. x dan y b. y e. x, y dan z c. z
123 Latihan II Soal Struktur Data (Review Materi Pertemuan 4) Dikumpulkan pada pertemuan selanjutnya Buatlah Ilustrasi / Penggambaran untuk menambah dan menghapus node di posisi tengah pada : 1. Single Linked List dengan Head 2. Single Linked List dengan Head & Trail
124 Pertemuan 5 STACK atau TUMPUKAN
125 STACK (TUMPUKAN) Merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari List (Top) Prinsip Stack adalah LAST-IN-FIRST-OUT (LIFO). Klik untuk Ilustrasi Stack
126 OPERASI STACK ISEMPTY Untuk memeriksa apakah stack kosong ISFULL Untuk memeriksa apakah stack sudah penuh PUSH Untuk menambahkan item pada posisi paling atas (TOP) POP Untuk menghapus item paling atas (TOP) CLEAR Untuk mengosongkan stack
127 STACK PADA ARRAY Deklarasi MAX_STACK #define MAX_STACK 5 Deklarasi STACK dengan struct dan array data typedef struct STACK{ int top; int data[5]; }; Deklarasi variabel stack dari struct STACK tumpuk;
128 Inisialisasi Pada mulanya isi top dengan -1, karena array dalam C/C++ dimulai dari 0, berarti stack adalah KOSONG void inisialisasi () { tumpuk.top = -1 } TOP adalah variabel penanda dalam STACK yang menunjukkan elemen teratas Stack. TOP of STACK akan selalu bergerak hingga mencapai MAX of STACK sehingga menyebabkan stack PENUH MAX_STACK TOP = -1
129 Fungsi IsEmpty Digunakan untuk memeriksa apakah stack masih dalam kondisi kosong Dengan cara memeriksa TOP of STACK. Jika TOP masih = -1 maka berarti stack masih kosong int IsEmpty () { if (tumpuk.top == -1 return 1; else return 0; } MAX_STACK 1 0 TOP = -1
130 Fungsi IsFull Digunakan untuk memeriksa apakah kondisi stack sudah penuh Dengan cara memeriksa TOP of Stack. Jika TOP of STACK = MAX_STACK-1 maka FULL (Penuh). Jika TOP of STACK < MAX_STACK-1 maka belum penuh
131 Fungsi isfull int IsFull () { if (tumpuk.top == MAX_STACK- 1 return 1; else return 0; } E D C B A MAX_STACK TOP = 4
132 Fungsi PUSH Digunakan untuk memasukkan elemen ke dalam stack dan selalu menjadi elemen teratas stack Dengan cara : 1. Menambah satu (increment) nilai TOP of STACK setiap ada penambahan elemen stack selama stack masih belum penuh 2. Isikan nilai baru ke stack berdasarkan indeks TOP of STACK setelah ditambah satu (diincrement)
133 Fungsi Push void push (char d[5]) { tumpuk.top++ strcpy(tumpuk.data[tumpuk.top],d); } 4 MAX_STACK 4 MAX_STACK 3 3 PUSH ELEMEN A TOP = -1 1 A 0 TOP = TOP + 1 = = 0
134 Fungsi POP Digunakan untuk menghapus elemen yang berada pada posisi paling atas dari stack. Dengan cara : 1. Ambil dahulu nilai elemen teratas stack dengan mengakses TOP of STACK. 2. Tampilkan nilai yang akan diambil. 3. Lakukan decrement nilai TOP of STACK sehingga jumlah elemen stack berkurang 1
135 Fungsi POP void pop () { printf( Data yg di POP = %s\n, tumpuk.data[tumpuk.top]); tumpuk.top--; } 4 MAX_STACK 4 Data yg di POP = C C TOP = B A 1 0 B A TOP = TOP - 1 = 2-1 = 1
136 Fungsi CLEAR Digunakan untuk mengosongkan stack / membuat stack hampa sehingga Top pada Stack berada kembali di posisi Top = -1 void clear () { tumpuk.data=tumpuk.top=-1 printf( Data clear ); }
137 Latihan I Struktur Data (Pertemuan 5) Diketahui suatu stack dgn max_stack = 6 1. Bila dilakukan PUSH 3 elemen kedalam stack, kemudian di PUSH lagi 2 elemen dan di POP 3 elemen. Maka dimana posisi Top of Stack? 2. IsEmpty pada kondisi terakhir adalah? 3. Dari kondisi diatas, Berapa elemen yg hrs di PUSH unt mencapai kondisi penuh Top of Stack = max_stack? 4. Berapa elemen yg hrs di POP unt mencapai kondisi IsEmpty = True Jawaban dibahas dgn menggunakan contoh program
138 Contoh Program Stack klikdisini
139 Latihan Soal II Struktur Data (Pertemuan 5) 1. Operasi Stack yang digunakan untuk memeriksa apakah stack sudah penuh, adalah.. a. PUSH d. ISEMPTY b. POP e. ISFULL c. CLEAR 2. Menambah satu (increment) nilai TOP of STACK setiap ada penambahan elemen stack selama stack masih belum penuh, merupakan langkah awal pada operasi STACK yaitu.. a. PUSH d. ISEMPTY b. POP e. ISFULL c. CLEAR
140 2. Menambah satu (increment) nilai TOP of STACK setiap ada penambahan elemen stack selama stack masih belum penuh, merupakan langkah awal pada operasi STACK.. a. PUSH d. ISEMPTY b. POP e. ISFULL c. CLEAR 3. Jika pada stack terdapat kondisi TOP of STACK = MAX_STACK - 1 maka stack berada dalam keadaan... a. ISEMPTY d. RETREIVE b. CLEAR e. FULL c. TOP
141 3. Jika pada stack terdapat kondisi TOP of STACK = MAX_STACK - 1 maka stack berada dalam keadaan... a. ISEMPTY d. RETREIVE b. CLEAR e. FULL c. TOP 4. Pada saat awal, Top of Stack selalu bernilai : a. Top = 0 d. Top = Max_Stack b. Top = 1 e. Top = Max_Stack - 1 c. Top = -1
142 4. Pada saat awal, Top of Stack selalu bernilai : a.top = 0 d. Top = Max_Stack b. Top = 1 e. Top = Max_Stack - 1 c. Top = Diberikan perintah/instruksi pada program C++, yaitu tumpuk.top++; Maksud dari perintah/instruksi tersebut adalah. a. Top = Top + 1 d. Top = - 1 b. Top = Top - 1 e. Top = 1 c. Top = 0
143 5. Diberikan perintah/instruksi pada program C++, yaitu tumpuk.top++; Maksud dari perintah/instruksi tersebut adalah. a. Top = Top + 1 d. Top = - 1 b. Top = Top - 1 e. Top = 1 c. Top = 0 1. Operasi Stack yang digunakan untuk memeriksa apakah stack sudah penuh, adalah.. a. PUSH d. ISEMPTY b. POP e. ISFULL c. CLEAR
144 Pertemuan 6 QUEUE (ANTREAN)
145 PENGERTIAN QUEUE (ANTREAN) Struktur Data Antrean (Queue) adalah suatu bentuk khusus dari List Linier dengan operasi pemasukan data hanya diperbolehkan pada salah satu sisi, yang disebut sisi Belakang / ekor (Tail) dan operasi penghapusan hanya diperbolehkan pada sisi lainnya yang disebut sisi Depan / kepala (Head) dari LinkedList. Prinsip Antrean : FIFO (First In First Out) FCFS (First Come First Serve) Yang Tiba lebih awal Maka akan dilayani Terlebih Dahulu
146 Deklarasi Queue head = -1 tail = Max = 8
147 OPERASI QUEUE CREATE Untuk menciptakan dan menginisialisasi Queue Dengan cara membuat Head dan Tail = -1 ISEMPTY Untuk memeriksa apakah queue kosong ISFULL Untuk memeriksa apakah queue sudah penuh ENQUEUE Untuk menambahkan item pada posisi paling belakang DEQUEUE Untuk menghapus item dari posisi paling depan CLEAR Untuk mengosongkan queue
148 Fungsi Create Digunakan untuk membentuk dan menunjukan awal terbentuknya suatu Antrean / Queue Void Create() { antrian.head = antrian.tail = -1 } Max = 8 head = -1 tail = -1 Antrian pertama kali
149 Fungsi IsEmpty Untuk memeriksa apakah Antrian penuh atau kosong Dengan cara memeriksa nilai Tail, jika Tail = -1 maka antrian kosong (empty) Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail
150 Fungsi IsEmpty Int IsEmpty() { if (antrian.tail == -1) return 1; else return 0; } Max = 8 head = -1 tail = -1 Antrian kosong Karena tail = -1
151 Fungsi IsFull Untuk mengecek apakah Antrian sudah penuh atau belum Dengan cara : - Mengecek nilai Tail - Jika tail = MAX-1 berarti antrian sudah penuh (MAX-1 adalah batas elemen array dalam program C++)
152 Fungsi IsFull Int IsFull() { if (antrian.tail == Max-1) return 1; else return 0; } Max = 8 head = 0 Antrian penuh karena Head = 0 tail = max - 1 tail = 7
153 Fungsi Enqueue Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu dilakukan pada elemen paling belakang Penambahan elemen selalu menggerakan variabel Tail dengan cara menambahkan Tail terlebih dahulu
154 Fungsi Enqueue
155 Fungsi Dequeue Digunakan untuk menghapus elemen terdepan (head) dari Antrian Dengan cara : menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1. Penggeseran dilakukan dengan menggunakan looping
156 Fungsi Dequeue
157 Fungsi Clear Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1 Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca sehingga mengembalikan antrian seperti keadaan semula
158 Fungsi Clear Antrian setelah di lakukan Clear Max = 8 head = -1 tail = -1 Antrian kosong Karena tail = -1
159 Latihan I Struktur Data (Pertemuan 6) Berikan gambaran/ilustrasi dari kasus antrian berikut : a) Diketahui suatu Antrian/queue dgn max = 6. b) Lakukan Enqueue 4 elemen ke dalam antrian, dimanakah posisi Head dan Tail? c) Kemudian lakukan Dequeue 2 elemen dari antrian. Maka dimana posisi Head dan Tail? d) Dari keadaan diatas, bagaimanakah kondisi IsFull dan IsEmpty nya? Jawaban dibahas dgn menggunakan contoh program
160 Contoh program queue klikdisini
161 Latihan Soal II Struktur Data (Pertemuan 6) 1. Operasi pada Antrian yang digunakan untuk menambahkan item pada posisi paling belakang, adalah a. Create d. Enqueue b. Clear e. Dequeue c. Tail 2. Perintah IsFull pada antrian digunakan untuk : a. Memeriksa apakah antrian sudah penuh b. Memeriksa apakah Antrian penuh atau kosong c. Menambahkan elemen ke dalam Antrian d. Menghapus elemen dari dalam Antrian e. Memeriksa apakah antrian sudah kosong
162 2. Perintah IsFull pada antrian digunakan untuk : a. Memeriksa apakah antrian sudah penuh b. Memeriksa apakah Antrian penuh atau kosong c. Menambahkan elemen ke dalam Antrian d. Menghapus elemen dari dalam Antrian e. Memeriksa apakah antrian sudah kosong 3. Yang tidak termasuk dalam operasi antrian, adalah... a. Clear d. Push b. Enqueue e. Dequeue c. IsFull
163 3. Yang tidak termasuk dalam operasi antrian, adalah... a. Clear d. Push b. Enqueue e. Dequeue c. IsFull 4. Menghapus elemen dari antrian dilakukan dari posisi : a. Tengah / Middle d. Belakang / Tail b. Depan / Head e. Atas / Top c. Bawah / bottom
164 4. Menghapus elemen dari antrian dilakukan dari posisi : a. Tengah / Middle d. Belakang / Tail b. Depan / Head e. Atas / Top c. Bawah / bottom 5. Maksud dari perintah program antrian.head=antrian.tail=-1; adalah untuk... a. Menambah elemen antrian b Mengecek kondisi antrian kosong atau tidak c. Mengecek kondisi antrian penuh atau tidak d. Membentuk atau menghapus semua elemen antrian e. Menghapus elemen antrian
165 5. Maksud dari perintah program antrian.head=antrian.tail=-1; adalah untuk... a. Menambah elemen antrian b Mengecek kondisi antrian kosong atau tidak c. Mengecek kondisi antrian penuh atau tidak d. Membentuk atau menghapus semua elemen antrian e. Menghapus elemen antrian 1. Operasi pada Antrian yang digunakan untuk menambahkan item pada posisi paling belakang, adalah a. Create d. Enqueue b. Clear e. Dequeue c. Tail
166 Pertemuan 7 REVIEW & QUIS
167 1. Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah : a. Boolean d. Integer b. String e. float c. Char 2. ==, <=, >=,!=, termasuk dalam operator a. Aritmatika d. Relasi b. Unary e. Bitwise c. Binary
168 2. ==, <=, >=,!=, termasuk dalam operator a. Aritmatika d. Relasi b. Unary e. Bitwise c. Binary 3. Type data yang menghasilkan bentuk keluaran nilai True dan False (Benar dan Salah), adalah : a. Boolean d. Integer b. String e. float c. Char
169 3. Type data yang menghasilkan bentuk keluaran nilai True dan False (Benar dan Salah), adalah : a. Boolean d. Integer b. String e. float c. Char 4. void main() {...(a)... x,y,z; clrscr(); cout << \n input nilai X= ; cin >> x; cout << \n input nilai Y= ; cin >> y; z = x + y; cout << \n hasil penjumlahan = << z; getch(); } Tipe data yang tepat untuk (a) adalah. a. Boolean d. Integer b. String e. Array c. Char
170 4. void main() {...(a)... x,y,z; clrscr(); cout << \n input nilai X= ; cin >> x; cout << \n input nilai Y= ; cin >> y; z = x + y; cout << \n hasil penjumlahan = << z; getch(); } Tipe data yang tepat untuk (a) adalah. a. Boolean d. Integer b. String e. Array c. Char
171 5. void main() { int r = 10; int s; clrscr(); s = r; cout << r = << r << \n ; cout << s = << s << \n ; getch(); } Hasil eksekusi dari program diatas adalah. a. r = 11, s = 21 d. r = 10, s = 21 b. r = 11, s = 20 e. r = 10, s = 20 c. r = 12, s = 21
172 5. void main() { int r = 10; int s; clrscr(); s = r; cout << r = << r << \n ; cout << s = << s << \n ; getch(); } Hasil eksekusi dari program diatas adalah. a. r = 11, s = 21 d. r = 10, s = 21 b. r = 11, s = 20 e. r = 10, s = 20 c. r = 12, s = Setiap elemen dari sebuah Array haruslah mempunyai type data yang sama, termasuk dalam karakteristik array yaitu : a. Statis d. Heterogen b. Dinamis e. Homogen c. Terurut
173 6. Setiap elemen dari sebuah Array haruslah mempunyai type data yang sama, termasuk dalam karakteristik array yaitu : a. Statis d. Heterogen b. Dinamis e. Homogen c. Terurut 7. Array yang sering digunakan dalam menterjemahkan matriks pada pemrograman, adalah array berdimensi : a. Satu d. Satu dan Dua b. Dua e. Satu dan Tiga c. Tiga
174 7. Array yang sering digunakan dalam menterjemahkan matriks pada pemrograman, adalah array berdimensi : a. Satu d. Satu dan Dua b. Dua e. Satu dan Tiga c. Tiga 8. Contoh aplikasi array dimensi dua adalah.. a. Input data suhu b. Input nama hari c. Input nilai mahasiswa perkelas dan matakuliah d. Input nilai ipk mahasiswa e. Input nama bulan
175 8. Contoh aplikasi array dimensi dua adalah.. a. Input data suhu b. Input nama hari c. Input nilai mahasiswa perkelas dan matakuliah d. Input nilai ipk mahasiswa e. Input nama bulan 9. Terdapat Array : A [5][4] maka jumlah elemen Array tersebut adalah a. 25 d. 15 b. 35 e. 20 c. 9
176 9. Terdapat Array : A [5][4] maka jumlah elemen Array tersebut adalah a. 25 d. 15 b. 35 e. 20 c Diketahui float A[5] dan lokasi awal terletak di alamat 00F (H), maka lokasi A[3] adalah.. a. 00FC (H) d. 01B (H) b. 017 (H) e. 111 (H) c. 071 (H)
177 10. Diketahui float A[5] dan lokasi awal terletak di alamat 00F (H), maka lokasi A[3] adalah.. a. 00FC (H) d. 01B (H) b. 017 (H) e. 111 (H) c. 071 (H) 11. Array yang sangat banyak elemen nol-nya, dikenal sebagai : a. Upper tringular Array d. One Dimensional Array b. Lower tringular Array e. Multi Dimensional Array c. Sparse Array
178 11. Array yang sangat banyak elemen nol-nya, dikenal sebagai : a. Upper tringular Array d. One Dimensional Array b. Lower tringular Array e. Multi Dimensional Array c. Sparse Array 12 Array yang seluruh elemen dibawah diagonal utamanya = 0, dikenal sebagai : a. Upper tringular Array d. One Dimensional Array b. Lower tringular Array e. Multi Dimensional Array c. Sparse Array
179 12 Array yang seluruh elemen dibawah diagonal utamanya = 0, dikenal sebagai : a. Upper tringular Array d. One Dimensional Array b. Lower tringular Array e. Multi Dimensional Array c. Sparse Array 13. Terdapat Array : A [3][4][5] maka jumlah elemen Array tersebut adalah a. 25 d. 15 b. 35 e. 60 c. 12
180 13. Terdapat Array : A [3][4][5] maka jumlah elemen Array tersebut adalah a. 25 d. 15 b. 35 e. 60 c Diketahui suatu array segitiga memiliki 4 baris dan kolom. Jumlah elemen yang bukan nol pada array segitiga tersebut adalah.. a. 10 d. 16 b. 8 e. 20 c. 4
181 14. Diketahui suatu array segitiga memiliki 4 baris dan kolom. Jumlah elemen yang bukan nol pada array segitiga tersebut adalah.. a. 10 d. 16 b. 8 e. 20 c Deklarasi Array X adalah int A [2][4][5], dengan alamat awal index A[0][0][0] berada di 0021(H) dan ukuran type data int = 2 Tentukan berapa alamat array di A[2][2][2]? a (H) d (H) b (H) e (H) c (H)
182 15. Deklarasi Array X adalah int A [2][4][5], dengan alamat awal index A[0][0][0] berada di 0021(H) dan ukuran type data int = 2 Tentukan berapa alamat array di A[2][2][2]? a (H) d (H) b (H) e (H) c (H) 16. Diketahui suatu deklarasi variabel int x,y,*z; variabel yang merupakan penunjuk ke pointer adalah : a. x d. x dan y b. y e. x, y dan z c. z
183 16. Diketahui suatu deklarasi variabel int x,y,*z; variabel yang merupakan penunjuk ke pointer adalah : a. x d. x dan y b. y e. x, y dan z c. z 17. Perintah yang tepat untuk mempersiapkan sebuah node baru berserta alokasi memorinya, adalah. a. Create d. New b. Null e. Insert c. Input
184 17. Perintah yang tepat untuk mempersiapkan sebuah node baru berserta alokasi memorinya, adalah. a. Create d. New b. Null e. Insert c. Input 18. Jika Tail = Null, maka kondisi Linked List adalah : a. Penuh d. Tidak dapat ditambah b. Kosong e. Baru c. Terisi
185 18. Jika Tail = Null, maka kondisi Linked List adalah : a. Penuh d. Tidak dapat ditambah b. Kosong e. Baru c. Terisi 19. Gambar diatas menunjukkan bentuk penghapusan node pada posisi : a. Belakang d. Tengah dan Depan b. Depan e. Depan dan Belakang c. Tengah
186 19. Gambar diatas menunjukkan bentuk penambahan node pada posisi : a. Belakang d. Tengah dan Depan b. Depan e. Depan dan Belakang c. Tengah 20. Perintah yang tepat untuk menyatakan Linked list berada dalam kondisi kosong, adalah. a. head=tail d. bantu=head b. head=tail=null e. bantu=tail c. bantu=null
187 20. Perintah yang tepat untuk menyatakan Linked list berada dalam kondisi kosong, adalah. a. head=tail d. bantu=head b. head=tail=null e. bantu=tail c. bantu=null 21. Operasi Stack yang digunakan untuk memeriksa apakah stack sudah penuh, adalah.. a. PUSH d. ISEMPTY b. POP e. ISFULL c. CLEAR
188 21. Operasi Stack yang digunakan untuk memeriksa apakah stack sudah penuh, adalah.. a. PUSH d. ISEMPTY b. POP e. ISFULL c. CLEAR 22. Menambah satu (increment) nilai TOP of STACK setiap ada penambahan elemen stack selama stack masih belum penuh, merupakan langkah awal pada operasi STACK yaitu.. a. PUSH d. ISEMPTY b. POP e. ISFULL c. CLEAR
189 22. Menambah satu (increment) nilai TOP of STACK setiap ada penambahan elemen stack selama stack masih belum penuh, merupakan langkah awal pada operasi STACK.. a. PUSH d. ISEMPTY b. POP e. ISFULL c. CLEAR 23. Jika pada stack terdapat kondisi TOP of STACK = MAX_STACK - 1 maka stack berada dalam keadaan... a. ISEMPTY d. RETREIVE b. CLEAR e. FULL c. TOP
190 23. Jika pada stack terdapat kondisi TOP of STACK = MAX_STACK - 1 maka stack berada dalam keadaan... a. ISEMPTY d. RETREIVE b. CLEAR e. FULL c. TOP 24. Pada saat awal, Top of Stack selalu bernilai : a. Top = 0 d. Top = Max_Stack b. Top = 1 e. Top = Max_Stack - 1 c. Top = -1
191 24. Pada saat awal, Top of Stack selalu bernilai : a. Top = 0 d. Top = Max_Stack b. Top = 1 e. Top = Max_Stack - 1 c. Top = Diberikan perintah/instruksi pada program C++, yaitu tumpuk.top++; Maksud dari perintah/instruksi tersebut adalah. a. Top = Top + 1 d. Top = - 1 b. Top = Top - 1 e. Top = 1 c. Top = 0
192 25. Diberikan perintah/instruksi pada program C++, yaitu tumpuk.top++; Maksud dari perintah/instruksi tersebut adalah. a. Top = Top + 1 d. Top = - 1 b. Top = Top - 1 e. Top = 1 c. Top = Operasi pada Antrian yang digunakan untuk menambahkan item pada posisi paling belakang, adalah a. Create d. Enqueue b. Clear e. Dequeue c. Tail
193 26. Operasi pada Antrian yang digunakan untuk menambahkan item pada posisi paling belakang, adalah a. Create d. Enqueue b. Clear e. Dequeue c. Tail 27. Perintah IsFull pada antrian digunakan untuk : a. Memeriksa apakah antrian sudah penuh b. Memeriksa apakah Antrian penuh atau kosong c. Menambahkan elemen ke dalam Antrian d. Menghapus elemen dari dalam Antrian e. Memeriksa apakah antrian sudah kosong
194 27. Perintah IsFull pada antrian digunakan untuk : a. Memeriksa apakah antrian sudah penuh b. Memeriksa apakah Antrian penuh atau kosong c. Menambahkan elemen ke dalam Antrian d. Menghapus elemen dari dalam Antrian e. Memeriksa apakah antrian sudah kosong 28. Yang tidak termasuk dalam operasi antrian, adalah... a. Clear d. Push b. Enqueue e. Dequeue c. IsFull
195 28. Yang tidak termasuk dalam operasi antrian, adalah... a. Clear d. Push b. Enqueue e. Dequeue c. IsFull 29. Menghapus elemen dari antrian dilakukan dari posisi : a. Tengah / Middle d. Belakang / Tail b. Depan / Head e. Atas / Top c. Bawah / bottom
196 29. Menghapus elemen dari antrian dilakukan dari posisi : a. Tengah / Middle d. Belakang / Tail b. Depan / Head e. Atas / Top c. Bawah / bottom 30. Maksud dari perintah program antrian.head=antrian.tail=-1; adalah untuk... a. Menambah elemen antrian b Mengecek kondisi antrian kosong atau tidak c. Mengecek kondisi antrian penuh atau tidak d. Membentuk atau menghapus semua elemen antrian e. Menghapus elemen antrian
197 30. Maksud dari perintah program antrian.head=antrian.tail=-1; adalah untuk... a. Menambah elemen antrian b Mengecek kondisi antrian kosong atau tidak c. Mengecek kondisi antrian penuh atau tidak d. Membentuk atau menghapus semua elemen antrian e. Menghapus elemen antrian 1. Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah : a. Boolean d. Integer b. String e. float c. Char
198 Pertemuan 9 STRUKTUR POHON & KUNJUNGAN POHON BINER
199 DEFINISI POHON (TREE) Pohon (Tree) termasuk struktur non linear yang didefinisikan sebagai data yang terorganisir dari suatu item informasi cabang yang saling terkait Level Root A B C D E F G H Height = 3
200 Istilah istilah Dalam Pohon 1. Predesesor Node yang berada diatas node tertentu. (contoh : B predesesor dari E dan F) 2. Succesor Node yang berada dibawah node tertentu. (contoh : E dan F merupakan succesor dari B) 3. Ancestor Seluruh node yang terletak sebelum node tertentu dan terletak pada jalur yang sama. (contoh : A dan B merupakan ancestor dari F)
201 4. Descendant Seluruh node yang terletak sesudah node tertentu dan terletak pada jalur yang sama. (contoh : F dan B merupakan ancestor dari A) 5. Parent Predesesor satu level diatas satu node (contoh : B merupakan parent dari F) 6. Child Succesor satu level dibawah satu node (contoh : F merupakan child dari B) 7. Sibling Node yang memiliki parent yang sama dengan satu node (contoh : E dan F adalah sibling)
202 8. Subtree Bagian dari tree yang berupa suatu node beserta descendant-nya (contoh : Subtree B, E, F dan Subtree D, G, H) 9. Size Banyaknya node dalam suatu tree (contoh : gambar tree diatas memiliki size = 8) 10. Height Banyaknya tingkat/level dalam suatu tree (contoh : gambar tree diatas memiliki height = 3)
203 11. Root (Akar) Node khusus dalam tree yang tidak memiliki predesesor (Contoh : A) 12. Leaf (Daun) Node-node dalam tree yang tidak memiliki daun (contoh : Node E,F,C,G,H) 13. Degree (Derajat) Banyaknya child yang dimiliki oleh suatu node (contoh : Node A memiliki derajat 3, node B memiliki derajat 2)
204 ISTILAH-ISTILAH DASAR Pohon atau Tree adalah salah satu bentuk Graph terhubung yang tidak mengandung sirkuit. Karena merupakan Graph terhubung, maka pada Pohon (Tree) selalu terdapat Path atau Jalur yang menghubungkan setiap simpul dalam dua pohon. Pohon (Tree) dapat juga didefinisikan sebagai kumpulan elemen yang salah satu elemennya disebut dengan Akar (Root) dan sisa elemen lain (Simpul) yang terpecah menjadi sejumlah himpunan yang saling tidak berhubungan yang disebut dengan Subpohon (Subtree) atau cabang
205
206 Sifat utama Pohon Berakar 1. Jika Pohon mempunyai Simpul sebanyak n, maka banyaknya ruas atau edge adalah (n-1). 2. Mempunyai Simpul Khusus yang disebut Root, jika Simpul tersebut memiliki derajat keluar >= 0, dan derajat masuk = Mempunyai Simpul yang disebut sebagai Daun / Leaf, jika Simpul tersebut berderajat keluar = 0, dan berderajat masuk = Setiap Simpul mempunyai Tingkatan / Level yang dimulai dari Root yang Levelnya = 1 sampai dengan Level ke - n pada daun paling bawah. Simpul yang mempunyai Level sama disebut Bersaudara atau Brother atau Stribling.
207 5. Pohon mempunyai Ketinggian atau Kedalaman atau Height, yang merupakan Level tertinggi 6. Pohon mempunyai Weight atau Berat atau Bobot, yang banyaknya daun (leaf) pada Pohon. 7. Banyaknya Simpul Maksimum sampai Level N adalah : 2 (N) Banyaknya Simpul untuk setiap Level I adalah : N 2 ( I 1) I = 1 Hutan (Forest) adalah kumpulan Pohon yang tidak saling berhubungan
208 Diketahui suatu bentuk Pohon Berakar T sebagai berikut : Pohon Diatas Mempunyai : a. Simpul sebanyak = 8 dan edge = n - 1 = 8 1 = 7 b. Root pada Pohon T diatas adalah Simpul P c. Mempunyai daun (Leaf) = 4, yaitu = R, S, V dan W
209 d. Level (tingkatan) Pohon = 4 yaitu : Level 1 = Simpul P Level 2 = Simpul Q dan T Level 3 = Simpul R, S dan U Level 4 = Simpul V dan W e. Ketinggian atau kedalaman = jumlah level = 4 f. Weight atau berat atau bobot = jumlah daun = 4 Dalam gambar Pohon T diatas dapat dibentuk 2 buah hutan (forest), bila simpul P dihilangkan, yaitu : Hutan 1 : Q,R,S Hutan 2 : T,U,V,W
210 g. Banyaknya Simpul Maksimum yang dapat terbentuk sampai Level 4 (bila simpul pada pohon dianggap penuh) adalah : 2 (N) 1 2 (4) 1 = 16 1 = 15
211 h. Banyaknya Simpul maksimum untuk setiap Level I (bila simpul pada pohon dianggap penuh) adalah : Maksimum Simpul pada level 2 = 2 ( I 1) = 2 (2-1) = 2 Maksimum Simpul pada level 3 = 2 (3-1) = 4 Maksimum Simpul pada level 4 = 2 (4-1) = 2
212 POHON BINAR (BINARY TREE) Struktur ini biasanya digunakan untuk menyajikan data yang mengandung hubungan hirarkial antara elemenelemennya. Bentuk Pohon Berakar yang lebih mudah dikelola dalam komputer adalah Pohon Biner (Binary Tree) yang lebih dikenal sebagai Pohon Umum (General Tree) yang dapat didefinisikan sebagai kumpulan simpul yang mungkin kosong atau mempunyai akar dan dua Subpohon yang saling terpisah yang disebut dengan Subpohon Kiri / cabang kiri (Left Subtree) dan Subpohon Kanan / cabang kanan (Right Subtree).
213 Karakteristik Pohon Binar (Binary Tree) : 1. Setiap Simpul paling banyak hanya memiliki dua buah anak 2. Derajat Tertinggi dari setiap Simpul adalah dua. 3. Dibedakan antara Cabang Kiri dan Cabang Kanan. 4. Dimungkinkan tidak mempunyai Simpul Berikut ini diberikan contoh gambar Pohon Binar (Binary Tree) dengan Cabang Kiri dan Cabang Kanan.
214 ISTILAH PADA POHON BINER Pohon Biner Penuh (Full Binary Tree) Semua simpul (kecuali daun) memiliki 2 anak dan tiap cabang memiliki panjang ruas yang sama A B C D E F G Pohon Biner Lengkap (Complete Binary Tree) Hampir sama dengan Pohon Biner Penuh, semua simpul (kecuali daun) memiliki 2 anak tetapi tiap cabang memiliki panjang ruas berbeda D B E A C
215 ISTILAH PADA POHON BINER Pohon Biner Similer Dua pohon yang memiliki struktur yang sama tetapi informasinya berbeda A P B C Q R Pohon Biner Ekivalent Dua pohon yang memiliki struktur dan informasi yang sama P P Q R Q R
216 ISTILAH PADA POHON BINER Pohon Biner Miring (Skewed Tree) Dua pohon yang semua simpulnya mempunyai satu anak / turunan kecuali daun
217 Deklarasi Pohon Biner (Dengan Program C++) Dalam setiap simpul selalu berisi dua buah Pointer untuk menunjuk ke cabang Kiri dan cabang Kanan dan informasi yang akan disimpan dalam simpul tersebut.
218
219 Penyajian Pohon Binar (Binary Tree) Tree dapat dibuat dengan menggunakan linked list secara rekursif. Linked list yang digunakan adalah double linked list non circular Data yang pertama kali masuk akan menjadi node root. Data yang lebih kecil dari data node root akan masuk dan menempati node kiri dari node root, sedangkan jika lebih besar dari data node root, akan masuk dan menempati node di sebelah kanan node root.
220 Bila diberikan untai HAKJCBL, maka proses untuk dapat membentuk pohon biner dari untai diatas adalah : 1. Karakter pertama H ditempatkan sebagai akar (root) 2. Karakter A,karena lebih kecil dari H, maka akan menempati cabang kiri. 3. Karakter K, karena lebih besar dari H, maka akan menempati cabang kanan. 4. Karakter J, lebih besar dari H dan kecil dari K, maka menempati cabang kiri K. 5. Karakter C,karena lebih besar dari A, maka akan menempati cabang kanan. 6. Karakter B, karena lebih kecil dari C, maka akan menempati cabang kiri. 7. Karakter L, lebih besar dari K, maka menempati cabang kiri kanan.
221 Sehingga terbentuk pohon biner seperti berikut :
222 Latihan Buatlah pohon biner dari barisan bilangan berikut: 1. 12, 22, 8, 19, 10, 9, 20, 4, 2, , 3, 4, 5, 50, 10, 15, 13, 20, 12, 10, , 13, 4, 6, 5, 9, 15, 20, 60, 14, 40, , 45, 55, 41, 49,13,60, 70, 40, 35, 30, 20, 80, 75, , 19, 11, 17, 29, 21, 20, 22, 13, 14, 18, 16, 15
223 Latihan Soal Struktur Data (Pertemuan 9) 1. Simpul Khusus pada pohon yang memiliki derajat keluar >= 0, dan derajat masuk = 0, adalah. a. Node / simpul d. edge / ruas b. Root / akar e. level c. Leaf / daun 2. Jika suatu pohon biner memiliki simpul sebanyak 5 maka banyaknya ruas adalah : a. 2 d. 5 b. 3 e. 6 c. 4
224 2. Jika suatu pohon biner memiliki simpul sebanyak 5 maka banyaknya ruas adalah : a. 2 d. 5 b. 3 e. 6 c Pohon biner yang memiliki ciri Semua simpul (kecuali daun) memiliki 2 anak dan tiap cabang memiliki panjang ruas yang sama, adalah pohon biner. a. Lengkap / complete b. Similer c. Miring / skewed d. Penuh / full e. ekivalen
225 3. Pohon biner yang memiliki ciri Semua simpul (kecuali daun) memiliki 2 anak dan tiap cabang memiliki panjang ruas yang sama, adalah pohon biner. a. Lengkap / complete b. Similer c. Miring / skewed d. Penuh / full e. ekivalen 4. Suatu pohon memiliki level = 4, maka banyaknya Simpul Maksimum yang dapat terbentuk sampai Level 4 adalah. a. 8 b. 15 c. 12 d. 4 e. 7
226 4. Suatu pohon memiliki level = 4, maka banyaknya Simpul Maksimum yang dapat terbentuk sampai Level 4 adalah. a. 8 b. 15 c. 12 d. 4 e Pohon biner yang memiliki struktur dan informasinya sama disebut : a. Miring (Skewed) c. Terstruktur b. Ekivalent d. Similer e. Complete
227 5. Pohon biner yang memiliki struktur dan informasinya sama disebut : a. Miring (Skewed) c. Terstruktur b. Ekivalent d. Similer e. Complete 1. Simpul Khusus pada pohon yang memiliki derajat keluar >= 0, dan derajat masuk = 0, adalah. a. Node / simpul d. edge / ruas b. Root / akar e. level c. Leaf / daun
228 Pertemuan 10 KUNJUNGAN PADA POHON BINER
229 Kunjungan Pohon Biner
230 Kunjungan Pohon Biner 3. Kunjungan secara Postorder, mempunyai urutan : a. Kunjungi Cabang Kiri b. Kunjungi Cabang Kanan c. Cetak isi simpul yang dikunjungi (Simpul Akar)
231 Pada ketiga cara kunjungan diatas, kunjungan ke Cabang Kiri dilakukan terlebih dahulu, baru kemudian kunjungan ke Cabang Kanan. Dengan orientasi semacam ini, Ketiga kunjungan diatas disebut dengan Left To Right Oriented (LRO). Jika kunjungan ke Cabang Kanan dilakukan lebih dahulu baru kemudian kunjungan ke Cabang Kiri, maka Orientasi semacam ini disebut Right To Left Oriented (RLO).
232 PreOrder A A B D E C B C D E Klik Animasi
233 Contoh PreOrder Klik Animasi
234 Kunjungan PreOrder dalam Program C++
235 InOrder A B C D B E A C D E Klik Animasi
236 Contoh InOrder Klik Animasi
237 Kunjungan InOrder dalam Program C++
238 3. Kunjungan secara Postorder, mempunyai urutan : a. Kunjungi Cabang Kiri b. Kunjungi Cabang Kanan c. Cetak isi simpul yang dikunjungi (Simpul Akar) A B C D E B C A D E Klik Animasi
239 Contoh PostOrder Klik Animasi
240 Kunjungan PostOrder dalam Program C++
241 Kunjungan LevelOrder Selain kunjungan yang dijelaskan diatas, masih ada satu macam kunjungan masih ada satu macam kunjungan lagi yaitu kunjungan LevelOrder. Kunjungan dimulai dari simpul yang ada pada tingkat 1 (Akar), diteruskan pada simpul di tingkat 2, tingkat 3 dan seterusnya.
242 Secara singkat kunjungan Level Order ini dapat dijelaskan sebagai berikut. 1. Dimulai dengan memasukkan Akar kedalam antrean. 2. Kemudian mengeluarkan Akar tersebut keluar dari antrean. Pada saat Akar tersebut dikeluarkan dari antrean, cabang kiri dan cabang kanan secara berturut-turut dimasukkan dalam antrean. Dengan kata lain jika suatu elemen dikeluarkan dari antrean, maka cabang kiri dan kanan dari elemen yang baru saja dikeluarkan dimasukkan kedalam antrean.
243 APLIKASI POHON BINER NOTASI PREFIX, INFIX DAN POSTFIX Pada bagian ini akan dibahas tentang bagaimana menyusun sebuah Pohon Binar yang apabila dikunjungi secara PreOrder akan menghasilkan Notasi Prefix, kunjungan secara InOrder menghasilkan Notasi Infix, dan kunjungan PostOrder menghasilkan Notasi Postfix.
244 Aplikasi Pohon Biner
245 Aplikasi Pohon Biner
246 Berdasarkan Gambar diatas, apabila dilakukan kunjungan secara PreOrder, maka akan diperoleh Notasi Prefix dari persamaan-persamaan yang digambarkan tersebut, yaitu : +A*BC (Gambar.a) *+AB-BC (Gambar.b) ^-*+ABC-DE+FG (Gambar.c) Jika dilakukan kunjungan secara InOrder, akan diperoleh Notasi Infixnya, yaitu : (A+(B*C)) (Gambar.a) ((A+B) * (B-C)) (Gambar.b) ((((A+B) * C) (D-E))^(F+G)) (Gambar.c)
247 Jika dilakukan kunjungan secara PostOrder, akan diperoleh Notasi Postfixnya, yaitu : ABC*+ (Gambar.a) AB+BC-* (Gambar.b) AB+C*DE--FG+^ (Gambar.c)
248 Latihan Soal Struktur Data (Pertemuan 10) 1. Kunjungan dengan urutan : kunjungi simpul akar, cabang kiri,cabang kanan, adalah kunjungan. a. Preorder d. Postorder b. Inorder e. Outorder c. Symetric Order 2. Dengan kunjungan PREORDER maka untai yang dihasilkan adalah : a. A B D C A b. A B C D c. B A D C d. B D C A B C e. B C D A D
249 2. Dengan kunjungan PREORDER maka untai yang dihasilkan adalah : a. A B D C A b. A B C D c. B A D C d. B D C A B C e. B C D A D 3. Dari gambar disamping, notasi POSTFIX yang dihasilkan adalah a. A B C - * * b. A - B * C c. A B - C * d. * - A B C - C e. A B - * C A B
250 3. Dari gambar disamping, notasi POSTFIX yang dihasilkan adalah a. A B C - * * b. A - B * C c. A B - C * d. * - A B C - C e. A B - * C A B 4. Dari gambar diatas,notasi PREFIX yang dihasilkan adalah : a. A B C - * d. A B - C * b. A - B * C e. * - A B C c. * - C A B
251 4. Dari gambar diatas,notasi PREFIX yang dihasilkan adalah : * a. A B C - * b. A - B * C c. * - C A B d. A B - C * e. * - A B C A - C B 5. Berikut ini, yang tidak termasuk dalam kunjungan pohon biner adalah : a. Inorder d. Preorder b. Outorder e. Postorder c. Symetric Order
252 5. Berikut ini, yang tidak termasuk dalam kunjungan pohon biner adalah : a. Inorder d. Preorder b. Outorder e. Postorder c. Symetric Order 1. Kunjungan dengan urutan : kunjungi simpul akar, cabang kiri,cabang kanan, adalah kunjungan. a. Preorder d. Postorder b. Inorder e. Outorder c. Symetric Order
253 Pertemuan 11 GRAPH, MATRIK PENYAJIAN GRAPH
254 GRAPH Suatu Graph mengandung 2 himpunan, yaitu : 1. Himpunan V yang elemennya disebut simpul (Vertex atau Point atau Node atau Titik) 2. Himpunan E yang merupakan pasangan tak urut dari simpul. Anggotanya disebut Ruas (Edge atau rusuk atau sisi) Graph seperti dimaksud diatas, ditulis sebagai G(E,V).
255 Contoh : Gambar berikut menanyakan Graph G(E,V) dengan : 1. V mengandung 4 simpul, yaitu simpul A,B,C,D. 2. E mengandung 5 ruas, yaitu : e1 = (A,B) e4 = (C,D) e2 = (B,C) e5 = (B,D) e3 = (A,D)
256 Gambar dibawah ini menyatakan suatu Multigraph. Disini, ruas e2 pada kedua titik ujungnya adalah simpul yang sama, yaitu simpul A. Ruas semacam ini disebut Gelung atau Self-Loop. Sedangkan ruas e5 dan e6 mempunyai titik ujung yang sama, yaitu simpul-simpul B dan C. Kedua ruas ini disebut ruas berganda atau ruas sejajar. e2 e3 e1 e4 e5 e6
257 Suatu Graph yang tidak mengandung ruas sejajar maupun self-loop, sering disebut juga sebagai Graph sederhana atau simple Graph. Suatu Graph G (E,V ) disebut Sub Graph dari G(E,V), bila E himpunan bagian dari E dan V himpunan bagian dari V. Jika E mengandung semua ruas dari E yang titik ujungnya di V, maka G disebut Subgraph yang direntang oleh V (Spanning Subgraph).
258 Contoh Sub Graph:
259 Contoh Spanning Sub Graph
260 GRAPH BERLABEL Graph G disebut berlabel jika ruas dan atau simpulnya dikaitkan dengan suatu besaran tertentu. Khususnya jika setiap Ruas e dari G dikaitkan dengan suatu bilangan non negatif d(e), maka d(e) disebut bobot atau panjang dari ruas e.
261 Contoh : Gambar berikut ini menyajikan hubungan antar kota. Disini simpul menyatakan kota dan label d(e) menyatakan jarak antara dua kota.
262 DERAJAT GRAPH Derajat simpul V, ditulis d(v) adalah banyaknya ruas yang menghubungi v. Karena setiap ruas dihitung dua kali ketika menentukan derajat suatu Graph, maka : Jumlah derajat semua simpul suatu Graph (derajat) = dua kali banyaknya ruas Graph (Size) Atau dapat dituliskan : Derajat Graph = 2 x Size
263 Pada gambar diatas Jumlah Semua Simpul = 4, maka Jumlah Derajat Semua Simpul = 8 Jika Derajat masing-masing simpul pada Graph berjumlah Genap maka Graph tersebut disebut EULER Graph
264 Contoh : A B F C D E
265 Pada gambar diatas, banyak ruas/size = 7, sedangkan derajat masing-masing simpul adalah : d(a) = 2 d(b) = 5 d(c) = 3 d(d) = 3 d(e) = 1 d(f) = 0 maka, total jumlah derajat simpul adalah : 14 E disebut simpul bergantung/akhir, yaitu simpul yang berderajat satu. Sedangkan F disebut simpul terpencil, yaitu simpul yang berderajat Nol.
266 KETERHUBUNGAN Walk atau perjalanan dalam Graph G adalah barisan simpul dan ruas berganti-ganti : V1,e1,V2,e2,..., e n-1, Vn Disini ruas ei menghubungkan simpul Vi dan Vi+1. Banyaknya ruas disebut Panjang Walk. Walk dapat ditulis lebih singkat dengan hanya menulis deretan ruas : e1,e2,..., en-1 atau deretan simpul : V1, V2,..., Vn-1, Vn dimana : V1 = simpul awal Vn = simpul akhir. Walk disebut tertutup bila V1 = Vn
267 Istilah Pada Graph
268 Graph merupakan Walk Terbuka, karena tidak ada ruas yang menghubungkan Simpul U dan T. Merupakan suatu Path atau Trail terbuka dengan derajat setiap simpulnya = 2, kecuali simpul awal U dan simpul akhir T berderajat = 1.
269
270 Barisan ruas a,b,c,d,b,c,g,h adalah Walk bukan Trail (karena ruas b dua kali muncul). Barisan simpul A, B, E, F bukan Walk (karena tdk ada ruas yang menghubungkan simpul B ke F). Barisan simpul A, B, C, D, E, C, F adalah Trail bukan Jalur/Path (karena c dua kali muncul) Barisan ruas a, d, g, k adalah Jalur/Path karena menghubungkan A dengan F Ruas a, b, h, g, e, a, adalah Cycle. Graph yang tidak mengandung Cycle disebut Acyclic. Contoh dari Graph Acyclic adalah pohon atau Tree.
271 Contoh dari acyclic
272
273 GRAPH TERARAH (DIRECTED GRAPH / DIGRAPH) Graph terarah adalah Graph yang dapat menghubungkan V1 ke V2 saja (1 arah). Maksimum jumlah busur dari n simpul adalah : n ( n - 1) Suatu Graph Berarah (Directed Graph) D terdiri atas 2 himpunan : 1) Himpunan V, anggotanya disebut simpul. 2) Himpunan A, merupakan himpunan pasangan terurut, yang disebut ruas berarah atau arkus.
274 Contoh, Gambar dibawah ini adalah sebuah Graph Berarah D(V,A) dengan : 1. V mengandung 4 simpul, yaitu 1, 2, 3 dan 4 2. A mengandung 7 arkus, yaitu (1,4),(2,1), (2,1), (4,2), (2,3), (4,3) dan (2) Arkus (2,2) disebut gelung (self-loop), sedangkan arkus (2,1) muncul lebih dari satu kali, disebut arkus sejajar atau arkus berganda.
275 Bila arkus suatu Graph Berarah menyatakan suatu bobot, maka Graph Berarah tersebut dinamakan jaringan / Network. Biasanya digunakan untuk menggambarkan situasi dinamis. Bila V himpunan bagian dari V serta A himpunan bagian dari A, dengan titik ujung anggota A terletak di dalam V, maka dikatakan bahwa D (V,A ) adalah Graph bagian (Subgraph) dari D(V,A). Bila A mengandung semua arkus anggota A yang titik ujungnya anggota V, maka dikatakan bahwa D (V,A ) adalah Graph Bagian yang dibentuk atau direntang oleh V.
276 Undirected Graph
277 Critical Path
278 Critical Path
KONSEP POINTER DAN LINKED LIST
Pertemuan 4 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut
Lebih terperinciKONSEP POINTER DAN LINKED LIST
Pertemuan 4 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut
Lebih terperinciKONSEP POINTER DAN LINKED LIST
Pertemuan 4 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut
Lebih terperinciPertemuan 7. REVIEW dan QUIS
Pertemuan 7 REVIEW dan QUIS 1. Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah : a. Boolean d. Integer b. String e. float c. Char 2. ==, =,!=, termasuk dalam operator
Lebih terperinciKONSEP POINTER DAN LINKED LIST
Pertemuan 3 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut
Lebih terperinciStruktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.
Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang
Lebih terperinciStruktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.
Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang
Lebih terperinciStruktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.
Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang
Lebih terperinciPertemuan 2 ARRAY DIMENSI 1 & 2
Pertemuan 2 ARRAY DIMENSI 1 & 2 Definisi Array Array / Larik : Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinisikan sebagai
Lebih terperinciStruktur Data II. Single Linked List - Non circular
Struktur Data II Single Linked List - Non circular Linked List?(1) Struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial. Saling sambung-menyambung, dinamis dan terbatas. Linked List
Lebih terperinciSTRUKTUR DATA (2) Single Linked List
STRUKTUR DATA (2) Single Linked List Linked List Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung, dinamis dan
Lebih terperinciPertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.
Pertemuan 3 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut
Lebih terperinciKONSEP POINTER DAN LINKED LIST
Pertemuan 3 KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu perubah yang disebut
Lebih terperinciPertemuan 4. Single Linked List non Circular Menggunakan Head dan Tail
Pertemuan 4 Single Linked List non Circular Menggunakan Head dan Tail Dibutuhkan dua variabel pointer : head dan tail Head selalu menunjuk pada node pertama, sedangkan tail selalu menunjuk pada node terakhir.
Lebih terperinciPert 2 Struktur Data (mengajarkomputer.wordpress.com) ARRAY DIMENSI 1 & 2
ARRAY DIMENSI 1 & 2 Array / Larik : Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinisikan sebagai suatu himpunan hingga elemen
Lebih terperinciARRAY DIMENSI 1 & 2. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen.
Pertemuan 2 ARRAY DIMENSI 1 & 2 Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinisikan sebagai suatu
Lebih terperinciData structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta
Data structure :Metode LINK LIST Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta Pengelolaan Memori : Konsep Dasar Secara Statis, sebagai Contoh penggunaan tipe array menempati lokasi memory yang tetap(
Lebih terperinciPertemuan 2 ARRAY DIMENSI 1 & 2
Pertemuan 2 ARRAY DIMENSI 1 & 2 Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinisikan sebagai suatu
Lebih terperinciARRAY. Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer.
Pertemuan 2 ARRAY Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinisikan sebagai suatu himpunan
Lebih terperinciTugas Studi Kasus. Linked List SLLNC dengan Head & Tail
Tugas Studi Kasus Linked List SLLNC dengan Head & Tail Diajukan Untuk Memenuhi Salah Satu Tugas Mata Kuliah Algoritma 2 Disusun Oleh : Kelas IS-8 Andrian Ramadhan F. (10512318) M.Tryawan C.N. (10512324)
Lebih terperinciPert 1 Struktur Data (mengajarkomputer.wordpress.com)
Tugas Bentuk tugas yang harus dilakukan adalah : - Mahasiswa diharapkan mengerjakan tugas yang diberikan oleh dosen pada setiap pertemuan - Pembuatan dan presentasi project dilakukan pada pertemuan 10-12.
Lebih terperinciARRAY. Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer.
Pertemuan 2 ARRAY Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer. Array dapat didefinisikan sebagai suatu himpunan
Lebih terperinciPraktikum Algoritma dan Struktur Data
BAB 7 DOUBLE LINKED LIST (SENARAI BERKAIT GANDA) 1. Tujuan Instruksional Umum a. Mahasiswa dapat melakukan perancangan aplikasi menggunakan struktur Linked List (Senarai Berkait) b. Mahasiswa mampu melakukan
Lebih terperinciSTACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)
Pertemuan 5 STACK atau TUMPUKAN STACK (TUMPUKAN) Merupakan bentuk khusus dari Linier List yang pemasukan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir dari List (Top)
Lebih terperinciSTRUKTUR DATA single linked list non circular
STRUKTUR DATA single linked list non circular History of Linked List Dikembangkan tahun 1955-1956 1956 oleh Allen Newell, Cliff Shaw dan Herbert Simon di RAND Corporation sebagai struktur data utama untuk
Lebih terperinciQUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)
Pertemuan 6 QUEUE (ANTREAN) PENGERTIAN QUEUE (ANTREAN) Struktur Data Antrean (Queue) adalah suatu bentuk khusus dari List Linier dengan operasi pemasukan data hanya diperbolehkan pada salah satu sisi,
Lebih terperinciSINGLE LINKED LIST (NON CIRCULAR)
SINGLE LINKED LIST (NON CIRCULAR) KONSEP POINTER DAN LINKED LIST Untuk mengolah data yang banyaknya tidak bisa ditentukan sebelumnya, maka disediakan satu fasilitas yang memungkinan untuk menggunakan suatu
Lebih terperinciDOUBLE LINKED LIST. Danang Wahyu Utomo Danang Wahyu Utomo, M.Kom, M.CS
DOUBLE LINKED LIST Danang Wahyu Utomo danang.wu@dsn.dinus.ac.id +6285 740 955 623 RENCANA KEGIATAN PERKULIAHAN SEMESTER W Pokok Bahasan 1 ADT Stack 2 ADT Queue 3 List Linear 4 List Linear 5 List Linear
Lebih terperinciMODUL 6 SINGLE & DOUBLE LINKED LIST
MODUL 6 SINGLE & DOUBLE LINKED LIST 1. Tujuan Instruksional Umum a. Mahasiswa dapat melakukan perancangan aplikasi menggunakan struktur Linked List (Senarai Berkait) b. Mahasiswa mampu melakukan analisis
Lebih terperinciArray VS Linked List
Linked List Linked List adalah salah satu bentuk struktur data, berisi kumpulan data (disebut node atau simpul) biasanya dalam bentuk struct, yang tersusun secara sekuensial dan saling menyambung. Linked
Lebih terperinciStruktur Data Array. Rijal Fadilah S.Si
Struktur Data Array Rijal Fadilah S.Si Array Berdimensi Satu Array Satu dimensi tidak lain adalah kumpulan elemen-elemen identik yang tersusun dalam satu baris. Elemen-elemen tersebut memiliki tipe data
Lebih terperinciQUEUE (ANTREAN) Prinsip Antrean : FIFO (First In First Out) FCFS (First Come First Serve) Yang Tiba lebih awal Maka akan dilayani Terlebih Dahulu
QUEUE (ANTREAN) Struktur Data Antrean (Queue) adalah suatu bentuk khusus dari List Linier dengan operasi pemasukan data hanya diperbolehkan pada salah satu sisi, yang disebut sisi Belakang / ekor (Tail)
Lebih terperinciAlgoritma dan Struktur Data. Ramos Somya
Algoritma dan Struktur Data Ramos Somya Stack atau tumpukan adalah suatu stuktur data yang penting dalam pemrograman eksekusi suatu fungsi menggunakan prinsip Stact. Bersifat LIFO (Last In First Out) Benda
Lebih terperinciLAPORAN PRAKTIKUM RESMI QUEUE
LAPORAN PRAKTIKUM RESMI QUEUE Disusun oleh : Amin Setyaningrum 201301052 Dosen pengampu : Yosef Murya Kusuma Ardhana.S.T., M.Kom JURUSAN SISTEM INFORMASI SEKOLAH TINGGI ILMU KOMPUTER YOS SUDARSO PURWOKERTO
Lebih terperinciSINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR)
SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR) Dilustrasikan sebagai kereta yang mempunyai gerbong-gerbong. Pertama tama kita membuat tipe data baru dari gerbong kereta tersebut.
Lebih terperinciALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE
ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE STACK = TUMPUKAN SUATU SUSUNAN KOLEKSI DATA DIMANA DATA DAPAT DITAMBAHKAN DAN DIHAPUS SELALU DILAKUKAN PADA BAGIAN AKHIR DATA, YANG DISEBUT DENGAN TOP
Lebih terperinciPRAKTIKUM ALGORITMA DAN STRUKTUR DATA DOUBLE LINKED LIST CIRCULAR
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA DOUBLE LINKED LIST CIRCULAR TUJUAN 1. Mahasiswa memahami dan mengerti mengenai double linked list circular dalam C++ 2. Mahasiswa mampu membuat program dengan menggunakan
Lebih terperinciMasukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list
Universitas Muhammadiyah Sukabumi Artikel Struktur Data Oleh : fahmi fauzi Masukan Judul... 1. STACK DAN QUEUE DENGAN LINKED LIST Pengertian Linked list : sekumpulan elemen bertipe sama, yang mempunyai
Lebih terperinciMAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )
MAKALAH STRUKTUR DATA DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH (14.1.03.03.0024) FAKULTAS TEKNIK PROGRAM STUDI SISTEM INFORMASI UNIVERSITAS NUSANTARA PGRI KEDIRI
Lebih terperinciInteger (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.
Struktur Data Struktur Data Setiap data memiliki tipe data, apakah merupakan angka bulat, angka pecahan, atau berupa karakter, dan sebagainya. Jadi, tipe data adalah pengelompokan data berdasarkan isi
Lebih terperinciPERTEMUAN 3 KONSEP TIPE DATA
PERTEMUAN 3 KONSEP TIPE DATA KONSEP TIPE DATA C++ Pembagian tipe data : I. Tipe Sederhana (simple type) Int,Bool,Char Tipe Float II. Tipe String Operasi string III. Tipe Terstruktur (structured type) Array,
Lebih terperinciPRAKTIKUM ALGORITMA DAN STRUKTUR DATA
MODUL PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PROGRAM STUDI S1 TEKNIK INFORMATIKA ST3 TELKOM PURWOKERTO 2015 Algoritma dan Struktur Data * Untuk kalangan sendiri Tenia Wahyuningrum, S.Kom., MT ST3 Telkom
Lebih terperinciAlgoritma Dan Struktur Data II
Algoritma Dan Struktur Data II List, Stack Putuputraastawa@gmail.com putuastawa.wordpress.com Beberapa Jenis Struktur Data 1. Array 1. Linear List 2. Stack 3. Queue 1. Apa? 2. Bagaimana cara implementasinya?
Lebih terperinci//membuat sebuah tipe data baru yang terdiri dari. //field data bertipe integer //field next merupakan pointer dari list
SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR (SINGLE LINKED LIST NON CIRCULAR) DEKLARASI LINKED LIST Sebelum membuat sebuah senarai (Link List) kita harus mendeklarasikan tipe data dan pointer yang akan kita
Lebih terperinciSTRUKTUR DATA Pertemuan 1 s.d 8
STRUKTUR DATA Pertemuan 1 s.d 8 Sasaran: Meningkatkan: pemahaman pengetahuan tentang teori dasar struktur data dan penanganan data serta pembuatan algoritma dan penggunaan strukturd dalam pemrograman Materi
Lebih terperinciAlgoritma Dan Struktur Data II. Queue
Algoritma Dan Struktur Data II Queue Apakah Queue itu? Putuu Putra Astawa Apakah Queue itu? Penambahan data dilakukan pada sebuah ujung sebuah list, sedangkan penghapusan data dilakukan pada ujung yang
Lebih terperinciSTACK dan QUEUE MODUL PRAKTIKUM STRUKTUR DATA 09 UNIVERSITAS KRISTEN DUTA WACANA. Daftar Isi: Stack dan Queue. Latihan soal. Guided.
STACK dan QUEUE Daftar Isi: Stack dan Queue Latihan soal Guided Unguided Take home Kunci jawaban soal guided MODUL PRAKTIKUM STRUKTUR DATA 09 UNIVERSITAS KRISTEN DUTA WACANA PENGANTAR Definisi Stack disebut
Lebih terperinciAlgoritma Pemrograman & Struktur Data
MODUL PERKULIAHAN Algoritma Pemrograman & Struktur Data Stack Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Fakultas Ilmu Informatika Komputer 04 87042 Abstract Penjelasan mengenai stack dan penggunaannya
Lebih terperinciTipe Data dan Operator
Tipe Data dan Operator Dasar Algoritma dan Pemrogrman Eka Maulana, ST, MT, MEng. Klasifikasi Tipe Data 1 Tipe Data Tipe data adalah jenis data yang dapat diolah oleh komputer untuk memenuhi kebutuhan dalam
Lebih terperinciPRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc
PRAKTIKUM STRUKTUR DATA QUEUE SULIDAR FITRI, M.Sc QUEUE Secara harafiah, queue berarti antrian, queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering kita temui
Lebih terperinciMODUL IV STACK A. TUJUAN
MODUL IV STACK A. TUJUAN 1. Memahami terminologi yang terkait dengan struktur data stack. 2. Memahami operasi-operasi yang ada dalam stack. 3. Dapat mengidentifikasi permasalahan-permasalahan pemrograman
Lebih terperinciModul Praktikum Algoritma dan Struktur Data
MODUL IV STACK A. TUJUAN 1. Memahami terminologi yang terkait dengan struktur data stack. 2. Memahami operasi-operasi yang ada dalam stack. 3. Dapat mengidentifikasi permasalahan-permasalahan pemrograman
Lebih terperinciSOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009
SOAL C++ 1. Penulisan Preprocessor yang benar di awali dengan tanda pound atau tanda : a. # c. @ b. & d. = 2. Contoh penulisan file header yang benar yaitu : a. &include c. =include
Lebih terperinciSTRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)
STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN) Oleh : NAZARUDDIN AHMAD, S.T, M.T Referensi : Antonius Rachmat C, S.Kom Andri Heryamdi Design By mytemplate 2013 Queue Queue atau antrian adalah barisan
Lebih terperinci# NINE Queue dengan Array
HANDOUT ALGORITMA PEMROGRAMAN DAN STRUKTUR DATA 1 PRODI SISTEM INFORMASI UKDW # NINE Queue dengan Array LANJUTAN: DOUBLE STACK dengan Array - Adalah suatu teknik khusus yang dikembangkan untuk menghemat
Lebih terperinciSTRUKTUR DATA POKOK BAHASAN - 7 STACK ( TUMPUKAN )
STRUKTUR DATA POKOK BAHASAN - 7 STACK ( TUMPUKAN ) Oleh : NAZARUDDIN AHMAD, S.T, M.T Referensi : Antonius Rachmat C, S.Kom Design By mytemplate 2013 Stack Stack atau tumpukan adalah suatu struktur yang
Lebih terperinciLAPORAN PRAKTIKUM IX. Oleh:
LAPORAN PRAKTIKUM IX LINKED LIST Disusun untuk Memenuhi Matakuliah Praktikum Algoritma Struktur Data Dibimbing oleh Ibu Annisa Puspa Kirana, S. Kom, M. Kom Oleh: Dwitha Fajri Ramadhani 160533611410 Ika
Lebih terperinciSTACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan
STACK (TUMPUKAN) adalah suatu urutan elemen yang elemennya dapat diambil dan ditambah hanya pada posisi akhir (top) saja. Contoh dalam kehidupan sehari-hari adalah tumpukan piring di sebuah restoran yang
Lebih terperinciMODUL PRAKTIKUM STRUKTUR DATA. Dosen Pengampu M.Bahrul Ulum, S.Kom., M.Kom. Asisten Lab Mia Kastina PROGRAM STUDI TEKNIK INFORMATIKA
2018 MODUL PRAKTIKUM STRUKTUR DATA Dosen Pengampu M.Bahrul Ulum, S.Kom., M.Kom Asisten Lab Mia Kastina PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS ILMU KOMPUTER UNIVERSITAS ESA UNGGUL JAKARTA DAFTAR ISI
Lebih terperinciLangkah Mudah Belajar Struktur Data Menggunakan C/C++
Langkah Mudah Belajar Struktur Data Menggunakan C/C++ Sanksi Pelanggaran Pasal 113 Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta 1. Setiap Orang yang dengan tanpa hak melakukan pelanggaran hak ekonomi
Lebih terperinciSTACK (Tumpukan) Tumpukan Koin. Tumpukan Kotak
STACK (Tumpukan) Tumpukan Koin Tumpukan Kotak Defenisi : Secara sederhana, tumpukan bisa diartikan sebagai suatu kumpulan data yang seolah-olah ada data yang diletakan diatas data yang lain. Satu hal yang
Lebih terperinciTipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dala
Tipe data dasar merupakan tipe data yang disediakan oleh kompailer, sehingga dapat langsung dipakai Dalam algoritma dan pemrograman yang termasuk dalam tipe data dasar adalah bilangan logik, bilangan bulat,
Lebih terperinciS TA C K Sunu Wibirama
STACK Sunu Wibirama Jadwal ujian MID Hari Rabu, 6 April 2011 Pkl. 07.30-09.30 WIB Ruangan E3 Open Book, tapi tidak diperkenankan menggunakan internet, membuka laptop, atau handphone Bahan ujian Logika
Lebih terperinciLinked List 6.3 & 7.3 NESTED LOOP
Linked List 6.3 & 7.3 NESTED LOOP 1 Linked List ( List yang di-link satu dengan lainnya ) 2 apa itu List? 3 Contoh sebuah LIST int A[5]; 0 1 2 3 4 Array satu dimensi Disebut juga : Vector Kadang-kadang
Lebih terperinciAchmad Solichin.
Pemrograman Bahasa C dengan Turbo C Sh-001@plasa.com Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),
Lebih terperinciKARAKTER DAN STRING, ARRAY, STRUCT DAN REVIEW PADA BAHASA C
KARAKTER DAN STRING, ARRAY, STRUCT DAN REVIEW PADA BAHASA C Disusun oleh: Bachtiar Maulana (58411782) Marlinda Dwi Cahya (54411318) Muh. Mahlani (5411622) Muzaky Bakri Salim (55411060) UNIVERSITAS GUNADARMA
Lebih terperincielemen Dasar Bahasa Pemrograman C
Elemen-elemen elemen Dasar Bahasa Pemrograman C Algoritma dan Pemrograman Tahar Agastani Teknik Informatika UIN - 2008 Identifier : Elemen Dasar C Nama pengenal (identifier) adalah nama-nama yang ditentukan
Lebih terperinci1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen
Pokok Bahasan Pengantar Struktur Data Pengertian Struktur Data Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien Sedangkan data adalah representasi
Lebih terperinciPOINTER STACK DAN QUEUE. Institut Teknologi Sumatera
POINTER STACK DAN QUEUE ALGORITMA DAN STRUKTUR DATA Institut Teknologi Sumatera PRE TEST Apakah yang disebut dengan array? Bagaimana cara deklarasi dan pengacuan dari sebuah array? Apa kekurangan array?
Lebih terperinci(3) BAHAN KAJIAN (materi ajar)
FAKULTAS TEKNOLOGI KOMUNIKASI DAN INFORMATIKA UNIVERSITAS NASIONAL RENCANA PEMBELAJARAN Matakuliah : Konsep Struktur Data Semester : Genap Kode : 08010305 SKS : 2 Jurusan : Manajemen Informatika Dosen
Lebih terperinciMata Kuliah : Struktur Data Semester : Genap Kode Mata Kuliah : 307 Waktu : 180 Menit Bobot : 4 sks. Jurusan : MI
1 Memberi pengetahuan Diharapkan mahasiswa dapat Data & Struktur Data 1. Pengertian Struktur Data Buku 1 1. Ceramah 1. LCD Latihan Tentang konsep dasar membedakan jenis tipe data 2. Tipe data sederhana
Lebih terperinciType Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String
Struktur dapat diartikan sebagai suatu susunan, bentuk, pola atau bangunan. Data dapat diartikan sebagai suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau lambang-lambang
Lebih terperinciAlgoritma Dan Struktur Data II
Algoritma Dan Struktur Data II Array dan Matriks Apa itu Struktur Data? PROGRAM ALGORITMA STRUKTUR DATA Algoritma.. deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis 1. ditulis
Lebih terperinciSeluruh elemen di dalam struktur array mempunyai tipe data yang sama. Random Access
1 Array == Laci? 2 Data disimpan dalam suatu struktur, sedemikian rupa sehingga elemen-elemen di dalam struktur tersebut dapat diolah secara kelompok ataupun secara individu. Sifat - sifat Array Homogen
Lebih terperinciDIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.
Pertemuan 9 Waktu Tujuan Pembelajaran : 135 menit : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue. Substansi Materi : Queue Tabulasi Kegiatan Perkuliahan No Tahap Kegiatan Kegiatan Pengajar
Lebih terperinciLab. Teknik Informatika Struktur Data 1
2. POINTER dan SINGLE LINK LIST TUJUAN PRAKTIKUM 1. Praktikan mengetahui tipe struktur data baru yaitu tipe data Pointer. 2. Praktikan menggunakan pointer didalam pembuatan program dan dapat menerapkannya
Lebih terperinciStruktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD
Pertemuan 4 : Definisi & Operasi Disusun oleh : PH. Prima Rosa, S.Si., M.Sc. Sri Hartati Wijono, S.Si. 2003/2004 Pert. 4b Struktur Data - FMIPA USD - 2003 Hal. 1 Struktur Data PROBLEM ALGORITHM DATA IMPLEMENTATION
Lebih terperinciDIKTAT PRAKTIKUM ALGORITMA DAN STRUKTUR DATA
DIKTAT PRAKTIKUM ALGORITMA DAN STRUKTUR DATA Disusun oleh: Tenia Wahyuningrum, S.Kom., M.T. PROGRAM STUDI S1 TEKNIK INFORMATIKA LABORATORIUM PEMROGRAMAN SEKOLAH TINGGI TEKNOLOGI TELEMATIKA TELKOM JL.DI.PANJAITAN
Lebih terperinciAlgoritma dan Struktur Data STACK
Algoritma dan Struktur Data STACK Teknik Informatika Universitas Muhammadiyah Malang 2016 Tujuan Instruksional Mahasiswa mampu : Memahami tentang konsep stack Mengetahui mekanisme pengoperasian sebuah
Lebih terperinciSenarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri
Senarai berantai linked list Pertemuan keenam Struktur data st3telkom.ac.id by : tenia wahyuningrum & Sisilia Thya Safitri Senarai berantai Dalam pemakaian sehari-hari istilah senarai berantai (list) adalah
Lebih terperinciTabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.
Tabel Informasi Tabel informasi atau tabel simbol berguna untuk mempermudah pada saat pembuatan dan implementasi dari analisa semantik (semantic analyzer). Pada proses translasi, tabel informasi dapat
Lebih terperinciPENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA
PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA Tim Pengajar KU1102 - Institut Teknologi Sumatera Data Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu
Lebih terperinciArray. Array mempunyai dimensi : 1. Array Dimensi Satu (Vektor) 2. Array Dimensi Banyak. - Dimensi Dua (Matriks/Tabel) - Dimensi Tiga (Kubik).
Array Array merupakan bagian dasar pembentukan suatu struktur data yang lebih kompleks. Hampir setiap jenis struktur data kompleks dapat disajikan secara logik oleh array. Array : Suatu himpunan hingga
Lebih terperinciPEMROGRAMAN BERORIENTASI OBJEK. Operator. Budhi Irawan, S.Si, M.T
PEMROGRAMAN BERORIENTASI OBJEK Operator Budhi Irawan, S.Si, M.T OPERATOR Operator adalah tanda yang digunakan untuk melakukan operasi operasi tertentu didalam program. Dengan adanya operator maka dapat
Lebih terperinciSeharusnya. if (antrian.tail==max-1) return 0;
Nama : Dimas Angger Prabowo NPM : 143112706450026 Kesalahan program int isempty() { int isempty() { 0; if (antrian.tail==-1) return 1; if (antrian.tail==-1) return Seharusnya int isfull() { if (antrian.tail==max-1)
Lebih terperinciStruktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu :
1 Struktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu : Contoh Program : { int x; float y; char z; double w; clrscr(); /* untuk membersihkan layar */ x = 10; /* variable
Lebih terperinciBrigida Arie Minartiningtyas, M.Kom
Brigida Arie Minartiningtyas, M.Kom Struktur Data Struktur dan Data Struktur suatu susunan, bentuk, pola atau bangunan Data suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode
Lebih terperinciAntrian (Queue) Susunan koleksi data dimana proses penambahan data (add) dilakukan dari belakang dan penghapusan data (delete) dilakukan dari depan.
Antrian (Queue) Susunan koleksi data dimana proses penambahan data (add) dilakukan dari belakang dan penghapusan data (delete) dilakukan dari depan. Antrian bersifat FIFO (First In First Out) FIFO Data
Lebih terperinciALGORITMA DAN STRUKTUR DATA
Modul ke: 03 Fitrianingsih, Fakultas FASILKOM ALGORITMA DAN STRUKTUR DATA OLEH : Skom., MMSI Program Studi Sistem Informasi Bagian Isi POINTER POINTER DAN ADDRESS POINTER DAN FUNCTION LINKED LIST ALGORITMA
Lebih terperinciPERTEMUAN KE 11. Linked List. Apa Itu Linked List?
PERTEMUAN KE 11 Linked List Apa Itu Linked List? Linked list tidak lain adalah suatu struktur data yg merupakan suatu rangkaian atau daftar record berjenis sama. Kemudian dihubungkan melalui bantuan pointer.
Lebih terperinciStruktur dan Organisasi Data 2 STRUKTUR DATA
STRUKTUR DATA PENDAHULUAN Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Algorithma : barisan langkah-langkah
Lebih terperinciPertemuan 04. Pemrograman Dasar 2012
Pertemuan 04 Pemrograman Dasar 2012 1 Pada akhir pertemuan ini, diharapkan mahasiswa akan mampu : Memahami tentang proses sederhana (simple process) berupa pemanggilan procedure (fungsi) dan ekspresi serta
Lebih terperinciSilabus Struktur Data. Bandung 2013
Silabus Struktur Data Bandung 2013 Silabus u Menjelaskan Varian dan Invarian u Membuat Alur Logika pemrograman u Menerapkan Pengelolaan Array u Memelihara Pekerjaan secara prakds u Menerapkan konsep data
Lebih terperinciBAB III Pengenalan Tipe Data dan Bahasa Pemrograman C/C++
BAB III Pengenalan Tipe Data dan Bahasa Pemrograman C/C++ Pendahuluan Pada bab ini dileaskan tipe data dan operasi baca tulis data, juga dijelaskan struktur pemrograman pada bahasa C/C++ Penyajian 31 Tipe
Lebih terperinciSTACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)
STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta) A. Stack 1. Pendahuluan Stack (tumpukan) dan queue (antrian) sebenarnya adalah sebuah cara dalam mengorganisasikan data-data yang dimiliki. Ibarat
Lebih terperinciPERTEMUAN II Tipe Data, Variabel, Konstanta, Operator
PERTEMUAN II Tipe Data, Variabel, Konstanta, Operator 1. Tipe Data Dasar 2. Pengertian Variabel 3. Pengertian Konstanta 4. Operator Penugasan 5. Operator Operasi Bit 6. Operator Logika Pertemuan II ELEMEN
Lebih terperinciPENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA
PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA Tim Pengajar KU1102 - Institut Teknologi Sumatera Data Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu
Lebih terperinciARNA FARIZA YULIANA SETIOWATI
03. Queue ARNA FARIZA YULIANA SETIOWATI POLITEKNIK ELEKTRONIKA NEGERI SURABAYA Capaian Pembelajaran 1. Mahasiswa mengerti konsep stack dan operasi pada queue. 2. Mahasiswa dapat menggunakan queue untuk
Lebih terperinciOperator untuk operasi aritmatika yang tergolong sebagai operator binary adalah: Perkalian Pembagian Sisa Pembagian (mod) Penjumlahan 6 2
[Kristanto:2009] Operator merupakan simbol atau kata yang dapat digunakan dalam program untuk melakukan suatu operasi atau manipulasi, seperti menjumlahkan dua buah nilai, memberikan nilai kesuatu variabel,
Lebih terperinciBAB 1 TIPE DATA. Selain itu terdapat operasi MOD (Modulo) adalah sisa dari pembagian Contoh : 27 MOD 4 = 3
BAB 1 TIPE DATA Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Data secara umum dapat dikategorikan :
Lebih terperinci