BAB 1 KONSEP DASAR. Algoritma adalah urutan langkah-langkah logis untuk menyelesaikan sebuah masalah yang disusun secara sistematis.

Ukuran: px
Mulai penontonan dengan halaman:

Download "BAB 1 KONSEP DASAR. Algoritma adalah urutan langkah-langkah logis untuk menyelesaikan sebuah masalah yang disusun secara sistematis."

Transkripsi

1 BAB 1 KONSEP DASAR 1.1 Algoritma Algoritma + struktur data = program Algoritma adalah urutan langkah-langkah logis untuk menyelesaikan sebuah masalah yang disusun secara sistematis. Notasi untuk menuliskan algoritma disebut notasi algoritmik yang tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer maka program dalam notasi algoritmik harus ditranslasikan {diterjemah} kedalam notasi bahasa pemograman yang dipilih. Notasi algoritmik Instruksi Bentuk umum Contoh Pemberian harga nama-data nama data P Q nama-data konstanta P Q nama-data ekspresi P Q Masukan Input (nama-data) input (N) input (harga) Keluaran output (nama-data) output (konstanta) output (ekspresi) output (N) output ( hello ) output (X+Y) Pemilihan kondisi If kondisi then aksi-1 else aksi-2 Pengulangan depend on (nama-data) aksi-1 aksi-2 Repeat N times Aksi Repeat Aksi Until kondisi-berhenti While kondisi do Aksi Repeat 5 times Output ( hello ) Repeat X X+1 Until X>5 While X <= 5 do X X+1 Itraversal [1...N] Aksi X traversal [1..5] Output ( hello ) 1.2 Pengertian Struktur Data Struktur Data adalah membuat sebuah struktur penyimpanan data yang digunakan saat program dijalankan. 58

2 Struktur data berada pada level pemograman dimana digunakan untuk tempat penyimpanan data yang digunakan oleh program terkaikt dengan alokasinya dimemori (bukan storage atau hardisk). Struktur alokasi dimemori untuk menyimpan data yang sedang digunakan oleh Program inilah fokus dari struktur data. Ilustrasi dari struktur data dapat dilihat pada gambar berikut : Lingkup Struktur Data Data Menggunakan Data Memori Dapat disimpan Hardisk/ Storage Gambar 1 Ilustri Struktur data Tujuan Struktur Data Struktur data bertujuan agar cara merepresentasikan data dalam membuat program dapat dilakukan secara efisien dalam pengolahan di memori dan pengolahan penyimpanan dari program ke storage juga lebih mudah dilakukan. Struktur data sebenarnya meliputi larik (array) dan record (rekaman) pada berkas beruntun (sequential file) Langkah Pembuatan Struktur Data Pembuatan Struktur data dimulai dari : Langkah 1 : Analisis perancangan data apa yang harus dimanipulasi di memori agar program yang dibuat lebih efisien. Langkah 2 : Mengimplementasikan struktur data dalam bahasa pemograman. Langkah 3 : Menggunakan struktur data yang sudah dibuat untuk memanipulasi data di memori dalam sebuah program. Contoh ilustrasi langkah-langkah berikut : Ilustrasi nama alamat TTL No_telp???? Keterangan Misalkan ada sebuah data manusia yang terdiri dari : *nama *alamat *TTL (Tempat/ Tanggal lahir) *no_telp (nomor telepon) Dan diperlukan untuk menyimpan data manusia, maka dalam logika akan dipersiapkan tempat untuk menyimpan 59

3 nama alamat TTL No_telp Palembang/ faiz jakarta april 2007 nama alamat TTL No_telp faiz jakarta Palembang/ april 2007 faris medan Palembang/ agustus 2009 sebuah data manusia, maka dibuat tipe data bentukan untuk menyimpan data manusia. Misalkan dari data manusia yang ada diisi dengan data seorang manusia. Misalkan dari data manusia yang ada digunakan untuk menampung beberapa data manusia. Dari ilustrasi diatas dapat dilihat bahwa struktur data adalah cara menyediakan tempat yang baik dan tersusun secara terstruktur agar data yang disimpan dapat dibaca dengan lebih mudah. Struktur data dapat dikatagorikan dengan type, yaitu : 1. Tipe data dasar a. Integer, untuk mendefinisikan nama-data yang menyimpan harga berupa bilangan bulat. Contoh : X : integer Nilai angka : integer [0..100] b. Real, untuk mendefinisikan nama-data berupa bilangan pecahan yang mengandung pecahan desimal. Contoh : Harga : real Potongan : real c. Karakter, untuk mendefinisikan nama-data yang menyimpan harga berupa karakter yang tidak dapat diproses secara aritmatika. Contoh : Nilai huruf : charakter [ A... E ] d. Logika, untuk mendefinisikan nama-data yang menyimpan harga benar-salah Contoh : Ketemu :boolean 2. Tipe data bentukkan Tipe data bentukkan adalah tipe yang didefinisikan sendiri oleh pemograman, yang disusun oleh satu atau lebih tipe dasar. Contoh: tipe data string, yang dibangun dari tipe dasar karakter 3. File 60

4 Sekumpulan rekaman yang disimpan dalam media penyimpanan mulai dari rekaman pertama sampai terakhir satu persatu, secara searah. 4. Tabel Tabel, untuk merepresentasikan sekumpulan informasi yang bertipe sama dan disimpan dengan urutan yang sesuai dengan definisi secara kontigu dalam memori komputer. Contoh : TabNilMhs : array [1...Nmhs] of real Tiga tingkatan struktur data 1. Definisi fungsional Pendefinisian struktur data dan operator-operator yang berlakupada struktur data tersebut mendefinisi tipe data 2. Representasi logika Pendefinisian spesifikasi type dari struktur yang menyengkut nama tipe dan spesifikasi semua operator. 3. Representasikan fisik (implementasikan) Spesifikasi dari struktur data sesuai dengan implentasinya dalam memori komputer. 1.3 Pengenalan C++ Tahun 1969, laboratorium Bell AT&T di Muray Hill, New Jersey menggunakan bahasa assembly ini untuntuk mengembangkan sistem operasi UNIX. Maksudnya adalah untuk membuat sistem operasi yang bersifat programmer_friendly. Setelah UNIX berjalan Ken Thompson seorang pengembang sistem dilabotorium tersebut mengembangkan bahasa baru dengan nama bahasa B. Oleh karena bahasa B ini masih bersifat interpret dan lambat, maka pada tahun 1971, sistem operasi UNIX kemudian ditulis ulang dengan ulang dengan menggunakan bahasa C, yaitu bahasa pemograman yangdikembangkan oleh Dennis Ritchie, seorang pengembang sistem dilaboratorium yang sama.pada tahun 1993, seorang doktor bernama Bjarne Stroustrup yang juga bekerja dilaboratorium yang sama menciptakan bahasa baru yaitu bahasa C++. Keistimewaan dari bahasa C++ adalah karena bahasa ini mendukung pemograman berarah objek atau yang lebih seringdikenal dengan istilah Object Oriented Programming (OOP). Konsep Kompilasi dan Eksekusi Program Preprocessor Mula-mula kode program akan dimasukkan kebagian preprosesor yaitu yang diawali dengan tanda # (pound) dan menghasilkan file yang akan dilewatkankebeberapa kompiler. Beberapa preprocessor tersebut diantaranya adalah sebagai berikut : #include #define #ifdef, dll Kode program (source code) preprosesor kompiler 61 assembler

5 Kompiler C++ Kompiler akan menterjemahkan kode program yang telah dilewatkan oleh preprosesor ke dalam bahasa assembly. Assembler Assembler menerima keluaran dari kompiler C++ dan akan membuat sebuah kode objek. Jika dalam kode program kita tidak menggunakan fungsi-fungsi yang terdapat pada library lain, maka kode objek ini akan langsung dieksekusi menjadi file EXE. Link Editor Bagian ini dikerjakan jika kode program yang kita buat menggunakan fungsi-fungsi yang disimpan pada suatu library lain. Link editor akan mengkombinasikan kode objek dan library yang ada untuk menjadikan sebuah file EXE. Contoh program yang ditulis dalam bahasa C #include <iostream.h> Int main() { Int X; Cout<< Masukkan sebuah bilangan bulat : ; Cin>>X; Cout<< Bilangan yang telah Anda masukkan adalah <<X; Return 0; } Contoh hasil yang akan diberikan dari program diatas adalah sebagai berikut : Masukkan sebuah bilangan bulat :2 Bilangan yang telah anda masukkan adalah 2 62

6 PENGURUTAN (SORTING) 2.1 Definisi Pengurutan Pengurutan (sorting) adalah proses mengatur sekumpilan objek menurut urutan atau susunan tertentu. Pengurutan tersebut dapat menaik (Ascending) atau menurun (Decending). Data yang diurut dapat berupa data type data sederhana (kecuali boolean) atau type data terstruktur. Keuntungan dari data yang telah berurut dapat mempercepat pencarian, juga dapat harga maksimum dan minimum secara langsung. 2.2 Metode Pengurutan Metode pengurutan yang akan dibahas: 1. Pengurutan Gelembung (Bubble sort) 2. Pengurutan Maksimum/ Minimum (Maximum/ minimum sort) 3. Pengurutan Sisip (insertion Sort) 2.3 Pengurutan Gelembung (Bubble Sort) PENGURUTAN BILANGAN DENGAN METODE BUBBLE SORT Proses Pengurutan Bubble Sort adalah nama yang diberikan pada prosedur untuk mengatur sekelompok bilangan dengan urutan dari kecil ke besar. Untuk mengurutkan bilangan diperlukan variabel array yang digunakan untuk menampung semua bilangan yang akan diurutkan. Proses pengurutan dilakukan dengan membandingkan semua elemen array satu persatu. Contoh :

7 Dalam metode bubble sort, pengurutan demulai dengan membandingkan elemen pertama untuk mendapatkan angka terbesar. Lalu angka tersebut ditempatkan pada elemen terakhir. 64

