MODUL PRAKTIKUM STRUKTUR DATA

Ukuran: px
Mulai penontonan dengan halaman:

Download "MODUL PRAKTIKUM STRUKTUR DATA"

Transkripsi

1 MODUL PRAKTIKUM STRUKTUR DATA LABORATORIUM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA 2011

2 Universitas Sriwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN MODUL PRAKTIKUM SISTEM MANAJEMEN MUTU ISO 9001:2008 No. Dokumen. Tanggal 4 JUNI 2011 Revisi 0 Halaman 2 DARI 49 MODUL PRAKTIKUM Mata Kuliah Praktikum : Struktur data Kode Mata Kuliah Praktikum : FIK28211 SKS : 1 Program Studi : Sistem Informasi Semester : 3 (Ganjil) DIBUAT OLEH DISAHKAN OLEH DIKETAHUI OLEH TIM LABORAN LABORATORIUM FASILKOM UNSRI TIM DOSEN SISTEM INFORMASI FASILKOM UNSRI KEPALA LABORATORIUM 2/49

3 Daftar Isi Halaman Depan... 1 Halaman Pengesahan... 2 Daftar Isi... 3 Lembar Kerja Praktikum 1 : Pengenalan Algoritma dan Pemrograman... 4 Lembar Kerja Praktikum 2 : Record dan Array Lembar Kerja Praktikum 3 : Stack Lembar Kerja Praktikum 4 : Stack Lanjutan Lembar Kerja Praktikum 6 : Queue Lembar Kerja Praktikum 7 : Queue Lanjutan Lembar Kerja Praktikum 8 : List (Bagian 1) Lembar Kerja Praktikum 9: List (Bagian 2) Lembar Kerja Praktikum 11 : Multi List Lembar Kerja Praktikum 12 : Binary Search Tree Referensi /49

4 Lembar Kerja Praktikum 1 : Pengenalan I. Tujuan Setelah mengerjakan LKP 1 ini, anda diharapkan dapat: 1. mengenal lingkungan salah satu compiler bahasa pemrograman C yaitu Turbo C menggunakan compiler tersebut untuk menyelesaikan kasus sederhana. II. Dasar Teori Pengenalan Lingkungan Turbo C Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C : Menu Utama 2 : Toolbar 3 : Jendela pengetikan kode program 4 : Jendela Message/Pesan kesalahan kode Create new, Open, Save, Save As File Untuk memulai membuat kode program di Turbo C langkah-langkahnya adalah sebagai berikut : 4/49

5 1. Buka Turbo C dari menu program sehingga akan keluar jendela Turbo C++ berikut : 2. Kemudian pilih menu File > New maka akan tampil jendela baru (di dalam jendela utama Turbo C++) untuk menuliskan kode program. 3. Setelah menuliskan kode program maka simpan dengan memilih menu File > Save as (untuk menyimpan dengan nama baru) atau File > Save (Tidak menyimpan dengan nama baru bila sudah pernah disimpan). Tentukan dirve dan direktori tempat penyimpanan. 5/49

6 Untuk membuka file atau kode program yang sudah pernah dibuat maka langkah-langkahnya adalah seperti berikut : 1. Pilih menu File > Open maka akan tampil jendela seperti berikut : 2. Tentukan drive dan direktori lokasi tempat menyimpan file program kemudian klik OK. Compile Program, Pendeteksian Error dan Warning, Run Program Setelah menuliskan kode program, maka berikutnya adalah compile program dengan tujuan untuk mendeteksi kesalahan-kesalahan dalam penulisan kode program.adapun langkahlangkahnya adalah sebagai berikut : 1. Pilih menu Project > Compile, atau kombinasi tombol ALT+F9, akan tampil jendela status compile seperti berikut : Dari status di atas maka tidak ditemukan error atau warning pada program. 6/49

7 Dari status di atas dapat dilihat bahwa terdapat error pada program. Untuk melihat pesan error tersebut klik OK maka akan tampil jendela pesan error seperti berikut : Jendela di bawah ini menunjukkan terdapat warning pada program. Untuk melihat pesan warning tersebut, klik tombol OK. 2. Setelah kode program di-compile maka langkah berikutnya adalah menjalankannya, yaitu dengan memilih menu Debug > Run atau kombinasi tombol CTRL+F9. Pengenalan C++ Setiap program C++ mempunyai bentuk seperti berikut ini yaitu: # prepocessor directive void main() { // Batang Tubuh Program Utama } Prepocessor Directive Adalah salah satu pengarah prepocessor directive yang tersedia pada C++. Preprocessor selalu dijalankan terlebih dahulu pada saat proses kompilasi terjadi. Bentuk umumnya : 7/49

8 # include <nama_file> tidak diakhiri dengan tanda semicolon, karena bentuk tersebut bukanlah suatu bentuk pernyataan, tetapi merupakan prepocessor directive. Baris tersebut menginstrusikan kepada kompiler yang menyisipkan file lain dalam hal ini file yang berakhiran.h(file header) yaitu file yang berisi sebagai deklarasi contohnya: Preprocessor Directive Fungsi #include <iostream.h> Diperlukan pada program yang melibatkan objek cout #include<conio.h> Diperlukan bila melibatkan clscr(),yang perintah unrtuk membersihkan layar #include<iomanip.h> Diperlukan bila melibatkan setw() yang bermanfaat untuk mengatur lebar dari suatu tampilan data #include<math.h> Diperlukan pada program yang menngunakan operasi sqrt() yang bermanfaat untuk operasi matematika kuadrat Fungsi Main () Fungsi ini menjadi awal dan akhir eksekusi program C++. main adalah nama judul fungsi. Melihat bentuk seperti itu dapat kita ambil kesimpulan bahwa batang tubuh program utama berada didalam fungsi main( ). Kata void yang mendahului main() dipakai untuk menyatakan bahwa fungsi ini tidak memiliki nilai balik Fungsi yang akan dieksekusi pertama kali oleh c++ Menyatakan bahwa fungsi main tidak memiliki nilai balik Menyatakan bahwa fungsi tidak memiliki argumen Voidmain() { cout<< Hallo dunia <<endl; Batas atas program Pernyataan } Tubuh Fungsi main () Batas akhir program Komentar Komentar merupakan bagian yang penting dalam program.kehadirannya sangat membantu pemrogram taupun orang lain dalm memahami program,karena berupa penjelasan mengenai 8/49

9 program atau bagian-bagian dari program.komentar tidak pernah dicompile oleh compiler. Dalam C++ terdapat 2 jenis komentar, yaitu : Jenis 1 : /* Komentar anda diletakkan di dalam ini Bisa mengapit lebih dari satu baris */ Jenis 2 : // Komentar anda diletakkan disini ( hanya bisa perbaris ) Tanda Semikolon Tanda semicolon ; digunakan untuk mengakhiri sebuah pernyataan. Setiap pernyataan harus diakhiri dengan sebuah tanda semicolon. Cout (dibaca : C out) Pernyataan cout merupakan sebuah objek di dalam C++, yang digunakan untuk mengarahkan data ke dalam standar output (cetak pada layar). III. Prepraktikum 1. Instal program Turbo C++ pada computer atau laptop IV. Kegiatan Praktikum 1. Bukalah software Turbo C++ 2. Program mengeluarkan tulisan Selamat Datang di Fakultas Ilmu Komputer Algoritma Deklarasi : - Algoritma : write( Selamat Datang di Fakultas Ilmu Komputer ) Ketikkan kode program berikut berdasarkan algoritma yang diberikan diatas 1: #include <stdio.h> //header 2: 3: void main()//fungsi utama 4: { 5: printf( Selamat Datang di Fakultas Ilmu Komputer );//statement 6: } 3. Compile program dengan menekan Alt + F9 atau pilih menu Project Compile 4. Jalankan program dengan menekan Ctrl + F9 atau pilih menu Debug Run 5. Simpan file dengan nama Praktikum1.cpp 9/49

10 6. Buka file baru dengan menekan File New 7. Ketikkan kode program berdasarkan algoritma yang diberikan Algoritma Deklarasi : - Algoritma : write( Selamat Datang di Fakultas Ilmu Komputer ) write( Nama Anda ) write( Nim Anda ) write( Jurusan Anda ) 8. Simpan file dengan nama Praktikum2.cpp 9. Jalankan program praktikum2.cpp V. Hasil LKP (ditulis tangan di kertas A4) No Deskripsi Jawaban 10/49

11 VI. Kesimpulan Lembar Kerja Praktikum 2 : Record dan Array I. Tujuan Setelah mengerjakan LKP 1 ini, anda diharapkan dapat: 1. Memahami konsep pointer dan array di dalam Bahasa C 2. Memahami konsep copy value dan copy address 3. Menggunakan pointer dan array di dalam program lainnya II. Dasar Teori Record Record adalah suatu tipe data terstruktur yang berisi sejumlah data yang dapat berlainan jenisnya (tipedatanya tidak sama). Jadi record hampis sama dengan array, bedanya kalau record tipe data yang dimiliki setiap data bentukan dapat bebeda-beda. Sedangkan array tipe datanya harus sama. Bentuk struktur data yang dapat menyimpan variabel-variabel dalam 1 nama, namun memiliki tipe data yang berbeda ataupun sama. Variable-variabel tersebut memiliki kaitan satu sama yang lain. Bentuk umum : typedef struct nama_struct{ tipe_data <nama_var>; tipe_data <nama_var>;... }; DEKLARASI Ada 2 cara pendeklarasian struct, yaitu : 11/49

12 Deklarasi 1: typedef struct Mahasiswa { char NIM[8]; char nama[50]; float ipk; }; Deklarasi 2 : struct { char NIM[8]; char nama[50]; float ipk; } mhs; Contoh struct: #include <stdio.h> #include <iostream.h> void main() { struct orang { char nama[40]; short umur; }saya; printf("nama : "); cin.getline(saya.nama,40); printf("umur :" ); scanf("%i",&saya.umur); printf("%s berumur %i",saya.nama,saya.umur); } ARRAY OF STRUCT Apabila hendak menggunakan 1 struct untuk beberapa kali, ada 2 cara : 1. Deklarasi manual Contoh : #include <stdio.h> typedef struct Mahasiswa { char NIM[8]; char nama[50]; float ipk; }; void main() { Mahasiswa a,b,c; } artinya struct mahasiswa digunakan untuk 3 variabel, yaitu a,b,c 2. Array of struct Contoh : #include <stdio.h> 12/49

