Struktur Organisasi Data

download Struktur Organisasi Data

of 64

  • date post

    02-Jul-2015
  • Category

    Documents

  • view

    681
  • download

    7

Embed Size (px)

Transcript of Struktur Organisasi Data

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 :

Tipe data sederhana atau data sederhana : : Integer, Real, Boolean, Karakter String

1. Tunggal 2. Majemuk

Struktur Data

1. Sederhana : Array dan Record 2. Majemuk terdiri atas Linier : Linier Linked List, Stack, Queue

Non Linier :

Binary Tree, Binary Search Tree, General Tree, G

Tree,

INTEGER Anggota dari himpunan bilangan : {..., -(n+1), -n, ..., -2, -1, 0, 1, 2, ..., n, n+1, ...} Operasi dasar yaitu : penjumlahan, pengurangan, perkalian, pembagian dan perpangkatan Pembagian Integer (DIV) Hasil pembagian integer DIV adalah sebuah integer (menghilangkan bagian pecahan dari hasil pembagian) Contoh : 27 DIV 4 = 6 Selain itu terdapat operasi MOD (Modulo) adalah sisa dari pembagian Contoh : 27 MOD 4 = 3 Operator yang bekerja terhadap sepasang integer (operand) disebut Binary Operator. Sedangkan operator yang hanya bekerja terhadap satu operand saja disebut Unary Operator. Contoh dari unary operator adalah negasi. REAL Data numerik yang bukan termasuk integer, digolongkan dalam jenis data real. Ditulis menggunakan titik desimal (atau koma desimal). Dimasukkan ke dalam memori komputer memakai sistem floating point, disebut Scientific Notation. Penyajiannya terdiri dari : mantissa (pecahan) dan eksponen.

Contoh : Di dalam sistem desimal, 123000 = 0.123 * 106 di sini 0.123 adalah mantissa atau pecahan, sedangkan 6 adalah eksponennya. Secara umum suatu bilangan real X dituliskan M * RE di sini : M dijadikan pecahan, R adalah radixnya dan E merupakan eksponennya. BOOLEAN Disebut juga jenis data logical. Anggota { true atau false}. 1. Operator Logika, yaitu : AND, OR, NOT

Operator AND akan menghasilkan nilai true, jika kedua operand bernilai true. Operator OR akan menghasilkan nilai true, jika salah satu operand bernilai true 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. B. Operator Relasional, yaitu : >, =, J

SI akan dikeluarkan lebih dulu dari elemen di bawahnya. Contoh stack : Tumpukan baki dalam cafetaria Empat operasi dasar yang berlaku pada stack : 1. CREATE(stack) 2. ISEMPTY(stack) 3. PUSH(elemen, stack) 4. POP(stack)

CREATE

adalah operator yang menunjukkan suatu stack kosong dengan nama S.

Jadi : NOEL(CREATE(S)) = 0 TOP(CREATE(S)) adalah TIDAK TERDEFINISI.

ISEMPTY

adalah operator yang menentukan apakah stack S kosong. Operandnya terdiri dari type data stack. Hasilnya merupakan type data Boolean. ISEMPTY(S) = True. Jika S hampa, yakni bila NOEL(S) = 0.

PUSH

adalah operator yang menambahkan elemen E pada puncak stack S. Hasilnya merupakan stack yang lebih besar. PUSH(E,S). E ditempatkan sebagai TOP(S).

POP(stack)

adalah operator yang menghapus sebuah elemen dari puncak stack S. Hasilnya merupakan stack yang lebih kecil.

POP(S) mengurangi NOEL(S) POP(CREATE(S)) kondisi error POP(PUSH(E,S)) = S

DEKLARASI STACK DALAM COBOL DAN PASCAL TOP-PTR 100 STACK S S Keterangan :

1

TOP-PTR : subskrip dari elemen TOP(S) dari stack.

COBOL 01 STACK-STRUCT kombinasi dari array dan indikator untuk TOP 02 S OCCURS 100 TIMES PIC 9(5) 02 TOP-PTR PIC 9(3)

PASCAL TYPE STACKSTRUCT = RECORD STACK : ARRAY [1..100] of integer; TOPPTR : integer; END;

