MODUL STRUKTUR DATA ADI PRATOMO NIP

Ukuran: px
Mulai penontonan dengan halaman:

Download "MODUL STRUKTUR DATA ADI PRATOMO NIP"

Transkripsi

1 MODUL STRUKTUR DATA ADI PRATOMO NIP KEMENTERIAN PENDIDIKAN NASIONAL POLITEKNIK NEGERI BANJARMASIN JURUSAN ADMINISTRASI BISNIS BANJARMASIN 2010 i

2 DAFTAR ISI Kata Pengantar... i Daftar Isi... ii BAB I : Jenis-Jenis Data 1.1 Tipe Data Tunggal Integer Real Boolean Karakter String Length Concatenation Substring Insert Delete Deklarasi Data dalam Bahasa Pemrograman Pemetaan ke Storage Integer Karakter String... 8 BAB II : ARRAY DAN RECORD 2.1 Array Satu Dimensi Array Multi Dimensi Cross Section Transpose Deklarasi Array dalam Bahasa Pemrograman Pemetaan Array ke Storage Array Satu Dimensi ii

3 2.4.2 Array Multi Dimensi Record Deklarasi Record dalam Bahasa Pemrograman BAB III : STACK Linier List Definisi Stack Operasi Dasar Pada Stack CREATE ISEMPTY PUSH POP Deklarasi Stack dalam Bahasa Pemrograman Penggunaan/ Aplikasi Stack Matching Parentheses Notasi Postfix Proses Rekursif Mapping ke Storage dari Stack BAB IV : QUEUE Definisi Gambar Queue Prinsip Kerja pada Queue Operasi Operasi pada Queue Deklarasi Queue dalam Pascal Circular Queue BAB V : LINKED LIST Pendahuluan Definisi Operasi Dasar pada Linked List Menghapus Suatu Node dari Linked List (Remove) Menyisipkan Suatu Node ke dalam Linked List Procedure Getnode(NEW) iii

4 5.5.2 Algoritma Menyisipkan sebuah Node Logika Linked List pada Array Mendefinisikan Linked List dalam Pascal Menghapus sebuah Node dalam Pascal Menyisipkan sebuah Node dalam Pascal Penyisipan Pada Akhir Dari Suatu Linked List (Linked List Antrean) Dalam Pascal Circular Linked List Algoritma Penyisipan Node Yang Berisi Variabel Name Pada Head Dalam Linked List Menghapus Node Khusus Doubly Linked List Double Linked List Kosong Procedure Menghapus Sebuah Node Pada Double Linked List Menyisipkan Sebuah Node pada Doubly Linked List Contoh Aplikasi Linked List Polynomial BAB VI : GRAPH 6.1 Definisi Out Degree, In Degree, Degree dari suatu vertex a Penggambaran Node Directory BAB VII : TREE General Tree Forest Binary Tree Similar & Ekivalen Dalam 2 Binary Tree Complete Almost Complete Height Min Dan Height Max Representasi Binary Tree Binary Tree Transversal iv

5 7.10 Binary Search Tree Direct Search Sequential Search Insert Search Delete search BALANCED TREE Height Balanced Tree BAB VIII : SEARCHING & SORTING Pendahuluan Sorting Insertion Sort Selection Sort Merging Merge Sort Tournament Sort Shell Sort Searching Sequential Searching Skema Move to the Front Skema Transposition DAFTAR PUSTAKA v

6 BAB I JENIS-JENIS DATA Suatu koleksi/ kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Data di kategorikan menjadi : 1. Tipe data tunggal (data primitif) : Integer, Real, Boolean dan Karakter 2. Tipe data majemuk (data campuran) : String (Untai) Struktur data di kategorikan menjadi : 1. Struktur Data sederhana : Array dan Record 2. Struktur Data majemuk : Linier dan Non Linier 1.1 TIPE DATA TUNGGAL INTEGER Suatu integer adalah anggota dari himpunan bilangan : (..., -(n+1), -n,..., -2, -1, 0, 1, 2,..., n, n+1,... ) Operasi-operasi dasar yang ada dalam integer antara lain : Penjumlahan Pengurangan Perkalian Pembagian Perpangkatan, dsb Masing-masing operator pada operasi di atas, yang bekerja terhadap sepasang integer (operand) disebut sebagai "binary operator". Sedangkan operator yang hanya bekerja terhadap satu operand saja disebut sebagai "unary operator". Contoh dari unary operator adalah operator negasi. Operator ini berfungsi untuk mengubah tanda suatu operand. 1

7 1.1.2 REAL Data numerik yang bukan termasuk integer, digolongkan dalam jenis data real. Jenis data ini ditulis menggunakan titik desimal (atau koma desimal). Bilangan real dimasukkan ke dalam memori komputer memakai sistem floating point, merupakan versi yang disebut Scientific Notation. Disini penyajiannya terdiri atas dua bagian, yaitu : mantissa (pecahan) & eksponen. Contoh : Di dalam sistem desimal, bilangan = * Disini adalah mantissa (pecahan), sedangkan 6 adalah eksponennya. Secara umum suatu bilangan real X dituliskan M * R E BOOLEAN Jenis data ini disebut juga jenis data "logical". Elemen dari jenis data ini mempunyai nilai salah satu dari "true" atau "false". Operator-operator yang dikenal pada jenis data ini terdiri atas: 1. Operator Logika, yaitu : NOT, AND dan OR. Operator OR akan menghasilkan nilai "true", jika salah satu atau kedua operand bernilai "true". Operator AND akan menghasilkan nilai "true", jika kedua operand bernilai "true". Sedangkan operator NOT akan menghasilkan nilai "true", jika operand bernilai "false", dan sebaliknya. Operator NOT merupakan "precedence" dari operator AND dan OR. Dalam suatu ekspresi yang tidak menggunakan tanda kurung, operator NOT harus dievaluasi sebelum operator AND dan OR. 2. Operator Relasional, yaitu : >, <, >=, <=, <> dan = KARAKTER Jenis data karakter merupakan elemen dari suatu himpunan simbol aksara yang terdiri atas bilangan, abjad dan simbol-simbol khusus 2

8 1.1.5 STRING Jenis data string merupakan jenis data campuran, karena elemenelemennya dibentuk dari karakter-karakter di atas. String adalah barisan hingga simbol yang diambil dari himpunan karakter. Karakter yang digunakan untuk membentuk suatu string disebut sebagai alphabet. Dalam penulisannya, suatu string berada dalam tanda "aphosthrope". Contoh : Misal, diberikan himpunan alphabet A = { C, D, 1 } String-string yang dapat dibentuk dari alphabet di atas antara lain adalah : 'CD1', 'CDD', 'DDC', 'CDC1',...dsb, termasuk "null string" atau "empty string". Himpunan yang anggotanya adalah semua string yang dapat dibentuk dari suatu himpunan alphabet disebut sebagai "vocabulary". Suatu vocabulary V yang dihasilkan dari himpunan alphabet A dinotasikan dengan V A atau A *. Jika suatu string dibentuk dari alphabet {0,1}, maka string yang terbentuk disebut dengan "Bit String". Secara umum, suatu string S yang dibentuk dari himpunan alphabet A, dituliskan S = 'a 1 a 2... a N ', di mana setiap karakter a i anggota A untuk, 1 i N. Dalam suatu string terdapat beberapa operasi utama, yaitu : 1. Length 2. Concatenation 3. Substring 4. Insert 5. Delete LENGTH Nilai dari operasi ini adalah suatu integer yang menunjukkan panjang dari suatu string. Panjang dari string didefinisikan sebagai banyaknya karakter, atau dapat ditulis : S = N atau Length (S) = N. 3

9 Contoh : a. Jika diberikan string S = 'a 1 a 2... a N '. Maka LENGTH(S) = N. b. Jika diberikan string S = 'ABCD13AB', maka LENGTH(S) = CONCATENATION Operasi ini bekerja terhadap dua string dan hasilnya merupakan resultan dari kedua string tersebut. Operasi ini hampir sama dengan operasi gabungan. Jika S 1 dan S 2 masing-masing adalah suatu string, maka bentuk operasi concatenation dinotasikan dengna : CONCAT(S 1,S 2 ). Contoh : Misal S 1 = 'a 1 a 2... a N ' dan S = 'b b... b ' M Maka CONCAT(S 1,S 2 ) = ' a a... a b b... b ' 1 2 N 1 2 M Panjang dari string yang baru (resultan) merupakan jumlah panjang dari masingmasing string atau : LENGTH(CONCAT(S 1,S 2 )) = LENGTH(S 1 ) + LENGTH(S 2 ) SUBSTRING Operasi ini adalah operasi membentuk string baru, yang merupakan bagian dari string yang diketahui. Notasinya adalah : SUBSTR(S,i,j) di mana : S = string yang diketahui. i dan j adalah integer i = posisi awal substring, 0 i LENGTH(S) j = banyak karakter yang diambil, 0 j LENGTH(S) dan 0 i+j-1 LENGTH(S) Contoh : Diberikan S = 'a 1 a 2... a N ' ; i = 2 ; j = 4. Maka SUBSTR(S,i,j) = SUBSTR(S,2,4) = 'a 2 a 3 a 4 a 5 ' Catatan : 1. LENGTH(SUBSTR(S,i,j)) = j 4

10 2. SUBSTR(CONCAT(S 1,S 2 ),1,LENGTH(S 1 )) = S 1 3. SUBSTR(CONCAT (S 1,S 2 ),LENGTH(S 1 )+1,LENGTH(S 2 )) = S INSERT Operasi ini adalah untuk menyisipkan suatu string ke dalam string lain. Bentuk umumnya adalah : INSERT(S 1,S 2,i). S dan S 1 masing-masing adalah 2 suatu string dan i adalah posisi awal S 2 pada S 1. Contoh : Misalkan: S 1 = 'a 1 a 2... a N ' S 2 = 'b 1 b 2... b M ' INSERT(S 1,S 2,3) = 'a 1 a 2 b 1 b 2... b M a 3 a 4... a N ' DELETE Operasi ini digunakan untuk menghapuskan sebagian karakter dalam suatu string. Bentuk umumnya adalah : DELETE(S,i,j) Maksudnya adalah menghapuskan sebagian karakter dalam string S, mulai dari posisi i dengan panjang j. Contoh : Diberikan string S = 'a 1 a 2... a N ' DELETE(S,3,4) = 'a 1 a 2 a 7 a 8... a N ' Catatan : INSERT(S 1,S 2,i) = CONCAT(CONCAT (SUBSTR(S 1,1,i-1),S 2 ), SUBSTR(S 1,i,LENGTH(S 1 )-(i-1))) DELETE(S,i,j)=CONCAT(SUBSTR(S,1,i-1),SUBSTR(S,i+j,LENGTH(S)-(i+j- 1))) di mana : 1 i LENGTH(S 1 ) 0 i LENGTH(S 1 ) 0 i+j-1 LENGTH(S 1 ) Untuk i,j integer. 5