13 typedef struct Mahasiswa { char NIM[8]; char nama[50]; float ipk; }; void main() { Mahasiswa mhs[3]; } artinya struct mahasiswa dapat digunakan untuk tiga variabel mhs, yaitu mhs[0], mhs[1], dan mhs[2]. Contoh lainnya : #include <stdio.h> #include <iostream.h> #include <conio.h> typedef struct orang { char nama[30]; short umur; }; void main() { orang saya[5]; int i,x; for(i=0;i<=4;i++) { printf("nama ke-%i : ",i+1); cin.getline(saya[i].nama,30); printf("umur ke-%i : ",i+1); scanf("%i",saya[i].umur); printf("%s berumur %i",saya[i].nama,saya[i].umur); } for(x=0;x<=4;x++) { printf("nama %s berumur %d",saya[x].nama,saya[x].umur); } } Array Satu Dimensi Bentuk umum : tipe_array nama_array [jumlah data] Ilustrasi array satu dimensi Array di atas mempunyai enam element. Contoh Program : 13/49

14 1: #include <stdio.h> 2: 3: void main() 4: { 5: int a[5] = {10,25,30,45,50}; 6: int i; 7: 8: for(i=0;i<5;i++) 9: { 10: printf( %d = %d\n,i,a[i]); 11: } 12: } Array Multidimensi Array multidimensi adalah array yang mempunyai lebih dari satu dimensi. Misal : A[3][5] artinya array tersebut mempunyai 3 baris 5 kolom. Bentuk umum : tipe_array nama_array [jumlah data][jumlah data] Ilustrasi array satu dimensi Array di atas mempunyai delapan belas element. Contoh Program : 1: #include <stdio.h> 2: 3: void main() 4: { 5: int a[3][3] = {{10,20,30},{40,50,60},{70,80,90}}; 6: int i,j; 7: 8: for(i=0;i<3;i++) 9: { 10: for(j=0;j<3;j++) 11: { 12: printf( %d,a[i][j]); 13: } 14: printf( \n ); 15: } 16: } Array Dinamis Array dinamis merupakan array yang dibuat dengan menggunakan pointer dinamis Contoh Program : 14/49

15 1: /* Pointer3.c */ 2: 3: #include <stdio.h> 4: #include <malloc.h> 5: intmain() 6: { 7: 8: int i,j; 9: int **x; 10: 11: x=(int **) malloc(3*sizeof (int *)); 12: 13: for (i=0;i<3;i++) 14: { 15: x[i]=(int *) malloc(3*sizeof (int )); 16: for (j=0;j<3;j++) 17: { 18: x[i][j]=i+j; 19: printf("%d ",x[i][j]); 20: } 21: printf("\n"); 22: } 23: 24: return 0; 25: } III. Prepraktikum 2. Pada kasus apa saja sebuah array dapat dibuat menjadi array dinamis?jelaskan? IV. Kegiatan Praktikum Buatlah struct untuk buku dengan deklarasi manual. Ketentuan : Yang harus disimpan adalah judul buku, tahun terbit dan harga buku. Source code : 15/49

16 #include <stdio.h> #include <conio.h> typedef struct buku{ char judul[15]; int tahun_terbit; int harga; }; void main(){ buku book; printf("judul buku : ");scanf("%s",&book.judul); printf("tahun terbit : ");scanf("%i",&book.tahun_terbit); printf("harga : ");scanf("%i",&book.harga); } printf("\njudul buku : %s\n",book.judul); printf("tahun terbit : %i\n",book.tahun_terbit); printf("harga : %i",book.harga); V. Hasil LKP (ditulis tangan di kertas A4) No 1 2 Deskripsi Jawaban VI. Evaluasi dan Pertanyaan 1. Untuk kasus array, bagaimana jika nilai n diubah menjadi n=3? 2. Buatlah struct untuk data lagu yang berisi tentang judul lagu, penyanyi, tahun produksi, nomor track dan kode album. Ketentuan : program ini akan memiliki dua buah struct, yaitu struct lagu dan struct koderbt. VII. Kesimpulan 16/49

17 Lembar Kerja Praktikum 3 : Stack I. Tujuan Setelah mengerjakan LKP 5 ini, anda diharapkan dapat: 1. Memahami konsep stack dan mengimplemetasikannya ke bahasa C. 2. Mampu melakukan operasi pop dan push pada stack. II. Dasar Teori Stack (Tumpukan) adalah list linier yang : 1. Dikenali elemen puncaknya (TOP) 2. Aturan penyisipan dan penghapusan elemennya tertentu : - Penyisipan selalu dilakukan "di atas" TOP - Penghapusan selalu dilakukan pada TOP Karena aturan penyisipan dan penghapusan semacam itu, TOP adalah satu-satunyaalamat tempat terjadi operasi, elemen yang ditambahkan paling akhir akan menjadielemen yang akan dihapus. Dikatakan bahwa elemen Stack akan tersusun secaralifo (Last In First Out). Struktur data ini banyak dipakai dalam informatika, misalnya untuk merepresentasi : - pemanggilan prosedur - perhitungan ekspresi artimatika - rekursifitas - backtracking - dan algoritma lanjut yang lain Definisi Fungsional Diberikan S adalah Stack dengan elemen ElmtS, maka definisi fungsional stack adalah : 17/49

18 Definisi Selektor adalah Jika S adalah sebuah Stack, maka Top(S) adalah alamat elemen TOP, di mana operasi penyisipan/penghapusan dilakukan InfoTop(S) adalah informasi yang disimpan pada Top(S). Definisi Stack kosong adalah Stack dengan Top(S)=Nil (tidak terdefinisi). Implementasi Stack dengan tabel : Tabel dengan hanya representasi TOP adalah indeks elemen Top dari Stack. Jika Stack kosong, maka TOP=0. Ilustrasi Stack tidak kosong, dengan 5 elemen : III. Preparktikum 1. Jelaskan struktur data stack! 2. Buatlah ilustrasi untuk masing-masing operasi pada stack! Prototipe dan Primitif /Algoritma 1. Stack Statis /* file : stackt.h */ 18/49

19 /* deklarasi type dan prototype */ #ifndef stackt_h #define stackt_h #include "boolean.h" #define MaxEl 10 #define Nil 0 typedef int infotype; typedef int address; typedef struct { infotype T[MaxEl+1]; address Top; } Stackt; //Prototype //Kreator void CreateEmpty(Stackt *S); //Mengirim true jika stack kosong boolean IsEmpty(Stackt *S); //mengirim true jika penampung sudah penuh boolean IsFull(Stackt *S); //menambahkan elemen ke stack void Push(Stackt *S, infotype X); //menghapus sebuah elemen stack void Pop(Stackt *S); #endif IV. Kegiatan Praktikum 1. Buat file boolean.h 2. Ketik prototipe/primitif di atas dan simpan dengan namastackt.h dan stack.h. 3. Buat file.c yang berisi implementasi dari file.h. 4. Buat file main driver-nya. V. Hasil LKP (ditulis tangan di kertas A4) No Deskripsi Jawaban 19/49

20 VI. Evaluasi dan Pertanyaan 1. Tulis algoritma Push dan Pop pada stack statis? 2. Tentukan apakah sebuah kalimat yang diinputkan dalam program (dengan menggunakan stack) adalah sebuah polindrom atau bukan. Polindrom adalah kalimat yang jika dibaca dari depan dan dari belakang, maka bunyinya sama. Contoh : Kalimat : sugus Kalimat tersebut adalah polindrom VII. Kesimpulan 20/49

21 Lembar Kerja Praktikum 4 : Stack Lanjutan I. Tujuan Setelah mengerjakan LKP 5 ini, anda diharapkan dapat: 1. Memahami konsep stack dan mengimplemetasikannya ke bahasa C. 2. Mampu melakukan operasi pop dan push pada stack dinamis. II. Dasar Teori III. Preparktikum 1. Jelaskan struktur data stack! 2. Buatlah ilustrasi untuk masing-masing operasi pada stack! Prototipe dan Primitif /Algoritma 2. Stack Dinamis /* File: stack.h */ #ifndef stack_h #define stack_h #define true 1 #define false 0 #define boolean unsigned char int infotype, address; typedef struct{ int top; int *T; int size; } stack; /* ***** Konstruktor/Kreator ***** */ /* Membuat sebuah stack s yang kosong berkapasitas size */ void CreateEmpty(stack *s, int size); /* Destruktor : Dealokasi seluruh table memori sekaligus */ void destruct(stack *s); /* Mengirim true jika tabel penampung nilai elemen stack penuh */ boolean IsFull(stack s); /* Mengirim true jika stack kosong */ 21/49

22 boolean IsEmpty(stack s); /* Menambahkan x sebagai elemen stack s */ void push(stack *s, int x); /* Menghapus x dari stack s */ void pop(stack *s, int *x); /* Menambahkan x sebagai elemen stack s, jika s mencapai nilai maksimum */ /* maka s akan melakukan grow, yaitu menambah kapasitas maksimum */ void pushgrow(stack *s, int x); /* Menambah kapasitas penampung stack s */ void grow(stack *s); /* Menghapus x dari stack s. Jika s mencapai nilai minimum */ /* maka s akan melakukan shrink, yaitu mengurangi kapasitas maksimum */ void popshrink(stack *s, int *x); /* Mengurangi kapasitas maksimum penampung stack s */ void shrink(stack *s); #endif IV. Kegiatan Praktikum 1. Buat file boolean.h 2. Ketik prototipe/primitif di atas dan simpan dengan namastackt.h dan stack.h. 3. Buat file.c yang berisi implementasi dari file.h. 4. Buat file main driver-nya. V. Hasil LKP (ditulis tangan di kertas A4) No Deskripsi Jawaban VIII. Evaluasi dan Pertanyaan 1. Tulis algoritma Push dan Pop pada stack dinamis? 2. Apa perbedaan stack statis dan stack dinamis? Gabungkan dua jenis stack tersebut! 22/49

23 IX. Kesimpulan Lembar Kerja Praktikum 6 : Queue I. Tujuan Setelah mengerjakan LKP 6 ini, anda diharapkan dapat: 1. Memahami konsep Queue dan mengimplementasikannya ke bahasa C. 2. Mampu melakukan operasi add dan delete pada queue. II. Dasar Teori Queue adalah list linier yang : a. Dikenali elemen pertama (HEAD) dan elemen terakhirnya (TAIL), b. Aturan penyisipan dan penghapusan elemennya didefinisikan sebagai berikut: - Penyisipan selalu dilakukan setelah elemen terakhir - Penghapusan selalu dilakukan pada elemen pertama c. Satu elemen dengan yang lain dapat diakses melalui informasi NEXT. Struktur data ini banyak dipakai dalam informatika, misalnya untuk merepresentasi: - antrian job yang harus ditangani oleh sistem operasi - antrian dalam dunia nyata. Maka secara lojik, sebuah QUEUE dapat digambarkan sebagai list linier yang setiapelemennya adalah type ElmtQ : < Info : InfoType, Next :address> dengan InfoType adalah sebuah type terdefinisi yang menentukan informasi yangdisimpan pada setiap elemen queue, dan address adalah "alamat" dari elemen.selain itu alamat elemen pertama (HEAD) dan elemen terakhir(tail) dicatat :Maka jika Q adalah Queue dan 23/49

