Sabtu, 06 Juli 2013

Kuis V-class Minggu ke-3 Struktur Organisasi Data 2

Didalam tulisan kali ini saya akan mengulas kembali materi SOD 2 yang sudah Dosen saya berikan di waktu perkuliahan sebelumnya. Pada pelajran SOD terdapat beberapa materi yaitu: Struktur Data, Array, Stack, dan Queue. Saya akan menjelaskan satu persatu materi tersebut.

1 STRUKTUR DATA


 Struktur data adalah suatu koleksi atau kelompok data yang dapat
dikarakterisasikan oleh organisasi serta operasi yang didefinisikan terhadapnya.
Algorithma : barisan langkah-langkah unutk menyelesaikan sebuah program. Inputnya
harus data. Sebuah program belum tentu Algortihma, Sebuah Algoritma harus bisa
diimplementasikan sebuah program.

Jadi Struktur Data & Algoritma = Program


Data secara umum dapat dikategorikan atas :
- Tipe data sederhana
1. Tunggal : Integer, Real, Boolean, Karakter
2. Majemuk : String


- Struktur data
1. Sederhana : Array, Record
2. Majemuk :


- Linier : Linier Linked List, Stack, Queue
- Non Linier : Binary Tree, Binary Search Tree, General Tree, Tree, Graf


INTEGER
Suatu integer adalah anggota dari himpunan bilangan :
{..., -(n+1), -n, ..., -2, -1, 0, 1, 2, ..., n, n+1, ...}
Operasi dasar yang ada dalam integer yaitu : +, -, *, /, ^
Pembagian Integer (DIV)
Hasil dari pembagian integer DIV adalah sebuah integer (menghilangkan bagian
pecahan dari hasil pembagian)
Contoh : 17 DIV 3 = 5
Selain itu terdapat operasi MOD (Modulo) : sisa dari pembagian
Contoh : 17 MOD 3 = 2
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 negasi.


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. Di sini penyajiannya terdiri atas dua bagian, yaitu : 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
Jenis data ini disebut juga jenis data logical. Elemen dari jenis data ini mempunyai nilai
salah satu dari true atau false.
Operator yang dikenal pada boolean, yaitu :
A. 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 : >, <, >=, <=, <> dan =
Contoh : 6 < 8 = True 9 > 8 = False


KARAKTER
Jenis data karakter merupakan elemen dari suatu himpunan yang terdiri atas bilangan,
abjad dan simbol khusus.
(0,1,...,8,9, A, B, ..., Y,Z, +, -,*,√, ...}


STRING
Barisan 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”.
Contoh :
Misal diberikan himpunan alfabet A = {C,D,1}.
String yang dapat dibentuk dari alfabet di atas antara lain :
‘CD1’,’CDD’,’DDC’,’CDC1’,... dan sebagainya, termasuk “null string” atau “empty
string”
Himpunan tak hingga dari string yang dibentuk oleh alfabet A disebut VOCABULARY,
Notasi : VA atau A*
Jika suatu string dibentuk dari alfabet {0,1}, maka string yang terbentuk disebut dengan
“Bit String”.


LENGTH
Nilai dari operasi ini adalah suatu integer yang menunjukkan panjang dari suatu string .
Notasi : LENGTH(S) = N (integer)
di sini S = String, N = integer
Contoh:
A. Jika diberikan string S =‘a1a2 ... aN’
Maka LENGTH(S) = N
B. Jika diberikan string S =“MANAJEMENINFORMATIKA”
Maka LENGTH(S) = 20
C. Jika diberikan string S = “ABCD20”, maka LENGTH(S) = 6



2.ARRAY

Array adalah suatu himpunan hingga elemen, terurut dan homogen.
Terurut adalah elemen tersebut dapat diidentifikasikan sebagai elemen pertama,
kedua, sampai dengan elemen ke-n.
Homogen adalah bahwa setiap elemen dari sebuah array tertentu haruslah
mempunyai tipe data yang sama.
Pengertian array telah kita kenal sebelumnya dalam Matematika, yang
lebih dikenal sebagai matriks atau tabel. Vektor merupakan array yang paling
sederhana.


ARRAY DIMENSI SATU
Vektor adalah bentuk yang sederhana dari array, yang merupakan array dimensi
satu.
Array N dapat kita bayangkan :

N(1) N(2) N(3) ... N(I)
Subskrip atau index dari suatu elemen menunjukkan posisi/urutan elemen dalam
array.


BENTUK UMUM
Misal : Array N dengan tipe data T dan subskrip bergerak dari L sampai U, maka
array N dapat ditulis :
N(L:U)
di sini L : Lower Bound (Batas Bawah)
U : Upper Bound (Batas Atas)
Banyaknya elemen adalah : U - L + 1


