Subscribe:

Selasa, 06 Mei 2014

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 Skema Sign dan Magnitude Skema One's Complement Skema Two's Complement Karakter Extended Binary Coded Decimal Interchange (EBCDI) digunakan kode 8 bit untuk menyatakan sebuah karakter. Jika dihitung, kemungkinan kombinasi seluruhnya : 2^8 = 256 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

Dimensi Satu : alamat awal dari memori yang dialokasikan bagi array.
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 :
Upper Triangular : semua elemen di bawah diagonal utama = 0.
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 = [ S1 ,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 :

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. Operatornya adalah tipe data stack , hasilnya merupakan tipe data boolean;
ISEMPTY(S) = True . jika S hampa, yaki bila NOEL(S) = 0
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).
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
One Way List (Linear Linked List)
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).

0 komentar:

Posting Komentar