11 1.2 DEKLARASI DATA DALAM BAHASA PEMROGRAMAN PASCAL Var Count : integer; Switch : boolean; Betha : char; Alamat : packed array[1..25] of char; 1.3 PEMETAAN KE STORAGE INTEGER Bentuk mapping ke storage dari integer dapat dilakukan dengan beberapa cara, yaitu : 1. Skema Sign dan Magnitude 2. Skema One's Complement 3. Skema Two's Complement a. Skema Sign and Magnitude Cara ini merupakan bentuk konvensional yang digunakan manusia untuk menyatakan suatu bilangan dalam bentuk biner. Di sini representasi bilangan positif dan negatif hanya dibedakan dengan tanda saja. Biasanya tanda positif atau negatif ditunjukkan oleh digit terdepan dari bentuk binernya, untuk representasi dengan jumlah digit tertentu. Contoh : + 7 à à representasi dengan 4 digit : à à representasi dengan 4 digit : 1111 Dengan cara ini kita akan mendapatkan kesulitan dalam menentukan tanda pada saat melakukan operasi terhadap dua bilangan yang berbeda tandanya. b. Skema Two's Complement dan One's Complement Kedua skema ini merupakan cara yang digunakan untuk mengatasi kesulitan yang telah disebutkan di atas. Diberikan bilangan integer non negatif X, X' dan R. Didefinisikan bahwa X' adalah komplemen dari X relatif terhadap R, 6

12 jika X + X' = R. X disebut sebagai bentuk true, sedangkan X' = R - X disebut bentuk komplemen. Bentuk komplemen X' = R - X menyatakan bilangan integer negatif X. Sedangkan bentuk true X menyatakan integer positif X. Skema Two's Complement menggunakan R = 2 N. Skema One's Complement menggunakan R = 2 N - 1. Contoh : Misal diberikan integer = 7, akan dicari bentuk binernya dengan skema Two's Complement untuk representasi 4 digit. X = 7 ; R = 2 4 ; à X + X' = R X' = R - X = = 16-7 = 9 à dalam biner = KARAKTER Saat ini banyak sekali skema yang digunakan untuk merepresentasikan karakter dalam storage. Pada umumnya skema yang paling banyak digunakan adalah : 1. Extended Binary Coded Decimal Interchange Code (EBCDIC) 2. American Standard Code for Information Interchange (ASCII) Pada skema EBCDIC digunakan kode 8 bit untuk menyatakan sebuah karakter. Jika dihitung, kemungkinan kombinasi seluruhnya adalah : 2 8. Sedangkan skema ASCII menggunakan kode 7 bit untuk menyatakan suatu karakter. Skema ini mempunyai jumlah kemungkinan kombinasi yang lebih sedikit jika dibandingkan dengan skema EBCDIC. Selain dua skema tersebut di atas ada sebuah skema yang disebut dengan kode Huffman. Pada cara ini, jumlah bit yang digunakan tergantung dari frekuensi penggunaan suatu karakter. 7

13 1.3.3 STRING Untuk mengetahui bentuk mapping pada storage dari suatu string, perlu diketahui beberapa hal yang menyangkut ruang untuk string yang bersangkutan, antara lain : - letak posisi awal (start) dan posisi akhir (terminal) - suatu pointer yang menunjukkan lokasi pada storage Ada tiga cara yang umum digunakan untuk mapping suatu string ke dalam storage. Misal diberikan dua string, yaitu : S 1 = 'ABCDEFG' dan S 2 = 'BCD' a. Cara ke-1 Jika diberikan suatu informasi tentang : - nama string - starting address - panjang string Contoh : Nama String Start Panjang String1 Ptr1 7 String2 Ptr2 3 Maka secara fisik bentuk formatnya pada storage adalah : A B C D E F G B C D Ptr1 Ptr2 atau A B C D E F G Ptr1 Ptr2 8

14 b. Cara ke-2 Jika diberikan informasi sebagai berikut : - nama string - starting address - terminal address Misalnya diberikan tabel sbb : Nama String Start Terminal String1 Ptr1s Ptr1t String2 Ptr2s Ptr2t Maka secara fisik bentuknya pada storage adalah : A B C D E F G B C D Ptr1s Ptr1t Ptr2s Ptr2t atau A B C D E F G Ptr1s Ptr2s Ptr2t Ptr1t c. Cara ke-3 Jika diberikan informasi : - nama string - starting address - suatu tanda yang menunjukkan batas string Misalnya : Nama String Start String1 String2 Ptr1 Ptr2 9

15 Maka bentuknya secara fisik pada storage adalah : A B C D E F # B C D # Ptr1 Ptr2 Selain cara-cara di atas, representasi suatu string pada storage dapat pula dalam bentuk packed atau unpacked. Suatu string yang direpresentasikan dalam bentuk packed terbagi atas beberapa word. Banyaknya karakter untuk masingmasing word tergantung dari kode yang digunakan oleh mesin (bitnya). Secara umum jumlah word yang digunakan untuk merepresentasikan string S dalam storage dengan R karakter per word adalah : LENGTH(S) K notasi disebut dengan ceiling function Contoh : Misal diberikan string S = "StrukturData", direpresentasikan dalam 4 karakter per word dalam bentuk packed. Maka secara fisik dapat digambarkan : Stru ktur Data Jumlah Word : 3, Jumlah Karakter/Word : 4 Sedangkan cara unpacked, setiap word terdiri hanya satu karakter, berarti jumlah word yang diperlukan untuk merepresentasikan suatu string S adalah LENGTH(S). Contoh : Diberikan string S = "StmikAsia". Representasinya dalam bentuk unpacked adalah : S t m i k A s i a 10

16 BAB II ARRAY DAN RECORD Sebuah array dapat dikatakan sebagai suatu himpunan terurut dengan elemenelemen homogen. Terurut, dimaksudkan bahwa elemen pertama, elemen kedua, dst masing-masing dapat diidentifikasi. Sedangkan homogen berarti masing-masing elemen tersebut mempunyai tipe data yang sama. Array dapat dikelompokkan atas 2 bagian, yaitu : 1. Array satu dimensi. 2. Array multi dimensi. 2.1 ARRAY SATU DIMENSI Bentuk array yang paling sederhana adalah array satu dimensi. Array jenis ini dapat dianggap sebagai sebuah vektor. Suatu array A berdimensi satu dengan N buah elemen, secara fisik dapat digambarkan sebagai berikut : A(1) A(2)... A(I)... A(n) Indeks dari elemen suatu array menyatakan posisinya dalam urutan secara umum suatu array A berdimensi satu dengan elemen berjenis data T yang mempunyai indeks dari L s/d U dituliskan sbb: A(L:U) = {A(I)} Untuk I = L, L+1, L+2,..., U-1, U, dimana masing-masing A(I) berjenis data T. L disebut sebagai batas bawah dari indeks A dan U sebagai batas atas dari A. Jumlah elemen dalam suatu array disebut sebagai range. Range dari array A(L:U) adalah U - L + 1. Range dari array B(1:N) adalah N - l + 1= N. 2.2 ARRAY MULTI DIMENSI Array dua dimensi adalah salah satu contoh dari array jenis multi dimensi (dimensi banyak). Array ini elemen-elemennya merupakan array pula. Bentuk yang dianggap dapat mewakili array dua dimensi ini adalah matriks. Suatu array B yang 11

17 terdiri atas M elemen dimana masing-masing elemennya berupa array dengan N elemen, dapat digambarkan sebagai suatu tabel MxN, dengan bentuk sbb: J... N I... M Array ini dituliskan : B(1:M,1:N) = {B(I,J)}, Untuk I = 1,2,...,M J = 1,2,...,N Jumlah elemen (range) dari array B ini adalah M x N. Secara umum, array 2 dimensi B dengan batas bawah indeks pertama L 1, batas atas indeks pertama U 1, batas bawah indeks kedua L 2 batas atas indeks kedua U 2, dituliskan: B(L 1 : U 1, L 2 : U 2 ) = {B(I,J)} Untuk L 1 < I < U 1 dan L 2 < J < U2 Jumlah elemen baris dari array B adalah : ( U 2 L ) Jumlah elemen kolom dari array B adalah : ( U 1 - L 1 + 1) Jumlah total elemen array B adalah : (U 2 L )(U 1 - L 1 + 1) CROSS SECTION Yang dimaksud dengan Cross section dari array 2 dimensi adalah suatu himpunan yang anggotanya adalah elemen-elemen dalam satu baris saja atau satu kolom saja. Notasinya menggunakan *. Contoh : Misal diberikan array B(1:M,1:N). B(4,*) = {B(4,1), B(4,2),...,B(4,N)} B(*,4) = {B(1,4), B(2,4),...,B(M,4)} 12

18 2.2.2 TRANSPOSE Transpose dari suatu array dua dimensi, adalah suatu array dua dimensi pula dengan menukar posisi indeksnya. Transpose dari array berukuran M x N adalah suatu array berukuran N x M. Transpose dari suatu array dari B dinotasikan dengan B T, dan didefinisikan: B(I,J) = B T (J,I) Selanjutnya secara umum, suatu array A berdimensi N dapat dituliskan sbb: A(L 1 :U 1,L 2 :U 2,...,L N :U N ) Jumlah elemen array ini adalah : N (U 1 - L 1 + 1)(U 2 - L 2 + 1)... (U N - L N + 1) (U K - L K + 1) k=1 Sebagai contoh perhatikan sebuah array berdimensi 3 yang menggambarkan (berisi) jumlah mahasiswa STMIK Asia untuk kelas reguler dan eksekutif. Array ini dapat digambarkan sbb : 2 Eksekutif 2 mlm 1 Reguler 1 pg P w kls kls 5A 4 kls B 3 kls C kls 2D 1E Jika array ini diberi nama Asia, maka bentuknya dapat dituliskan sbb: Asia(1:2,1:2, A:E) = {Asia(i,j,k)} dimana I = 1,2 (1 = pria, 2 = wanita) J = 1,2 (1 = reguler, 2 = eksekutif) K = A,B,C,D,E (kelas A s/d E) Seluruh mahasiswa reguler dapat ditunjukkan dengan Asia (*,1,*) sedangkan seluruh mahasiswa eksekutif dapat ditunjukkan dengan Asia (*,2,*) 13