24 P adalah adaress, penulisan untuk Queue adalah :Head(Q),Tail(Q), Info(Head(Q)), Info(Tail(Q)). Definisi Fungsional Queue Diberikan Q adalah QUEUE dengan elemen ElmtQ maka definisi fungsional antrian adalah: Implementasi QUEUE dengan tabel : Memori tempat penyimpan elemen adalah sebuah tabel dengan indeks 1..IdxMax. IdxMax dapat juga dipetakan ke kapasitas Queue. Representasi field Next: Jika i adalah address sebuah elemen, maka suksesor i adalah Next dari elemen Queue. Tabel dengan hanya representasi TAIL adalah indeks elemen terakhir, HEAD selalu diset sama dengan 1 jika Queue tidak kosong. Jika Queue kosong, maka HEAD=0. Ilustrasi Queue tidak kosong, dengan 5 elemen : Algoritma paling sederhana untuk penambahan elemen jika masih ada tempat adalah 24/49

25 dengan memajukan TAIL. Kasus khusus untuk Queue kosong karena HEAD harus diset nilainya menjadi 1. Algoritma paling sederhana dan naif untuk penghapusan elemen jika Queue tidak kosong: ambil nilai elemen HEAD, geser semua elemen mulai dari HEAD+1 s/d TAIL (jika ada), kemudian TAIL mundur. Kasus khusus untuk Queue dengan keadaan awal berelemen 1, yaitu menyesuaikan HEAD dan TAIL dengan DEFINISI. Algoritma ini mencerminkan pergeseran orang yang sedang mengantri di dunia nyata, tapi tidak efisien. III. Prepraktikum 1. Jelaskan struktur data queue! 2. Buatlah ilustrasi untuk masing-masing operasi pada queue! Prototipe dan Primitif /Algoritma /* Nama file QueueList.h */ #ifndef QueueList_H #define QueueList_H #include "boolean.h" #include <stdio.h> #include <stdlib.h> #define Nil 0 #define MaxIdx 15 /* Definisi elemen dan address */ typedef int infotype; typedef int address; /* Indeks tabel */ typedef struct { infotype Info; address Next; } ElmtQueue; externelmtqueue TabMem[MaxIdx+1]; typedef struct { address HEAD; /* Alamat penghapusan */ address TAIL; /* Alamat penambahan */ } queue; /** ===== Akses Selektor ===== **/ #define Head(Q) (Q).HEAD #define Tail(Q) (Q).TAIL #define InfoHead(Q) TabMem[(Q).HEAD].Info #define InfoTail(Q) TabMem[(Q).TAIL].Info #define Info(P) TabMem[(P)].Info #define Next(P) TabMem[(P)].Next /** ========== **/ /** ===== Prototype ===== **/ boolean IsEmpty(queue Q); /* Mengirim TRUE jika Q kosong: Head=Nil dan Tail=Nil */ boolean IsFull(queue Q); /* Mengirim TRUE jika tabel penampung elemen Q sudah penuh */ /* Yaitu mengandung MaxEl elemen */ intnbelmt(queue Q); /* Mengirimkan banyaknya elemen queue. Mengirimkan 0 jika Q kosong */ 25/49

26 /** ========== **/ /** ===== Kreator ===== **/ voidinisialisasi(void); /* Menyiapkan memori untuk linked Queue agar siap dipakai */ voidcreateempty(queue *Q); /* Membuat sebuah Q kosong */ /** ========== **/ /** ===== Manajemen Memori ===== **/ voidalokasi (address *P, infotype X); /* Mengirimkan address hasil alokasi sebuah elemen */ /* Jika alokasi berhasil, maka address tidak nil, dan misalnya */ /* menghasilkan P, maka info(p) = X, Next(P) = Nil */ /* Jika alokasi gagal, mengirimkan Nil */ voiddealokasi (address P); /* I.S : P terdefinisi */ /* F.S : P dikembalikan ke sistem */ /* Melakukan dealokasi/pengembalian address P */ /** ========== **/ /** ===== Primitif Add/Delete ===== **/ voidadd(queue *Q, infotype X); /* Menambahkan X pada Q dengan aturan FIFO */ /* Jika Tail(Q)=MaxEl+1 maka geser isi tabel, shg Head(Q)=1 */ /* precondition: tabel penampung elemen Q tidak penuh */ voiddel(queue *Q, infotype *X); /* Menghapus X pada Q dengan aturan FIFO */ /* precondition: tabel penampung elemen Q tidak kosong */ /** ========== **/ #endif IV. Kegiatan Praktikum 1. Buat file boolean.h 2. Ketik prototipe/primitif di atas dan simpan dengan namaadt Queue1.h. 3. Buat file.c yang berisi implementasi dari file.h. 4. Buat file main driver-nya. V. Hasil LKP (ditulis tangan di kertas A4) No VI. Evaluasi dan Pertanyaan Deskripsi Jawaban 1. Tuliskan algoritma add dan delete pada queue di atas? 2. Buatlah program antrian nasabah bank dengan skenario seperti berikut! Terdapata 2 buah loket yaitu Teller dan Custumer service. 26/49

27 Data nasabah terdiri dari Nama dan Tujuan. Maksimal antrian 20 orang nasabah untuk setiap loket. Jika nasabah yang datang menuju teller, masukkan antrian ke teller dan sebaliknya jika nasabah ingin menuju Custumer Service, masukkan pada antrian Custumer service.untuk mengetahui apakah nasabah menuju ke Teller atau Custumer service dapat dilihat pada data tujuan.berikan pula fungsi untuk mengitung jumlah nasabah baik yang ada di loket Teller maupun loket Custumer service. VII. Kesimpulan Lembar Kerja Praktikum 7 : Queue Lanjutan I. Tujuan Setelah mengerjakan LKP 7 ini, anda diharapkan dapat: 1. Memahami konsep Queue dan mengimplementasikannya ke bahasa C. 2. Mampu melakukan operasi add dan delete pada queue. II. Dasar Teori Queue adalah list linier yang : a. Dikenali elemen pertama (HEAD) dan elemen terakhirnya (TAIL), b. Aturan penyisipan dan penghapusan elemennya didefinisikan sebagai berikut: - Penyisipan selalu dilakukan setelah elemen terakhir - Penghapusan selalu dilakukan pada elemen pertama c. Satu elemen dengan yang lain dapat diakses melalui informasi NEXT. Struktur data ini banyak dipakai dalam informatika, misalnya untuk merepresentasi: - antrian job yang harus ditangani oleh sistem operasi 27/49

28 - antrian dalam dunia nyata. Maka secara lojik, sebuah QUEUE dapat digambarkan sebagai list linier yang setiapelemennya adalah type ElmtQ : < Info : InfoType, Next :address> dengan InfoType adalah sebuah type terdefinisi yang menentukan informasi yangdisimpan pada setiap elemen queue, dan address adalah "alamat" dari elemen.selain itu alamat elemen pertama (HEAD) dan elemen terakhir(tail) dicatat :Maka jika Q adalah Queue dan P adalah adaress, penulisan untuk Queue adalah :Head(Q),Tail(Q), Info(Head(Q)), Info(Tail(Q)). Definisi Fungsional Queue Diberikan Q adalah QUEUE dengan elemen ElmtQ maka definisi fungsional antrian adalah: Implementasi QUEUE dengan tabel : Memori tempat penyimpan elemen adalah sebuah tabel dengan indeks 1..IdxMax. IdxMax dapat juga dipetakan ke kapasitas Queue. Representasi field Next: Jika i adalah address sebuah elemen, maka suksesor i adalah Next dari elemen Queue. Tabel dengan hanya representasi TAIL adalah indeks elemen terakhir, HEAD selalu diset sama dengan 1 jika Queue tidak kosong. Jika Queue kosong, maka HEAD=0. Ilustrasi Queue tidak kosong, dengan 5 elemen : 28/49

29 Algoritma paling sederhana untuk penambahan elemen jika masih ada tempat adalah dengan memajukan TAIL. Kasus khusus untuk Queue kosong karena HEAD harus diset nilainya menjadi 1. Algoritma paling sederhana dan naif untuk penghapusan elemen jika Queue tidak kosong: ambil nilai elemen HEAD, geser semua elemen mulai dari HEAD+1 s/d TAIL (jika ada), kemudian TAIL mundur. Kasus khusus untuk Queue dengan keadaan awal berelemen 1, yaitu menyesuaikan HEAD dan TAIL dengan DEFINISI. Algoritma ini mencerminkan pergeseran orang yang sedang mengantri di dunia nyata, tapi tidak efisien. III. Prepraktikum 3. Jelaskan struktur data queue! 4. Buatlah ilustrasi untuk masing-masing operasi pada queue! Prototipe dan Primitif /Algoritma /* Nama file QueueList.h */ #ifndef QueueList_H #define QueueList_H #include "boolean.h" #include <stdio.h> #include <stdlib.h> #define Nil 0 #define MaxIdx 15 /* Definisi elemen dan address */ typedef int infotype; typedef int address; /* Indeks tabel */ typedef struct { infotype Info; address Next; } ElmtQueue; externelmtqueue TabMem[MaxIdx+1]; typedef struct { address HEAD; /* Alamat penghapusan */ address TAIL; /* Alamat penambahan */ } queue; /** ===== Akses Selektor ===== **/ #define Head(Q) (Q).HEAD 29/49

