Pertemuan 1 DATA & STRUKTUR DATA

Ukuran: px
Mulai penontonan dengan halaman:

Download "Pertemuan 1 DATA & STRUKTUR DATA"

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

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 terperinci

KONSEP POINTER DAN LINKED LIST

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 terperinci

KONSEP POINTER DAN LINKED LIST

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 terperinci

Pertemuan 7. REVIEW dan QUIS

Pertemuan 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 terperinci

KONSEP POINTER DAN LINKED LIST

KONSEP 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 terperinci

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur 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 terperinci

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur 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 terperinci

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya.

Struktur 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 terperinci

Pertemuan 2 ARRAY DIMENSI 1 & 2

Pertemuan 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 terperinci

Struktur Data II. Single Linked List - Non circular

Struktur 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 terperinci

STRUKTUR DATA (2) Single Linked List

STRUKTUR 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 terperinci

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

Pertemuan 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 terperinci

KONSEP POINTER DAN LINKED LIST

KONSEP 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 terperinci

Pertemuan 4. Single Linked List non Circular Menggunakan Head dan Tail

Pertemuan 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 terperinci

Pert 2 Struktur Data (mengajarkomputer.wordpress.com) ARRAY DIMENSI 1 & 2

Pert 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 terperinci

ARRAY DIMENSI 1 & 2. Array dapat didefinisikan sebagai suatu himpunan hingga elemen yang terurut dan homogen.

ARRAY 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 terperinci

Data 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 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 terperinci

Pertemuan 2 ARRAY DIMENSI 1 & 2

Pertemuan 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 terperinci

ARRAY. Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer.

ARRAY. 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 terperinci

Tugas Studi Kasus. Linked List SLLNC dengan Head & Tail

Tugas 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 terperinci

Pert 1 Struktur Data (mengajarkomputer.wordpress.com)

Pert 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 terperinci

ARRAY. Array atau Larik merupakan Struktur Data Sederhana yang dapat didefinisikan sebagai pemesanan alokasi memory sementara pada komputer.

ARRAY. 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 terperinci

Praktikum Algoritma dan Struktur Data

Praktikum 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 terperinci

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

STACK 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 terperinci

STRUKTUR DATA single linked list non circular

STRUKTUR 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 terperinci

QUEUE (ANTREAN) Pertemuan 6 PENGERTIAN QUEUE (ANTREAN)