8 IMPLEMENTASI DALAM BENTUK FLOWCHART 1 START J = J I = 0 J = 0 I = I + 1 INPUT BIL BILLAR(I) < BIL=0 1 TIDAK N = N + 1 TEMP = BILLAR(I) BILLAR(I) = BILLAR(I+1) BILLAR(N) = BIL I = N - J 2 YA YA

9 PRINT BILLAR(I) I = I + 1 I = 0 J = N - 1 I = N TIDAK I = 0 END Bubble Sort tidak lain adalah pengulangan prosedur 1 hingga bilangan bilangan yang ada tersusun menurut urutan dari yang kecil ke yang besar. Contoh Buble Sort Pertama : Pada akhir proses pertama ini, bilangan yang terbesar menempati tempat yang sesuai. Kedua : Pada akhir proses kedua ini, bilangan terbesar kedua menempatkan tempat yang sesuai. Ketiga :

10 Bila proses ini dilanjutkan, tidak ada pertukaran tempat lagi bagi bilangan bilangan tersebut, sebab bilangan tersebut telah selesai disusun. BAB 2 SENARAI (List) 2.1 Pengertian Senarai (List) List atau senarai adalah sebuah pemikiran / konsep struktur data yang sangat dasar pada pemograman agar lebih fleksibel, di mana setiap elemen akan ditambahkan saat dibutuhkan, tidak dialokasikan dengan tempat tertentu dari awal. List merupakan kumpulan elemen dengan struktur tertentu. Struktur dasar dari list dapat dilihat pada gambar 2 yang merupakan list dengan tiga buah elemen. Kepala (first) Kepala (first) NULL Gambar 2 Senarai dengan Tigah Buah Elemen NULL Gambar 3 Representasi Lain Senarai dengan Tiga Elemen Sebuah list akan terdiri dari elemen pertama yang disebut dengan kepala atau first, next adalah alamat dari elemen berikutnya. serta beberapa elemen atau bahkan tanpa elemen yang biasa disebut list kosong. Misalkan jika kita ingin membuat sebuah elemen data nilai mahasiswa yang terdiri dari nomor induk, nama, dan nilai maka representasinya dapat dilihat pada gambar 4:

11 Nim nama nilai next 001 faiz A Petunjuk ke elemen berikutnya Gambar 4 Representasi Elemen 2.2 Tipe-tipe List List Kosong List kosong hanya terdiri dari sebuah petunjuk elemen yang berisi NULL (kosong). List kosong tidak memiliki satu buah elemen pun sehingga hanya berupa petunjuk awal elemen yang berisi NULL (kosong). Gambar 6 Senarai Kosong Kepala (first) NULL Sehingga list kosong merupakan list yang belum memiliki elemen yang terkait pada first. Sehingga ketika first diakses belum ada bendanya List Tunggal List tunggal adalah sebuah list yang elemennya hanya menyimpan informasi elemen setelahnya (Next) sehingga jalannya pengaksesan list hanya dapat dilakukan secara maju. List tunggal memiliki beberapa jenis list yaitu list tunggal dengan first dan tail, list tunggal dengan kepala first, dan list tunggal berputar. Representasi list tunggal dengan kepala dan tail (ekor) memiliki dua buah petunjuk elemen yaitu elemen pertama (first) dan petunjuk elemen terakhir (tail), sehingga pada awal pengaksesan, elemen yang dapat diakses adalah elemen awal dan akhir. Ekor (tail) Kepala (first) Gambar 5 senarai tunggal dengan dua petunujuk elemen Deklarasi list tunggal dengan kepala dan ekor : NULL

12 Type list : < First : elemen, Tail : elemen > Representasi list tunggal dengan kepala hanya dapat diakses elemen pertamanya saja karena petunjuk hanya berupa petunjuk elemen awal (first). Kepala (first) NULL Gambar 6 senarai tunggal dengan kepala Representasi list tunggal berputar elemen terkhir ditandai dengan elemen setelahnya sama dengan elemen pertama seperti sehingga penelususran list akan berhenti jika petunjuk bantu telah sampai pada elemen yang elemen setelahnya sama dengan elemen yang ditunjuk oleh penunjuk elemen awal (first) yang dalam bahasa algoritmik : While now.text <> L1.first do {proses penelusuran list} Now now.while (end while) List ganda Gambar 7 senarai berputar List ganda adalah sebuah list yang elemennya menyimpan informasi elemen sebelumnya dan informasi elemen setelahnya sehingga penelusuran list dapat dilakukkan secara maju dan mundur. List ganda terdiri dari list ganda dengan kepala dan tail(ekor) dan list ganda dengan kepala dan list ganda berputar.

13 Representasi list ganda dengan kepala dan ekor, memiliki dua petunjuk yang dapat diakses (tail). Kepala (first) Ekor (tail) NULL NULL Gambar 8 senarai ganda dengan dua petunjuk Representasi list ganda dengan kepala, hanya memiliki sebuah petunjuk elemen yaitu penunjuk pada elemen awal list (first). Kepala (first) NULL NULL Gambar 9 senarai ganda dengan kepala Representasi list ganda berputar, elemen terakhir list ganda berputar ditandai dengan elemen setelahnya adalah merupakan elemen pertama list yang ditunjuk awal list (first). Kepala (first) 2.3 Operasi pada List Gambar 10 senarai ganda berputar Operasi-operasi yang dilakukan pada list adalah penelusuran (traversal),pencarian sebuah elemen (search),penciptaan (create),penambahan elemen (insert) dan penghapusan elemen (delete), menggabung Dua Buah List (concat) Penelusuran (traversal) Dibutuhkan untuk pemrosesan terhadap data/ informasi yang ada dielemen list, perlu dilakukan penelusaran list, yaitu mengunjungi setiap elemen list.

14 Traversal1 (input L:list) {untuk menelusuri list} {L terdefinisi, mungkin kosong} {elemen list L dikunjungi & telah diproses} Addres{address untuk traversal, tipe terdefinisi} Procedure Proses(input P:address) Procedure Insisialisasi {aksi sebelum proses dilakukan} Procedure terminasi {aksi sesudah semua pemrosesan} Inisialisasi(P) P first (L) While (P=Nil) do Proses(P) P Next(P) terminasi Traversal2 (input L:list) {untuk menelusuri list dengan kasus kosong} {L terdefinisi, mungkin kosong} {elemen list L dikunjungi & telah diproses} Addres{address untuk traversal, tipe terdefinisi} Procedure Proses(input P:address) Procedure Insisialisasi {aksi sebelum proses dilakukan} Procedure terminasi {aksi sesudah semua pemrosesan} First (L) = Nil then Input ( list kosong ) Inisialisasi First (L) Input Proses (P) P Next (L) While (P=Nil) terminasi Traversal3 (input L:list) {untuk menelusuri list} {L terdefinisi, tidak kosong} {elemen list L dikunjungi & telah diproses} Address{address untuk traversal, tipe terdefinisi} Procedure Proses(input P:address) Procedure Insisialisasi {aksi sebelum proses dilakukan} Procedure terminasi {aksi sesudah semua pemrosesan}

15 Inisialisasi(P) P first (L) Address(P) Next(P)=Nil Next(P) terminasi Pencarian Elemen List (Search) Search ini sering dipakai untuk mengenali elemen list berdasarkan nilai informasi yang disimpan pada elemen yang dicari.biasanya dengan alamat yang ditemukan, dilakukan suatu proses terhadap elemen list tersebut. searchnilai (input L:list, X:infoType, output P: address, found: boolean) {Found X terdefinisi} {P adalah alamat elemen dimana X ditemukan Nil jika tidak ditemukan} Found berharga true jika X ditemukan, Found berharga false jika X tidak ditemukan Read(X) Search Nilai(L,X,Prec,found) If found then Insertafter(L,Prec,P) P first(l) found false while (P = Nil) and (not found) do if( X = info(p)) then found true else P Next(P) While p = Nil or found) Pencarian suatu elemen beralamat tertentu Search ini sering digunakan untuk memposisikan list pointer pada suatu elemen list. searchalamat (input L:list, X:infoType, output P: address, found: boolean) {Found P terdefinisi} {Ada elemen list yang beralamat P,

16 Found berharga true jika tidak Found berharga false} {P first(l) found false while (Pt = Nil) and (not found) do if (X = info(p)) then found true else P Next(Pt) While Pt = Nil or found)} Penciptaan List Penciptaan sebuah list berarti membuat sebuah list yang selanjutnya siap diproses ditambah data. Algoritma penciptaan sebuah list sebagai berikut : CreateList ( output L : List) {Bentuk list L yang kosong artinya first dari harga awal Nil} Void createlist (list *L) { *L = Nil; } Penyisipan sebuah List Penyisipan elemen dapat dilakukan sebagai elemen setelah sebuah elemen dengan alamat P atau elemen terakhir. Insert First Tambah sebuah elemen sebagai elemen pertama list,insert elemen pertama, list kosong : Kepala (first) Elemen baru Null Insert elemen pertama, list tidak kosong : Kepala (first) Null

17 Elemen baru Gambar 12 InsertFirst Procedure insertfirst( input/output L : List, p: address) {IS: List L mungkin kosong, P sudah dialokasi, P = Nil, Next (P) = Nil} {FS: P adalah elemen pertama list first} Next (P) first(l) First (L) P If First(L) = Nill then Next (P) First(L) Endif First(L) P Insert After Menyisipkan sebuah elemen beralamat P sebagai suksesor dari sebuah elemen list yang beralamat Prec. Elemen baru Kepala (first) Elemen baru Null Kepala (first) prec Null Procedure insertafter(input/output L : List, input Prec,P: address) {IS: Prec adalah elemen list, prec = Nil, P sudah dialokasi, P=Nil, Next (P) =Nil} {FS: P menjadi suksesor Prec} Void InsertAfter (List *L, address P) Next (P) Next (Prec) Next (Prec) P Insert Last Menyisipkan sebuah elemen beralamat P sebagai elemen terakhir sebuah list.