30 #define Tail(Q) (Q).TAIL #define InfoHead(Q) TabMem[(Q).HEAD].Info #define InfoTail(Q) TabMem[(Q).TAIL].Info #define Info(P) TabMem[(P)].Info #define Next(P) TabMem[(P)].Next /** ========== **/ /** ===== Prototype ===== **/ boolean IsEmpty(queue Q); /* Mengirim TRUE jika Q kosong: Head=Nil dan Tail=Nil */ boolean IsFull(queue Q); /* Mengirim TRUE jika tabel penampung elemen Q sudah penuh */ /* Yaitu mengandung MaxEl elemen */ intnbelmt(queue Q); /* Mengirimkan banyaknya elemen queue. Mengirimkan 0 jika Q kosong */ /** ========== **/ /** ===== Kreator ===== **/ voidinisialisasi(void); /* Menyiapkan memori untuk linked Queue agar siap dipakai */ voidcreateempty(queue *Q); /* Membuat sebuah Q kosong */ /** ========== **/ /** ===== Manajemen Memori ===== **/ voidalokasi (address *P, infotype X); /* Mengirimkan address hasil alokasi sebuah elemen */ /* Jika alokasi berhasil, maka address tidak nil, dan misalnya */ /* menghasilkan P, maka info(p) = X, Next(P) = Nil */ /* Jika alokasi gagal, mengirimkan Nil */ voiddealokasi (address P); /* I.S : P terdefinisi */ /* F.S : P dikembalikan ke sistem */ /* Melakukan dealokasi/pengembalian address P */ /** ========== **/ /** ===== Primitif Add/Delete ===== **/ voidadd(queue *Q, infotype X); /* Menambahkan X pada Q dengan aturan FIFO */ /* Jika Tail(Q)=MaxEl+1 maka geser isi tabel, shg Head(Q)=1 */ /* precondition: tabel penampung elemen Q tidak penuh */ voiddel(queue *Q, infotype *X); /* Menghapus X pada Q dengan aturan FIFO */ /* precondition: tabel penampung elemen Q tidak kosong */ /** ========== **/ #endif IV. Kegiatan Praktikum 5. Buat file boolean.h 6. Ketik prototipe/primitif di atas dan simpan dengan namaadt Queue1.h. 7. Buat file.c yang berisi implementasi dari file.h. 8. Buat file main driver-nya. V. Hasil LKP (ditulis tangan di kertas A4) No Deskripsi Jawaban 30/49

31 1.. 4 VI. Evaluasi dan Pertanyaan 1. Tuliskan algoritma add dan delete pada queue di atas? 2. Buatlah program antrian nasabah bank dengan skenario seperti berikut! Terdapata 2 buah loket yaitu Teller dan Custumer service. Data nasabah terdiri dari Nama dan Tujuan. Maksimal antrian 20 orang nasabah untuk setiap loket. Jika nasabah yang datang menuju teller, masukkan antrian ke teller dan sebaliknya jika nasabah ingin menuju Custumer Service, masukkan pada antrian Custumer service.untuk mengetahui apakah nasabah menuju ke Teller atau Custumer service dapat dilihat pada data tujuan.berikan pula fungsi untuk mengitung jumlah nasabah baik yang ada di loket Teller maupun loket Custumer service. VII. Kesimpulan 31/49

32 Lembar Kerja Praktikum 8 : List (bagian I) I. Tujuan Setelah mengerjakan LKP 3 ini, anda diharapkan dapat: 1. Memahami konsep list dan mampu mengimplementasikannya ke bahasa C. 2. Mampu melakukan operasi insert dan delete pada list. II. Dasar Teori List Linier List linier adalah sekumpulan elemen bertype sama, yang mempunyai keterurutan tertentu, dan setiap elemennya terdiri dari dua bagian, yaitu informasi mengenai elemennya, dan informasi mengenai alamat elemen suksesornya : type ElmtList : <Info : InfoType, Next :address> dengan InfoType adalah sebuah type terdefinisi yang menyimpan informasi sebuah elemen list; Next adalah address ("alamat") dari elemen berikutnya (suksesor). Dengan demikian, jika didefinisikan First adalah alamat elemen pertama list, maka elemen berikutnya dapat diakses secara suksesif dari field Next elemen tersebut Alamat yang sudah didefinisikan disebut sudah di-alokasi. Didefinisikan suatu konstanta Nil, yang artinya alamat yang tidak terdefinisi. Alamat ini nantinya akan didefinisikan secara lebih konkret ketika list linier diimplementasi pada struktur data fisik Jadi, sebuah list linier dikenali : elemen pertamanya, biasanya melalui alamat elemen pertama yang disebut : Firstalamat elemen berikutnya (suksesor), jika kita mengetahui alamat sebuahelemen,yang dapat diakses melalui informasi NEXT. NEXT mungkin ada secaraeksplisit (seperti contoh di atas), atau secara implisit yaitu lewat kalkulasi ataufungsi suksesor. Setiap elemen mempunyai alamat, yaitu tempat elemen disimpandapat diacu. Untuk mengacu sebuah 32/49

33 elemen, alamat harus terdefinisi. Dengan alamat tersebut Informasi yang tersimpan pada elemen list dapat diakses elementerakhirnya. Ada berbagai cara untuk mengenali elemen akhir Jika L adalah list, dan P adalah address: Alamat elemen pertama list L dapat diacu dengan notasi : First(L) Elemen yang diacu oleh P dapat dikonsultasi informasinya dengan notasi Selektor : Info(P) Next(P) Beberapa definisi : o List L adalah list kosong, jika First(L) = Nil o Elemen terakhir dikenali, misalnya jika Last adalah alamat element terakhir, maka Next(Last) =Nil INSERT-First Menambahkan sebuah elemen yang diketahui alamatnya sebagai elemen pertama list.insert elemen pertama, List kosong : 33/49

34 Menambahkan sebuah elemen yang diketahui nilainya sebagai elemen pertama list. Tahap pertama : Insert Nilai 3 sebagai elemen pertama, List : karena yang diketahui adalah nilai, maka harus dialokasikan dahulu sebuah elemen supaya nilai 3 dapat di-insert Jika alokasi berhasil, P tidak sama dengan Nil 34/49

35 INSERT-After : Menyisipkan sebuah elemen beralamat P setelah sebagai suksesor dari sebuah elemen list linier yang beralamat Prec INSERT-Last Menyisipkan sebuah elemen beralamat P setelah sebagai elemen terakhir sebuah list linier.ada dua kemungkinan list kosong atau tidak kosong. Insert sebagai elemen terakhir list tidak kosong. Insert sebagai elemen terakhir list tidak kosong DELETE-First : menghapus elemen pertama list linier Elemen yang dihapus dicatat alamatnya : 35/49

36 DELETE-After : Penghapusan suksesor sebuah elemen : DELETE-Last : Menghapus elemen terakhir list dapat dilakukan jika alamat dari elemen sebelum elemen terakhir diketahui. Persoalan selanjutnya menjadi persoalan DELETEAFTER, kalau Last bukan satu-satunya elemen list linier. Ada dua kasus, yaitu list menjadi kosong atau tidak. Kasus list menjadi kosong : List tidak menjadi kosong (masih mengandung elemen) : III. Prepraktikum 1. Jelaskan struktur data linked list! 2. Jelaskan operasi-operasi pada linked list! 3. Jelaskan macam-macam linked list dan gambar dari macam-macam linked list tersebut! 36/49

37 Prototipe dan Primitif /Algoritma /*file : list1.h*/ /*contoh ADT list berkait dengan representasi fisik pointer*/ /*representasi address dengan pointer*/ /*infotype adalah integer*/ #ifndef list_h #define list_h #include "boolean.h" #define Nil NULL #define info(p) (*P).info #define next(p) (P)->next #define First(L) ((L).First) #define infotype int typedef struct telmtlist *address; typedef struct telmtlist { infotype info; address next; } Elmtlist; /*Definisi list*/ /*List kosong : First(L) = Nil*/ /*Setiap elemen dengan address P dapat diacu info(p), Next (P)*/ /*Elemen terakhir list : jika addressnya Last, maka Next(Last) = Nil*/ typedef struct { address First; } List; /*PROTOTYPE*/ /*test list kosong*/ boolean ListEmpty (List L); /*true jika list kosong*/ /*PEMBUATAN LIST KOSONG*/ void CreateList (List *L); /*membentuk list kosong*/ /*MANAJEMEN MEMORI*/ address alokasi (infotype X); /*mengirimkan address hasil alokasi sebuah elemen*/ /*jika alokasi berhasil, maka address tidak nil, dan */ /*bila menghasilkan P, maka info(p) = X, Next(P) = Nil*/ /*jika alokasi gagal, mengirimkan Nil*/ void dealokasi (address P); /*mengembalikan P ke sistem*/ 37/49

38 /*melakukan dealokasi/pengembalian address P*/ /*PRIMITF BERDASARKAN ALAMAT*/ void InsertFirst(List *L, address P); /*menambahkan elemen beraddress P sebagai elemen pertama*/ void InsertAfter(List *L, address P, address Prec); /*Prec pastilah elemen list dan bukan elemen terakhir*/ void InsertLast(List *L, address P); /*P ditambahkan sebagai elemen terakhir yang baru*/ /*PENGHAPUSAN SEBUAH ELEMEN*/ void DelFirst(List *L, address *P); /*P adalah alamat elemen pertama list sebelum penghapusan*/ /*elemen list berkurang satu, firstelemen baru adalah suksesor elemen pertama yang lama*/ void DelP(List *L, infotype X); /*jika ada elemen list beraddress P, dengan info(p) = X*/ /*maka P dihapus dari list dan didealokasi*/ /*jika tak ada, maka list tetap*/ void DelLast (List *L, address *P); /*P adalah alamat elemen terakhir list sebelum penghapusan*/ /*Last Elemen yang baru adalah predesesor elemen pertama yang lama*/ void DelAfter(List *L, address *Pdel, address Prec); /*Prec adalah anggota list*/ /*menghapus Next (Prec)*/ /*PROSES SEMUA ELEMEN LIST*/ void Printinfo(List L); /*semua info yang disimpan pada elemen list diprint*/ /*jika list ksoong, hanya menuliskan "list kosong"*/ int NbElmt(List L); /*mengirimkan banyaknya elemen list, 0 bila list kosong*/ infotype Max(List L); /*mengirimkan nilai info(p) yang maksimum*/ infotype Min(List L); /*mengirimkan nilai info(p) yang minimum*/ #endif IV. Kegiatan Praktikum 2. Ketik kode program dibawah ini kemudian simpan dengan nama boolean.h 38/49

39 3. Ketik prototipe/primitif di atas dan simpan dengan namalist.h. 4. Buat file list.c yang berisi implementasi dari list.h. 5. Buat file main driver mlist.c. V. Hasil LKP (ditulis tangan di kertas A4) No Deskripsi Jawaban VI. Evaluasi dan Pertanyaan 1. Tuliskan algoritma untuk nilai maksimum list dan minimum list? 2. Tambahkan program untuk mencetak address max dan address min? VII. Kesimpulan Lembar Kerja Praktikum 9 : List (lanjutan) I. Tujuan Setelah mengerjakan LKP 4 ini, anda diharapkan dapat: 39/49