QUEUE (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 terperinci

SINGLE LINKED LIST (NON CIRCULAR)

SINGLE 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 terperinci

DOUBLE LINKED LIST. Danang Wahyu Utomo Danang Wahyu Utomo, M.Kom, M.CS

DOUBLE 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 terperinci

MODUL 6 SINGLE & DOUBLE LINKED LIST

MODUL 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 terperinci

Array VS Linked List

Array 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 terperinci

Struktur Data Array. Rijal Fadilah S.Si

Struktur 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 terperinci

QUEUE (ANTREAN) Prinsip Antrean : FIFO (First In First Out) FCFS (First Come First Serve) Yang Tiba lebih awal Maka akan dilayani Terlebih Dahulu

QUEUE (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 terperinci

Algoritma dan Struktur Data. Ramos Somya

Algoritma 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 terperinci

LAPORAN PRAKTIKUM RESMI QUEUE

LAPORAN 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 terperinci

SINGLE LINKED LIST NON CIRCULAR (SENARAI BERANTAI TUNGGAL TIDAK BERPUTAR)

SINGLE 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 terperinci

ALGORITMA DAN STRUKTUR DATA ARRAY STACK DAN QUEUE

ALGORITMA 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 terperinci

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA DOUBLE LINKED LIST CIRCULAR

PRAKTIKUM 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 terperinci

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

Masukan 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 terperinci

MAKALAH 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 ( ) 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 terperinci

Integer (Bilangan Bulat) Yang dimaksud bilangan bulat adalah, -1, -2, -3, 0, 1, 2, 3, 4 dan lain lain yang bukan merupakan bilangan pecahan.

Integer (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 terperinci

PERTEMUAN 3 KONSEP TIPE DATA

PERTEMUAN 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 terperinci

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA

PRAKTIKUM 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 terperinci

Algoritma Dan Struktur Data II

Algoritma 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

//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 terperinci

STRUKTUR DATA Pertemuan 1 s.d 8

STRUKTUR 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 terperinci

Algoritma Dan Struktur Data II. Queue

Algoritma 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 terperinci

STACK dan QUEUE MODUL PRAKTIKUM STRUKTUR DATA 09 UNIVERSITAS KRISTEN DUTA WACANA. Daftar Isi: Stack dan Queue. Latihan soal. Guided.

STACK 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 terperinci

Algoritma Pemrograman & Struktur Data

Algoritma 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 terperinci

Tipe Data dan Operator

Tipe 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 terperinci

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

PRAKTIKUM 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 terperinci

MODUL IV STACK A. TUJUAN

MODUL 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 terperinci

Modul Praktikum Algoritma dan Struktur Data

Modul 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 terperinci

SOAL C++ Created by Yuli Astuti,S.Kom Copyright 2009

SOAL 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 terperinci

STRUKTUR DATA POKOK BAHASAN - 8 QUEUE ( ANTRIAN)

STRUKTUR 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

# 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 terperinci

STRUKTUR DATA POKOK BAHASAN - 7 STACK ( TUMPUKAN )

STRUKTUR 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 terperinci

LAPORAN PRAKTIKUM IX. Oleh:

LAPORAN 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 terperinci

STACK (TUMPUKAN) Tumpukan uang koin Tumpukan kotak Tumpukan Buku. Gambar 1. Macam-macam tumpukan

STACK (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 terperinci

MODUL PRAKTIKUM STRUKTUR DATA. Dosen Pengampu M.Bahrul Ulum, S.Kom., M.Kom. Asisten Lab Mia Kastina PROGRAM STUDI TEKNIK INFORMATIKA

MODUL 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 terperinci

Langkah Mudah Belajar Struktur Data Menggunakan C/C++

Langkah 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 terperinci

STACK (Tumpukan) Tumpukan Koin. Tumpukan Kotak

STACK (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 terperinci

Tipe 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 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 terperinci

S TA C K Sunu Wibirama

S 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 terperinci

Linked List 6.3 & 7.3 NESTED LOOP

Linked 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 terperinci

Achmad Solichin.

Achmad 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 terperinci

KARAKTER DAN STRING, ARRAY, STRUCT DAN REVIEW PADA BAHASA C

KARAKTER 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 terperinci

elemen Dasar Bahasa Pemrograman C

elemen 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 terperinci

1. Tipe Data Sederhana Hanya dimungkinkan untuk menyimpan sebuah nilai data dalam sebuah variabel Ada 5 macam : int, float, double, char, boolen

1. 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 terperinci

POINTER STACK DAN QUEUE. Institut Teknologi Sumatera

POINTER 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)

(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 terperinci

Mata Kuliah : Struktur Data Semester : Genap Kode Mata Kuliah : 307 Waktu : 180 Menit Bobot : 4 sks. Jurusan : MI

Mata 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 terperinci

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String

Type 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 terperinci

Algoritma Dan Struktur Data II

Algoritma 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 terperinci

Seluruh elemen di dalam struktur array mempunyai tipe data yang sama. Random Access

Seluruh 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 terperinci

DIKTAT KULIAH ALGORITMA dan STRUKTUR DATA II. : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Queue.

DIKTAT 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 terperinci

Lab. Teknik Informatika Struktur Data 1

Lab. 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 terperinci

Struktur Data. Tumpukan : Definisi & Operasi. Pertemuan 4 PROBLEM ALGORITHM DATA IMPLEMENTATION. Pert. 4b Struktur Data - FMIPA USD

Struktur 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 terperinci

DIKTAT PRAKTIKUM ALGORITMA DAN STRUKTUR DATA

DIKTAT 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 terperinci

Algoritma dan Struktur Data STACK

Algoritma 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 terperinci

Senarai 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 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 terperinci

Tabel Informasi. Hal di atas dapat dilakukan dengan menambah dan mengambil atribut identifier yang digunakan pada program, melalui tabel informasi.

Tabel 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 terperinci

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR 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 terperinci

Array. Array mempunyai dimensi : 1. Array Dimensi Satu (Vektor) 2. Array Dimensi Banyak. - Dimensi Dua (Matriks/Tabel) - Dimensi Tiga (Kubik).

Array. 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 terperinci

PEMROGRAMAN BERORIENTASI OBJEK. Operator. Budhi Irawan, S.Si, M.T

PEMROGRAMAN 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 terperinci

Seharusnya. if (antrian.tail==max-1) return 0;

Seharusnya. 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 terperinci

Struktur Dasar Bahasa C Tipe Data Dalam bahasa C terdapat lima tipe data dasar, yaitu :

Struktur 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 terperinci

Brigida Arie Minartiningtyas, M.Kom

Brigida 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 terperinci

Antrian (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 (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 terperinci

ALGORITMA DAN STRUKTUR DATA

ALGORITMA 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 terperinci

PERTEMUAN KE 11. Linked List. Apa Itu Linked List?

PERTEMUAN 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 terperinci

Struktur dan Organisasi Data 2 STRUKTUR DATA

Struktur 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 terperinci

Pertemuan 04. Pemrograman Dasar 2012

Pertemuan 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 terperinci

Silabus Struktur Data. Bandung 2013

Silabus 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 terperinci

BAB III Pengenalan Tipe Data dan Bahasa Pemrograman C/C++

BAB 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 terperinci

STACK DAN QUEUE (Muhammad Fachrie, STMIK Amikom Yogyakarta)

STACK 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 terperinci

PERTEMUAN II Tipe Data, Variabel, Konstanta, Operator

PERTEMUAN 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 terperinci

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR 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 terperinci

ARNA FARIZA YULIANA SETIOWATI

ARNA 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 terperinci

Operator untuk operasi aritmatika yang tergolong sebagai operator binary adalah: Perkalian Pembagian Sisa Pembagian (mod) Penjumlahan 6 2

Operator 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 terperinci

BAB 1 TIPE DATA. Selain itu terdapat operasi MOD (Modulo) adalah sisa dari pembagian Contoh : 27 MOD 4 = 3

BAB 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