Sabtu, 06 Juli 2013

STRUKTUR ORGANISASI DATA 2



Dalam postingan blog saya kali ini saya akan menjelaskan point-point dari mata kuliah Struktur Organisasi Data 2, berikut adalah materi-materi perbab yang saya pelajari disemester 4 ini, silahkan membaca dan mempelajari semoga bermanfaat :

BAB 1. STRUKTUR DATA
Struktur data adalah cara menyimpan atau merepresentasikan data di dalam komputer agar bisa dipakai secara efisien.Sedangkan data adalah representasi dari fakta dunia nyata.Fakta atau keterangan tentang kenyataan yang disimpan, direkam atau direpresentasikan dalam bentuk tulisan, suara, gambar, sinyal atau simbol.

Secara garis besar type data dapat dikategorikan menjadi:
1.       Type data sederhana
- Type data sederhana tunggal, misalnya : Integer, real, boolean, dan karakter
- Type data sederhana majemuk, misalnya : String
2.   -    Struktur Data, meliputi:
- Struktur data sederhana, misalnya array dan Record
- Struktur data majemuk, yang terdiri:
    -Linier : Stack, Queue, serta List dan Multilist
    -Non Linier : Pohon Biner dan Graph
Pemakaian struktur data yang tepat di dalam proses pemrograman akan menghasilkan algoritma yang lebih jelas dan tepat,sehingga menjadikan program secara keseluruhan lebih efisien dan sederhana.
Struktur data yang ″standar″ yang biasanya digunakan dibidang informatika adalah,
- ADT , Array , Struk
- List linier (Linked List) dan variasinya
- Multilist
- Stack (Tumpukan)
- Queue (Antrian)
- Tree (Pohon)
- Graph (Graf)

Tipe data sederhana :

Ø  Integer
 Ialah suatu Integer adalah anggota dari himpunan bilangan : ( …. –(n+1),-n …. , -2 , -1,0,1,2,…….n,n+1,…..)
Operasi dasaranya : + , - , * , :
Dalam integer ada pembagian ( DIV) hasil pembagian DIV adalah Integer ( menghilangkan bagian pecahan dari hasil pembagian )
Contoh : 19 DIV 6 = 3
Selain DIV terdapat juga operasi MOD ( sisa pembagian )
Contoh : 19 MOD 6 = 1
Binary Operator : Operator yang bekerja terhadap sepasang integer (Operand).
Unary Operator : Operator yang hanya bekerja terhadap satu operand saja misalnya negasi
           
