Sabtu, 06 Juli 2013

Struktur Organisasi Data 2

Struktur Data

Struktur Data yaitu : suatu kelompok data yang dapat dikarakteristikan oleh organisasi yang di definisikan terhadapnya.

Struktur data terbagi menjadi 2 :
1. sederhana : Array, Record.
2. majumuk :
          -Linier          : Linier Linked List, Stack, Queue
          -Non Linier  : Binary Tree, Binary Search Tree, General Tree, Graf

di bawah ini ada beberapa Tipe Data yang dipakai dalam Struktur Data :
1. Integer : yaitu anggota dari himpunan bilangan yang dapat dihitung .
    Operasi dasar pada Integer : +, - , * , / , ^ , Div , Mod

  •   Div (Pembagian Integer) yaitu : sebuah hasil integer yang menghilangkan bilangan pecahan/decimal dari hasil pembagiannya. contoh :
           20 Div 3 = 6

  • Mod (Sisa Dari Pembagian Integer) contoh : 
          20 Mod 3 = 2
perbedaan Binary Operator dengan Unary Operator adalah :

Binary operator bekerja pada 2 operand sedagkan Unary Operator bekerja pada 1 operand saja.

2. Real : Jenis data yang ditulis dengan menggunakan tanda titik decimal atau koma decimal.
    pada real terdapat dua penyajian yang terdiri dari mantissa(pecahan) dan eksponen.
      contoh :
                  145000 jika dirumah dalam sistem decimal menjadi 0,145 * 10^6
                   mantissa nya adalah 0,145 eksponennya adalah 6.

3. Boolean yaitu jenis data yang hasilnya True atau False.

  •     Operator Logika ada  : AND, OR, NOT

    AND  : menghasilkan True jika kedua operand bernilai true.
    OR     : menghasilkan True jika salah satu operand bernilai true.
    NOT  : merupakan precedence dari operator AND dan OR.

  • Operator Relational yaitu : > , < , >= , <= , <> dan =
       contoh : 6 > 8   = False
                    8 < 10 = True

4.   Karakter merupakan elemen dari suatu himpunan yang terdiri atas bilangan, abjad, dan simbol khusus.
    contoh : (0,1...9,A...Z,+,-,*,/,^..})

5.   String adalah barisan dari hingga karakter yang dibentuk oleh suatu kumpulan dari karakter.
    karakter yang digunakan untuk membentuk suatu string disebut alfabet. Dalam penulisannya, suatu string
    berada dalam tanda "aphosthrope".

6.   Length
      Nilai dari poerasi ini adalah suatu integer yang menunjukkan panjang dari suatu string
         notasi :  LENGTH(S) = N (integer)
                    di sini S = string  dan N = Integer
7.    Concat
      Operasi ini bekerja terhadap dua string dan hasilnya merupakan resultan dari kedua string tersebut.

8.   SUBSTR
      Operasi ini adalah operasi yang membentuk string baru, yang merupakan bagian dari string yang     diketahui.
    notasi :
               SUBSTR(S,i,j)
         disini : S = string yang diketahui
                  i dan j = integer
                  i  =  posisi awal substring 1 <= LENGTH (S)
                  j = banyak karakter yang diambil
                      0 <= j < LENGTH(S) dan 0 <= 1+ j -1 <= LENGTH(S)

9.   Insert
      Operasi ini adalah untuk menyisipkan suatu string ke dalam string lain. Bentuk umumnya adalah :
       INSERT(S1, S2,i) . S1, dan S2 masing-masing adalah suatu string dan i adalah posisi awal S1, S2

10. Delete
      Operasi ini digunakan untuk menghapus sebagian karakter dalam suatu string.
      Bentuk umumnya adalah :
               DELETE(S,i,j) yang artinya menghapus sebagian karakter dalam string S mulai dari posisi i dengan
                                                         panjang j
MAPPING KE STORAGE
  • Integer
  1. Skema Sign dan Magnitude
  2. Skema One's Complement
  3. Skema Two's Complement
  • Karakter
  1. Extended Binary Coded Decimal Interchange (EBCDI) digunakan kode 8 bit untuk menyatakan sebuah karakter. Jika dihitung, kemungkinan kombinasi seluruhnya : 2^8 = 256
  2. American Standard Code for Information Interchange (ASCII) digunakan kode 7 bit untuk menyatakan sebuah karakter. jika dihitung kemungkinan kombinasinya  2^7 = 128
  • String 
      untuk mengetahui bentuk mapping data 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



Array

Array adalah suatu himpunan hingga elemen terurut dan homogen.
arti dari terurut itu sendiri maksudnya dapat teridentifikasi sebagai elemen pertama,kedua,ketiga sampai
ke-n , sedangkan homogen artinya adalah tipe data dari setiap elemen array itu sama.