40 1. Memahami konsep list dan mampu mengimplementasikannya ke bahasa C. 2. Mampu melakukan operasi insert dan delete berdasarkan value pada list. II. Dasar Teori List Linier Tidak ada perbedaan dengan teori pada Modul List (bagian 1) sebelumnya hanyasaja pada modul ini proses pada list berdasarkan value Prototipe dan Primitif /Algoritma /*file : list1.h*/ /*contoh ADT list berkait dengan representasi fisik pointer*/ /*representasi address dengan pointer*/ /*infotype adalah integer*/ #ifndef list_h #define list_h #include "boolean.h" #define Nil NULL #define info(p) (*P).info #define next(p) (P)->next #define First(L) ((L).First) #define infotype int typedef struct telmtlist *address; typedef struct telmtlist { infotype info; address next; } Elmtlist; /*Definisi list*/ /*List kosong : First(L) = Nil*/ /*Setiap elemen dengan address P dapat diacu info(p), Next (P)*/ /*Elemen terakhir list : jika addressnya Last, maka Next(Last) = Nil*/ typedef struct { address First; } List; void InsertAfter(List *L, address P, address Prec); /*Prec pastilah elemen list dan bukan elemen terakhir*/ void InsertLast(List *L, address P); /*P ditambahkan sebagai elemen terakhir yang baru*/ void DelP(List *L, infotype X); 40/49

41 /*jika ada elemen list beraddress P, dengan info(p) = X*/ /*maka P dihapus dari list dan didealokasi*/ /*jika tak ada, maka list tetap*/ void DelLast (List *L, address *P); /*P adalah alamat elemen terakhir list sebelum penghapusan*/ /*Last Elemen yang baru adalah predesesor elemen pertama yang lama*/ void DelAfter(List *L, address *Pdel, address Prec); /*Prec adalah anggota list*/ /*menghapus Next (Prec)*/ int NbElmt(List L); /*mengirimkan banyaknya elemen list, 0 bila list kosong*/ infotype Max(List L); /*mengirimkan nilai info(p) yang maksimum*/ infotype Min(List L); /*mengirimkan nilai info(p) yang minimum*/ /*PRIMITIF BERDASARKAN NILAI*/ void InsVFirst (List *L, infotype X); /*melakukan alokasi sebuah elemen, dan menambahkan elemen pertama dengan nilai X*/ /*bila alokasi berhasil*/ void InsVLast (List *L, infotype X); /*menambahkan elemen list di akhir, elemen terakhir yang baru*/ /*PENCARIAN SEBUAH ELEMEN LIST*/ address Search (List L, infotype X); /*mencari apakah ada elemen list dengan info(p) = X*/ /*Jika ada, kirimkan address. Jika tak ada kirimkan Nil*/ III. Kegiatan Praktikum 1. Ketik kode program dibawah ini kemudian simpan dengan nama boolean.h 2. Ketik prototipe/primitif di atas dan simpan dengan namalist.h. 3. Buat file list.c yang berisi implementasi dari list.h. 6. Buat file main driver mlist.c. IV. Hasil LKP (ditulis tangan di kertas A4) No Deskripsi Jawaban 41/49

42 1.. 4 V. Evaluasi dan Pertanyaan 1. Apa perbedaan operasi list berdasarkan address dengan operasi list berdasarkanvalue?beri penjelasan? 2. Sehubungan dengan pertanyaan 1, bagaimana dengan algoritmanya? VI. Kesimpulan Lembar Kerja Praktikum 11: Multi List I. Tujuan Setelah mengerjakan LKP 4 ini, anda diharapkan dapat: 1. Memahami konsep list dan mampu mengimplementasikannya ke bahasa C. 2. Mampu melakukan operasi insert dan delete berdasarkan value pada list. 42/49

43 II. Dasar Teori Multi List Salah satu alternatif merepresentasikan multi list : Tidak ada perbedaan dengan teori pada Modul List (bagian 1) sebelumnya hanyasaja pada modul ini proses pada list berdasarkan value III. Evaluasi dan Pertanyaan 1. Apa perbedaan operasi list dengan multi lis?beri penjelasan? 2. Sehubungan dengan pertanyaan 1, bagaimana dengan implementasi programnya? 43/49

44 IV. Kesimpulan Lembar Kerja Praktikum 12 : Binary Search Tree I. Tujuan Setelah mengerjakan LKP 7 ini, anda diharapkan dapat: 1. Memahami konsep binary search tree dan mengimplementasikannya ke bahasa C. 2. Mampu melakukan operasi add dan delete dan search pada tree. II. Dasar Teori Sebuah pohon biner adalah himpunan terbatas yang - mungkin kosong, atau - terdiri dari sebuah simpul yang disebut akar dan dua buah himpunan lain yang disjointyang merupakan pohon biner, yangdisebut sebagai sub pohon kiri dan sub pohon kanan dari pohon biner tersebut.perhatikanlah perbedaan pohon biner dengan pohon biasa : pohon biner mungkinkosong, sedangkan pohon n-aire tidak mungkin kosong. Contoh pohon ekspresi aritmatika Karena adanya arti bagi sub pohon kiri dan sub pohon kanan, maka dua buah pohon biner sebagai berikut berbeda (pohon berikut disebut pohoncondong/skewed tree) 44/49

45 Sub pohon ditunjukkan dengan penulisan () Pohon Seimbang (balanced tree) Pohon seimbang tingginya: perbedaan tinggi sub pohon kiri dengan sub pohon kanan maksimum 1 Pohon seimbang banyaknya simpul: perbedaan banyaknya simpul sub pohon kiri dengan sub pohon kanan maksimum 1 Pohon Biner Terurut (Binary serach tree) Pohon biner terurut P memenuhi sifat : Semua simpul subpohon kiri selalu < dari Info(P) Semua simpul subpohon kiri selalu > dari Info(P) Untuk simpul yang sama nilainya : disimpan berapa kali muncul. Maka sebuah node P akan menyimpan informasi : Info(P), Left(P), Right(P), Count(P) yaitu banyaknya kemunculan Info(P). Contoh eksekusi penghapusan node pada pohon biner terurut: 45/49

46 III. Prepraktikum 1. Jelaskan struktur data tree/pohon! 2. Jelaskan masing - masing jenis traverse dan buatlah ilustrasinya! Prototipe dan Primitif /Algoritma /* file : bst.h */ #ifndef BST_H_ #define BST_H_ #include <stdlib.h> #include <stdio.h> #define Nil NULL /* Lengkapilah definisi selektor dibawah ini */ #define Akar(P) (P)->info #define Left(P) (P)->left #define Right(P) (P)->right #define IsUnerLeft(P) Left(P)!=Nil && Right(P)==Nil #define IsUnerRight(P) Left(P)==Nil && Right(P)!=Nil #define IsBin(P) Left(P)!=Nil && Right(P)!=Nil #define IsDaun(P) Left(P)==Nil && Right(P)==Nil typedef int infotype; typedef struct telmttree *addrtree; typedef struct telmttree { infotype info; addrtree left; addrtree right; } ElmtTree; typedef addrtree BinTree; BinTree Alokasi(infotype I); 46/49

47 /* Mengembalikan hasil alokasi sebuah BinTree P dengan Akar(P)=I, */ /* Left(P)=Nil dan Right(P)=Nil */ void Dealokasi(BinTree Node); /* I.S : Node adalah sebuah BinTree dengan Left(Node)=Nil */ /* dan Right(Node)=Nil */ /* F.S : Node dihancurkan dan Node=Nil */ /* Proses : Menghancurkan alamat memori yang ditunjuk Node, dan */ /* nilai Node diset Nil */ void MakeTree(infotype I,BinTree L,BinTree R,BinTree *P); /* I.S : I adalah infotype sembarang, L dan R mungkin Nil,P */ /* sembarang */ /* F.S : P adalah sebuah pohon baru dengan Akar(*P)=I, */ /* Left(*P)=L, dan Right(*P)=Nil */ /* Proses : Mengalokasikan sebuah pohon baru *P dengan nilai */ /* Akar(*P)=I, Left(*P)=L, dan Right(*P)=Nil jika */ /* alokasi berhasil. Jika alokasi gagal P=Nil */ void DestroyTree(BinTree *P); /* I.S : P adalah pointer ke BinTree, mungkin Nil */ /* F.S : Pohon Biner P dihancurkan, semua memori yang digunakan */ /* dikembalikan, dan P=Nil */ /* Proses : Menghancurkan pohon biner P, semua memori yang */ /* digunakan dihancurkan dan P=Nil */ void PrintTree(BinTree P); /* I.S : P adalah pohon biner mungkin kosong */ /* F.S : P tidak berubah, semua nilai dituliskan ke layar */ /* Proses : Menuliskan semua nilai info dari setiap simpul pohon /* dengan notasi prefix contoh : (7(3()(5()()))(11()())) */ BinTree Search(BinTree P,infotype I); /* Mengembalikan alamat simpul pohon P dimana nilai info = I, jika */ /* tidak ada mengembalikan Nil */ int NbElmt(BinTree P); /* Mengembalikan jumlah simpul dari pohon P, P mungkin kosong */ int NbDaun(BinTree P); /* Mengembalikan jumlah daun dari pohon P, P mungkin kosong */ int IsSkewLeft(BinTree P); /* Mengembalikan 1 jika P adalah pohon condong kiri, atau 0 jika /* bukan condong kiri */ int IsSkewRight(BinTree P); /* Mengembalikan 1 jika P adalah pohon condong kanan, atau 0 */ /* jika bukan condong kanan */ int Level(BinTree P,infotype I); /* Mengembalikan level I dalam pohon P, jika I tidak ada dalam */ /* pohon P mengembalikan 0 */ void Add(BinTree *P,infotype I); /* I.S : P adalah pointer ke pohon biner P mungkin kosong, */ /* Pohon P tidak mempunyai simpul dengan nilai I */ /* F.S : I menjadi salah satu simpul pohon P, dan P tetap */ /* memenuhi aturan biner search tree */ /* Proses : menambahkan I menjadi salah satu simpul pohon P */ /* dengan aturan biner search tree */ 47/49

48 void Del(BinTree *P,infotype I); /* I.S : P adalah pointer ke pohon biner P mungkin kosong, */ /* I bernilai sembarang */ /* F.S : Jika terdapat simpul dari P dengan nilai info = I, maka */ /* simpul dihapus */ /* Proses : Menghapus simpul dari pohon P jika nilai info = I dan P */ /* tetap memenuhi aturan biner search tree */ infotype Sum(BinTree P); /* Mengembalikan hasil penjumlahan semua nilai info dari setiap */ /* simpul yang dimiliki pohon P */ #endif // BST_H IV. Kegiatan Praktikum 1. Buat file boolean.h 2. Ketik prototipe/primitif di atas dan simpan dengan namabst.h 3. Buat file.c yang berisi implementasi dari file.h. 4. Buat file main driver-nya. V. Hasil LKP (ditulis tangan di kertas A4) No VI. Evaluasi dan Pertanyaan Deskripsi Jawaban 1. Tuliskan algoritma add dan delete tree di atas? 2. Buatlah fungsi untuk menampilkan data secara inorder, preorder, postorder, dan fungsi menghapus suatu node pada tree! 3. Buatlah program lengkap untuk semua operasi-operasi didalam tree (insert, find, traverse, count, height, find max, find min, child) dengan berbasis menu! VII. Kesimpulan 48/49