ARRAY DIMENSI DUA
Adalah : suatu array yang setiap elemennya merupakan tipe data array pula.

Memiliki 2 index (baris dan kolom)
Dalam hal ini kita perlu memberi 2 harga subskrip untuk mengidentifikasikan
masing-masing elemen pada array dimensi dua, yaitu :
Subskrip pertama menunjukkan baris dari array, sedangkan subskrip kedua
menunjukkan kolom dari array.


BENTUK UMUM
Misal : Array B dengan tipe data T, subskrip baris dari L1 sampai U1, subskrip
kolom dari L2 sampai U2, ditulis sebagai berikut :

B(L1:U1,L2:U2)
Banyaknya elemen adalah : (U1 - L1 +1) * (U2 - L2 +1)


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


ARRAY DIMENSI TIGA
Adalah suatu array yang setiap elemennya merupakan tipe data array
juga yang merupakan array dimensi dua.
Contoh :
Penyajian data mengenai banyaknya mahasiswa dari 20 perguruan tinggi di
Jakarta, berdasarkan tingkat (1 sampai 5), dan jenis kelamin (pria atau wanita).
Misalkan array tersebut dinamakan MHS. Ambil subskrip pertama, tingkat = 1, 2,
..., 5; subskrip kedua, jenis kelamin (pria = 1, wanita = 2), dan subskrip ketiga,
perguruan tinggi adalah K = 1, 2, ..., 20. Jadi MHS(4,2,17) menyatakan jumlah
mahasiswa tingkat 4, wanita, dari perguruan tinggi 17.


3.STACK

stack atau tumpukan merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhir kali dimasukkan akan pertama kali keluar dari tumpukan tersebut. Tumpukan dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix). Ciri tumpukan:
  • Elemen TOP (puncak) diketahui
  • penyisipan dan penghapusan elemen selalu dilakukan di TOP
  • LIFO
Pemanfaatan tumpukan:

  • Perhitungan ekspresi aritmatika (posfix)
  • algoritma backtraking (runut balik)
  • algoritma rekursif
Operasi tumpukan yang biasanya :

  1. Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke tumpukan
  1. Pop (input/output data : stack, output E : typeelmt ) : menghapus sebuah elemen tumpukan
  1. IsEmpty ()
  1. IsFull ()
  1. dan beberapas selektor yang lain
4.QUEUE

 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) hanya diperbolehkan
pada sisi yang lainnya, yang disebut FRONT dari list.


Antrean Q = [Q1, Q2, ... , QN]
Front(Q) = Q1 bagian depan antrean
Rear(Q) = QN bagian belakang antrean
Noel(Q) = N jumlah elemen dalam antrean
Operasi Antrean : FIFO (First In First Out)
Elemen yang pertama masuk merupakan elemen yang pertama
keluar.


Operasi-operasi pada Antrian (queue):

1.Create()
Untuk menciptakan dan menginisialisasi Queue
Dengan cara membuat Head dan Tail  = -1

2. IsEmpty()
Untuk memeriksa apakah antrian masih kosong atau sudah terisi
Dengan cara memeriksa nilai tail, jika tail = -1 maka empty
Pergerakan pada Antrian terjadi dengan penambahan data Antrian kebelakang, yaitu menggunakan nilai tail


3. IsFull()
Untuk mengecek apakah Antrian sudah penuh atau belum
Dengan cara mengecek nilai tail, jika tail >= MAX-1 (karena MAX-1 adalah batas data array pada C) berarti sudah penuh

4. Enqueue
Untuk menambahkan data ke dalam antrian, penambahan data selalu ditambahkan di data paling belakang
Penambahan data selalu menggerakan variabel tail dengan cara increment counter tail

5. Dequeue()
Digunakan untuk menghapus data terdepan dari Antrian
Dengan cara mengurangi counter tail dan menggeser semua data antrian kedepan.
Penggeseran dilakukan dengan menggunakan looping

6. Clear()
Untuk menghapus semua data Antrian dengan cara membuat tail dan head = -1
Penghapusan data-data antrian sebenarnya tidak menghapus arraynya, namun hanya mengeser indeks pengaksesannya ke nilai -1 sehingga data-data Antrian tidak lagi terbaca

7. Tampil()
Untuk menampilkan nilai-nilai data Antrian menggunakan looping dari head s/d tail 



2ka20_Viona_17111295
Video youtube (Tugas ke-2)

Sumber :
Detty@staff.gunadarma.ac.id www.hazimzone.blogspot.com,pengertian-array-dalam-struktur-data  
id.wikipedia.org/wiki/stack
Agus-wirayasa.blogspot.com/2013/05queue-antrian.html

Tidak ada komentar:

Posting Komentar