18 Elemen baru Kepala(first) Null Procedure insertlast(input/output L : List, input P: address) {IS: List L mungkin kosong P sudah dialokasi,p = Nil, Next(P) = Nil} {FS: P adalah elemen terakhir list L} Last: address {alamat elemen terakhir} If (first(l) = Nil)then Insertfirst (L,P) Else Last first (L) While (next (Last) = Nil) do Last Next(last) {endwhile, last adalah elemen terakhir} insertafter (L,last,P) Penghapusan Sebuah Elemen pada List (Delete) Penghapusan dapat dilakukan apabila elemen list tidak digunakan lagi. Penghapusan Elemen list di Awal Kepala (first) Kepala (first) Null Procedure DeleteFirst(input/output L : List, Output P: address) {IS: List L tidak kosong P minimal 1 elemen} {FS:Elemen pertama dihapus, P adalah alamat elemen pertama L sebelum penghapusan}

19 P first (L) First (L) Next(First(L)) Penghapusan Elemen List After/Tengah Kepala (first) Null Kepala (first) Null Null Procedure DeleteAfter(input/output L : List, Output P: address) {IS: List L tidak kosong Prec adalah elemen list, Next (prec) = Nil} {FS:Menghapus suksesor Prec, p adalah suksesor Prec sebelum penghapusan, next (Prec) yang baru adalah suksesor dari suksesor Prec sebelum penghapusan} P first (L) Next (Prec) Next(Next(Prec)) Next (P) Nil Penghapusan Elemen di Akhir List Kepala (first) Kepala (first) Null Null Null Procedure DeleteLast(input/output L : List, Output P: address) {IS: List L tidak kosong, minimal ada satu elemen} {FS:Elemen terakhir dihapus, list mungkin jadi kosong, p adalah alamat elemen terakhir list sebelum penghapusan} Last, PrecLast: address