49 Referensi Fachrurrozi, M (2009). Modul Praktikum Algoritma dan Pemrograman I Fasilkom Unsri Kernighan, Brian W and Dennis M. Ritchie. (1988). The C Programming Languange. New Delhi : Prentice Hall of India Liem, Inggriani. (2007). Diktat Algoritma dan Pemrograman Prosedural. Teknik Informatika ITB Sjukani, Moh. (2007). Algoritma (Algoritma dan Struktur Data 1) dengan C, C++, dan Java. Jakarta : Mitra Wacana Media 49/49

MODUL PRAKTIKUM STRUKTUR DATA

MODUL PRAKTIKUM STRUKTUR DATA MODUL PRAKTIKUM STRUKTUR DATA MODUL PRAKTIKUM STRUKTUR DATA LABORATORIUM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA 2011 Universitas Sriwijaya Fakultas Ilmu Komputer Laboratorium No. Dokumen

Lebih terperinci

QUEUE Antrian 1. DEFINISI

QUEUE Antrian 1. DEFINISI QUEUE Antrian 1. DEFINISI QUEUE (Antrian) adalah list linier yang : 1. dikenali elemen pertama () dan elemen terakhirnya (), 2. aturan penyisipan dan penghapusan elemennya didefinisikan sebagai berikut:

Lebih terperinci

Modul Praktikum. Struktur Data. Oleh: M. Fachrurrozi, MT. Comlabs Fakultas Ilmu Komputer. Universitas Sriwijaya

Modul Praktikum. Struktur Data. Oleh: M. Fachrurrozi, MT. Comlabs Fakultas Ilmu Komputer. Universitas Sriwijaya Modul Praktikum Struktur Data Oleh: M. Fachrurrozi, MT Comlabs Fakultas Ilmu Komputer Universitas Sriwijaya 2009 Editor : Ferry Gustiawan Buku ini diterbitkan dalam rangka pengadaan buku ajar untuk pendidikan

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

Variasi List Linier (Bagian 2)

Variasi List Linier (Bagian 2) Variasi List Linier (Bagian 2) Tim Pengajar IF2030 Semester I/2009-2010 11/12/2009 FNA/IF2030/Sem. 1 2009-2010 1 List dengan elemen fiktif (dummy element) di akhir 11/12/2009 FNA/IF2030/Sem. 1 2008-2009

Lebih terperinci

Pohon Biner (Bagian 1)

Pohon Biner (Bagian 1) Pohon Biner (Bagian 1) Tim Pengajar IF2110R Semester I 2016/2017 1 Tujuan Mahasiswa memahami definisi pohon dan pohon biner Berdasarkan pemahaman tersebut, mampu membuat fungsi sederhana yang memanipulasi

Lebih terperinci

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C

Turbo C adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C 1. Pendahuluan Lingkungan Turbo C++ 4.5 Turbo C++ 4.5 adalah tool yang dipakai untuk membuat code program dalam bahasa C ataupun C++. Berikut adalah jendela utama Turbo C++ 4.5. 1 2 3 4 1 : Menu Utama

Lebih terperinci

STACK Tumpukan TOP TOP BOTTOM BOTTOM

STACK Tumpukan TOP TOP BOTTOM BOTTOM STACK Tumpukan I. DEFINISI STACK (Tumpukan) adalah list linier yang : 1. dikenali elemen puncaknya (TOP) 2. aturan penyisipan dan penghapusan elemennya tertentu : Penyisipan selalu dilakukan "di atas"

Lebih terperinci

List Linier (Bag. I) IF2121/Algoritma dan Struktur Data Sem. I 2016/ /25/2017 IF2121/Sem I 2017/2018 1

List Linier (Bag. I) IF2121/Algoritma dan Struktur Data Sem. I 2016/ /25/2017 IF2121/Sem I 2017/2018 1 List Linier (Bag. I) IF2121/Algoritma dan Struktur Data Sem. I 2016/2017 9/25/2017 IF2121/Sem I 2017/2018 1 List Linier List linier: Sekumpulan elemen ber-type sama yang mempunyai keterurutan tertentu

Lebih terperinci

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB Pertemuan Ke 5 : List Linier (Linked List) Referensi: 1. Inggriani Liem. 2003. Catatan Kuliah & Pemrograman, Jurusan Teknik Informatika ITB 2. Rinaldi Munir. 2003. dan Pemrograman II. Bandung : Penerbit

Lebih terperinci

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit

Kode : IF2121 NIM :... Matakuliah : Algoritma dan Struktur Data Nama :... Hari, Tanggal : Senin, 13 November 2017 Waktu : 150 Menit Soal No. 1 Berikut ini adalah program sirkular linked list terurut, lengkapilah bagian titik-titik dengan jawaban yang anda anggap benar. #include #include // enable malloc() and free()

Lebih terperinci

Struktur Data. Queue (Antrian)

Struktur Data. Queue (Antrian) Struktur Data Queue (Antrian) Definisi Queue (Antrian) adalah list linier yang : 1. Dikenali elemen pertama (Head) dan elemen terakhirnya (Tail) 2. Aturan penyisipan dan penghapusan elemennya didefinisikan

Lebih terperinci

Menginisialisasi array sama dengan memberikan nilai awal array pada saat didefinisikan. int nilai[6] = {8,7,5,6,4,3};

Menginisialisasi array sama dengan memberikan nilai awal array pada saat didefinisikan. int nilai[6] = {8,7,5,6,4,3}; ARRAY Array adalah suatu tipe data terstruktur yang berupa sejumlah data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama tertentu. Array dapat berupa array 1 dimensi, 2 dimensi,

Lebih terperinci

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++

LANGKAH-LANGKAH MENULISKAN PROGRAM DALAM TURBO C++ I.PENDAHULUAN 1. 1. ALGORITMA Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapat dikerjakan

Lebih terperinci

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Queue (Antrian)

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Queue (Antrian) Kode MK/ Pemrograman Terstruktur 2 ZK Abdurahman Baizal KK Algoritma dan Komputasi Queue (Antrian) 1 8/25/2015 Pendahuluan Pada bab ini kita akan membahas queue, yang sebenarnya mempunyai ADT hampir sama

Lebih terperinci

Pohon Biner Bagian 2 (Pohon Seimbang, Pohon Biner Terurut, Pembangunan Pohon Biner dari Pita Karakter/String)

Pohon Biner Bagian 2 (Pohon Seimbang, Pohon Biner Terurut, Pembangunan Pohon Biner dari Pita Karakter/String) Pohon Biner Bagian 2 (Pohon Seimbang, Pohon Biner Terurut, Pembangunan Pohon Biner dari Pita Karakter/String) Tim Pengajar IF2030 Semester I/2009-2010 12/10/2009 FNA/IF2030/Sem. 1 2008-2009 1 Pohon Biner

Lebih terperinci

List Linier. IF2030/Algoritma dan Struktur Data. 11/6/2009 FNA+WDS/IF2030/Sem

List Linier. IF2030/Algoritma dan Struktur Data. 11/6/2009 FNA+WDS/IF2030/Sem List Linier IF2030/Algoritma dan Struktur Data 11/6/2009 FNA+WDS/IF2030/Sem 1 0809 1 List Linier List linier: Sekumpulan elemen ber-type sama yang mempunyai keterurutan tertentu dan setiap elemen terdiri

Lebih terperinci

Implementasi Struktur Data Stack (Tumpukan) dalam Tower of Hanoi Game

Implementasi Struktur Data Stack (Tumpukan) dalam Tower of Hanoi Game Implementasi Struktur Data Stack (Tumpukan) dalam Tower of Hanoi Game Oleh: Adnan w Anadrep Selamat datang di tutorial ini, kali ini saya akan memberikan tutorial tentang pengimplementasian struktur data

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

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Stack (Tumpukan)

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Stack (Tumpukan) Kode MK/ Pemrograman Terstruktur 2 ZK Abdurahman Baizal KK Algoritma dan Komputasi Stack (Tumpukan) 1 8/25/2015 Pendahuluan Pada bab ini kita akan membahas tentang stack (tumpukan) Struktur data stack

Lebih terperinci

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST

Modul Praktikum Algoritma dan Struktur Data BAB 6 LINKED LIST BAB 6 LINKED LIST 1. Tujuan Instruksional Umum a. Mahasiswa dapat melakukan perancangan aplikasi menggunakan struktur Linked List (Senarai Berkait) b. Mahasiswa mampu melakukan analisis pada algoritma

Lebih terperinci

LIST LINIER 1. DEFINISI

LIST LINIER 1. DEFINISI LIST LINIER 1. DEFINISI List linier adalah sekumpulan elemen bertype sama, yang mempunyai keterurutan tertentu, dan setiap elemennya terdiri dari dua bagian, yaitu informasi mengenai elemennya, dan informasi

Lebih terperinci

MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN

MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN PROGRAM STUDI TEKNIK KOMPUTER FAKULTAS TEKNIK UNIVERSITAS ISLAM 45 BEKASI 2015 1 Peraturan : 1. Mahasiswa harus berpakaian rapi dalam mengikuti praktikum. 2. Mahasiswa

Lebih terperinci

BAB 1 KONSEP DASAR BAHASA C

BAB 1 KONSEP DASAR BAHASA C BAB 1 KONSEP DASAR BAHASA C 1. Sejarah dan Standar C Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richard pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian

Lebih terperinci

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB

1. Inggriani Liem Catatan Kuliah Algoritma & Pemrograman, Jurusan Teknik Informatika ITB Pertemuan Ke 6 : Representasi Fisik List Linier Referensi: 1. Inggriani Liem. 2003. Catatan Kuliah & Pemrograman, Jurusan Teknik Informatika ITB 2. Rinaldi Munir. 2003. dan Pemrograman II. Bandung : Penerbit

Lebih terperinci

MODUL PRAKTIKUM ALGORITMA DAN PEMOGRAMAN I. Oleh : Wahyu Widodo, S.Kom

MODUL PRAKTIKUM ALGORITMA DAN PEMOGRAMAN I. Oleh : Wahyu Widodo, S.Kom MODUL PRAKTIKUM ALGORITMA DAN PEMOGRAMAN I Oleh : Wahyu Widodo, S.Kom Pertemuan I Pengantar Algoritma dan Pengenalan C++ 1. 1. ALGORITMA Kata algoritma berasal dari kata-kata di bawah ini : Al Khuwarizmi