Ø  Real
`Data real adalah jenis data  yang ditulis menggunakan titik decimal atau koma decimal . Cara penyajian terdiri atas 2 bagian yaitu mantissa ( pecahan ) dan eksponen .
Contoh :
Dalam system decimal : 123000 = 0,123 * 10
Disini 0,123 adalah mantissa atau pecahan sedangkan 6 adalah eksponenya

Ø  Boolean
Tipe data ini adalah jenis data logic , iya mempunyai nilai salah satu dari true atau false .
Ada 2 operator yang dikenal pada Boolean yaitu :
-          Operator Logika : AND , OR dan NOT
Ø  Operator AND menghasilkan nilai true jika kedua operand bernilai true
Ø  Operator OR akan menghasilkan nilai true jika salah satu operand bernilai true
Ø  Operator NOT akan merupakan “precedence” dari operator AND dan OR
-          Operator Relasional , yaitu : > , < , >= , <= , <> dan =
Misalnya : 5 < 4 = False
                   6 > 2 = True

Ø  Karakter
Karakter adalah suatu himpunan yang terdiri atas bilangan abjad dan symbol khusus
( 0 , 1 …. 8,9,A,B …. Y,Z,+,-,*)
String
Barisan higga karakter yang dibentuk oleh suatu kumpulan dari string .
-          Operator Length :  Jumlah karakter dalam string
-          Operator Concat : Gabungan 2 buah string
-          Operator Substr : Sub bagian dari string
-          Operator Insert : Menyisipkan string kedalam string yang lain
-          Operator Delete :  Menghapus karakter dalam string
Lalu juga ada Mapping ke Storage
-          Integer , bentuk mapping ke storage dari integer dapat dilakukan dengan beberapa cara yaitu :
1 Skema Sign and Magnitude
2 Skema One’s Complement
3 Skema Two’s Complement

        Karakter pada umumnya skema yang paling sering digunakan adalah :
1 Extended Binary Coded Decimal Interchange (EBCDI) : Digunakan kode 8 bit untuk menyatakan sebuah    karakter
2 American Standard Code For Informtion Interchange ( ASCII) : Digunakan  kode 7 bit untuk menyatakan sebuah karakter .

BAB 2 kita mempelajari tentang ARRAY

Array adalah suatu himpunan hingga elemen, terurut dan homogen. Contoh dari array dimensi 1 yaitu vector. Bentuk umumnya N(L:U) à L(Lower Bound), U(Upper Bound).
Contoh dari array dimensi 2 adalah matriks, yaitu suatu array yang setiap elemennya merupakan tipe data array pula. Subskrip pertama disebut baris, subskrip kedua disebut kolom.

Pemetaan array ke storage;
Dimensi satu àB + (I-L) * S
Dimensi dua à 1. Row Major Order > B + (I-L1)*(U2-L2+1)*S+(J-L2)*S
2. Column Major Order > B+(J-L2)*(U1-L1+1)*S+(I-L1)*S

Keterangan rumus: B = Base Location, S= setiap elemen dari array perbyte.
Array dimensi tiga adalah array yang setiap elemennya merupakan tipe data array juga yang merupakan array dimensi dua.
Cross section adalah pengambilan salah satu subskrip.
Transpose adalah penulisan baris menjadi kolom atau kolom menjadi baris.
Triangular array dapat berupa: Upper Tringular (semua elemen dibawah diagonal utama = 0), dan Lower Tringular (semua elemen diatas diagonal utama = 0).
Sparse array adalah suatu array yang sangat banyak elemen nol-nya.
Perbedaan Array dan Record adalah bahwa Array bersifat Homogen dan Record bersifat Heterogen .

BAB 3 Kami mempelajari tentang STACK

1.       Linear List
Adalah suatu struktur data umum yang berisi suatu kumpulan terurut dari elemen. Jumlah elemen dapat berubah-ubah.
Contoh : contohnya : File dengan elemenya berupa record , buku telfon , stack , queue dan linier link list

2.       Stack
Adalah bentuk khusus dari linear list, dengan operasi penyisispan dan penghapusan dibatasi hanya pada satu sisinya, yaitu sebagai puncak atau elemen atas (TOP(S)). Jumlah elemen didalam stack kita notasikan dengan NOEL(S). operator penyisipan disebut PUSH, dan operator penghapusan disebut POP. Operasi pada stack adalah LIFO (Last In First Out), contoh, tumpukan piring yang digunakan di café.

Ada empat operasi dasar pada stack:
-          CREATE: operator yang menunjukan suatu stack kososng dengan nama S.
-          ISEMPTY: operator yang menentukan apakah stack S itu kosong.
-          PUSH: menambahkan elemen E pada puncak stack S.
-          POP(stack): menghapus sebuah elemen dari puncak stack S.


BAB 4 Kami mempelajari tentang QUEUE


Queue adalah bentuk khusus dari linier list , dengan operasi penyisipan yang hanya diperbolehkan pada satu sisi lalu disebut Rear , sedangkan Front dari list adalah operasi penghapusan yang hanya diperbolehkan pasa sisi yang lainya. Prinsip kerja pada Queue adalah FIFO (First in First Out) jadi elemen yang pertama masuk merupakan elemen yang perteama keluar.

Front : Bagian depan antrean
Rear : Bagian belakang antrean
Noel : Jumlah elemen dalam antrean
Insert : Operator Penyisipan  
Remove : Operator Penghapusan

Ada 4 operasi dasar antrean yaitu :
·         Create : Operator yang menunjukan suatu antrean hampa Q
·         Isempty : Operator yang menunjukan apakah antrean Q hampa
·         Insert : Operator yang menginsert elemen E ke dalam antrean Q
·         Remove : Operator yang menghapus elemen bagian depan dari antrean Q
Penyajian dari antrean :
1. One Way List
2. Array

OPERASI-OPERASI PADA QUEUE
v  Create
·         Untuk menciptakan dan menginisialisasi Queue
·         Dengan cara membuat Head dan Tail = -1

v  IsEmpty
·         Untuk memeriksa apakah Antrian sudah penuh atau belum
·         Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty
·         Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala
elemen pertama dalam antrian) yang tidak akan berubahubah
·         Pergerakan pada Antrian terjadi dengan penambahan elemen
Antrian kebelakang, yaitu menggunakan nilai Tail

v  IsFull
·         Untuk mengecek apakah Antrian sudah penuh atau belum
·         Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1
adalah batas elemen array pada C) berarti sudah penuh

v  Enqueue(data)
·         Untuk menambahkan elemen ke dalam Antrian, penambahan
elemen selalu ditambahkan di elemen paling belakang
·         Penambahan elemen selalu menggerakan variabel Tail dengan cara
increment counter Tail

v  Dequeue
·         Digunakan untuk menghapus elemen terdepan/pertama dari Antrian
·         Dengan cara mengurangi counter Tail dan menggeser semua
elemen antrian kedepan.
·         Penggeseran dilakukan dengan menggunakan looping

v  Clear
·         Untuk menghapus elemen-elemen Antrian dengan cara membuat
Tail dan Head = -1
·         Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus
arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai
-1 sehingga elemen-elemen Antrian tidak lagi terbaca

v  Tampil
·         Untuk menampilkan nilai-nilai elemen Antrian
·         Menggunakan looping dari head s/d tail

BAB 5 Kita mempelajari tentang GRAPH
Graph G adalah pasangan terurut dua himpunan (V(G), E(G)), V(G) himpunan berhingga dan tak kosong dari obyek-obyek yang disebut himpunan titik 
(vertex)
dan E(G) himpunan berhingga (bolehkosong) sedemikian hingga setiap anggotanya merupakan pasangan titik-titik di V(G). Himpunan E(G)disebut himpunan sisi.Contoh :Graph 1G
1
adalah graph dengan
V(G)
= { 1, 2, 3, 4 }
 E(G)
= { (1, 2), (1, 3), (2, 3),(2, 4), (3, 4) }Graph 2
http://htmlimg3.scribdassets.com/3xzd1nm8n41ke2qz/images/1-e835dc6cad.jpghttp://htmlimg3.scribdassets.com/3xzd1nm8n41ke2qz/images/1-e835dc6cad.jpghttp://htmlimg3.scribdassets.com/3xzd1nm8n41ke2qz/images/1-e835dc6cad.jpg




Graf Null / Hampa
Ada beberapa pengertian tentang graf null/hampa. Di sini akan dipakai pengertian bahwa suatu graf dikatakan graf null/hampa bila graf tersebut tidak mengandung ruas.

Contoh :
Berdasarkan derajat simpul, sebuah simpul dapat disebut :
-          Simpul Ganjil, bila derajat simpulnya merupakan bilangan ganjil
-          Simpul Genap, bila derajat simpulnya merupakan bilangan genap
-          Simpul Bergantung / Akhir, bila derajat simpulnya adalah 1
-          Simpul Terpencil, bila derajat simpulnya adalah 0

Dalam keterhubungan sebuah graf, akan dikenal beberapa istilah-istilah berikut :
-          Walk : barisan simpul dan ruas
-          Trail : Walk dengan ruas yang berbeda
-          Path / Jalur :               Walk dengan simpul yang berbeda
-          Cycle / Sirkuit : Trail tertutup dengan derajat setiap simpul = 2

Sumber :


v  Modul Diskusi Algotitma & Pemrograman Universitas Narotama Surabaya oleh Tony Hartono Bagio.
v  Modul Stack dan Queue dengan Linked List oleh Harjanto Sutejo.