20 Last first (L) PrecLast Nil {pred dari L tidak terdefinisi} {menelusuri List sampai elemen terakhir} While (next (Last) = Nil) do PrecLast Last Last Next (Last) {endwhile, Next (last) = Nil} P Last if (Preclast = Nil) then { list dgn 1 elemen} First (L) Nil Else Next (PrecLast) Nil Menghapus elemen tertentu dengen alamat P Procedure DeleteP(input/output L : List, Output P: address) {IS: List L tidak kosong, P adalah elem list L} {FS:menghapus P dari list, P mungkin elemen pertama, tengah, atau akhir} Prec : address if (P= first (L))then DeleteFirst (L,P) Else Prec First(L) While (next (Prec) = P) do Prec Next (Prec) {endwhile, Next (Prec) = P, hapus P} DeleteAfter (L, Prec, P) Menggabungkan Dua Buah List (Concat) Jika ada dua buah list dimana list kedua disambungkan ke list pertama maka last (L1) menjadi predesedor First(L2) Procedure concat(input L1, L2 : List, output L3 :List) {IS: L1=L2, L1=L3, dan L2=L3, L1,L2 mungkin kosong} {FS:L3 adalah hasil konkatenasi L1 dgn L2, L2 diletakkan dibelakang L1} Last1 : address {elemen terakhir list pertama

21 CreatList(L3) if (First (L1) = Nil)then first (L3) first(l2) else first (L3) First (L1) last1 First (L1) {menelusuri list sampai elemen terakhir} While (next (Last1) = Nil) do Last1 Next(Last1) {endwhile, Next(last1) = nil) Next (last1) First (L2)

22 BAB 3 REPRESENTASI FISIK LIST Representasi list adalah sekumpulan elemen bertipe sama yang terdiri dari 2 bagian : <Info:InfoType, Next: Address> dimana Infotype adalah tipe terdefinisi dan Next adalah alamat elemen berikutnya. List Representasi fisik adalah implementasi list dalam struktur data yang dapat ditangani oleh pemrosesan bahasa pemograman. Ada 2 cara untuk merepresentasikan list secara fisik yaitu berkait dan kontigu. Representasi berkait dapat diimplementasikan dalam 2 macam struktur fisik yaitu berkait dengan pointer dan berkait dengan tabel. Sedangkan representasi kontigu hanya dapat diimplementasikan dengan struktur yang secara fisik kontigu adalah tabel. 3.1 Representasi List berkait dengan Pointer Cara mengacu : Jika P adalah nama variabel yang bertipe pointer, maka P adalah alamat memori mesin dari elemen data yang ditunjuknya. Elemen data yang ditunjuknya boleh bertipe apa saja.

23 Contoh : KAMUS: Type Elmt : integer P: pointer to Elmt {maka P akan bertipe integer} Type Mhs : <NIM: integer, nama: string, Nilai: integer[0..100]> PMhs pointer to Mhs {Maka PMhs akan bertipe Mhs PMhs. NIM akan bertipe integer} Procedure Allocate (output P: Pointer) {Memberikan sebuah elemen yang ditunjuk oleh P} Procedure Deallocate (input P: Pointer) {Mengembalikan alamat P ke sistem} Contoh untuk pengisian sebuah elemen data yang bertipe sebagai berikut : KAMUS: Type Mhs : <NIM: integer, nama: string, Nilai: integer[0..100]> PMhs pointer to Mhs Algoritmik: Allocate (PMhs) {baru disediakan memori pada saat ini} PMhs. NIM PMhs. Nama Leni PMhs. Nilai 80 Pada saat sebuah elemen dihapus maka memori dapat dikembalikan ke sistem dengan prosedure Deallocate. Jadi Representasi fisik list linier berkait dengan pointer adalah : KAMUS: Type ElmtList : <Info: Infotype, Next: Address > Type Address: Pointer to ElmtList Type List: address {infotype adalah tipe terdefinisi} {deklarasi untuk variabel kerja} L: List {alamat elemen pertama list} P: Address { alamat untuk traversal} Maka ntuk mengacu elemen

24 dengan alamat P adalah: First(L) dituliskan menjadi L Info(P) dituliskan menjadi P.Info Next(P) dituliskan menjadi P.Next 3.2 Representasi List berkait dengan Tabel Representasi berkait dengan tabel alokasi memorinya tidak dinamis. Alokasi tabel sesuai dengan batasan indeksnya. Representasi fisik dengan tabel digunakan jika maksimum elemen datanya dapat diprediksi. Dengan representasi ini kita dapat menelusuri alamat elemen melalui indeks tabel. Representasi fisik list berkaitan dengan tabel adalah: KAMUS: {Tabel memori list, global} Constant IndekxMin: integer = 1 Constant IndekxMax: integer = 100 Constant Nil: integer = 0 Type InfoType :...{terdefinisi} Type ElmtList : <Info: InfoType, Next: Address> TabElmt: array [IndexMin...IndexMax] of ElmtList Type Address: Address { alamat pertama list siap dipakai} {deklarasi variable kerja} Type List: Address P: address Procedure IniTab {IS: sembarang} {FS: TabElmt{IndexMin..IndexMax] terinisialisasi untuk dipakai sebagai elemn list berkait elemen pertama yang dapat dipakai adalah FistAvail =1} {inisialisasi tabel yang akan dipakai sebagai memori list} Function Memfull boolean {true jika semua elemen tabel sudah dipakai, false jika tidak}

25 Procedure AllocTab(output P: Address) {IS: FirstAvail mungkin kosong} {FS: Jika FirstAvail ntidak Nil maka P adalah FirstAvail dan FirstAvail yang baru adalah Next(firstavail) Jika firstavail = Nil, P=Nil, tuliskan pesan {mengambil sebuah elemen siap pakai P} Procedure DeAllocTab (Input P: Address) {IS: FirstAvail mungkin kosong, P tidak Nil) {FS:firstAvail = P} {mengembalikan sebuah elemen P pada FirstAvail} Jika didefinisi : P: Address Maka untuk mengacu elemen dengan alamat P adalah: Info(P) dituliskan menjadi: TabElmtp. Info Next(P) dituliskan menjadi: TabElmtp. Next *Untuk Menginisialisasi Tabel Procedure IniTab {IS: sembarang} {FS: TabElmt[IndexMin...IndexMax] terinisialisasi untuk dipakai sebagai elemen list berkait elemen pertama yang dapat dipakai adalah FirstAvail = 1} {inisialisasi tabel yang akan dipakai sebagai memori List} i: address I traversal{indexmin..indexmax-1} TabElmt1. Next i+1 TabElmtIndexMax. Next Nil FirstAvail IndexMin Fungsi MemFull digunakan mengecek apakah sebuah elemen tabel sudah dipakai Function MemFull Boolean {true jika semua elemen tabel sudah dipakai, false jika tidak} (FirstAvail = Nil)

26 Prosedur Allocate digunakan jika kita akan memesan tempat untuk list Procedure Allocate(output P: Address) {IS: FirstAvail mungkin kosong} {FS: Jika firstavail tidak Nil maka P adalah FirstAvail dan FirstAvail yang baru adalah Next(FirstAvail) Jika FirstAvail = Nil, tulislah pesan tidak tersedia lagi elemen siap Pakai {mengambil sebuah elemen siap pakai P} If (not memfull) then P FirstAvail FirstAvail TabElmfirstAvail. Next else output ( tidak tersedia lagi elemn siap pakai 0 P Nil Jika elemen list tersebut tidak diperlukan lagi dan elemen tersebut sudah dihapus dari list maka tempatnya dikembalikan lagi ke tabel agar dapat digunakan untuk elemen list lainnya. Untuk Mengembalikan elemen list adalah: Procedure DeAllocTab (input P: Address) {IS: FirstAvail mungkin kosong, P tidak Nil} {FS: FirstAvail = P} {mengembalikan sebuah elemen p pada FirstAvail} P FirstAvail TabElmfirstAvail. Next FirstAvail FirstAvail P Beberapa contoh keadaan tabel untuk elemen list FirstAvail FirstAvail FirstList

27 FirstAvail Keadaan Awal Tabel terpakai 2 elemen L2 FirstList 2 1 L1 10 FirstAvail L1 L Info Next Info Next Info Next

28 3.3 Representasi Fisik List secara Kontigu Dengan representasi fisik kontigu, struktur data yang dapat menyimpan adalah tabel. Karena hanya tabel yang punya struktur Kontigu. Setiap elemen tabel mengandung informasi info. Sedangkan informasi mengenai Next tidak perlu lagi diseimpan secarabeksplisit, karena secara implisit sudah tersirat dalam struktur data yang menjadi tempat penyimpanannya. Elemen terakhirt tidak dikenali dari Next, karena Next tidak disimpan secara eksplisit, satusatunya cara untuk mengetahui elemen terakhir adalah dari alamatnya : P = Nil, dimana N terakhir dengan harus diketahuinya alamat elemen terakhir, maka representasi list L bukan murni seperti diatas, tetapi harus mengandung First(L) dan Last(L). {list direpresentasi pada tabel secara kontigu} KAMUS: Constant IndekxMin: integer = 1 Constant IndekxMax: integer = 100 Constant Nil: integer = 0 Type InfoType :...{elmtype : terdefinisi} Info : infotype : (tidak perlu mengandung next : karena dapat dikalkulasi) TabElmt: array [IndexMin...IndexMax] of info Type Address: integer[indexmin...indexmax,nil] {deklarasi variable kerja} N : address {nama elemen terakhir, karena field NEXT tidak ada secara eksplisit, maka satu-satunya jalan untuk mengenali elemen terakhir adalah Type List: Address First : list {deklarasi alamat} P : address {address untuk traversal} {maka first (L)..last(L) adalah indeks effektif elemen tabel anggota list {next (P) tidak terdefinisi utk P=N next (P) P P+1 Info (P) menjadi TabelmtListp.info}

29 4.1 Pengertian Tumpukan (Stack) BAB 4 TUMPUKAN (STACK) Tumpukan atau stack adalah salah satu konsep struktur data yang memiliki sistem kerja yang terakhir masuk adalah yang pertama keluar (LIFO = Last In First Out). Elemen atas tumpukan (Top of Stack) Sebuah stack hanya dapat ditambahkan dan dikurangi elemennya hanya dari sebuah sisi. Elemen paling atas dari sisi tersebut disebut elemen atas atau top of stack. Semua operasi pada sebuah stack diawali dari elemen atas ini, misalkan ingin mengambil elemen stack maka dilakukan satu persatu diawali dari elemen atas, dan jika ingin menambah elemen stack maka petunjuk elemen atas diganti menjadi elemen yang ditambahkan pada bagian atas stack. 4.2 Operasi pada Tumbukan Operasi Push Tumpukan (stack) Operasi push pada stack adalah operasi menambahkan elemen baru pada sebuah stack. Elemen baru Top Elemen baru Top

30 Tumpukan (stack) Procedure Push(input/output S : Stack, input P: address) {IS: Stack S mungkin kosong, P terdefinisi} {FS: P menjadi Top dari Stack S} If StackEmpty(S) then Top(S) P else Next (P) Top(S) Top(S) P Tumpukan (stack) Procedure Push(input/output S : Stack, input E: Elmts) {IS: Stack S mungkin kosong, E terdefinisi, alokasi} {FS: Top(S) berisi E} P : address Alokasi (P) Elmt (P) E If StackEmpty(S) then Top(S) P else Next (P) Top(S) Top(S) P Operasi POP Operasi pop pada stack adalah operasi mengambil sebuah elemen dari sebuah stack. Top dikeluarkan Top Procedure Pop(input/output S : Stack, output P:

31 address) {IS: Stack S terdefinisi, mungkin kosong} {FS: P adalah alamat elemen yang diambil} P Top(S) If not StackEmpty(S) then Top(S) Next( Top(S)) Procedure Pop(input/output S : Stack, output E:ElmtS) {IS: Stack S terdefinisi, tidak kosong} {FS: P adalah alamat elemen yang diambil} P Top(S); E.Info Info(P); E.Next Nil Top(S) Next( Top(S)) Dealokasi (P) 4.3 Stack Representasi Statis Stack dengan representasi statis biasanya diimplentasinya dengan menggunakan array. Sebuah array memiliki tempat yang dialokasikan diawal sehingga sebuah elemen yang dimasukan dalam sebuah array terbatas pada tempat yang ada pada array. Karena menggunakan array maka stack dengan representasi statis dapat mengalami kondisi elemen penuh. elemen Elemen Elemen Elemen Elemen Elemen array indeks Function StackEmpty (S: Stack) boolean {mengirimtrue jika stack kosong dan false jika stack kosong} KAMUS UMUM Constant Nmax: integer = 100 Constant Nil: integer = 0 Type Address: integer [0..NMax] {alamat 0 untuk menyatakan stack kosong} Type Elmts:...{terdefinisi, hanya terdiri dari info} Type Stack: <TOP: Address, TabElmt: array{1...nmax] of Elmts> S: Stack {cara penulisan ; TOP (S) dituliskan S.Top Info (P) dituliskan S.TsbElmtp.Elmts Next (P) dituliskan P P+1

32 (S.TOP = Nil) Procedure CreateStack(Output S:Stack) {IS: sembarang} {FS:Stack S tercipta, Top = Nil} Algoritma : S.Top Nil Procedure Pushkon(input/output S : Stack, input E:ElmtS) {IS: Stack S dan E terdefinisi} {FS: jika masih tersedia tempat maka E menjadi elemen paling baru dari stack S, jika tidak tersedia tempat lagi tampilkan pesan overflow } If (S.Top < Nmax) then Procedure Popkon(input/output S : Stack, input E:ElmtS) {IS: Stack S terdefinisi, mungkin kosong} {FS: jika stack S kosong, maka E= -99 Jikastack S tidak kosong maka Top = Top-1 E adalah elemen yang dipop}} If (StackEmpty(S)) then Output(E=-99) Else E S.TabElmts.Top S.Top S.Top + 1 S.Top S.Top 1 S.tabelmtss.top E Else Output( overflow ) 4.4 Stack Representasi Dinamis Stack dengan representasi dinamis biasanya diimplementasikan dengan menggunakan pointer yang menunjukkan pada elemen-elemen yang dialokasikan pada memori. Kepala (first) Gambar Representasi Tumpukkan dinamis NULL Karena semua operasi pada sebuah stack diawali dengan elemen yang paling atas maka jika menggunakan representasi dinamis saat elemen ditambah akan menggunakan penambahan elemen pada awal stack (addfirst) dan saat pengambilan atau penghapusan elemen menggunakan penghapusan diawal stack (delfirst).

33 KAMUS UMUM Type infotype :...{type terdefinisi, menyimpan informasi elemen stack} Type Address: pointer to ElmtStack Type ElmtStack: <Top: Address> S: Stack {cara penulisan : Top (S) dituliskan S.Top Info (P) dituliskan P. Info Next (P) dituliskan P. Next Primitif Alokasi : Allocate (P) Dealokasi : Dealocate (P)} Function StackEmpty (S: Stack) boolean {mengirimtrue jika stack kosong dan false jika stack kosong} (S.TOP = Nil) Procedure CreateStack(Output S:Stack) {IS: sembarang} {FS:Stack S tercipta, Top = Nil} S.TOP Nil Procedure PushP (input/output S : Stack, input P: Address) {IS: Stack S terdefinisi, mungkin kosong, P = Nil} {FS: jika masih tersedia tempat maka E menjadi elemen paling baru dari stack S, jika tidak tersedia tempat lagi tampilkan pesan overflow } If Not stackempty (S) then P.Next S.Top Latihan Soal Procedure Popkon(input/output S : Stack, input P: Address) {IS: Stack S terdefinisi, mungkin kosong} {FS: jika stack kosong, tulis pesan stack kosong Jika Stack tidak kosong P adalah alamat Top sebelum Pop, Stack mungkin menjadi kosong}} P S.Top If not StackEmpy (S) then S.Top S.Top. Next x 3 y 5 createstack (s)

34 push (s,x) push (s,4) pop (s,z) push (s,y) push (s,3) push (s,z) pop (s,x) push(s,2) push(s,x) while not EmptyStack (s) do pop (s,x) output(x) {endwhile} y 1 createstack (S) push (S,5) pop (S,X Z X+Y Pop (S,X) Push (S,3) Push(S,Z) Pop (S,X) Push(S,2) Push(S,X) while not EmptyStack (s) do

35 pop (s,x) output(x) {endwhile} ANTRIAN (QUEUE) 4.1 Pengertian Antrian Antrian atau queue adalah salah satu konsep struktur data yang memiliki sistem kerja pertama masuk maka akan menjadi yang pertama keluar (FIFO = First In First Out) Last First masuk keluaran Antrian (Queue)

36 Gambar representasi Antrian Pada sebuah antrian elemen hanya dapat ditambahkan melalui sisi belakang queue dan elemen hanya dapat diambil dari sisi bagian depan queue. Oleh karena itu, ada dua penunjuk elemen pada sebuah queue yaitu belakang atau last sebagai penunjuk elemen paling belakang dan depan atau first sebagai penunjuk elemen bagian depan. Kondisi antrian yang menjadi perhatian adalah: 1. Penuh Bila elemen pada antrian mencapai kapasitas maksimum antrian. Pada kondisi ini tidak mungkin dilakukan penambahan keantrian. Penambahan elemen menyebabkan kondisi kesalahan overflow. 2. Kosong Bila tak ada elemen pada antrian. Pada kondisi ini tidak mungkin dilakukan pengambilan elemen dari antrian. Pengambilan elemen menyebabkan kondisi kesalahan underflow. 4.5 Operasi pada Antrian Operasi yang dapat dilakukan pada antrian atau queue adalah memasukkan elemen dari sisi bagian belakang queue dan mengeluarkan elemen dari sisi depan queue. Last First Last First masuk keluaran Antrian (Queue) Antrian (Queue) Aturan Memasukkan Queue Last First Last First keluaran Antrian (Queue) Antrian (Queue)

37 Antrian (queue) adalah list linier yang: 1. Dikenali elemen pertama (Head) dan terakhirnya (Tail) 2. Penyisipan elemen selalu dilakukan setelah elemen terakhir 3. Penghapusan elemen selalu dilakukan pada elemen pertama 4. Elemen yang satu dengan yang lain diakses melalui Next. Contoh: Antrian tersebut berisi 6 elemen yaitu A,B,C,D,E dan F. Elemen A terletak dibagian depan antrian, elemen F terletak dibelakang antrian. Depan/Front A B C D E F Belakang/Tail Memasukkan elemen G maka penambahan elemen dilakukan dibelakang Depan/Front A B C D E F G Belakang/Tail Jika ada elemen yang dihapus maka elemen A akan dihapus terlebih dahulu Depan/Front A B C D E F G

38 Belakang/Tail Function QEmpty (Q: Queue) boolean {mengirim true jika antrian kosong dan false jika antrian kosong} (Q.Head = Nil) and (Q.Tail = Nil) Procedure CreateStack(Output Q:queue) {IS: sembarang} {FS:terbentuk sebuah queue yang kosong} Q.Head Nil Q.Tail Nil rocedure InsertQ (input/output Q : Queue, input P: Address) {IS: antrian Q terdefinisi, mungkin kosong P sudah dialokasi, P = Nil, Next (P) = Nil} {FS: P menjadi elemen Tail dari antrian Q} Memeriksa antrian kosong Pembuatan queue kosong

39 If QEmpty (Q) then Head (Q) P Else Next (tail (Q)) Tail (Q) P P Penambahan sebuah elemen pada antrian Procedure DeleteQ (input/output Q : Queue, output P: Address) {IS: Q terdefinisi, tidak kosong } {FS: P adalah alamat yang diambil, P = Nil, Next (P) = Nil, antrian mungkin jadi kosong} P Head (Q) Head (Q) Next (Head(Q)) If Head (Q) = Nil then Tail (Q) Nil Else Next (P) nil Penghapusan sebuah elemen pada antrian Representasi Statis Queue dengan representasi statis biasanya diimplementasikannya dengan menggunakan array. Sebuah array memiliki tempat yang dialokasikan diawal sehingga sebuah elemen yang dimasukkan dalam sebuah array terbatas pada tempat yang ada pada array. Karena menggunakan array maka queue dengan representasi statis dapat mengalami kondisi elemen penuh first/front Last/belakang Karena menggunakan array yang tidak dapat diubah strukturnya secara dinamis maka operasi mengeluarkan elemen dari queue dengan representasi statis perlu penanganan secara khusus

40 yaitu menggeser semua elemen kedepan begitu ada elemen yang dikeluarkan dari queue, agar lebih jelas Last/belakang first/front first/front Last/belakang Head Procedure InsertQ (input/output Q : Queue, input ElmtQ: infotype) {IS: Q mungkin kosong, ElmtQ terdefinisi} FS: elemen Tail dari Q bernilai ElmtQ } {menyisipkan sebuah elemen ElmtQ sebagai Tail} If QEmpty (Q) then Qtail 1 QHead 1 QTabElmt QQtail elmtq Else If (Qtail < Nmax) then Qtail Qtail + 1 QTabElmt QQtail elmtq Head Else Output ( overflow ) Nmax = 5 Tail Head = 1 Tail = 4 Head Tail Nmax = 5, Inset (Q,25)

41 Head = 1 X=25 Tail = 5 Procedure DeleteQ (input/output Q : Queue, input ElmtQ: infotype) {IS: Q tidak kosong FS: elemen yang dihapus disimpan informasinya pada ElmtQ, ElmtQ digeser} {menyisipkan sebuah elemen ElmtQ sebagai Tail} QEmpty Q.TabElmt QQ.Hea d If (Qtail = Qhead) then (ada lebih dari satu elemen, geser semua elemen sisa) I traversal [2..Qtail] QtabElmtQ1-1 QtabElmtQ1 Qtail Qtail -1 Else QTail Nol Q.Head Nol

42 Head Head =1 Tail Tail = 5 x = 200 Head Delete Q(Q,x) Tail Head = 2 Tail = 4 x=50 Procedure InsertQ (input/output Q : Queue, input ElmtQ: infotype) {IS: Q mungkin kosong, ElmtQ terdefinisi} FS: elemen Tail dari Q bernilai ElmtQ } {menyisipkan sebuah elemen ElmtQ sebagai Tail} If QEmpty (Q) then Qtail 1 QHead 1 QTabElmt QQtail elmtq Else If (Qtail < Nmax) then Qtail Qtail + 1 QTabElmt QQtail elmtq Else If (Qhead > 1) then For ( i Qhead to Qtail do) QTabElmtQ[i-Qhead + 1] QtabElmtQ[i] End for Qtail Qtail Qhead+1` Qhead 1

43 Qtail Qtail +1 QtabElmtQ[Qtail] Else Write (overflow) Endif ElmtQ Head = 3; tail =5 Nmax =5 Head Tail Inser (Q,100) Head Head = 1 Tail Tail = 4 Overflow? Tdk Procedure InsertQ (input/output Q : Queue, input ElmtQ: infotype) {IS: Q mungkin kosong, ElmtQ terdefinisi} FS: elemen Tail dari Q bernilai ElmtQ } {menyisipkan sebuah elemen ElmtQ sebagai

44 Tail} NewTail : Address If Qcount = Nmax then Output ( overflow ) Else Newtail Qhead + Qcount If Newtail > Nmax then Newtail Newtail Nmax QTabElmt QQtail elmtq Qcount Qcount + 1 Count = 2 Newtail Head = 7 X Head Y Z

45 Count = 3 Head = 7, Tail =1 Tail Head x Y Z Head = 5,Tail = 1 Count = 5 Elmt = A, Nmax = 8 P Q R S T U V W Insert (Q,Elmt) Head = 5, Tail = 2 Count = 6 P A T U V W Procedure DeleteQ (input/output Q : Queue, input ElmtQ: infotype) {IS: Q tidak kosong} FS: element yang dihapus disimpaninformasinyapada elmtq {elemen Q berkurang satu} ElmtQ QTabElmtQQhead Qcount Qcount -1 if Qempty(Q) or Head = Nmax then Qhead 1 else QHead Qhead + 1

46 Head = 5, Tail = 2 Count = 6 P A T U V W Delete(Q, T) Head = 5, Tail = 1 Count = 5 A U V W P Representasi Dinamis Queue dengan representasi Dinamis biasanya diimplementasikan dengan menggunkan pointer yang menunjuk pada elemen-elemen yang dialokasikan pada memori. head Tail Karena semua operasi penambahan elemen pada sebuah queue ditambahkan pada akhir queue maka jika menggnakan representasi dinamis saat elemen ditambahkan akan menggunakan penambahan elemen pada akhir queue(addlast) dan saat pengambilan atau penghapusan elemen menggunakan penghapusan diawal queue (delfirst). Procedure insetqp (input/output Q : Queue, input P: Address) {IS: Q terdefinisi, mungkin kosong, P terdefinisi next(p) = nil} {FS:tail yang baru adalah P} If EmptyQ(Q) then

47 Qhead P Qtail P else Qtail. Next P Qtail P Procedure DeleteQP (input/output Q : Queue, input P: Address) {IS: Q tidak kosong {FS:P adalah elemen yang dihapus, Q mungkin kosong} P Qhead QHead Qhead.Next P. Next Nil If (Qhead = Nil) then QTail = Nil Prioritas (Priority Qeue) Antrian dengan Antrian berprioritas ataun priority queue mengeluarkan elemen dari queue berdasarkan prioritas pada elemen itu, oleh karena itu elemen pada antrian berprioritas untuk menyimpan nilai prioritas pada setiap elemn. Untuk memasukkan elemen pada sebuah antrian erprioritas tidak harus melalui sisi belakang antrian disisipkan dan diurutkan berdasarkan prioritas elemen, sedangkan mengeluarkan elemne dari antrian berdasarkan prioritas elemen. Hal yang perlu diperhatikan saat memasukkan elen ke antrian berprioritas adalah sebagai berikut : 1. Elemen yang memiliki prioritas leih tinggi akan leih dahulu keluar dari queue 2. Jika ada dua elemen yang memiliki prioritas sama maka yang akan keluar terlebih dahulu dari antrian adalah yang terlebih dahulu masuk kedalam antrian.

48 Operasi memasukkan elemen pada antrian berprioritas adalah sebagai berikut: 3 Elemen baru head head Tail Tail Hasil : head Tail Procedure InsertPrioQ (input/output PrioQ : Queue, input P : address) {IS: Q terdefinisi, tidak kosong, Pterdefinisi} p FS: P menjadi elemen antrian sesuai dengan Prio(P) } {P disiisipkan dalam antrian sesuai dengan prioritasnyal} Pt, Prec : Address Found : Boolean

49 If Qempty(Q) then Qhead P Qtail P Else Found false Prec Nil Pt head(q) While ( Pt = Nil) and (not found) do If Prio(Pt) > Prio (P) then Found True Else Prec Pt Pt Next(Pt) {Endwhile, Pt = Nil or found} If prec = nil then {sisip dielemen ke 1} Next (P) Pt head(q) P else if found then {sisip ditengah} Next(P) Pt Next (tail(q)) P Else{sisip dielemen ke 1} Next(Tail(Q)) P Tail(Q) P

50 Tugas 3. Insert(Q,H) 1. Bagaimana keluaran dari potongan A D G M K algoritma berikut: InitQ(Q) InsertQ(Q,5) InsertQ(Q,6) head = 3.,tail = 2.,Count =... InsertQ(Q,7) InsertQ(Q,8) DeleteQ(Q,X) 4. Delete(Q, ElmtQ) dari data diatas DeleteQ(Q,Y) InsertQ(Q,X) InsertQ(Q,5) InsertQ(Q,Y+1) DeleteQ(Q,X) InsertQ(Q,Y) While no emptyq(q) do Delete(Q, X) Output (X) {endwhile} 2. a. Head = 1, Tail = 4 A B C D E Setelah operasi InsertQ (Q, F ) maka keadaan anrian menjadi

51 Head =.., Tail =... Overflow? b.head = 5, Tail = 3 A B C D E Setelah operasi Delete (Q, ElmtQ ) maka keadaan anrian menjadi Head =..., Tail =..., elmt=..., overflow? Head = 3, Tail = 3 A B C D E Setelah operasi InsertQ (Q, F ) maka keadaan anrian menjadi Head =.., Tail =... Overflow? 1. Bagaimana keluaran dari potongan algoritma berikut: InitQ(Q) X 5 Y 7 InsertQ(Q,X) InsertQ(Q,8) InsertQ(Q,y) DeleteQ(Q,z) InsertQ(Q,2)

52 InsertQ(Q,z) InsertQ(Q,6) If Z = 0 then While not emptyq9q) do DeleteQ(Q, X) Output (X) {endwhile} Else Output( selesai ) 2. a. Nmax=5, Head = 1, Tail = Setelah operasi InsertQ (Q, 60 ) maka keadaan anrian menjadi Head =.., Tail =.., X=... Overflow? b. Nmax=5, Head = 1, Tail = Setelah operasi DeleteQ (Q, elmtq ) maka keadaan anrian menjadi Head =.., Tail =..., ElmtQ=... Overflow? 3. a. Nmax=5, Head = 5, Tail = Setelah operasi InsertQ (Q, 200 ) maka keadaan anrian menjadi Head =.., Tail =..., X=...,Overflow? b. Nmax=5, Head =5, Tail = 3

53 Setelah operasi DeleteQ (Q, elmtq ) maka keadaan anrian menjadi Head =.., Tail =...,ElmtQ=...,Overflow? 4. a. Head = 1, Tail = Setelah operasi InsertQ (Q, 60 ) maka keadaan anrian menjadi Head =.., Tail =...,X=...,count=..., Overflow? b. Head = 1, Tail = Setelah operasi DeleteQ (Q, elmtq ) maka keadaan anrian menjadi Head =.., Tail =.., elmtq=...,count=..., Overflow? 5. a. Head = 3, Tail = Setelah operasi InsertQ (Q, 200 ) maka keadaan anrian menjadi Head =.., Tail =..., X=..., count=...,overflow? b. Head = 2, Tail =

54 Setelah operasi DeleteQ (Q, elmtq ) maka keadaan anrian menjadi Head =.., Tail =..., elmtq=..., count=...,overflow? 6. a. Head = 1, Tail = Setelah operasi InsertQ (Q, 40 ) maka keadaan anrian menjadi Head =.., Tail =..,X=... b. Head = 1, Tail = Setelah operasi DeleteQ (Q, 60 ) maka keadaan anrian menjadi Head =.., Tail =...,X= Pengertian Pohon POHON (TREE) Pohon atau tree adalah salah satu bentuk konsep struktur data yang terdiri dari akar dan simpul-simpul yang berada dibawah akar. Misalnya pohon sisilah keluarga, struktur organisasi,dll. Pada gambar dibawah sebuah KOTAK dianggap sebagai SIMPUL (node atau vetex) sedangkan simpul yang paling atas yang berisi Ketua Umum dianggap sebagai AKAR (root). Bagian simpul Wakil Ketua 1 kebawah disebut sebagai SUBPOHON (subtree) begitu juga dengan simpul Wakil ketua 2 kebawah.

55 Ketua Umum A 1 2 Wakil Ketua 1 B Wakil ketua 2 C 3 Bendahara 2 h Kepala Devisi Keuangan D Bendahara 1 i Kepala Divisi kekeluargaan E Staf Administrasi j Kepala Divisi Produksi F Pengembang K Kepala Divisi pemasaran G Staf Pemasaran L 4 Anak(child) dan Orang tua (parent) Jika X adalah Simpul, maka akar tiap-tiap subpohon dari X disebut anak, dan X adalah orang tua setiap akar subpohon. Pada gambar diatas, B dan C adalah anak dari A, dan A adalah orang tua dari anak-anaknya itu. Begitu juga F,G adalah anak dari C, dan C adalah orang tua dari F,G Derajad (degree) Derajad adalah jumlah subpohon pada setiap simpul/ banyaknya tingkat simpul turunan dari suatu simpul tertentu, Misal : Ketua Umum(A) memiliki derajad 2, Kepala Divisi kekeluargaan(e) memiliki derajad 1, dsb. Daun (Leaf) Simpul yang mempunyai derajat nol disebut daun. H,i,j,k,l adalah daun dari pohon pada gambar 1. Daun sering dinamakan simpul terminal atau yang tidak mempunyai subpohon. Dalam struktur pohon juga dukenal istilah kedalaman (depth). Simpul bukan terminal disebut simpul dalam (internal nodes). Lintasan (path) Lintasan dari simpul n1 ke simpul simpul nk adalah runtunan simpul n1, n2,..,nk sedemikian sehingga n1 adalah orang tua dari n(i+1) untuk 1>/ < k. Pohon pada gambar 1, lintasan dari A ke J adalah A,B,E,J. Lintasan dari B ke i adalah A,B,D,I. Panjang lintasan adalah jumlah sisi yang dilalui dalam suatu lintasan. Panjang lintasan dari A ke i adalah 3, Panjang lintasan dari C ke K adalah 2.

56 A B C D E F G H I MENGGUNAKAN NOTASI KURUNG : (A ( B ( E, F ), C ( G ), D ( H, I ) ) 5.2 POHON BINER Pohon Biner atau binary tree adlah pohon yang setiap simpulnya memiliki simpul turunan atau sub pohon maksimal dua yang disebut sebagai pohon kiri (left subtree) dan subpohon kanan (right subtree). Jenis-jenis pohon iner sebagai berikut: Pohon biner lengkap (complete binary tree) yaitu pohon biner yang setiap simpulnya mempunyai dua buah simpul turunan. A Pohon biner condong kekiri (Left skewed binary tree) B E

57 B C D E F G H I A Pohon biner condong kanan (right skewed binary tree) D i A Pohon biner sembarang B C E F G Contoh pohon dan representasinya dengan larik Representasi dengan larik info kiri kanan

58 Operasi pada Pohon Biner Operasi yang dapat dilakukan pada pohon biner antara lain kunjungan terhadap simpulsimpulnya. Jenis-jenis knjungan pada pohon biner antara lain preorder, inorder, postorder, dan levelorder. Kunjungan dengan orientasi LRO(Left to Riight Oriented) dimana kunjungan selalu dimulai dari supohon kiri baru kemudian supohon kanan. Juga ada RLO (Right to Left Oriented) dimana kunjungan selalu dimulai dari subpohon kanan baru kemudian kesubpohon kiri. PreOrder Kunjungan preorder merupakan kunjungan pada pohon biner yang dimulai dari akar kemudian kesubpohon kiri dikunjungi baru kesubpohon kanan dikunjungi. A Maka : A B D E C F G - H B C D E F G H Maka dengan kunjungan preorder akan menghasilkan urutan simpul yang dikunjungi A B D E C F G H. InOrder

59 Kunjungan inorder merupakan kunjungan pada pohon biner yang dimulai dari simpul-simpul turunan subpohon kiri, akar, baru kemudian simpul-simpul turunan pada supohon kanan, misalnya pada contoh diatas maka kunjungan inorder menghasilkan simpul yang dikunjungi D B E A F C H G. PostOrder Kunjungan postorder merupakan kunjungan pada pohon biner yang dimulai dari simpulsimpul turunan subpohon kiri, baru kemudian simpul-simpul turunan pada subpohon kanan, kemudian akar, Misalnya pada contoh diatas maka dengan kunjungan postordermenghasilkan urutan simpul yang dikunjungi D E B F H G C A. Menyalin dan Membandingkan Pohon Biner Menyalin pohon biner ke pohon biner lainnya dapat dilakukan dengan menggunakan salah satu operasi kunjungan sambil membuat simpul baru yang sama dengan simpul yang disalin sebagai simpul pohon biner hasil dari penyalinan pohon biner yang disalin. Egitu juga dengan membandingkan dua buah pohon biner, jika semua simpul yang dikunjungi sama maka dapat dikatakan bahwa dua buah pohon biner merupakan pohon biner yang sama. Contoh; (prefix) + (infix) a / (postfix) b C * - d * f PreOrder : * + a / b c d *e f InOrder :a + b / c * d e * f Postorder : a b c / + d e f * - * e Procedure PreOrder (input T : pohon_biner) {mengunjungi simpul pohon secara preorder IS: T mungkin kosong} {FS:semua simpul T sudah dikunjungi secara preorder}

60 If T = then Proses (Info(T)) PreOrder(kiri(T)) PreOrder(kanan(T)) Procedure InOrder (input T : pohon_biner) {mengunjungi simpul pohon secara InOrder IS: T mungkin kosong} {FS:semua simpul T sudah dikunjungi secara InOrder} If T = then InOrder (Kiri(T)) Proses (Info(T)) InOrder(kanan(T)) Procedure PostOrder (input T : pohon_biner) {mengunjungi simpul pohon secara postorder IS: T mungkin kosong} {FS:semua simpul T sudah dikunjungi secara postorder} If T = then PostOrder(kiri(T)) PostOrder(kanan(T)) Proses (Info(T)) Procedure carix (input T : pohon_biner, x: infotype output ketemu : boolean) {mengunjungi apakah X terdapat didalam pohon} IS: T mungkin kosong, x adalah info yang dicari} {FS:ketemu=true jika X ditemukan, false jika tdk} If T = then Ketemu false else if info(t) = X then ketemu true Mencari apakah X terdapat didalam pohon T

61 else CariX(kiri(T), X, ketemu) CariX(kanan(T), X, ketemu) Pohon n-er Pengertian pohon n-er Pohon n-er adalah struktur pohon yang memiliki simpul turunan lebih dari dua. A B C D E F G H I K L M Pada sebuah pohon n-er juga dapat dilakukan kunjungan pada simpul-simpulnya seperti halnya pada pohon biner, misalkan jika pohon pada gambar diatas dikunjungi secara preorder akan menghasilkan urutan simpul A B E F C G D H I J K L - M. Jika dilakukan kunjungan secara post order akan menghasilkan urutan simpul E F B G C H I - K L M J D A. CONTOH ; a*b 3^x - * ^ a b 3 X

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

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

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

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

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

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

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

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

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

BAB 1 PENGANTAR KE STRUKTUR DATA

BAB 1 PENGANTAR KE STRUKTUR DATA Struktur Data - 1 BAB 1 PENGANTAR KE STRUKTUR DATA 1.1 Mengapa Struktur Data Diperlukan? Struktur data adalah cara mengorganisakan data di memori komputer. Bagaimana data diorganisasikan (struktur data)

Lebih terperinci

DIKTAT KULIAH STRUKTUR DATA. Disusun oleh: Sri Primaini A.

DIKTAT KULIAH STRUKTUR DATA. Disusun oleh: Sri Primaini A. DIKTAT KULIAH STRUKTUR DATA Disusun oleh: Sri Primaini A. FAKULTAS ILMU KOMPUTER UNIVERSITAS INDO GLOBAL MANDIRI PALEMBANG 2016 DAFTAR ISI Halaman BAB 1 PENGANTAR KE STRUKTUR DATA... 1 1.1 Mengapa Struktur

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

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

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

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

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

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

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

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

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

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

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

A. Bagian I. Studi Kasus

A. Bagian I. Studi Kasus UJIAN TENGAH SEMESTER GANJIL 2008/2009 NIM: dan Struktur Data / CS2014 Nama : HARI : Rabu, 5 November 2008 WAKTU DOSEN SIFAT : 135 menit : TIM : Tutup Buku Tanda tangan: Petunjuk: Periksalah kelengkapan

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

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

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

6. TREE / BINARY TREE

6. TREE / BINARY TREE 6. TREE / BINARY TREE TUJUAN PRAKTIKUM 1. Praktikan mengenal Struktur data Tree. 2. Praktikan mengenal jenis-jenis tree, seperti binary tree. 3. Praktikan mengenal istilah-istilah yang terdapat didalam

Lebih terperinci

S T A C K ( T U M P U K A N )

S T A C K ( T U M P U K A N ) S T A C K T U M P U K A N ) LINIER LIST Suatu struktur data umum yang berisi suatu kumpulan terurut dari elemen; jumlah elemen di dalam list dapat berubah-ubah. Linier list A yang terdiri dari T elemen

Lebih terperinci

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1

Array (Tabel) Tim Pengajar KU1071 Sem /11/3 TW/KU1071 1 Array (Tabel) Tim Pengajar KU1071 Sem. 1 2009-2010 2009/11/3 TW/KU1071 1 Tujuan Perkuliahan Mahasiswa memahami makna dan kegunaan array (tabel) Mahasiswa dapat menggunakan notasi pendefinisian dan pengacuan

Lebih terperinci

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR

PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR 1 PSEUDOCODE TIPE DATA, VARIABEL, DAN OPERATOR Siti Mukaromah, S.Kom TEKNIK PENYAJIAN ALGORITMA Teknik Tulisan Structure English Pseudocode Teknik Gambar Structure Chart HIPO Flowchart 2 PSEUDOCODE Kode

Lebih terperinci

BAB 3 STACK (TUMPUKAN)

BAB 3 STACK (TUMPUKAN) BAB 3 STACK (TUMPUKAN) LINIER LIST Suatu struktur data umum yang berisi suatu kumpulan terurut dari elemen; jumlah elemen di dalam list dapat berubah-ubah. Linier list A yang terdiri dari T elemen pada

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

B C D E F G H I J K L M N O P Q R S T. Tinaliah, S.Kom POHON BINER

B C D E F G H I J K L M N O P Q R S T. Tinaliah, S.Kom POHON BINER A B C D E F G H I J K L M N O P Q R S T U V W X Y Z POHON BINER Tinaliah, S.Kom DEFINISI Pohon (dalam struktur data) struktur berisi sekumpulan elemen dimana salah satu elemen adalah akar (root) dan elemen-elemen

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

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

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

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi :

Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi : PENGURUTAN Yaitu proses pengaturan sekumpulan objek menurut urutan atau susunan tertentu Acuan pengurutan dibedakan menjadi : 1. Ascending / menaik Syarat : L[1] L[2] L[3] L[N] 2. Descending / menurun

Lebih terperinci

4 LINKED LIST. 4.1 Istilah-istilah 1. Simpul Simpul terdiri dari dua bagian, yaitu : Bagian data Bagian pointer yang menunjuk ke simpul berikutnya.

4 LINKED LIST. 4.1 Istilah-istilah 1. Simpul Simpul terdiri dari dua bagian, yaitu : Bagian data Bagian pointer yang menunjuk ke simpul berikutnya. 4 LINK LIST Linked list adalah struktur berupa rangkaian elemen saling berkaitan dimana tiap elemen dihubung elemen lain melalui pointer. Pointer adalah alamat elemen. Penggunaan pointer untuk mengacu

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

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

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR

STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR STACK ATAU TUMPUKAN 3.1 DAFTAR LINEAR Sebuah daftar linear atau linear list, merupakan suatu struktur data umum yang terbentuk dari barisan hingga yang terurut) dari satuan data ataupun dari record. Untuk

Lebih terperinci

BAB XI Manipulasi Binary Tree

BAB XI Manipulasi Binary Tree www.hansmichael.com - Bab XI. Manipulasi Binary Tree BAB XI Manipulasi Binary Tree 11.1 Insert Node 11.2 Search Node 11.3 Delete Node 11.4 Copy Tree 11.5 Latihan Soal Binary tree seringkali diterapkan

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

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

SENARAI BERANTAI (LINK LIST)

SENARAI BERANTAI (LINK LIST) SENARAI BERANTAI (LINK LIST) Salah satu solusi untuk mengatasi kekurangan array adalah dengan Linked List. Linked List (senarai berantai satu arah atau one way list) merupakan struktur data dinamis yang

Lebih terperinci

Bab 1 Pengantar Struktur Data

Bab 1 Pengantar Struktur Data Bab 1 Pengantar Struktur Data 1.1 Struktur Data dan Algoritma 1.2 Gambaran Penggunaan Struktur Data 1.3 Mengenal Berbagai Struktur Data Secara Sekilas 1.4 Efisien? Bagaimana Mengukurnya? Bab 2 Instalasi

Lebih terperinci

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree

BAB VII Tujuan 7.1 Deskripsi dari Binary Tree A VII Tree Tujuan 1. Mempelajari variasi bagian-bagian dari tree sebagai suatu bentuk struktur tak linier 2. Mempelajari beberapa hubungan fakta yang direpresentasikan dalam sebuah tree, sehingga mampu

Lebih terperinci

Buku Ajar Struktur Data

Buku Ajar Struktur Data B a g i a n 5 Tujuan Instruksional Khusus Pokok Bahasan Mahasiswa mampu menjelaskan struktur data nonlinier Tree. Mahasiswa mampu memahami operasi pada struktur data Tree Struktur data Tree secara umum.

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

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

MODUL IV PENCARIAN DAN PENGURUTAN

MODUL IV PENCARIAN DAN PENGURUTAN MODUL IV PENCARIAN DAN PENGURUTAN 4.1 Tujuan Tujuan modul IV ini, adalah: Praktikan bisa membuat beberapa program pencarian berdasarkan metode algoritma pencarian Praktikan bisa membuat beberapa program

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

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom

DASAR PEMROGRAMAN. PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom DASAR PEMROGRAMAN PENGANTAR BAHASA C ( Sejarah, Struktur Pemrograman, Tipe Data, Operator ) Djoko Soerjanto, M.Kom https://www.facebook.com/groups/dasarpemrogramanc TUJUAN Mengenal sejarah, struktur, sintaks

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

Array (Tabel) bagian 2

Array (Tabel) bagian 2 Array (Tabel) bagian 2 Tim Pengajar KU71 Sem. 1 2009-20 2009/11/17 TW/KU71 1 Tujuan Perkuliahan Mahasiswa dapat menggunakan notasi pendefinisian dan pengacuan array dengan benar Mahasiswa memahami proses

Lebih terperinci

Struktur Data. PDE - Struktur Data 1

Struktur Data. PDE - Struktur Data 1 Struktur Data Copyright@Ihsan Jatnika PDE - Struktur Data 1 Objektif Mengetahui maksud struktur data dan menjelaskan penggunaannya dalam pemrograman Mengetahui operasi yang terkait dengan struktur data

Lebih terperinci

BAB IV POHON. Diktat Algoritma dan Struktur Data 2

BAB IV POHON. Diktat Algoritma dan Struktur Data 2 iktat lgoritma dan Struktur ata 2 V POON efinisi Pohon Struktur pohon merupakan kumpulan elemen yang salah satu elemennya disebut akar dan sisa elemennya terpecah menjadi sejumlah himpunan yang saling

Lebih terperinci

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut

SEQUENTIAL SEARCH 11/11/2010. Sequential Search (Tanpa Variabel Logika) untuk kondisi data tidak terurut Tujuan Searching & Sorting Pertemuan 9-10 Dosen Pembina Danang Junaedi TUJUAN MATERI Setelah mengikuti materi pertemuan ini, mahasiswa diharapkan dapat 1. Menjelaskan dan menggunakan metode pencarian dalam

Lebih terperinci

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e 03 LINKED LIST Slide 0 voice Pada perkuliahan ini kita akan membahas topik linked list atau senarai berkait. Slide 1 voice Terdapat tujuh bilangan bulat yang nilainya terurut secara menaik (ascending)

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

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

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

ALGORITMA PENGURUTAN & PENCARIAN

ALGORITMA PENGURUTAN & PENCARIAN Materi kuliah ALGORITMA PENGURUTAN & PENCARIAN Ir. Roedi Goernida, MT. (roedig@yahoo.com) Program Studi Sistem Informasi Fakultas Rekayasa Industri Institut Teknologi Telkom Bandung 2011 1 Pengelompokan

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

4. STACK / TUMPUKAN TEORI PENUNJANG

4. STACK / TUMPUKAN TEORI PENUNJANG 4. TCK / TUMPUKN TUJUN PRKTIKUM 1. Praktikan mengenal tipe khusus dari link list yaitu stack/tumpukan beserta seluruh operasi yang ada padanya. 2. Praktikan diharapkan dapat menerapkan teori mengenai single

Lebih terperinci

Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut

Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut Optimalisasi Algoritma Pencarian Data Memanfaatkan Pohon Biner Terurut Mohammad Rizky Adrian 1) 1) Jurusan Teknik Informatika ITB, Bandung 40132, email: if17108@students.if.itb.ac.id Abstract Makalah ini

Lebih terperinci

Penerapan Pohon Dalam Heap Sort

Penerapan Pohon Dalam Heap Sort enerapan ohon Dalam Sort Firdi Mulia Jurusan Teknik Informatika ITB, Bandung, email: if17045@students.if.itb.ac.id Abstract Makalah ini membahas tentang penerapan pohon heap dalam metode pengurutan data

Lebih terperinci

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1

Pengenalan Algoritma & Struktur Data. Pertemuan ke-1 Pengenalan Algoritma & Struktur Data Pertemuan ke-1 Apa itu Struktur Data? PROGRAM ALGO RITMA STRUKTUR DATA Algoritma.. deskripsi langkah-langkah penyelesaian masalah yang tersusun secara logis 1. Ditulis

Lebih terperinci

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting)

Kuliah ke : 4 Algoritma & Stuktur Data. Pengurutan (Sorting) Kuliah ke : 4 Algoritma & Stuktur Data Pengurutan (Sorting) Pengurutan adalah proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Urutan obyek tersebut dapat menaik atau menurun. Bila

Lebih terperinci

A. Bagian I. Studi Kasus [82]

A. Bagian I. Studi Kasus [82] UJIAN TENGAH SEMESTER GANJIL 2009/2010 NIM: Algoritma dan Struktur Data / CS2014 Nama : HARI : Rabu, 28 Oktober 2009 WAKTU DOSEN SIFAT : 135 menit : TIM : Tutup Buku Tanda tangan: Petunjuk: Periksalah

Lebih terperinci

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem

PENGULANGAN Bagian 1 : Notasi. Tim Pengajar KU1071 Sem PENGULANGAN Bagian 1 : Notasi Tim Pengajar KU1071 Sem. 1 2009-2010 1 Tujuan Mahasiswa memahami jenis-jenis pengulangan dan penggunaannya serta memahami elemenelemen dalam pengulangan. Mahasiswa dapat menggunakan

Lebih terperinci

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program

Pencarian. 1. Memahami konsep pencarian 2. Mengenal beberapa algoritma pencarian 3. Menerapkan algoritma pencarian dalam program Pencarian Overview Pencarian merupakan sebuah algoritma dasar yang sering diperlukan dalam pembuatan program. Berbagai algoritma pencarian telah diciptakan dan dapat digunakan. Pemahaman tentang beberapa

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

MODUL PRAKTIKUM STRUKTUR DATA

MODUL PRAKTIKUM STRUKTUR DATA MODUL PRAKTIKUM STRUKTUR DATA JAKARTA 2018 Page 1 DAFTAR ISI MODUL I TIPE DATA ARRAY 1 MODUL II STACK 4 MODUL III SEARCHING. 10 MODUL IV SORTING.. 13 MODUL V POINTER... 17 MODUL VI LINKED LIST 23 Page

Lebih terperinci

Struktur Data & Algoritma

Struktur Data & Algoritma Struktur Data & Algoritma ADT Tree Suryana Setiawan, Ruli Manurung & Ade Azurat ( Denny (acknowledgments: Fasilkom UI SUR HMM AA Fasilkom UI - IKI20100/IKI80110P 2009/2010 Ganjil Pekan 08 1 Tujuan Memahami

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

ALGORITMA & PEMROGRAMAN

ALGORITMA & PEMROGRAMAN ALGORITMA & PEMROGRAMAN Oleh: Tim Algoritma & Pemrograman IF Linked List PENGERTIAN LINKED LIST Salah satu bentuk struktur data, berisi kumpulan data (node) yang tersusun secara sekuensial, saling sambung-menyambung,

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

Algoritma dan Struktur Data

Algoritma dan Struktur Data Algoritma dan Struktur Data Program Program: sederetan perintah-perintah yang harus dikerjakan oleh komputer untuk menyelesaikan masalah. 3 level bahasa pemrograman: 1. Bahasa tingkat rendah 2. Bahasa

Lebih terperinci

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1

Pohon. Bahan Kuliah IF2120 Matematika Diskrit. Program Studi Teknik Informatika ITB. Rinaldi M/IF2120 Matdis 1 Pohon Bahan Kuliah IF2120 Matematika Diskrit Program Studi Teknik Informatika ITB Rinaldi M/IF2120 Matdis 1 Definisi Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit a b a b a b a

Lebih terperinci

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN

Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN Pertemuan 4 ELEMEN-ELEMEN BAHASA PEMROGRAMAN I. Elemen-Elemen Dalam Bahasa Pemrograman Berikut adalah elemen-elemen pada bahasa pemrograman: Berikut adalah element-element pada bahasa pemrograman: 1. Aturan

Lebih terperinci

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional

Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional Implementasi Skema Pohon Biner yang Persistent dalam Pemrograman Fungsional Azby Khilfi M. NIM : 13506018 Sekolah Teknik Elektro dan Informatika, Institut Teknologi Bandung Jl. Ganesha 10, Bandung E-mail

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI 5 BAB II LANDASAN TEORI 2.1. Tipe Data Abstrak (TDA) Tipe data sebuah variabel adalah kumpulan nilai yang dapat dimuat oleh variabel ini. Misalnya sebuah tipe boolean hanya bernilai TRUE atau FALSE, tidak

Lebih terperinci

TUGAS MAKALAH INDIVIDUAL. Mata Kuliah : Matematika Diskrit / IF2153 Nama : Dwitiyo Abhirama NIM :

TUGAS MAKALAH INDIVIDUAL. Mata Kuliah : Matematika Diskrit / IF2153 Nama : Dwitiyo Abhirama NIM : TUGAS MAKALAH INDIVIDUAL Mata Kuliah : Matematika Diskrit / IF2153 Nama : Dwitiyo Abhirama NIM : 13505013 Institut Teknologi Bandung Desember 2006 Penggunaan Struktur Pohon dalam Informatika Dwitiyo Abhirama

Lebih terperinci

Tumpukan(Stack)!! " # $ %&' $ %& ( ) ( * +, / ( (

Tumpukan(Stack)!!  # $ %&' $ %& ( ) ( * +, / ( ( BAB III Tumpukan(Stack) 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

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS

BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS 29 BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS Dengan menggunakan Visual Basic 6.0 aplikasi perangkat ajar pengelolaan dan perhitungan ekspresi matematika yang akan dibangun dalam penelitian

Lebih terperinci

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong

Binary Tree kosong Gambar 1. Binary Tree dalam kondisi kosong PRAKTIKUM 25-26 BINARY TREEDAN TRAVERSAL BINARY TREE A. TUJUAN Mahasiswa diharapkan mampu : 1. Memahami konsep dari BinaryTree dantraversalbinary Tree 2. Memahami proses traversal pada Binary Tree 3. Memahami

Lebih terperinci

Heap Tree dan Kegunaannya dalam Heap Sort

Heap Tree dan Kegunaannya dalam Heap Sort Heap Tree dan Kegunaannya dalam Heap Sort Efendy Chalikdjen 1, Hermanto Ong 2, Satria Putra Sajuthi 3 Laboratorium Ilmu dan Rekayasa Komputasi Departemen Teknik Informatika, Institut Teknologi Bandung

Lebih terperinci

Mesin Karakter dan Mesin Kata

Mesin Karakter dan Mesin Kata Mesin Karakter dan Mesin Kata Tim Pengajar IF2030/Algoritma dan Struktur Data 10/15/09 FNA/IF2030/Mesin Kata 1 Mesin Mesin: mekanisme yang terdefinisi dan mengerti serta mampu untuk mengeksekusi aksi-aksi

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

Definisi. Pohon adalah graf tak-berarah, terhubung, dan tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon (ada sikuit) (tdk terhubung)

Definisi. Pohon adalah graf tak-berarah, terhubung, dan tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon (ada sikuit) (tdk terhubung) POHON (TREE) Pohon Definisi Pohon adalah graf tak-berarah, terhubung, dan tidak mengandung sirkuit a b a b a b a b c d c d c d c d e f e f e f e f pohon pohon bukan pohon bukan pohon (ada sikuit) (tdk

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI BAB 2 LANDASAN TEORI 2.1 Rangkaian Logika Rangkaian logika terbentuk dari hubungan beberapa gerbang (gate) logika. Rangkaian logika bekerja secara digital. Output dari suatu rangkaian logika ditentukan

Lebih terperinci

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING)

PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING) PENCARIAN BERUNTUN (SEQUENTIAL SEARCHING) a. Introduction b. Tanpa Boolean c. Dengan Boolean d. Penggunaan dalam Fungsi INTRODUCTION Merupakan algoritma pencarian yang paling sederhana. Proses Membandingkan

Lebih terperinci

DEFINISI. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 2

DEFINISI. Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit. pohon pohon bukan pohon bukan pohon 2 1 POHON DEFINISI Pohon adalah graf tak-berarah terhubung yang tidak mengandung sirkuit a b a b a b a b c d c d c d c d e f e f e f e f pohon pohon bukan pohon bukan pohon 2 Hutan (forest) adalah - kumpulan

Lebih terperinci

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP

Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP Algoritma Euclidean dan Struktur Data Pohon dalam Bahasa Pemrograman LISP Ahmad Ayyub Mustofa Jurusan Teknik Informatika ITB, Bandung 40132, email: rekka_zan@students.itb.ac.id Abstraksi Bahasa pemrograman

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

Pengurutan (Sorting) Algoritma Pemrograman

Pengurutan (Sorting) Algoritma Pemrograman Pengurutan (Sorting) Algoritma Pemrograman mas.anto72@gmail.com 1 Definisi Sorting /pengurutan proses mengatur sekumpulan obyek menurut urutan atau susunan tertentu. Bentuk susunan/urutan : Ascending menaik/membesar

Lebih terperinci