19 2.3 DEKLARASI ARRAY DALAM BAHASA PEMROGRAMAN. Misal diberikan array dengan nama A yang mempunyai 24 elemen dengan masing-masing elemen berjenis data integer, maka deklarasinya dalam bahasa pemrograman adalah sbb: VAR A : ARRAY [1..24] OF INTEGER; Dalam mendeklarasikan suatu array ada 3 hal yang harus ada pada deklarasi tersebut, yaitu: 1. Nama array 2. Range dari indeksnya 3. Tipe elemen-elemen datanya 2.4 PEMETAAN ARRAY KE STORAGE Ada beberapa cara untuk menyatakan suatu array pada storage, tetapi konsepnya hampir sama dengan apa yang ada pada data fungsi ARRAY SATU DIMENSI Misal diberikan array satu dimensi dengan nama A yang mempunyai indeks 1 s/d N, yaitu A(1:N). Secara fisik array A(1:N) dapat digambarkan sbb: A(1) A(2) A(3)... A(I)... A(N) Yang perlu kita ketahui disini adalah letak elemen ke I dari array A(1:N), atau letak masing-masing elemen array pada storage. Letak suatu elemen biasanya disebut sebagai starting address atau starting location atau base location. Untuk mengetahui starting address suatu elemen array, perlu diketahui lebih dulu antara lain : 1. Starting address dari array yang bersangkutan. 2. Ukuran masing-masing elemen array atau ruang yang digunakan masing-masing elemen array. Misal starting address dari array A(1:N) adalah B dan masing-masing elemennya menggunakan ruang sebanyak S bit. Maka starting address elemen ke I dari array A(1:N) adalah : B + ( I - 1 ) * S Hal ini disebabkan ada (I - 1) elemen array A, masing-masing dengan ukuran atau panjang S secara fisik mendahului elemen ke I pada array tersebut. 14