Array biasa digunakan untuk membuat matrik atau tabel,  selain itu vektor juga merupakan array yang paling sederhana.


  • Array Dimensi Satu 

Vektor adalah bentuk yang sederhana dari array, yang merupakan array dimensi satu.
     Bentuk umum :
          misal ---> Array N dengan tipe data T dan subskrip bergerak dari L sampai U, maka array N dapat
                   ditulis :
                                            N (L:U)
                         keterangan : L = Lower Bound (Batas Bawah)
                                            U = Upper Bound (Batas Atas)
     banyaknya elemen adalah: U - L + 1


  • Array Dimensi Dua

yaitu suatu array yang setiap elemennya tipe data array pula.
    Bentuk Umum : B(L1:U1,L2:U2)
banyaknya elemen adalah : (U1 - L1+1) * (U2 - L2+1)

Pemetaan Ke Storage  : ARRAY

  1. Dimensi Satu : alamat awal dari memori yang dialokasikan bagi array.
  2. Dimen Dua   : memori komputer adalah linier
         Penilaian array dimensi banyak dengan cara :
1. Row-Major Order.
2. Column-Major Order.

  • Aray Dimensi Tiga  

yaitu suatu array yang setiap elemennya merupakan tipe data array juga yang merupakan array dimensi dua.

Cross Section (Penampang Array Berdimensi-2)
adalah pengambilan salah satu subskrip.
misal : Baris    =  tetap konstan
          Kolom  =  berubah-ubah .
pengertian cross-section pada array dimensi banyak adalah sama seperti pada array dimensi dua.

Transpose Dari Array Dimensi-2.
adalah penulisan baris menjadi kolom atau kolom menjadi baris.

Triangular Array (array segitiga)
dapat berupa :
  1. Upper Triangular : semua elemen di bawah diagonal utama = 0.
  2. Lower Triangular : semua elemen di atas diagonal utama = 0.
Sparse Array
yaitu suatu array yang sangat banyak elemen nol-nya.


 Stack (Tumpukan)

Linier List
suatu struktur data umum yang berisi suatu kumpulan terurut dari elemen; jumlah elemen di dalam list dapat berubah-ubah.

Stack 
adalah suatu bentuk khusus dari linier list, dengan operasi penyisipan dan penghapusan dibatasi hanya pada satu sisinya, yaitu puncak stack (TOP).

Elemen teratas dari stack dinotasikan sebagai TOP(S).
untuk stack S, dengan S = [ S,S2, S3...ST] maka TOP(S) = ST
Jumlah elemen di dalam stack dinotasikan dengan NOEL(S).

Operator penyisipan (insertion) : PUSH
Operator penghapusan (deletion) : POP
Operasi stack : LIFO (last in first out) yaitu terakhir masuk yang pertama keluar.

4 Operasi dasar pada stack :

  1. CREATE adalah operator yang menunjukkan suatu stack kosong dengan nama S.
    jadi  : NOEL(CREATE(S))= 0 
             TOP (CREATE(S)) adalah tidak terdefinisi.
  2. ISEMPTY adalah operator yang menentukan apakah stack S kosong. Operatornya adalah tipe data stack , hasilnya merupakan tipe data boolean;
    ISEMPTY(S) = True . jika S hampa, yaki bila NOEL(S) = 0
  3. PUSH adalah operator yang menambahkan elemen E pada puncak stack S, hasilnya adalah merupakan stack yang lebih besar.
    PUSH(E,S). E ditempatkan sebagai TOP(S).
  4. POP adalah operator yang menghapus sebuah elemen dari puncak stack S, hasilnya merupakan stack yang lebih kecil. POP(PUSH(E,S)) = S
Queue( Antrean)
yaitu suatu bentuk khusus dari linier list, dengan operasi penyisipan(insertion) hanya diperbolehkan pada salah satu sisi, yang disebut REAR, dan operasi penghapusan(deletion) hanya diperbolehkan pada sisi yang lainnya, yang disebut FRONT dari list.

Operasi Queue : FIFO (first in first out) elemen pertama masuk yang pertama keluar.
Operator : Penyisipan    : Insert
                Penghapusan : Remove