VAR S : STACKSTRUCT; NOEL(S) = TOP-PTR, ISEMPTY(S) = true, bila TOP-PTR = 0. OPERASI PUSH & POP PUSH IF TOP-PTR < NOEL-MAX THEN COMPUTE TOP-PTR = TOP-PTR + 1 MOVE EON TO S(TOP-PTR) ELSE Overflow condition POP IF TOP-PTR > 0 THEN MOVE S(TOP-PTR) TO EOFF COMPUTE TOP-PTR = TOP-PTR - 1 ELSE Underflow condition EON : elemen yang di PUSH ke dalam S. EOFF : elemen yang di POP ke luar S. NOEL-MAX : panjang max stack. PUSH

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; POP Procedure POP (var eoff : integer); Begin if (s.topptr > 0) then Begin eoff := s.stack [s.topptr]; s.topptr := s.topptr - 1; End; else Underflow Condition End; APLIKASI STACK 1. Penjodohan Tanda Kurung/Matching Parantheses ALGORITMA a. Amati barisan elemen dari kiri ke kanan b. bila bertemu (, maka ( di push ke dalam stack. bila bertemu ), maka periksa stack hampa atau tidak. bila hampa ada ) dan tidak ada ( (error) bila tidak hampa ada sepasang ( & ) & POP elemen

keluar

2.

NOTASI POSTFIX ALGORITMA Amati barisan dari kiri ke kanan 1. Jika (, maka PUSH ke dalam stack. 2. Jika ), POP elemen dalam stack sampai simbol (. Semua di POP merupakan output kecuali ( tadi. 3. Jika simbol operand, langsung merupakan output. 4. Jika simbol operator, maka : Jika elemen TOP stack dengan level >= maka POP sebagai output teruskan sampai (. elemen TOP Ro, maka subpohon kanan dari Ri diselidiki sampai ditemukan simpul yang telah ditentukan untuk dihapus. Jika n = Ro, subpohon kiri dan subpohon kanan hampa, maka hapus Ro. Jika n = Ro, dan subpohon kirinya hampa, maka hapus Ro, kemudian ambil akar dari subpohon kanan untuk menggantikan posisi Ro. Pohon baru akan memenuhi sifat sebagai Pohon Cari lagi. Jika n = Ro, dan subpohon kanannya hampa, maka hapus Ro, kemudian ambil akar dari subpohon kiri untuk menggantikan posisi Ro. Pohon baru akan memenuhi sifat sebagai Pohon Cari lagi. Jika n = Ro, subpohon kanan dan subpohon kiri tidak hampa, maka untuk menggantikan posisi Ro yang dihapus, kita tentukan suatu simpul mungkin dari subpohon kiri atau mungkin dari subpohon kanan, sedemikian sehingga Pohon yang terbentuk kembali memenuhi sifat sebagai Pohon Cari lagi. 38

Pohon Cari Binar

15

56

8

23

45

82

19

72

20 1. Dari pohon cari binar di atas, lakukan penghapusan simpul 56! 2. Dari pohon cari binar di atas, lakukan penghapusan berturut-turut terhadap simpul 45, 23 dan 56! 3. Bila diketahui data : 44, 55, 12, 42, 94, 18, 7, 67 Buatlah pohon cari binar dari data di atas! Cari dan sisipkan : 38 terhadap pohon cari binar yang terbentuk! HEAP Suatu pohon binar adalah Heap, jika nilai setiap simpul lebih besar atau sama dengan nilai anaknya, disebut Maxheap. Kalau nilai setiap simpul lebih kecil atau sama dengan nilai anaknya, disebut Minheap.

Contoh : 95

87

92

76

72

83

85

58

54

62

69

73

65

Kita dapat memasukkan elemen baru ke dalam sebuah Heap. Misalkan elemen = 93. Mulamula elemen tersebut diletakkan sebagai elemen terakhir dari heap, yaitu elemen tree[14] pada daftar berurutan. Selanjutnya memerika apakah elemen tersebut lebih besar dari ayahnya. Bila lebih besar, lakukan pertukaran, elemen tersebut sekarang menjadi ayah. Demikian seterusnya sampai kondisi ini tidak tercapai. 95

88

92

76

72

83

85

58

54

62

69

73

65

93

95

89

92

76

72

83

93

58

54

62

69

73

65

85

Sehingga heap yang terbentuk :

95

90

93

76

72

83

92

58

54

62

69

73

65

85

Kemudian lakukan heapsort! Algoritma heapsort : 1. Jatuhkan root ke posisi terakhir dari simpul dalam urutan almost complete. (Pertukarkan antara root dengan simpul terakhir dari urutan almost complete. Data pada simpul terakhir sudah terurut) 2. Sisanya bentuk heap kembali, kemudian lakukan sort kembali. Buatlah maxheap dari data berikut ini : 45, 22, 77, 11, 30, 90, 15, 25, 88. Tambahkan 35 ke dalam maxheap tersebut, kemudian lakukan heapsort!

BAB 8 & 9 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 (increasing atau decreasing). Searching merupakan suatu proses (operasi) untuk mencari lokasi dari data yang diberikan dalam suatu urutan data. Secara tidak langsung sorting dan searching menunjuk pada operasi file yang merupakan kumpulan suatu dari record. Masing-masing record dalam file F dapat berisi banyak field, tetapi terdapat 1 buah field yang memiliki nilai unique atau merupakan key yang unique dalam record tersebut. Misal field K merupakan key unique yang disebut primary key, maka proses sorting file F akan berdasarkan key unique tersebut dan proses searching untuk mencari record tertentu berdasarkan nilai key unique yang diberikan. Sorting Terdapat 2 katagori dasar dalam tehnik sorting : internal sort dan external sort. Metoda Internal sort digunakan apabila koleksi data yang akan diurutkan tidak dalam jumlah besar sehingga proses dapat dilakukan dalam main memory. Metoda External sort

digunakan apabila koleksi data yang akan diurutkan dalam jumlah besar dimana koleksi data tersebut ada dalam auxiliary memory device seperti magnetic tape atau disk. (Yang akan di bahas adalah Internal Sort). Misal A merupakan suatu daftar dari n elemen A1, A2, ..., An dalam memori. Sorting A merupakan operasi yang mengatur elemen dalam A sehingga ada dalam urutan yang terurut, misal dalam increasing order sehingga : A1 A2 A3 ..... An Contoh : Misal suatu array DATA berisi 8 elemen sebagai berikut : DATA : Setelah diurutkan : DATA : 11, 22, 33, 44, 55, 66, 77, 88 77, 33, 44, 11, 88, 22, 66, 55

Insertion Sort Misal array A dengan n elemen A[1], A[2], ..... , A[N] dalam memori. Algoritm