20 Secara umum dapat dikatakan bahwa : Starting address elemen ke I dari array A(L:U) adalah (B +( I L ) * S jika starting address array A adalah B dan masing-masing elemenya menggunakan ruangan sebanyak S bit ARRAY MULTI DIMENSI Prinsip yang digunakan disini tetap didasarkan pada array satu dimensi. Oleh karena itu untuk array multi dimensi, linierisasi-nya dapat dilakukan berdasarkan baris atau kolom. Contoh : Misal diberikan array A(1:3,1:4). Array ini secara fisik dapat digambarkan sbb : Linierisasi menurut baris akan mengakibatkan bentuk diatas menjadi : Jika B adalah starting address array A(1:3,1:4) dan S adalah ruang yang digunakan oleh masing-masing elemennya, maka starting address dari elemen A(I,J) adalah : B + (I-1) * 4 * S + (J-1) * S Hal ini karena ada ( I - 1) baris, masing-masing dengan panjang 4 * S yang mendahului baris dimana elemen A(I,J) berada dan ada (J-1) elemen masing-masing dengan panjang S yang mendahului elemen A(I,J) pada baris ke I. Contoh Dari array A(1:3,1:4) akan dicari starting adress elemen A(2,4). baris 1 baris 2 baris 3 A(2,4) 15

21 Starting address A(2,4) = B + (2-1) * 4 * S + (4-1) * S = B + 7 * S Secara umum elemen A(I,J) dari array A(l:U,L:U) mempunyai starting address : B + (I-L 1 ) * (U 2 -L 2 +1) * S + (J-L 2 ) * S Alternatif lain untuk linierisasi adalah dengan menggunakan cara kolom jika diberikan array A(1:3,1:4) diatas, maka bentuk linierisasinya : kolom 1 kolom 2 kolom 3 kolom 4 Jika B adalah starting address dari array A(1:4,1:6) dan S adalah ruang digunakan untuk masing-masing elemennya, maka starting address dari A(I,J) adalah : B + (J - 1) * 4 * S + (I - 1) * S Hal ini disebabkan ada (J - I) kolom masing-masing dengan 4 elemen yang panjangnya s yang mendahului kolom tempat elemen A(I,J) berada dan ada (I-1) elemen masingmasing dengan panjang S yang mendahului elemen A(I,J) pada kolom ke J. Secara umum dapat dikatakan bahwa elemen A(I,J) dari array A(L 1 :U 1,L 2 :U 2 ), menurut kolom mempunyai starting address : B + (J-L 2 ) * (U 1 -L 1 +1) * S + (I-L 1 ) * S Jika starting adress array tersebut adalah B dan masing-masing elemenya menggunakan ruang sebanyak S bit. Contoh : Misal diberikan array K(1:4,1:6) dengan starting address B dan masing-masing elemenya menggunakan ruang S bit. Maka starting adress dari elemen k(2,4) adalah : = B + (4-1) * (4-1+1) * S + (2-1) * S = B + 3 * 4* S + 1 * S = B + 13 * S 16

22 2.5 RECORD Record adalah himpunan dari elemen-elemen yang heterogen. Heterogen adalah elemen-elemennya dapat mempunyai tipe data yang berbeda. Beberapa hal yang perlu diketahui dalam record sbb: 1. ELEMENTARY ITEM adalah suatu field yang tidak mempunyai subfield. 2. GROUP ITEM adalah suatu field yang mempunyai subfield. 3. TUPEL adalah gabungan atribut yang menjadi suatu informasi dari proses basis data. Contoh RECORD : PEGAWAI Job Tittle Emp. No Pay Rate Name Telp. No Analys Bob Geldof Programmer Ceu Rika ( String(20) ) ( String(8) ) ( Real(9,2) ) ( String(25) ) ( String(7) ) Record-record yang tipenya sama : FILE. Untuk menyatakan suatu data dalam record yang mempunyai identifikasi yang khusus, maka harus punya 1 field khusus yang disebut KEY (kunci field). 2.6 DEKLARASI RECORD DALAM BAHASA PEMROGRAMAN PROGRAM DALAM PASCAL Type Pegawai = Record; Job_Tittle : String[20]; Emp_No : String[8]; Pay_Rate : Real; Name : String[25]; Telp_No : String[7]; End; 17

23 BAB III STACK 3.1 LINEAR LIST Linear List adalah suatu struktur data yang merupakan himpunan terurut. Misal didefinisikan suatu linear list A yang terdiri atas T buah elemen sebagai berikut : A = [a1, a2,..., at] Jika T = 0, maka A dikatakan sebagai Null List. Suatu elemen dari sembarang posisi pada linear list A dapat dihilangkan. Sebaliknya, suatu elemen baru dapat dimasukkan ke dalam list dan dapat menempati sembarang posisi pada list tersebut. Jadi suatu linear list dapat berkurang atau bertambah setiap saat. 3.2 DEFINISI STACK Stack adalah suatu bentuk khusus dari linear list di mana operasi penyisipan dan penghapusan atas elemen-elemennya hanya dapat dilakukan pada satu sisi saja yang disebut sebagai TOP. Misal diberikan Stack S sebagai berikut : S = [ S1, S2,..., ST ] maka TOP(S) = ST. Untuk menunjukkan jumlah elemen suatu stack digunakan notasi NOEL. Dari stack di atas, maka NOEL(S) = T. Selanjutnya, jika diberikan sebuah stack S = [A,B,C,D], maka stack S ini dapat digambarkan sebagai berikut : D C B A Top A B C D Top A B C D Top D C Top B A 18

24 3.3 OPERASI DASAR PADA STACK Ada empat operasi dasar yang didefinisikan pada stack, yaitu : 1. CREATE(stack) 2. ISEMPTY(stack) 3. PUSH(elemen,stack) 4. POP(stack) CREATE Operator ini berfungsi untuk membuat sebuah stack kosong dan didefinisikan bahwa : NOEL(CREATE(S)) = 0 dan TOP(CREATE(S)) = null ISEMPTY Operator ini berfungsi untuk menentukan apakah suatu stack adalah stack kosong. Operasinya akan bernilai boolean, dengan definisi sebagai berikut : ISEMPTY(S) = true, jika S adalah stack kosong = false, jika S bukan stack kosong atau ISEMPTY(S) = true, jika NOEL(S) = 0 = false, jika NOEL(S) 0 Catatan : ISEMPTY(CREATE(S)) = true PUSH Operator ini berfungsi untuk menambahkan satu elemen ke dalam stack. Notasi yang digunakan adalah : PUSH(E,S) Artinya : menambahkan elemen E ke dalam stack S. Elemen yang baru masuk ini akan menempati posisi TOP. Jadi : TOP(PUSH(E,S)) = E. 19

25 Akibat dari operasi ini jumlah elemen dalam stack akan bertambah, artinya NOEL(S) menjadi lebih besar atau stack menjadi tidak kosong (ISEMPTY(PUSH(E,S)) = false) POP Operator ini berfungsi untuk mengeluarkan satu elemen dari dalam stack. Notasinya : POP(S) Elemen yang keluar dari dalam stack adalah elemen yang berada pada posisi TOP. Akibat dari operasi ini jumlah elemen stack akan berkurang atau NOEL(S) berkurang dan elemen pada posisi TOP akan berubah. Operator POP ini tidak dapat digunakan pada stack kosong, artinya : POP(CREATE(S)) = error condition Catatan : TOP(PUSH(E,S)) = E 3.4 DEKLARASI STACK PADA BAHASA PEMROGRAMAN Dalam bahasa pemrograman, untuk menempatkan stack biasanya digunakan sebuah array. Tetapi perlu diingat di sini bahwa stack dan array adalah dua hal yang berbeda. Misalkan suatu variabel S adalah sebuah stack dengan 100 elemen. Diasumsikan elemen S adalah integer dan jumlah elemennya maksimum adalah 100 elemen. Untuk mendeklarasikan stack dengan menggunakan array, harus dideklarasikan pula variabel lain yaitu TOP_PTR yang merupakan indeks dari array. Variabel TOP_PTR ini digunakan untuk menyatakan elemen yang berada pada posisi TOP dalam stack tersebut. Selanjutnya gabungan kedua variabel ini diberi nama STACK_STRUCT. Kemudian didefinisikan bahwa : NOEL(S) = TOP_PTR ISEMPTY(S) = TRUE, jika TOP_PTR = 0 dan FALSE, jika TOP_PTR > 0. 20

26 Maka bentuk deklarasinya dalam PASCAL adalah : TYPE Stack_Struct = Record Stack : array[1..100] of integer; TopPtr : integer; End; VAR S : Stack_Struct; Selanjutnya, untuk keperluan operasi PUSH dan POP harus dibuat suatu prosedur tersendiri, yaitu : PROCEDURE PUSH(Eon : integer); Begin If (S.TopPtr < NoelMax) Then Begin S.TopPtr := S.TopPtr + 1; S.Stack [S.TopPtr] := Eon End Else Overflow_Condition End; PROCEDURE POP(Eoff : integer); Begin If (S.TopPtr > 0) Then Begin Eoff := S.Stack[S.TopPtr]; S.TopPtr := S.TopPtr - 1 End Else Underflow_Condition End; Catatan : Overflow adalah suatu keadaan di mana kita melakukan operasi PUSH terhadap stack dalam keadaan penuh. Underflow adalah keadaan di mana kita melakukan operasi POP 21

27 terhadap stack kosong. Eon adalah elemen yang akan dimasukkan ke dalam stack dan Eoff adalah elemen yang akan dikeluarkan dari dalam stack. 3.5 PENGGUNAAN/ APLIKASI STACK Logika stack digunakan untuk menyelesaikan berbagai macam masalah. Antara lain digunakan pada compiler, operating system dan dalam program-program aplikasi. Berikut ini tiga buah contoh aplikasi stack, yaitu : MATCHING PARENTHESES Proses ini dilakukan compiler untuk memeriksa kelengkapan tanda kurung yang terdapat pada suatu ekspresi aritmetik. Sedangkan stack di sini digunakan sebagai tempat prosesnya. Algoritma yang digunakan adalah : 1. Elemen-elemen suatu ekspresi aritmetik (string) di-scan dari kiri ke kanan. 2. Jika ditemukan simbol "(" atau "Left parenthesis", maka simbol tersebut di-push ke dalam stack. 3. Jika ditemukan simbol ")" atau "Right parenthesis", maka isi stack diperiksa. Jika stack kosong terjadi kesalahan. berarti : ada simbol ")", tetapi tidak ada simbol "(" yang seharusnya mendahului. Jika stack tidak kosong artinya ada pasangannya dan langsung di-pop keluar stack. Misalkan NEXT CHAR adalah suatu karakter terakhir dalam suatu string. Berikut ini bentuk flowchart (logika proses) yang digunakan pada proses matching ini : 22

28 position NEXT CHAR at end of string end of string y stack empty y valid syntax n n invalid syntax(unclosed left parenthesis) done found "(" n y push "(" on to stack found ")" y stack empty y invalid syntax(unclosed left parenthesis) n n pop stack done increament NEXT CHAR to next character in string NOTASI POSTFIX Bentuk aplikasi stack yang lain adalah mengubah suatu ekspresi aritmatik (string) ke dalam notasi postfix. Notasi postfix ini digunakan oleh compiler untuk menyatakan suatu ekspresi aritmatik dalam bahasa tingkat tinggi (high level language). Stack digunakan oleh compiler untuk mentransformasikan ekspresi aritmatik menjadi suatu ekspresi dalam bentuk/notasi postfix. Contoh : Misal diberikan ekspresi aritmatik : A + B ; Maka bentuknya dalam notasi postfix menjadi : AB+ Urutan (prioritas) dari operator adalah : 1. Perpangkatan (^) 2. Perkalian (*) atau Pembagian (/) 3. Penjumlahan (+) atau Pengurangan (-) 23

29 Aturan yang digunakan dalam proses transformasi tersebut adalah : 1. Ekspresi aritmatik yang diberikan di- "Scan" dari kiri ke kanan. 2. Bila simbol yang di-scan adalah "(", maka simbol tersebut di push ke dalam stack. 3. Bila simbol yang di-scan adalah ")", maka seluruh isi stack di pop keluar mulai dari simbol "(" yang pertama ditemukan dalam stack. 4. Bila simbol adalah operator, maka dilakukan perbandingan dulu dengan simbol (operator) yang berada pada posisi top dalam stack. a. Jika derajatnya setara atau lebih rendah dari simbol yang berada pada posisi top, maka top stack di-pop keluar sebagai output dan simbol yang baru dipush ke dalam stack. b. Jika derajatnya lebih tinggi dari simbol yang berada pada posisi top, maka simbol (operator) yang di-scan tersebut di-push ke dalam stack. 5. Bila simbol yang di-scan adalah operand, maka simbol tersebut langsung sebagai output. 6. Bila simbol adalah ";" maka seluruh isi stack di-pop sebagai output. Contoh : Misal diberikan sebuah ekspresi aritmatik dengan bentuk sbb: ( (A + B) * C / D + E ^ F ) / G ; Selanjutnya akan dicari bentuk ekspresi diatas dalam notasi postfix. Proses yang dilakukan dapat digambarkan dalam tabel berikut : Urutan Proses Simbol Yang di Scan ( ( A + B ) * C / D + E ^ F ) / G ; Top ( ( ( + + ( * * / / + + ^ ^ / / ( ( ( ( ( ( ( ( ( ( + + ( ( ( ( Output A B + C * D / E F ^+ G / 24

30 Jadi ekspresi aritmatik : ( ( A + B ) * C / D + E^F ) / G ; dalam notasi postfix menjadi : AB+D*C/EF^+G/ PROSES REKURSIF Stack juga dapat digunakan untuk menelurusuri suatu program atau procedure yang rekursif. Berikut ini sebuh contoh yang menyelesaikannya menggunakan proses rekursif. Persoalan : Agar diperoleh uang sebanyak rupiah pada 25 tahun yang akan datang, berapakah banyak uang yang harus didepositokan saat ini? dianggap bahwa tingkat bunga tidak berubah selama 25 tahun yaitu sebesar 8% per/tahun. Penyelesaian : Untuk menyelesaikan masalah ini akan digunakan logika stack yaitu : - pada tahun ke-25 jumlah uang = Rp ,- - pada tahun ke-24 jumlah uang = Rp / ( ) - pada tahun ke-23 jumlah uang =. dst Berikut ini sebuah program PASCAL yang mengandung suatu procedure rekursif untuk menghitung jumlah uang diinginkan. PROGRAM DEPOSITO ; CONST Goal = ; Rate = 0.08; VAR Ju : Real; Thn: Integer; PROCEDURE Hitung (VAR Thn : Integer); BEGIN IF (Thn > 0) THEN 25

31 BEGIN Ju := Ju/(1.0 + Rate); Thn := Thn - 1; Hitung(Thn); END; END; BEGIN Thn := 25; Ju := Goal; HITUNG(Thn); WRITE(Ju); END. Pemanggilan pertama procedure HITUNG dimana nilai Thn =25 Top 9 Pemanggilan kedua procedure HITUNG dimana nilai Thn = 24 Top 5 9 Pemanggilan ketiga procedure HITUNG, dimana nilai Thn = 23 Top

32 Setelah 25 kali pemanggilan procedure HITUNG keadaan stack adalah : Top kali pemanggilan statement langkah ke MAPPING KE STORAGE DARI STACK Bentuk mapping ke storage dari stack yang paling sederhana adalah dengan menggunakan pendekatan array satu dimensi. Hal ini karena sarana yang digunakan untuk menyatakan suatu stack adalah array. Jika diberikan stack S dengan m elemen maka bentuk mappingnya seperti mapping array satu dimensi dengan m elemen. start stack S TOP elemen batas/start struktur data lain Selanjutnya jika terdapat dua stack S 1 dan S 2 masing-masing dengan jumlah maksimum elemennya adalah M dan N, maka kedua stack ini dialokasikan dalam dengan bentuk sbb: start S2 start S1 TOP S1 TOP S2 start (sementara) (sementara) struktur data lain 27

33 Konsep mapping seperti diatas dianggap tidak efisien, terutama jika S 1 dan S 2 tidak penuh pada saat yang bersamaan. Cara yang dianggap lebih baik adalah : Jika diketahui bahwa jumlah elemen S 1 dan S 2 tidak melebihi jumlah tertentu, misal N. NOEL(S 1 ) + NOEL(S 2 ) <= N Maka bentuk mapping yang digunakan adalah : start s1 TOP s1 TOP s2 start s2 (sementara) (sementara) 28

34 BAB IV QUEUE 4.1 DEFINISI Queue adalah suatu linear list di mana operasi DELETE terjadi pada sisi depan (FRONT) dan operasi INSERT terjadi pada sisi belakang (REAR). Jika diberikan suatu Queue Q dengan elemen-elemennya yang terdiri atas Q 1, Q 2,..., Q T maka queue Q dituliskan Q = [ Q 1, Q 2,..., Q T ] FRONT(Q) = Q 1 REAR(Q) = Q T Selanjutnya untuk menyatakan jumlah elemen dalam suatu queue Q digunakan notasi NOEL(Q). Catatan : Satu pengoperasian berlaku hanya untuk satu elemen. 4.2 GAMBAR QUEUE Untuk menggambarkan suatu queue dapat dilakukan beberapa cara, yaitu : Misal : diberikan Queue Q = [A, B, C, D, E, F], maka Queue Q dapat digambarkan sebagai berikut : A B C D E F FRONT REAR F E D C B A REAR FRONT atau dapat pula digambarkan dengan posisi tegak. 29

35 4.3 PRINSIP KERJA QUEUE Prinsip kerja Queue adalah FIFO (First In First Out), di mana data yang masuk terlebih dahulu akan keluar pertama. 4.4 OPERASI-OPERASI PADA QUEUE (Q) Terdapat empat operasi dasar yang didefinisikan pada queue, yaitu : 1. CREATE Bentuk Umum : CREATE(Queue) Suatu operasi CREATE(Q) akan menghasilkan suatu queue kosong dengan nama Q, dan didefinisikan bahwa : NOEL(CREATE(Q)) = 0 FRONT(CREATE(Q)) = tidak terdefinisi REAR(CREATE(Q)) = tidak terdefinisi 2. ISEMPTY Bentuk Umumnya adalah : ISEMPTY(queue) Jika Q adalah Queue, maka ISEMPTY(Q) adalah suatu operasi yang digunakan untuk memeriksa apakah Queue Q adalah queue kosong. Jika hasil dari operasi ini akan berjenis data boolean (true/false), dengan bentuk sebagai berikut : ISEMPTY(Q) = True, jika Q adalah queue kosong. = False, jika Q bukan queue kosong. 3. INSERT Bentuk Umumnya : INSERT(elemen, Queue) INSERT(E,Q), di mana E = elemen dan Q = queue, adalah suatu operasi yang digunakan untuk memasukkan elemen E ke dalam queue Q. Didefinisikan, bahwa elemen E akan menjadi elemen yang berada pada posisi REAR dari queue Q. Akibat dari operasi ini adalah : - REAR(INSERT(E,Q)) = E - NOEL(Q) bertambah satu dan Q NOEL adalah E 30

36 Jika Q adalah queue kosong, maka : ISEMPTY(INSERT(E,Q)) = False Dalam bentuk statement Pascal, biasanya dituliskan : IF ISEMPTY(Q) Then front(insert(e,q)) = E Else front(insert(e,q)) = front(q) ; 4. REMOVE Bentuk Umum : REMOVE(elemen, queue) REMOVE(Q) berarti mengeluarkan elemen Q yang berada pada posisi FRONT. Akibat dari operasi ini, elemen Q akan berkurang satu dan elemen kedua (elemen yang berada disebelahnya) akan menjadi elemen yang berada pada posisi FRONT dari queue Q ini. Selanjutnya, jika Q adalah queue kosong, maka REMOVE(Q) akan menghasilkan suatu Error. IF NOEL(Q) = 0 Then Remove(Q) = erroe_condition Remove(create(Q)) = error_condition 4.5 DEKLARASI QUEUE DALAM PASCAL Dalam bahasa pemrograman biasanya tidak ada fasilitas queue (built in queue). Untuk itu setiap programmer harus mendefinisikan sendiri dengan bantuan fasilitas yang ada. Pada umumnya fasilitas yang digunakan untuk mendeklarasikan queue adalah Array. Bentuk deklarasinya dalam bahasa Pascal adalah sebagai berikut : TYPE StrukQueue = Record Q : Array[1..100] of integer; Front, Rear : integer; End; VAR Q : StrukQueue; Selanjutnya untuk keperluan operasinya (bentuk proses atau logikanya), harus dibuat suatu procedure tersendiri dan disesuaikan dengan aturan-aturan yang berlaku (yang telah didefinisikan). Berikut ini contoh sebuah procedure yang digunakan untuk 31

37 menggantikan operator insert. Pada procedure berikut ini dimisalkan eon adalah elemen yang akan dimasukkan ke dalam queue dan noelmax adalah kapasitas maximum elemenelemen yang dapat ditampung dalam queue. Procedure INSERT (eon : integer); Begin If (q.rear < noelmax) Then Begin q.rear := q.rear + 1; q.queue[q.rear] := eon; If (q.front = 0) Then q.front := 1 End Else overflow_condition End; Procedure REMOVE(var eoff : integer); Begin If (q.front > 0) Then Begin eoff := q.queue[q.front]; If (q.front = q.rear) Then Begin q.front := 0; q.rear := 0; End Else q.front := q.front + 1 End Else underflow-condition End; 32

38 4.6 CIRCULAR QUEUE Misal diberikan queue Q dengan jumlah maksimum elemen sebanyak 100, yang digambarkan sebagai berikut : Queue di atas diisi secara berurutan empat elemen A, B, C dan D, sehingga bentuknya menjadi: A B C D FRONT = 1 ; REAR = 4 menjadi : Kemudian dilakukan operasi REMOVE dua kali berurutan, sehingga bentuknya C D FRONT = 3 ; REAR = 4 Selanjutnya dilakukan operasi INSERT untuk 3 elemen secara berurutan, yaitu E, F dan G, maka bentuknya menjadi : C D E F G FRONT = 3 ; REAR = 7 Kemudian dilakukan operasi REMOVE lagi berurutan terhadap dua elemen, sehingga bentuknya menjadi : 33

39 E F G FRONT = 5 ; REAR = 7 Terlihat bahwa elemen-elemen queue bergerak terus dari kiri ke kanan sepanjang arraynya. Apa yang terjadi bila suatu saat REAR = 100 dan kita masih akan memasukkan suatu elemen ke dalam queue? Dalam keadaan ini, batas maksimum telah dicapai, padahal kita masih ingin menambah/memasukkan beberapa elemen lagi. Salah satu cara/pendekatan untuk menyelesaikan masalah seperti ini adalah dengan menambah ukuran array yang digunakan. Artinya kita harus mendeklarasikan array dengan ukuran yang besar untuk menempatkan queue tersebut. Tetapi cara ini dianggap tidak efektif, karena keadaan serupa masih dapat muncul kembali. Cara lain yang dianggap lebih baik adalah dengan mengubah queue tersebut ke dalam bentuk yang disebut CIRCULAR. Berikut ini contoh bentuk circular tersebut :... Q(N-3) Q(N-2) Q(N-1) Q(N) Q(1) Q(5) Q(4) Q(3) Q(2) Dalam hal ini kondisi dari suatu queue kosong adalah :FRONT = REAR = 0 Jika queue hanya berisi dua elemen, maka bentuknya adalah : F R 34

40 Selanjutnya jika elemen queue melampaui batas yang ada sedangkan kita masih memiliki ruang yang kosong, maka posisi FRONT dan REAR harus di-'reset' dulu agar kita bisa memasukkan elemen ke dalam queue tersebut. Berikut ini sebuah algoritma yang digunakan untuk operasi INSERT start REAR pd akhir array? tdk ya Move REAR ke posisi yg pertama dr array Move REAR satu posisi dalam array FRONT & REAR pd posisi yg sama? ya overflow tdk Insert elemen pd posisi REAR dlm array satu-satunya elemen pd queue tdk ya Move FRONT pd posisi tsb dlm array selesai 35

41 Algoritma yang digunakan untuk operator REMOVE pada circular queue : start queue ya kosong? underflow selesai tdk REMOVE elemen pada posisi FRONT satusatunya elemen pd queue? ya reset FRONT dan REAR = 0 tdk FRONT pd akhir array? ya move FRONT ke posisi awal dari array tdk move FRONT pd posisi yang baru dalam array selesai 36

42 Sedangkan bentuk procedure-nya dalam bahasa Pascal adalah sebagai berikut PROCEDURE insert (eon : integer); BEGIN IF (q.rear = n) THEN q.rear := 1 ELSE q.rear := q.rear + 1; IF (q.rear = q.front) THEN overflow_condition end; ELSE BEGIN q.queue[q.rear] := eon; IF (q.front = 0) THEN q.front := 1 end; PROCEDURE remove (eoff : integer); BEGIN IF (q.front = 0) THEN underflow_condition ELSE BEGIN eoff := q.queue[q.front] ; IF (q.front = q.rear) THEN BEGIN q.front := 0; q.rear := 0 END END; ELSE IF (q.front = n) THEN q.front := 1 ELSE q.front:=q.front + 1 END; 37

43 BAB V LINKED LIST 5.1 PENDAHULUAN. Dalam suatu linear list kita dapat melakukan operasi penyisipan atau penghapusan atas elemen-elemennya pada sembarang posisi. Misalkan ada 1500 item yang merupakan elemen dari suatu linear list. Jika elemen ke-56 akan kita keluarkan, maka elemen ke-1 s/d elemen ke-55 tidak akan berubah posisinya pada linear list tersebut. Tetapi elemen ke- 57 akan menjadi elemen ke-56, elemen ke-58 akan menjadi elemen ke-57 dst. Selanjutnya, jika kita sisipkan satu elemen pada posisi setelah elemen ke-41, maka elemen ke-42 s/d elemen ke-1500 akan berubah posisinya. Untuk menyatakan keadaan diatas diperlukan suatu konsep yang berbeda dengan konsep sekuensial sebelumnya. Linked list merupakan suatu cara non-sekuensial yang digunakan untuk merepresentasikan suatu data. 5.2 DEFINISI Linked list (one way list) adalah suatu kumpulan elemen data (yang disebut sebagai node) dimana urutannya ditentukan oleh suatu pointer. Setiap elemen (node) dari suatu linked list terdiri atas dua bagian, yaitu : INFO, berisi informasi tentang elemen data yang bersangkutan. NEXT (link field/ next pointer field), berisi alamat dari elemen (node) selanjutnya yang dituju. Berikut ini sebuah contoh linked list yang terdiri atas 4 node : start info next info next info next info next null node ke-1 node ke-2 node ke-3 node ke-4 Pada node ke-4 field NEXT-nya berisi NULL, artinya node ke-4 tsb. adalah node terakhir. 38

44 Node-node dalam linked list tidak harus selalu digambarkan paralel seperti pada gambar diatas. Linked list pada contoh diatas dapat pula digambarkan seperti berikut : info next info next null info next info next CATATAN : - Ada dua hal yang menjadi kerugian dengan representasi suatu data dengan linked list ini, yaitu : 1. Diperlukan ruang tambahan untuk menyatakan/tempat field pointer. 2. Diperlukan waktu yang lebih banyak untuk mencari suatu node dalam linked list. - Sedangkan keuntungannya adalah : 1. Jenis data yang berbeda dapat di-link. 2. Operasi REMOVE atau INSERT hanya dilakukan dengan mengubah pointernya saja. 5.3 OPERASI DASAR PADA LINKED LIST Ada beberapa aturan yang didefinisikan pada operasi didalam linked list, yaitu : Jika P adalah suatu variabel pointer, maka nilainya adalah alamat atau lokasi dari variabel lain yang dituju. Operasi yang didefinisikan pada suatu variabel pointer adalah : 1. Test apakah sama dengan NULL. 2. Test untuk kesamaan dengan variabel pointer lain. 3. Menetapkan sama dengan NULL. 4. Menetapkan menuju ke node lain. 39

45 Notasi yang didefinisikan sehubungan dengan operasi diatas adalah : 1. NODE(P), artinya node yang ditunjuk oleh pointer P. 2. INFO(P), artinya nilai INFO dari node yang ditunjuk pointer P. 3. NEXT(P), artinya hubungan (link) selanjutnya dari node yang ditunjuk oleh pointer P. Sebagai contoh, perhatikan linked list dibawah ini : start info A next node ke-1 info next B node ke-2 info next C node ke-3 P info D next null node ke-4 NODE(P) = node yang ditunjuk oleh P yaitu node pertama. INFO(P) = A NEXT(P) = node ke-dua INFO(NEXT(NEXT(P))) = C 5.4 MENGHAPUS SUATU NODE DARI LINKED LIST (REMOVE) Untuk menghapus node dalam linked list digunakan procedure FREENODE. Jika Q adalah suatu variabel pointer, maka FREENODE(Q) akan menyebabkan node yang ditunjuk oleh variabel pointer Q dihapus dari linked list. Perhatikan linked list berikut : langkah ke-1 : Q := Next(P) info next info next info next P Q info next... 40

46 langkah ke-2 : Next(P) := Next(Q) info next info next info next info next P Q langkah ke-3 : Freenode(Q) procedure Freenode(Q) (a) Next(Q) := Avail Q info next Avail next info next info next... null (b) (c) P Info(Q) := Null Avail := Q Avail Q next next info next info next... null 41

47 5.5 MENYISIPKAN SUATU NODE KE DALAM LINKED LIST Untuk menyisipkan node dalam linked list digunakan procedure GETNODE. Jika NEW adalah suatu variabel pointer, maka GETNODE(NEW) akan menyebabkan node yang ditunjuk oleh variabel pointer NEW disisipkan ke dalam linked list Procedure Getnode(NEW) if Avail = Null then out-of-free-space (a) else begin Getnode := Avail; Avail info next info next info next info next... null (b) Avail := Next(Avail); Getnode info next info next info next info next... null Avail (c) end; Getnode Next(Getnode) : = Null; info next info next info next info next Avail... null null Algoritma menyisipkan sebuah Node (a) Getnode(NEW); (b) Info(NEW) := Name; 42

48 next NEW info Name null next info next info next... (c) (d) Q := Next(P) Next(P) := NEW P Q next NEW info Name null next info next info next... P Q (e) Next(NEW) := Q NEW info Name next next info next info next P Q 43

49 5.6 LOGIKA LINKED LIST PADA ARRAY (a) Jika tidak menggunakan logika linked list (pada umumnya dalam meng-input data digunakan cara sequential) Awal Insert E Delete Insert F C 1 A 1 A 1 A 1 A 2 C 2 C E 3 E 3 E F Insert G Delete E (overflo w) 1 A 1 A F 4 F (b) Jika menggunakan logika Linked List Keadaan awal Insert E Delete C Info Nex t Info Nex t Info Nex t 1 A 2 1 A 2 1 A 3 2 C 0 2 C E 0 3 E

50 Insert F Delete E Insert G Info Nex t Info Nex t Info Nex t 1 A 3 1 A 2 1 A 2 2 F 0 2 F 0 2 F 3 3 E G MENDEFINISIKAN LINKED LIST DALAM PASCAL Type nodeptr = ^ nodetype; nametype = packed array [1..10] of char; nodetype = record info : nametype; next : nodeptr; end; Var p : nodeptr; node : nodetype; * Catatan : P ^. Info : Info dari node yang ditunjuk oleh pointer P P^. Next : Next dari node yang ditunjuk oleh pointer P P := nil : pointer P berisi nilai Null New(P) : fungsi Getnode dalam Pascal dispose(p) : procedure Freenode dalam Pascal 5.8 MENGHAPUS SEBUAH NODE DALAM PASCAL procedure removaf(p:nodeptr, var out:nametype); var q : nodeptr; begin if (p^.next = nil) then UNDERFLOW-CONDITION else begin 45

51 end; q := p^.next; p^.next := q^.next; out := q^.info; dispose(q); end; 5.9 MENYISIPKAN SEBUAH NODE DALAM PASCAL procedure inseraf(p:nodeptr, in:nametype); var q : nodeptr; begin New(q); q^.info := in; q^.next := p^.next; p^.next := q; end; 5.10 PENYISIPAN PADA AKHIR DARI SUATU LINKED LIST (LINKED LIST ANTREAN) DALAM PASCAL Procedure Inserend(first : nodeptr, in :nametype); Var newnode, q : nodeptr; Begin New(newnode); newnode^.info := in; newnode^.next := nil; q := first; do while (q^.next <> nil) q := q^.next; q^.next := newnode; End; 46

52 Jika sebuah Linked List digunakan untuk menggambarkan suatu antrean, dalam hal ini pointer dapat langsung menunjuk ke rear/akhir dari antrean untuk menghindari pengulangan melalui semua node untuk menemukan node terakhir. procedure inserend(in : nametype, var rear : nodeptr); var newnode : nodeptr; begin New(newnode); newnode^.info := in; newnode^.next := nil; rear^.next := newnode; rear := newnode; end; 5.11 CIRCULAR LINKED LIST first info next info next info next info next... Head Nodes Head info next info next info next info next... Circular Linked List dengan Head Node Head info next Circular Linked List dengan Head Node kosong 47

53 5.12 ALGORITMA PENYISIPAN NODE YANG BERISI VARIABEL NAME PADA HEAD DALAM LINKED LIST (a) Ambil node baru pada free storage kemudian node tersebut ditunjuk oleh pointer NEW (b) Isikan Info dengan Name pada node baru tsb. (c) Next dari node baru tsb. menunjuk ke node yang ditunjuk oleh pointer Head (d) Pindahkan pointer Head menunjuk ke node yang baru MENGHAPUS NODE KHUSUS Procedure removp(head : nodeptr, var p:nodeptr, out : nametype); Var prior, this : nodeptr; flag : 0..2; Begin prior := head; this := head^.next; flag := 1; While flag = 1 do begin if (this = head) then flag := 2; if (this = p) then flag := 0 else begin prior := this; this := this^.next; end; end; if (flag > 0) then Node yang ditunjuk oleh pointer p tidak ada dalam List else begin prior^.next := p^.next; 48

54 end; out := p^.info; dispose(p) End; 5.14 DOUBLY LINKED LIST Head prior info next... Tiap node memiliki pointer yang menunjuk ke node sesudahnya dan pointer yang menunjuk ke node sebelumnya. Node Sesudahnya : Next(Node) Node sebelumnya : Prior(Node) Next(Prior(P)) = P dan P = Prior(next(P)) Double Linked List Kosong prior head next prior head next Prior(Head) = Head Next(Head) = Head Dalam Pascal : Type nodeptr = ^ nodetype nodetype = record prior : nodeptr; info : nametype; next : nodeptr end; 49

55 Procedure menghapus sebuah node pada Double Linked List (a) Set pointer P prior info next (b) P Ubah pointer pada node Next predecessor P ke node Successor P prior info next (c) P Ubah pointer pada node dari prior Successor P ke node Predeccssor P prior info next P (d) bebaskan node yang ditunjuk pointer P Dalam Pascal : Procedure Removp(var p:nodeptr, out : nametype); Var pred, succ : nodeptr; Begin pred := p^.prior; succ := p^.next; pred^.next := succ; succ^.prior := pred; out := p^.info; dispose(p) End; 50

56 Penyisipan sebuah Node pada Doubly Linked List (a) (b) Ambil sebuah node baru dan isikan datanya Set pointer dari Next node baru menunjuk ke Successor P dan pointer Proirnya ke P P NEW IN (c) (d) Ubah pointer Next P menunjuk ke node baru AVAIL Ubah pointer Prior dari Successor P menunjuk ke node baru P NEW IN AVAIL 5.15 Contoh Aplikasi Linked List Polynomial anx n + an-1 x n a2 x 2 + a1 x + a0 Type nodeptr = ^nodetype; nodetype = record exp : integer; coef : integer; next : nodeptr; end; 51

57 143 x x x + 2 a4 = 143 a3 = 0 a2 = 201 a1 = 14 a0 = 2 POLY 1 EXP COEF

58 BAB VI GRAPH 6.1 DEFINISI GRAPH merupakan suatu koleksi dari himpunan V G dan E G. Notasi : G = { VG, EG } G = Graph VG = Himpunan titik EG = HImpunan garis Titik : Node / Vertex Garis : Arc / Edge Contoh : Graph G terdiri dari : G = { VG, EG } VG = { a,b,c,d } EG = { 1,2,3,4,5,6,7,8 } 8 a b d edge 1 menghubungkan vertex a & b Edge 1 = (a,b) - edge 2 menghubungkan vertex b & c Edge 2 = (b,c) - edge 3 menghubungkan vertex b & c Edge 3 = (b,c), dst... c Jumlah vertex dalam suatu graph disebut ORDER dari graph tersebut. Contoh : Graph G dengan order = 4 (jumlah vertex = 4 ; a,b,c,d) Suatu graph hanya ditentukan oleh vertex-vertex dan edge-edgenya. Posisi dari vertex-vertex dan edge-edge dalam penggambaran tidaklah penting. 53

Struktur dan Organisasi Data 2 STRUKTUR DATA

Struktur dan Organisasi Data 2 STRUKTUR DATA STRUKTUR DATA PENDAHULUAN Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Algorithma : barisan langkah-langkah

Lebih terperinci

BAB 1 TIPE DATA. Struktur Data 1. Sederhana : Array dan Record 2. Majemuk terdiri atas Linier Non Linier

BAB 1 TIPE DATA. Struktur Data 1. Sederhana : Array dan Record 2. Majemuk terdiri atas Linier Non Linier TIPE DATA Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Data secara umum dapat dikategorikan : Tipe data

Lebih terperinci

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

BAB 1 TIPE DATA. Selain itu terdapat operasi MOD (Modulo) adalah sisa dari pembagian Contoh : 27 MOD 4 = 3 BAB 1 TIPE DATA Struktur data adalah suatu koleksi atau kelompok data yang dapat dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Data secara umum dapat dikategorikan :

Lebih terperinci

QUEUE. Queue adalah suatu linear list di mana operasi DELETE terjadi pada sisi depan (FRONT) dan operasi INSERT terjadi pada sisi belakang (REAR).

QUEUE. Queue adalah suatu linear list di mana operasi DELETE terjadi pada sisi depan (FRONT) dan operasi INSERT terjadi pada sisi belakang (REAR). QUEUE n DEFINISI Queue adalah suatu linear list di mana operasi DELETE terjadi pada sisi depan (FRONT) dan operasi INSERT terjadi pada sisi belakang (REAR). Jika diberikan suatu Queue Q dengan elemen-elemenn

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

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

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

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

Array. Array mempunyai dimensi : 1. Array Dimensi Satu (Vektor) 2. Array Dimensi Banyak. - Dimensi Dua (Matriks/Tabel) - Dimensi Tiga (Kubik). Array Array merupakan bagian dasar pembentukan suatu struktur data yang lebih kompleks. Hampir setiap jenis struktur data kompleks dapat disajikan secara logik oleh array. Array : Suatu himpunan hingga

Lebih terperinci

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

Type Data terdiri dari : - Data Tunggal : Integer, Real, Boolean dan Karakter. - Data Majemuk : String Struktur dapat diartikan sebagai suatu susunan, bentuk, pola atau bangunan. Data dapat diartikan sebagai suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode atau lambang-lambang

Lebih terperinci

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM

5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM 5. QUEUE (ANTRIAN) TUJUAN PRAKTIKUM 1. Praktikan mengenal salah satu lagi tipe khusus dari link list yaitu queue/ antrian beserta seluruh operasi yang ada padanya. 2. Praktikan diharapkan dapat menerapkan

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

Brigida Arie Minartiningtyas, M.Kom

Brigida Arie Minartiningtyas, M.Kom Brigida Arie Minartiningtyas, M.Kom Struktur Data Struktur dan Data Struktur suatu susunan, bentuk, pola atau bangunan Data suatu fakta, segala sesuatu yang dapat dikodekan atau disimbolkan dengan kode-kode

Lebih terperinci

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar.

QUEUE (ANTREAN) Operasi Antrean : FIFO (First In First Out) Elemen yang pertama masuk merupakan elemen yang pertama keluar. QUEUE (ANTREAN) ANTREAN (Queue) Suatu bentuk khusus dari linear list, dengan operasi penyisipan (insertion) hanya diperbolehkan pada salah satu sisi, yang disebut REAR, dan operasi penghapusan (deletion)

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

QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN)

QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN) QUEUE ( ANTREAN ) 4.1. PENGERTIAN QUEUE (ANTREAN) Setelah pada Bab 3 yang lalu kita bahas tentang salah satu jenis daftar (list) linear, yakni stack, kali ini kita bahas jenis lain dari daftar linear,

Lebih terperinci

STRUKTUR DATA TIPE DATA DNA-STRUKTURDATA 1

STRUKTUR DATA TIPE DATA DNA-STRUKTURDATA 1 STRUKTUR DATA TIPE DATA DNA-STRUKTURDATA 1 APA ITU STRUKTUR DATA Program algoritma dan struktur data Algoritma, langkah-langkah penyelesaian masalah yang tersusun secara logis. Contoh : mengurutkan data;

Lebih terperinci

BAB IV QUEUE ATAU ANTREAN

BAB IV QUEUE ATAU ANTREAN BAB IV QUEUE ATAU ANTREAN Queue atau antrean adalah suatu bentuk khusus dari list linier, dengan operasi penyisipan (insertion) hanya diperbolehkan pada salah satu sisi, yang disebut sisi belakang (REAR)

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

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

Quis. Contoh. Definisi Konsep Part 1,2 Part 3 Part 4. Oleh : Hasan Sanlawi, S.Kom. STMIK Pranata Kampus E : Materi Kuliah STRUKTUR DATA

Quis. Contoh. Definisi Konsep Part 1,2 Part 3 Part 4. Oleh : Hasan Sanlawi, S.Kom. STMIK Pranata Kampus E : Materi Kuliah STRUKTUR DATA Quis Definisi Konsep Part 1,2 Part 3 Part 4 Contoh Oleh : Hasan Sanlawi, S.Kom STMIK Pranata Kampus E : Materi Kuliah STRUKTUR DATA 1 definisi Struktur data terdiri dari dua suku kata, yaitu STRUKTUR dan

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

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

Catatan Kuliah PAM 282 STRUKTUR DATA

Catatan Kuliah PAM 282 STRUKTUR DATA Narwen, M.Si / Jurusan Matematika FMIPA Unand 1 PAM 282 Oleh Narwen, M.Si Jurusan Matematika FMIPA Unand Narwen, M.Si / Jurusan Matematika FMIPA Unand 2 BAB I PENDAHULUAN PENGERTIAN. Struktur data adalah

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

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

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang

Lebih terperinci

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

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang

Lebih terperinci

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

Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pertemuan 1 STRUKTUR DATA Struktur Data adalah : suatu koleksi atau kelompok data yang dapat dikarakteristikan oleh organisasi serta operasi yang didefinisikan terhadapnya. Pemakaian Struktur Data yang

Lebih terperinci

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

Tabel 1. Jenis data integer Ukuran memori (dalam byte)

Tabel 1. Jenis data integer Ukuran memori (dalam byte) TIPE DATA Tipe data yang dikenal dalam bahasa pascal antara lain : Tipe data sederhana / Jenis data yang standar (Dasar) 1. Integer 2. Real 3. Karakter 4. Boolean Tipe data non standar (user defined) 1.

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

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

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA Tim Pengajar KU1102 - Institut Teknologi Sumatera Data Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu

Lebih terperinci

1. Integer Interger adalah data numerik yang tidak mengandung pecahan, dan disajikan dalam memori komputer sebagai angka bulat. Mengacu pada obyek

1. Integer Interger adalah data numerik yang tidak mengandung pecahan, dan disajikan dalam memori komputer sebagai angka bulat. Mengacu pada obyek Pada CPU ARITMATICH 1. Integer Interger adalah data numerik yang tidak mengandung pecahan, dan disajikan dalam memori komputer sebagai angka bulat. Mengacu pada obyek data dengan range -32768 s/d 32767.

Lebih terperinci

Sesi/Perkuliahan ke: II

Sesi/Perkuliahan ke: II Sesi/Perkuliahan ke: II Tujuan Instruksional Khusus : 1. Mahasiswa dapat menyebutkan jenis-jenis data sederhana. 2. Mahasiswa dapat menjelaskan pengertian integer,, boolean dan char. 3. Mahasiswa dapat

Lebih terperinci

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA

PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA PENGANTAR KOMPUTER & SOFTWARE I REPRESENTASI DATA Tim Pengajar KU1102 - Institut Teknologi Sumatera Data Data adalah sesuatu yang belum mempunyai arti bagi penerimanya dan masih memerlukan adanya suatu

Lebih terperinci

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2

VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI. Pemrograman Dasar Kelas X Semester 2 VARIABEL, TIPE DATA, KONSTANTA, OPERATOR DAN EKSPRESI Tujuan Pembelajaran 1. Siswa mampu memahami penulisan Tipe data, variabel dan konstanta dalam pascal 2. Siswa mampu menerapkan penggunaan Tipe data,

Lebih terperinci

STRUKTUR DATA Pertemuan 4

STRUKTUR DATA Pertemuan 4 STRUKTUR DATA Pertemuan 4 Struktur Data prepared by Suyanto 1 Definisi Stack atau Tumpukan adalah suatu struktur data yang terbentuk dari barisan hingga yang terurut dari satuan data. Pada Stack, penambahan

Lebih terperinci

SEARCHING & SORTING. Pendahuluan

SEARCHING & SORTING. Pendahuluan SEARCHING & SORTING Pendahuluan Sorting dan searching merupakan salah satu operasi dasar dalam ilmu komputer. Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang diberikan

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

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

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A

PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A PENGANTAR KOMPUTER DAN TEKNOLOGI INFORMASI 1A REPRESENTASI DATA ALUR PEMROSESAN DATA SISTEM BILANGAN TEORI BILANGAN KOVERSI BILANGAN OPERASI ARITMATIKA Representasi Data Data adalah sesuatu yang belum

Lebih terperinci

MODUL STRUKTUR DATA. Erna Kumalasari Nurnawati

MODUL STRUKTUR DATA. Erna Kumalasari Nurnawati MODUL STRUKTUR DATA Erna Kumalasari Nurnawati Apa yang dipelajari??? Sorting = mengurutkan sejumlah data berdasar kunci tertentu array,array record Searching (pencarian)->array+record Struktur tumpukan

Lebih terperinci

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA

MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA MATERI 2 JENIS-JENIS DATA SEDERHANA & INPUT/OUTPUT DATA Kata-Kata Cadangan Kata-kata cadangan (reserved words) adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksud tertentu. Kata-kata

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

STRUKTUR DATA. Data di kategorikan menjadi : 1. Tipe data tunggal : Integer, Boolean dan Kara 2. Tipe data majemuk : String ( Untai )

STRUKTUR DATA. Data di kategorikan menjadi : 1. Tipe data tunggal : Integer, Boolean dan Kara 2. Tipe data majemuk : String ( Untai ) STRUKTUR DATA Suatu koleksi / kelompok data yang dapat dikarakterisasikan oleh organisasi serta operas didefinisikan terhadapnya Data di kategorikan menjadi : 1. Tipe data tunggal : Integer, Boolean dan

Lebih terperinci

Dasar Komputer & Pemrograman 2A

Dasar Komputer & Pemrograman 2A Dasar Komputer & Pemrograman 2A Materi 2 Reza Aditya Firdaus JENIS-JENIS DATA Jenis jenis data Jenis jenis data yang dikenal dalam bahasa pascal antara lain yaitu: 1. Jenis data sederhana a. Jenis data

Lebih terperinci

LIST LINIER & STACK. Pertemuan 6 Yani sugiyani, M.Kom

LIST LINIER & STACK. Pertemuan 6 Yani sugiyani, M.Kom LIST LINIER & STACK Pertemuan 6 Yani sugiyani, M.Kom 1 LIST LINIER Yani Sugiyani, M.Kom 2 LIST LINIER List linier atau daftar linier adalah suatu struktur data umum yang terbentuk dari barisan hingga (yang

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

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

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

Aplikasi Rekursif dalam Analisis Sintaks Program

Aplikasi Rekursif dalam Analisis Sintaks Program Aplikasi Rekursif dalam Analisis Sintaks Program Albertus Kelvin / 13514100 Program Studi Teknik Informatika Sekolah Teknik Elektro dan Informatika Institut Teknologi Bandung, Jl. Ganesha 10 Bandung 40132,

Lebih terperinci

KONSEP DASAR BAHASA PASCAL

KONSEP DASAR BAHASA PASCAL KONSEP DASAR BAHASA PASCAL Pengertian Pemrograman / programming : adalah pekerjaan penulisan instruksi bagi computer untuk menyelesaikan suatu masalah. Program Interpreter Compiler : adalah himpunan instruksi

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

MODUL 1. Struktur Bahasa PASCAL secara umum

MODUL 1. Struktur Bahasa PASCAL secara umum MODUL 1 Struktur Bahasa PASCAL secara umum Pascal mempunyai struktur sebagai berikut: 1. Bagian Judul Program 2. Bagian Deklarasi e a. Deklarasi tipe data (TYPE) b. Deklarasi variabel (VAR) c. Deklarasi

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 III QUEUE (ANTRIAN)

BAB III QUEUE (ANTRIAN) BAB III QUEUE (ANTRIAN) 3.1 Pengertian Antrian Antrian (Queue) merupakan kumpulan data yang mana penambahan elemen hanya bias dilakukan pada suatu ujung yaitu rear /tail / belakang, dan pengha[usan dilakukan

Lebih terperinci

PERTEMUAN KE-6. Pertemuan 6

PERTEMUAN KE-6. Pertemuan 6 PERTEMUAN KE-6 Pertemuan 6 QUEUE (Antrian) Definisi: Queue (Antrian) adalah suatu bentuk khusus dari List Linier dengan operasi penyisipan (insertion) hanya diperbolehkan pada salah satu sisi, yang disebut

Lebih terperinci

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA

SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA SATUAN ACARA PERKULIAHAN UNIVERSITAS GUNADARMA MATA KULIAH : STRUKTUR DATA FAKULTAS : TEKNOLOGI INDUSTRI, ILMU KOMPUTER JURUSAN / JENJANG : INFORMAA, TEKNIK KOMPUTER / S1 KODE : KD-045326 Minggu Ke Pokok

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

Pertemuan 7. REVIEW dan QUIS

Pertemuan 7. REVIEW dan QUIS Pertemuan 7 REVIEW dan QUIS 1. Type data dibawah ini, yang tidak termasuk dalam tipe data sederhana tunggal, adalah : a. Boolean d. Integer b. String e. float c. Char 2. ==, =,!=, termasuk dalam operator

Lebih terperinci

KONSEP DASAR BAHASA PASCAL

KONSEP DASAR BAHASA PASCAL KONSEP DASAR BAHASA PASCAL I. Struktur Dan Komponen Dasar Program Pascal. Struktur dari suatu program Pascal terdiri dari sebuah judul program dan suatu blok program atau badan program. Badan program dibagi

Lebih terperinci

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e.

2. Sebuah prosedur langkah demi langkah yang pasti untuk menyelesaikan sebuah masalah disebut : a. Proses b. Program c. Algoritma d. Prosesor e. 1. Dalam menyusun suatu program, langkah pertama yang harus dilakukan adalah : a.membuat program b. Membuat Algoritma c. Membeli komputer d. Proses e. Mempelajari program 2. Sebuah prosedur langkah demi

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

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 18 BAB 2 LANDASAN TEORI 2.1. Pengertian Algoritma Algoritma adalah urutan atau deskripsi langkah- langkah penyelesaian masalah yang tersusun secara logis, ditulis dengan notasi yang mudah dimengerti sedemikian

Lebih terperinci

LINKED LIST. Altien Jonathan Rindengan, S.Si, M.Kom

LINKED LIST. Altien Jonathan Rindengan, S.Si, M.Kom LINKED LIST Altien Jonathan Rindengan, S.Si, M.Kom Pendahuluan Dalam suatu linear list kita dapat melakukan operasi penyisipan atau penghapusan atas elemen-elemennya pada sembarang posisi. Misalkan ada

Lebih terperinci

PERTEMUAN MINGGU KE-3 REPRESENTASI DATA

PERTEMUAN MINGGU KE-3 REPRESENTASI DATA PERTEMUAN MINGGU KE-3 REPRESENTASI DATA REPRESENTASI DATA Unit Informasi Dasar dalam sistem komputer- 1 byte atau 8 bit. Word size (ukuran word) merupakan ukuran register operasionalnya. Contoh : 1. Komputer

Lebih terperinci

MODUL PRAKTIKUM STRUKTUR DATA

MODUL PRAKTIKUM STRUKTUR DATA MODUL PRAKTIKUM STRUKTUR DATA BAHASA PEMOGRAMAN : JAVA SOFTWARE : NETBEANS-8.0.2 Di susun oleh DOSEN PENGEMPUH : JUNAIDI NOH,ST.MT ASISTEN DOSEN : CATUR SURANTO,S.T LABORATORIUM UNIVERSITAS MUHAMMADIYAH

Lebih terperinci

AP2a (Pascal) Akuntansi Kelas 1 Semester 2. Hana Pertiwi S.T

AP2a (Pascal) Akuntansi Kelas 1 Semester 2. Hana Pertiwi S.T AP2a (Pascal) Akuntansi Kelas 1 Semester 2 Hana Pertiwi S.T Pertemuan 1-3 (4 maret 2014) 1. Konsep Dasar Bahasa Pascal 2. Sejarah Singkat Bahasa Pascal 3. Struktur Dan Komponen Dasar Bahasa Pascal ( i).

Lebih terperinci

Variabel dan Tipe Data Kusrini 1, Heri Sismoro 2

Variabel dan Tipe Data Kusrini 1, Heri Sismoro 2 Variabel dan Tipe Data Kusrini 1, Heri Sismoro 2 1 Jurusan Sistem Informasi, 2 Jurusan Manajemen Informatika 1,2 STMIK AMIKOM Yogyakarta 1,2 Jl. Ringroad Utara Condong Catur Sleman Yogyakarta Variabel

Lebih terperinci

Pertemuan 10. Tumpukan (Stack) Dipersiapkan oleh : Boldson Herdianto. S., S.Kom., MMSI.

Pertemuan 10. Tumpukan (Stack) Dipersiapkan oleh : Boldson Herdianto. S., S.Kom., MMSI. Pertemuan 10 Tumpukan (Stack) Dipersiapkan oleh : Boldson Herdianto. S., S.Kom., MMSI. Definisi Tumpukan adalah kumpulan elemen-elemen data yang disimpan dalam satu lajur linier. Kumpulan elemen-elemen

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

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN

SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER JAKARTA STI&K SATUAN ACARA PERKULIAHAN SEKOLAH TINGGI MANAJEMEN INFORMAA KOMPUTER JAKARTA STIK SATUAN ACARA PERKULIAHAN Mata : STRUKTUR DATA Kode Mata : TK - 25322 Jurusan / Jenjang : D3 TEKNIK KOMPUTER Tujuan Instruksional Umum : Memberikan

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

JENIS-JENIS DATA DAN STATEMEN INPUT OUTPUT

JENIS-JENIS DATA DAN STATEMEN INPUT OUTPUT JENIS-JENIS DATA DAN STATEMEN INPUT OUTPUT Jenis jenis data Jenis jenis data yang dikenal dalam bahasa pascal antara lain yaitu: 1. Jenis data sederhana a. Jenis data yang standar; yaitu : Integer Real

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

disebut ternary operator. Di dalam suatu operasi dapat terdapat banyak operator. Urutan eksekusi dari operatoroperator

disebut ternary operator. Di dalam suatu operasi dapat terdapat banyak operator. Urutan eksekusi dari operatoroperator OPERATOR Operator digunakan untuk menyatakan suatu perhitungan/operasi. Operator yang digunakan untuk operasi yang melibatkan satu operand disebut unary operator. Jika melibatkan dua operand maka disebut

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

QUEUE (ANTRIAN) Struktur Data - Queue

QUEUE (ANTRIAN) Struktur Data - Queue QUEUE (ANTRIAN) Queue (antrian) adalah barisan elemen yang apabila elemen ditambah maka penambahannya berada di posisi belakang (rear) dan jika dilakukan pengambilan elemen dilakukan di elemen paling depan

Lebih terperinci

BAB I PENGENALAN STRUKTUR DATA DAN ALGORITMA

BAB I PENGENALAN STRUKTUR DATA DAN ALGORITMA BAB I PENGENALAN STRUKTUR DATA DAN ALGORITMA Tujuan : 1. Mahasiswa memahami apakah yang dimaksud dengan struktur data 2. Mahasiswa memahami apakah yang dimaksud dengan algoritma 3. Mengingat kembali tipe

Lebih terperinci

TIPE DATA, VARIABLE, dan OPERATOR DELPHI

TIPE DATA, VARIABLE, dan OPERATOR DELPHI TIPE DATA, VARIABLE, dan OPERATOR DELPHI A. TIPE DATA Delphi merupakan bahasa pemrograman tingkat tinggi yang mendukung perancangan terstruktur dan berorientasi Object. Bahasa pemrograman ini berdasarkan

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

Struktur Data. Pertemuan 2

Struktur Data. Pertemuan 2 Pertemuan 2 Tujuan Pembelajaran Mahasiswa mampu menjelaskan konsep struktur data (Pengertian Struktur data, Konsep struktur data, Tipe data sederhana, Deklarasi data dalam bahasa pemrograman. 1. Pengertian

Lebih terperinci

Teori Algoritma TIPE DATA

Teori Algoritma TIPE DATA Alam Santosa Teori Algoritma Dasar Algoritma TIPE DATA Program komputer adalah deretan perintah untuk memanipulasi data input menjadi informasi yang bermanfaat bagi pengguna (user). Data yang diinput dapat

Lebih terperinci

Silabus Struktur Data. Bandung 2013

Silabus Struktur Data. Bandung 2013 Silabus Struktur Data Bandung 2013 Silabus u Menjelaskan Varian dan Invarian u Membuat Alur Logika pemrograman u Menerapkan Pengelolaan Array u Memelihara Pekerjaan secara prakds u Menerapkan konsep data

Lebih terperinci

PERKEMBANGAN PASCAL. Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan

PERKEMBANGAN PASCAL. Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan PERKEMBANGAN PASCAL Pascal adalah bahasa tingkat tinggi ( high level language) yang orientasinya pada segala tujuan Nama pascal diambil sebagai penghargaan terhadap BLAISE PASCAL seorang ahli matematika

Lebih terperinci

Pertemuan 4 KONSEP TIPE DATA

Pertemuan 4 KONSEP TIPE DATA Pertemuan 4 KONSEP TIPE DATA Bahasa Pemrograman PASCAL Pascal, merupakan bahasa pemrograman tingkat tinggi. Pascal dirancang oleh Prof. Niklaus Writh (Technical University di Zurich, Switzerland) pada

Lebih terperinci

BAB IX LINKED LIST (SENARAI BERANTAI)

BAB IX LINKED LIST (SENARAI BERANTAI) BAB IX LINKED LIST (SENARAI BERANTAI) Double Linked List Double Linked List adalah suatu linked list yang mempunyai penunjuk yaitu penunjuk ke data sebelumnya dan berikutnya. Perhatikan gambar di bawah

Lebih terperinci

Pert 1 Struktur Data (mengajarkomputer.wordpress.com)

Pert 1 Struktur Data (mengajarkomputer.wordpress.com) Tugas Bentuk tugas yang harus dilakukan adalah : - Mahasiswa diharapkan mengerjakan tugas yang diberikan oleh dosen pada setiap pertemuan - Pembuatan dan presentasi project dilakukan pada pertemuan 10-12.

Lebih terperinci

Bab III Semantik. Konsep Semantik Bahasa Pemrograman (Semantik Analisis)

Bab III Semantik. Konsep Semantik Bahasa Pemrograman (Semantik Analisis) Bab III Semantik Konsep Semantik Bahasa Pemrograman (Semantik Analisis) Dari pembahasan bab-bab terdahulu maka kita ketahui bahwa proses ini merupakan proses kelanjutan dari proses kompilasi sebelumnya,

Lebih terperinci

Algoritma dan Pemrograman. Pertemuan Ke-4 Konsep Tipe Data, Operator Dan Identifier

Algoritma dan Pemrograman. Pertemuan Ke-4 Konsep Tipe Data, Operator Dan Identifier Algoritma dan Pemrograman Pertemuan Ke-4 Konsep Tipe Data, Operator Dan Identifier Disusun Oleh : Wilis Kaswidjanti, S.Si.,M.Kom. Jurusan Teknik Informatika Fakultas Teknologi Industri Universitas Pembangunan

Lebih terperinci

Representasi Bilangan dan Operasi Aritmatika

Representasi Bilangan dan Operasi Aritmatika Bilangan Bilangan dan Operasi Aritmatika Kuliah#8 TSK205 Sistem Digital - TA 2011/2012 Eko Didik Teknik Sistem Komputer - Universitas Diponegoro Review Kuliah Bilangan Sebelumnya telah dibahas tentang

Lebih terperinci

ARRAY Terurut Homogen

ARRAY Terurut Homogen STRUKTUR DATA ARRAY Bagian dasar pembentukan suatu struktur data yang lebih kompleks. Hampir setiap jenis struktur data kompleks dapat disajikan secara logis oleh array. Suatu himpunan hingga elemen yang

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

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

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka LINKed LIST PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahkan saat dibutuhkan, tidak dialokasikan dengan

Lebih terperinci

MK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 COMPILER. Jurusan Sistem Komputer S1 Universitas Gunadarma

MK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 COMPILER. Jurusan Sistem Komputer S1 Universitas Gunadarma MK. PEMROGRAMAN SISTEM Semester/SKS : 6/3 COMPILER Jurusan Sistem Komputer S1 Universitas Gunadarma Aspek Kompilasi Programmer dengan High Level Languange (HLL) vs. Komputer dengan Machine Language Untuk

Lebih terperinci

Lecturer: Abdusy Syarif. Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana. Tipe Data

Lecturer: Abdusy Syarif. Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana. Tipe Data Lecturer: Abdusy Syarif Undergraduate Course Informatics Engineering Dept. Universitas Mercu Buana Tipe Data REVIEW Slide - 2 A program is not an algorithm! Sebuah algoritma dapat diimplementasikan dengan

Lebih terperinci

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List

: Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Single Linked List Pertemuan 5 Waktu Tujuan Pembelajaran : 135 menit : Mahasiswa mampu menjelaskan teknik pemrograman menggunakan Linked List. Substansi Materi : Single Linked List, LIFO, FIFO Tabulasi Kegiatan Perkuliahan

Lebih terperinci

KOMPETENSI DASAR : MATERI POKOK : Sistem Bilangan URAIAN MATERI 1. Representasi Data

KOMPETENSI DASAR : MATERI POKOK : Sistem Bilangan URAIAN MATERI 1. Representasi Data KOMPETENSI DASAR : 3.1. Memahami sistem bilangan Desimal, Biner, Oktal, Heksadesimal) 4.1. Menggunakan sistem bilangan (Desimal, Biner, Oktal, Heksadesimal) dalam memecahkan masalah konversi MATERI POKOK

Lebih terperinci

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List

*Sekumpulan elemen yang diatur secara terurut. *Linear List tidak sama dengan Connected-List 1. Array 1. Linear List 2. Stack 3. Queue 1. Apa? 2. Bagaimana cara implementasinya? 2. List 1. Connected List 2. Circular List 3. Doubly-linked List 4. Multi list structure 3. Tree Structure Sekumpulan

Lebih terperinci