4 Operasi dasar Queue :

      1. CREATE (Q) : Operator yang menunjukkan suatu antrean hampa Q.
          berarti : Noel (Q) = 0
                      Front (Q) & Rear (Q) = tidak terdefinisi

     2. ISEMPTY (Q) : Opertaor yang menunjukkan apakah antrean Q hampa.
         Operand   : tipe data antrean.
         Hasil         : tipe data boolean.
         ISEMPTY (CREATE(Q)) = True
     3. INSERT (E,Q) : Operator yang menginsert elemen E ke dalam antrean Q.
         E ditempatkan di bagian belakang antrean.
         Hasil  :  antrean yang lebih besar.
         REAR (INSERT(E,Q)) = E.
         ISEMPTY (INSERT(E,Q)) = False

     4. REMOVE (Q) : Operator yang menghapus elemen bagian depan dari antrean Q.
         Hasil : antrean yang lebih pendek.
         Pada setiap operasi, Noel(Q) berkurang 1 dan elemen ke-2 menjadi elemen terdepan.
         jika Noel (Q) = 0 maka Q = hampa
        Remove (Q) = kondisi error (underflow condition)
        Remove(Create (Q)) = kondisi error (underflow condition)

Penyajian Dari Queue
  1. One Way List (Linear Linked List)
  2. Array
1.      Dengan menggunakan array statis
Operasi-operasi yang dapat dilakukan dalam queue yang menggunakan representasi array statis adalah :
1.1.   Pendeklarasian sebuah queue
Setiap queue memiliki elemen-elemen (field) berupa posisi depan, posisi belakang, elemen antrian, dan maksimal elemennya.
Adapun pendeklarasian queue dalam bahasa C adalah :
#define maks 5
struct TQueue{
                int depan,belakang;
                int maks_queue;
                int antrian[maks];
             };
TQueue Q,Queue,Q2;//deklarasi variable bertipe TQueue

1.2.   Inisialisasi Queue
Inisialisasi queue adalah proses pemberian nilai 0 untuk field depan dan belakang dari queue dan juga pemberian nilai maks ke maks_queue yang menunjukan banyaknya maksimal data dalam queue.
Karena dalam bahasa C elemen sebuah array dimulai dengan 0 maka proses inisialisasi nilai depan dan belakang bukan 0 tetapi -1 sehingga ketika ada proses penambahan elemen (enqueue) akan bernilai 0 sehingga elemen tersebut akan disimpan dalam elemen antrian pada posisi 0.

Implementasi fungsi inisialisasi queue dalam bahasa C adalah
void inisialisasi(TQueue *Q)
{
    Q->maks_queue=maks; //
    Q->depan=-1;
    Q->belakang=-1;
}

Cara pemanggilannya adalah :
Inisialisasi(&Q);
Grafh
Graph adalah kumpulan dari titik ( node ) dan garis dimana pasangan-pasangan titik ( node ) tersebut dihubungkan oleh segmen garis. Node ini biasa disebut simpul (verteks) dan segmen garis disebut ruas (edge).

Simpul dan ruas dalam graph dapat diperluas dengan penambahan informasi. Sebagai contoh, simpul bisa diberi nomor atau label dan ruas dapat diberi nilai juga. Perluasan dengan pemberian informasi ini sangat berguna dalam penggunaan graph untuk banyak aplikasi komputer. Contoh, graph dengan simpul yang merepresentasikan kota dan ruas merepresentasikan jarak yang ditempuh diantara kota-kota tsb. (atau harga tiket pesawat antara kota-kota tsb.) , dapat digunakan sebagai “transportation network” untuk mempelajari total jarak (atau harga) dari suatu perjalanan dengan banyak kota pemberhentian. Satu kemungkinan pertanyaan yang bisa muncul adalah “Jalur mana yang terpendek dengan satu atau lebih tempat pemberhentian, yang menghubungkan kota tertentu menuju kota tertentu lainnya dalam transportation network tersebut ?”. 
Dalam kehidupan sehari-hari maupun dalam bidang akademis banyak persoalan yang dimodelkan dengan graph. Graph dipakai untuk membantu pemecahan masalah. Dari model graph yang dibuat, suatu masalah dapat dipahami menjadi lebih mudah. Untuk kemudian diturunkan metode pemecahannya.


Grafh adalah :
  • Himpunan V (vertex) yang elemennya disebut simpul (atau) point atau node atau titik.
  • Himpunan E (edge) yang merupakan pasangan tak urut dari simpul, anggotanya disebut ruas (rusuk atau sisi)
Banyaknya simpul disebut ORDER , banyaknya ruas disebut SIZE
Jumlah derajat semua simpul suatu graf (derajat) = dua kali banyaknya ruas graf (size graf). 

Jika Anda ingin melihat contoh GRAFH dan cara menentukan jarak terpendek dengan metode DJIKSTRA silahkan klik DOWNLOAD

sumber : 
1.http://nickyheartbreaker.blogspot.com/2010/05/graph-adalah-kumpulan-dari-titik-node.html
2.http://robbifxr.blogspot.com/2012/03/queue-antrian.html
3.Materi Struktur dan Organisasi Data 2 dosen Detty Purnamasari

CLARA DWI ANJANI
11111678
2KA15