Lebih terperinci

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Tree (Pohon)

Kode MK/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Tree (Pohon) Kode MK/ Pemrograman Terstruktur 2 ZK Abdurahman Baizal KK Algoritma dan Komputasi Tree (Pohon) 1 8/25/2015 Pendahuluan Dalam bab ini kita akan khusus membahas mengenai binary tree Pembahasan tentang tree

Lebih terperinci

BAB II STACK Atau TUMPUKAN

BAB II STACK Atau TUMPUKAN BAB II STACK Atau TUMPUKAN List Linear (Daftar Linear). List linier adalah sekumpulan elemen bertipe sama, yang mempunyai keterurutan tertentu, yang setiap elemennya disebut simpul (node). Simpul terdiri

Lebih terperinci

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer

PERTEMUAN VI POINTER 6.1 Tujuan Praktikum 6.2 Teori Penunjang Pointer PERTEMUAN VI POINTER 6.1 Tujuan Praktikum Praktikan mengenal type data Pointer, mengerti tentang konsep dasar dari pointer, dapat mendeklarasikan pointer di Pascal serta dapat menggunakannya di dalam sebuah

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

STRUKTUR DATA. Pengajar Jaidan Jauhari,, MT. Alamat Halaman 1

STRUKTUR DATA. Pengajar Jaidan Jauhari,, MT. Alamat  Halaman 1 STRUKTUR DATA Pengajar Jaidan Jauhari,, MT Alamat Email jaidan_j@ilkom.unsri.ac.id jaidan_j@yahoo.com Disarikan Dari Berbagai Sumber, Terutama Dari Diktat Struktur Data Informatika ITB Karangan Dr. Inggriani

Lebih terperinci

STRUKTUR DATA. Pengajar Jaidan Jauhari,, MT. Alamat Halaman 1

STRUKTUR DATA. Pengajar Jaidan Jauhari,, MT. Alamat  Halaman 1 STRUKTUR DATA Pengajar Jaidan Jauhari,, MT Alamat Email jaidan_j@ilkom.unsri.ac.id jaidan_j@yahoo.com Disarikan Dari Berbagai Sumber, Terutama Dari Diktat Struktur Data Informatika ITB Karangan Dr. Inggriani

Lebih terperinci

IKG2A3/ Pemrograman Terstruktur 2

IKG2A3/ Pemrograman Terstruktur 2 IKG2A3/ Pemrograman Terstruktur 2 ZK Abdurahman Baizal KK Algoritma dan Komputasi Representasi Fisik List Linier 1 8/25/2015 Pendahuluan Setelah representasi logic, perlu dilakukan represntasi fisik untuk

Lebih terperinci

PENGENALAN C++ DADANG MULYANA 2012

PENGENALAN C++ DADANG MULYANA 2012 PENGENALAN C++ dadang mulyana 202 PENGENALAN C++ DADANG MULYANA 202 Bahasa C merupakan bahasa pendahulu dari bahasa C++. Pencipta C adalah Brian W. Kernighan dan Dennis M. Ritchie pada sekitar tahun

Lebih terperinci

STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat

STRUKTUR DATA. Pengajar. Jaidan Jauhari, M.T. Alamat STRUKTUR DATA Pengajar Jaidan Jauhari, M.T. Alamat Email jaidan_j@ilkom.unsri.ac.id jaidan_j@yahoo.com Disarikan Dari Berbagai Sumber, Terutama Dari Diktat Struktur Data Informatika ITB Karangan Dr. Inggriani

Lebih terperinci

MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN

MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN MODUL PRAKTIKUM ALGORITMA DAN PEMROGRAMAN LABORATORIUM KOMPUTER FAKULTAS ILMU KOMPUTER UNIVERSITAS SRIWIJAYA 2015 Universitas Sriwijaya Fakultas Ilmu Komputer Laboratorium LEMBAR PENGESAHAN MODUL PRAKTIKUM

Lebih terperinci

Algoritma dan Struktur Data. Linked List

Algoritma dan Struktur Data. Linked List Algoritma dan Struktur Data Linked List Syntax: struct nama_struct { tipe_data_1 nama_var_1; tipe_data_2 nama_var_2; tipe_data_3 nama_var_3; }; 2 KONSEP ALOKASI MEMORY DINAMIS 1. Deklarasikan pointer yang

Lebih terperinci

Pendahuluan Struktur Data. Nisa ul Hafidhoh

Pendahuluan Struktur Data. Nisa ul Hafidhoh Pendahuluan Struktur Data Nisa ul Hafidhoh nisa@dsn.dinus.ac.id 08156114760 Tujuan Mahasiswa dapat melakukan pemrograman dalam skala menengah dengan memanfaatkan struktur data internal yang kompleks dan

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

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

Pohon Biner. Tim Pengajar IF2030 Semester I/ /8/2009 FNA/IF2030/Sem

Pohon Biner. Tim Pengajar IF2030 Semester I/ /8/2009 FNA/IF2030/Sem Pohon Biner Tim Pengajar IF2030 Semester I/2009-2010 12/8/2009 FNA/IF2030/Sem. 1 2008-2009 1 Contoh Persoalan - 1 Menu dalam Aplikasi Komputer Contoh (Ms Word): File Open Close Save Table Draw Insert Table

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

BAB VI BAHASA C Pendahuluan

BAB VI BAHASA C Pendahuluan BAB VI BAHASA C2 6.1 Pendahuluan Bahasa C merupakan evolusi dari bahasa BCPL yang dibuat oleh Martin Richards pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan

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

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB IX LINKED LIST (SENARAI BERANTAI) BAB IX LINKED LIST (SENARAI BERANTAI) Linked list atau biasa disebut senarai berantai adalah suatu kumpulan data yang saling terhubung antar 1 data dengan data berikutnya. Suatu element (disebut dengan

Lebih terperinci

Representasi Logic List Linier

Representasi Logic List Linier IKG2A3/ Pemrograman Terstruktur 2 ZK Abdurahman Baizal KK Algoritma dan Komputasi Representasi Logic List Linier 1 8/25/2015 Pendahuluan Dalam bab ini, akan dibahas mengenai representasi logic dari list

Lebih terperinci

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan)

PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan) PRAKTIKUM ALGORITMA & PEMROGRAMAN III MODUL_06 Stack (Tumpukan) inslls_05@yahoo.co.id A. Pembahasan Stack Algoritma stack merupakan struktur data yang mengimplementasi dari aturan LIFO (Last In First Out).

Lebih terperinci

GANJIL 2009/2010 NIM: Algoritma dan Struktur Data / CS2014 Nama :

GANJIL 2009/2010 NIM: Algoritma dan Struktur Data / CS2014 Nama : UJIAN AKHIR SEMESTER GANJIL 2009/2010 NIM: Algoritma dan Struktur Data / CS2014 Nama : HARI : Rabu, 6 Januari 2010 Tanda tangan: WAKTU : 135 menit DOSEN : TIM SIFAT : Tutup Buku 1 2 3 4 5 T Petunjuk: Periksalah

Lebih terperinci

PENGANTAR BAHASA C++

PENGANTAR BAHASA C++ PENGANTAR BAHASA C++ SEJARAH SINGKAT BAHASA C Program C merupakan bahasa komputer yang sangat singkat & tidak memiliki kepanjangan. Bahasa ini diciptakan oleh Dennis Ritchie sekitar tahun 1972. Hingga

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

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

Array dan Matriks. IF2121 / Algoritma dan Struktur Data Sem / /7/2017 IF2121/sem /2018 1

Array dan Matriks. IF2121 / Algoritma dan Struktur Data Sem / /7/2017 IF2121/sem /2018 1 Array dan Matriks IF2121 / Algoritma dan Struktur Data Sem. 1 2017/2018 9/7/2017 IF2121/sem. 1 2017/2018 1 Array 9/7/2017 IF2121/sem. 1 2017/2018 2 Definisi Array adalah koleksi objek yang terdiri dari

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 Modul ke-1, Pertemuan ke-1 Nama file : P01-XXX (XXX adalah 3 digit terakhir NIM) Deskripsi: Senarai, Traversal

MODUL PRAKTIKUM STRUKTUR DATA Modul ke-1, Pertemuan ke-1 Nama file : P01-XXX (XXX adalah 3 digit terakhir NIM) Deskripsi: Senarai, Traversal MODUL PRAKTIKUM STRUKTUR DATA Modul ke-1, Pertemuan ke-1 Nama file : P01-XXX (XXX adalah 3 digit terakhir NIM) Senarai, Traversal Deklarasi global: type TInfo = integer type Address = pointer to Elemen

Lebih terperinci

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus.

2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus. 1 ARRAY & LINKED LIST MODUL 1 Standar kompetensi: 1. Mahasiswa mengetahui perbedaan array dan linked list. 2. Mahasiswa dapat membuat dan menggunakan array dan linked list dalam suatu kasus. 3. Mahasiswa

Lebih terperinci

Algoritma dan Struktur Data. Ramos Somya

Algoritma dan Struktur Data. Ramos Somya Algoritma dan Struktur Data Ramos Somya Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat banyak record,

Lebih terperinci

Keg. Pembelajaran 2 : Mengenal Bahasa C++

Keg. Pembelajaran 2 : Mengenal Bahasa C++ Keg. Pembelajaran 2 : Mengenal Bahasa C++ 1. Tujuan Kegiatan Pembelajaran Setelah mempelajari materi kegiatan pembelajaran ini mahasiswa akan dapat : 1) Mengenal secara baik sintak-sintak dalam bahasa

Lebih terperinci

Games and Quiz PT II. Dr. Putu Harry Gunawan, MSi.,MSc. phg-simulation-laboratory.com

Games and Quiz PT II. Dr. Putu Harry Gunawan, MSi.,MSc. phg-simulation-laboratory.com Games and Quiz PT II by Dr. Putu Harry Gunawan, MSi.,MSc. phg-simulation-laboratory.com Games 1 (a). Penyisipan selalu dilakukan di atas (b). Penghapusan selalu dilakukan pada elemen pertama (c). Penghapusan

Lebih terperinci

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs. Algoritma dan Struktur Data Ramos Somya, S.Kom., M.Cs. Penggunaan record dalam jumlah yang banyak alokasi memory konvensional tidak bisa diandalkan. Misal kita akan bekerja dengan file yang menyimpan sangat

Lebih terperinci

Bagian I. Studi Kasus [82] Tanda tangan:

Bagian I. Studi Kasus [82] Tanda tangan: UJIAN TENGAH SEMESTER GANJIL NIM: 2010/2011 dan Struktur Data / CS2014 Nama : HARI : Kamis, 30 Oktober 2009 WAKTU : 110 menit DOSEN : TIM SIFAT : Tutup Buku, No Electronic Device Tanda tangan: Petunjuk:

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA

ALGORITMA DAN STRUKTUR DATA Modul ke: 10 Fitrianingsih Fakultas FASILKOM ALGORITMA DAN STRUKTUR DATA JENIS-JENIS TREE SKom., MMSI Program Studi Sistem Informasi JENIS-JENIS TREE Pohon (Tree) adalah graf terhubung yang tidak mengandung

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

IT234 - Algoritma dan Struktur Data. Ramos Somya

IT234 - Algoritma dan Struktur Data. Ramos Somya IT234 - Algoritma dan Struktur Data Ramos Somya Asal kata Algoritma berasal dari nama seorang ilmuan Persian yang bernama Abu Ja far Mohammed lbn Musa al-khowarizmi, yang menulis kitab al jabr w al-muqabala

Lebih terperinci

Algoritma dan Pemrograman

Algoritma dan Pemrograman Algoritma dan Pemrograman bagian 2 2009 Modul ini menjelaskan tentang bahasa C dan apa saja yang dibutuhkan bila kita akan menulis suatu program dengan bahasa C. Editor yang dipakai adalah Turbo C++ 4.5.

Lebih terperinci

BAB 4 PENGENALAN BAHASA C

BAB 4 PENGENALAN BAHASA C Bab 4 Pengenalan Bahasa C 35 BAB 4 PENGENALAN BAHASA C TUJUAN PRAKTIKUM 1. Mengetahui sejarah perkembangan bahasa C. 2. Mengerti struktur program bahasa C. 3. Mengerti konsep tipe data, variabel, & operator

Lebih terperinci

IKG2A3/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Variasi List Linier

IKG2A3/ Pemrograman Terstruktur 2. ZK Abdurahman Baizal. KK Algoritma dan Komputasi. Variasi List Linier IKG2A3/ Pemrograman Terstruktur 2 ZK Abdurahman Baizal KK Algoritma dan Komputasi Variasi List Linier 1 8/25/2015 Pendahuluan Pada Bab ini kita akan membahas tentang beberapa di antara variasi list linier,

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

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

MODUL PRAKTIKUM STRUKTUR DATA

MODUL PRAKTIKUM STRUKTUR DATA MODUL PRAKTIKUM STRUKTUR DATA TREE (POHON) Oleh : SUPRAPTO, S.Kom PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS PGRI RONGGOLAWE (UNIROW) TUBAN 2012/2013 MODUL V TREE (POHON) 5.1. TREE (POHON)

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

(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

Dasar Pemrograman. Visual Studio Program C++ Sederhana. Yoannita, S.Kom.

Dasar Pemrograman. Visual Studio Program C++ Sederhana. Yoannita, S.Kom. Visual Studio 2008 Dasar Pemrograman Program C++ Sederhana. C/C++ C++ merupakan perkembangan leboh lanjut dari C. Bahasa C dikembangkan tahun 1972 oleh Dennis Richie di Bell Telephone laboratories. Oleh

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

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

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

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama).

PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama). PERTEMUAN V PEMROGRAMAN TERSTRUKTUR DENGAN VISUAL C++ 6.0 STRUKTUR BAHASA C Setiap bahasa C mempunyai satu fungsi dengan nama main (program utama). Setiap program akan dieksekusi dimulai dari statement

Lebih terperinci

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION

ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION ALGORITMA DAN STRUKTUR DATA POINTER DAN FUNCTION POINTER POINTER ADALAH SUATU VARIABEL PENUNJUK, BERISI NILAI YANG MENUNJUK ALAMAT SUATU LOKASI MEMORI TERTENTU. JADI POINTER TIDAK BERISI NILAI DATA, MELAINKAN

Lebih terperinci

TUGAS PENDAHULUAN MODUL 12 PENGENALAN DAN IMPLEMENTASI STRUKTUR DATA STACK

TUGAS PENDAHULUAN MODUL 12 PENGENALAN DAN IMPLEMENTASI STRUKTUR DATA STACK TUGAS PENDAHULUAN MODUL 12 PENGENALAN DAN IMPLEMENTASI STRUKTUR DATA STACK Prepared by: Ardianto Satriawan (02-2015) Pengenalan Pengertian Stack Pada Tugas Pendahuluan praktikum kali ini, anda tidak diminta

Lebih terperinci

DIG1G3 Implementasi Struktur Data

DIG1G3 Implementasi Struktur Data DIG1G3 Implementasi Struktur Data Program Studi Diploma III Teknik Informatika Fakultas Ilmu Terapan Telkom University Dosen: Cahyana, S.T., M.Kom. Indra Azimi, S.T., M.T. 2 Stack (Tumpukan) Stack is a

Lebih terperinci

Komentar, Identifier, Konstanta dan Variabel

Komentar, Identifier, Konstanta dan Variabel PEMROGRAMAN BERORIENTASI OBJEK Komentar, Identifier, Konstanta dan Variabel Budhi Irawan, S.Si, M.T KOMENTAR PROGRAM Dalam proses pengembangan sebuah program, pasti akan disibukan dengan penulisan kode-kode

Lebih terperinci

Penerapan BFS dan DFS dalam Garbage Collection

Penerapan BFS dan DFS dalam Garbage Collection Penerapan BFS dan DFS dalam Garbage Collection Nugroho Satriyanto 13514038 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Bandung, Indonesia 13514038@std.stei.itb.ac.id

Lebih terperinci

BAB II STACK (TUMPUKAN)

BAB II STACK (TUMPUKAN) BAB II STACK (TUMPUKAN) Stack merupakan metode dalam menyimpan atau mengambil data ke dan dari memori. Stack dapat dibratkan sebuah tumpukan barang dalam sebuah tempat yang hanya memiliki satu pintu diatsnya

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

Variasi List Linier. Nisa ul Hafidhoh, MT

Variasi List Linier. Nisa ul Hafidhoh, MT Variasi List Linier Nisa ul Hafidhoh, MT nisa@dsn.dinus.ac.id Variasi Variasi List dengan Dummy Circular List Double Linked list Variasi List dengan Dummy Elemen fiktif / elemen dummy : elemen yang sengaja

Lebih terperinci

a[0] a[1] a[2] a[3] a[4] a[5] x

a[0] a[1] a[2] a[3] a[4] a[5] x Array Algoritme dan Pemrograman Kuliah #8 Array Dalam matematika dikenal variabel berindeks x 0, x 1, x 2,, x n-1. Angka 0, 1, 2,, n-1 pada variabel x disebut sebagai indeks atau subscript. Variabel berindeks

Lebih terperinci

Algoritma Pemrograman & Struktur Data

Algoritma Pemrograman & Struktur Data MODUL PERKULIAHAN Algoritma Pemrograman & Struktur Data Array Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Fakultas Ilmu Informatika Komputer 02 87042 Abstract Penjelasan mengenai array dan penggunaannya

Lebih terperinci

Bahasa C-M6 By Jamilah, Skom 1

Bahasa C-M6 By Jamilah, Skom 1 BAB 1 KONSEP DASAR BAHASA C 1.1 SEJARAH DAN STANDAR C Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richard pada tahun 1967. Bahasa ini memberkan ide kepada ken thompson yang kemudian

Lebih terperinci

MODUL PRAKTIKUM STRUKTUR DATA

MODUL PRAKTIKUM STRUKTUR DATA MODUL PRAKTIKUM STRUKTUR DATA OPERASI PENAMBAHAN ELEMEN PADA SENARAI/LIST Mata Kuliah Bahasa Pemrograman Software Dosen : Struktur Data : C++ : C-Free : Taofik Muhammad AMIK HASS BANDUNG LIST (Senarai)

Lebih terperinci

MODUL I PENGENALAN IDE C++, ALGORITMA DAN PEMROGRAMAN

MODUL I PENGENALAN IDE C++, ALGORITMA DAN PEMROGRAMAN MODUL I PENGENALAN IDE C++, ALGORITMA DAN PEMROGRAMAN A. TUJUAN Setelah mempelajari bab ini diharapkan mahasiswa akan mampu : 1. Mengenali dan menggunakan IDE C++ dengan baik. 2. Mengenal dan memahami

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

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

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

LAPORAN PRAKTIKUM IV. Oleh:

LAPORAN PRAKTIKUM IV. Oleh: LAPORAN PRAKTIKUM IV QUEUE Disusun untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data Dibimbing oleh Ibu Triyanna Widyaningtyas Oleh: MUHAMMAD BAKHRUR RIZKI 150533604505 S1 PTI-C /2015 UNIVERSITAS

Lebih terperinci

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE PRAKTIKUM ALGORITMA DAN STRUKTUR DATA MODUL KE-2 STACK DAN QUEUE LABORATORIUM PEMROGRAMAN PROGRAM STUDI TEKNIK INFORMATIKA FAKULTAS TEKNIK UNIVERSITAS MUHAMMADIYAH MALANG 2015 I. TUJUAN II. Mahasiswa mampu

Lebih terperinci

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS

STRUKTUR DATA. By : Sri Rezeki Candra Nursari 2 SKS STRUKTUR DATA By : Sri Rezeki Candra Nursari 2 SKS Penilaian : Gasal TA 2013/2014 UAS = 35% UTS = 30% ABSEN = 5% TUGAS = 30% Jumlah = 100% Tugas kirim ke : dosen.it2011@gmail.com Batas Tugas 9 hari setelah

Lebih terperinci

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini:

PENGENALAN BAHASA C. A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini: PENGENALAN BAHASA C A. Struktur Kode Program dalam Bahasa C Secara garis besar, suatu kode program dalam bahasa C memiliki struktur umum seperti ini: Kebanyakan pemrogram jarang memberikan keterangan/

Lebih terperinci

Konsep Dasar Pemrograman Dan Pengenalan C++

Konsep Dasar Pemrograman Dan Pengenalan C++ PRAKTIKUM 1 DAN 2 Konsep Dasar Pemrograman Dan Pengenalan C++ I. KONSEP DASAR PEMROGRAMAN Program adalah deretan instruksi yang digunakan untuk mengendalikan komputer, sehingga komputer dapat melakukan

Lebih terperinci

Tree (Struktur Data) Nisa ul Hafidhoh, MT

Tree (Struktur Data) Nisa ul Hafidhoh, MT Tree (Struktur Data) Nisa ul Hafidhoh, MT Struktur Data Linier 1 5 8 9 2 ARRAY 0 1 2 3 n Head Tail QUEUE O U T 1 2 3 4 STACK 4 3 2 1 I N 10 8 14 LINKED LIST Struktur Tree Struktur Tree adalah struktur

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

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