Senin, 03 November 2014

STRUKTUR DATA pertemuan 1

Struktur Data (Pertemuan 1)

Data dikategorikan menjadi 2 yaitu :

ü  Tipe data tunggal (data primitif)
Ex: Integer, Real, Boolean dan karakter
ü  Tipe data majemuk (data campuran)
Ex: string (untai)
Tipe Data dalam pemprograman  ada 3 yaitu :
Ø  Sederhana
Ø  Ordinal, ex: Integer, Boolean, char
Ø  Real
Ø  Terstrukur
Ø  Array
Ø  Record
Ø  Set
Ø  File
Ø Pointer
TIPE DATA TUNGGAL
#Integer
v  Suatu integer adalah anggota dari himpunan bilangan
v  Operasi – operasi dasar yang ada dalam integer adalah : penjumlahan, pengurangan, perkalian, pembagian dsb
v  Operator  yang bekerja terhadap sepasang integar (operand) disebut sebagai Binary Operator
v  Operator  yang hanya bekerja pada satu operand saja disebut sebagai Unary Operator
v  Contoh Unary Operator adalah operator negasi. Berfungsi untuk mengubah tanda suatu operand

Operator
Operand
+
Penjumlahan
*
Perkalian
-
Pengurangan
DIV
Hasil Pembagian Bilangan Bulat
MOD
Sisa Pembagian

#Real
v  Data Numerik yang bukan termasuk integer, digolongkan dalam jenis data real
v  Jenis data ini ditulis menggunakan titik desimal  (atau koma desimal)
v  Bilangan real dimasukkan ke dalam memori komputer memakai sistem Floating Point, merupakan versi yang disebut  Scientific Notation
v  Penyajian terdiri atas 2 bagian, yaitu : Mantissa (Pecahan) dan Eksponen
Ex: bilangan 199000 = 0,199 * 106
      Disini 0,199 adalah mantissa (pecahan) sedangkan 6 adalah eksponen
v Secara Umum suatu bilangan real  X dituliskan M * RE

Operator
Operand
+
Penjumlahan
*
Perkalian
-
Pengurangan
/
Pembagian
          
#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 adalah:
                   Operator logika yaitu NOT, AND dan OR
§  Operator OR akan menghasilkan nilai true jika salah satu/ kedua operand bernilai true
§  Operator AND akan menghasilkan nilai true jika kedua operand benilai true
§  Operator NOT akan menghasilkan nilai true jika operand bernilai false dan sebaliknya
§  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
                   Operator Relasional yaitu  > , <, <= , >=, <> dan =

P
Q
P dan Q
P OR Q
NOT Q
T
T
T
T
F
T
F
F
T
T
F
T
F
T
F
F
F
F
F
T

#Karakter
            Jenis data karakter merupakan elemen dari suatu himpunan simbol aksara yang terdiri atas bilangan, abjad, dan simbol – simbol khusus

#String
ü  Jenis data string merupakan jenis data campuran karena elemen dibentuk dari karakter – karakter
ü  String adalah barisan hingga simbol yang diambil dari himpunan karakter
ü  Ada beberapa string yang dapat di bentuk, antara lain :
ü  CDI, CDD, DDC, CDC, CDCI, termasuk juga “ null string “ , “ empyt string “.
ü  Vocabulary, himpunan yang anggotanya adalah semua string yang dapat di bentuk dari suatu himpunan alphabet.
ü  Bitstring, suatu string yang terbentuk dari alphabet
ü  Dalam suatu string terdapat beberapa operasi utama yaitu :
o   Lenght : Menghitung panjang string (Integer)
Nilai dari operasi ini adalah suatu integer yang menunjukkan panjang dari suatu string.Panjang dari string di definisikan sebagai banyak karakter dan dapat diltulis S=N atau Lenght (S)=N
o   Concatenation : menggabungkan
§  Operasi ini bekerja terhadap dua string dan hasilnya merupakan resultan dari kedua string tersebut
§  Jika Sdan Smasing – masing adalah suatu string, maka bentuk operasi concatenation dinotasikan dengan CONCAT “(S1,S2)
o   Sub String = Mengambil
§  Operasi ini adalah operasi membentuk string baru, yang merupakan bagian dari string yang diketahui
§  Notasinya adalah SUBSTR (s,i,j)
s = string yang diketahui
i dan j adalah int
i = posisi awal substring 0 ≤ i ≤ length (S)
j = banyak karakter yang diambil 0 ≤ j ≤ length (S) dan
     0 ≤ i+j-1≤ lenght (S)

*      Catatan :
1.     Length ( SUBTR (s, i, j)) = j
2.    SUBSTR (CONCAT (S, S2), 1, length (S1))= S1
3.    SUBSTR (CONCAT (S1,S2), length (S1)+1, length (S2)) = S2
Ex :     S1 = STIMIK
            S= ASIA
            S= Indonesia ? Substring (Concate (Stimik, Asia), 1, lenght (stimik))
                            Subtring ((Stimik Asia ), 1 ,6) = stimik (terbukti)
o   Insert = Menyisihkan
·         Operasi ini adalah untuk menyisipkan suatu string ke dalam string lain
·         Bentuk umum adalah : INSERT (S1, S2, i )
·         Sdan Smasing – masing adalah suatu string dan i adalah posisi awal S2 pada S1
·         Misalkan S1 = ‘a1a....an
    S= ‘b1b2....bm
    INSERT (S1, S2, 3)= ‘a1a2b1b....bma3a4....an
Ex : S= Stimik
       S= Asia
            INSERT (S1, S2, 2) = Sasia Timik
o   Delete = Menghapus
·         Operasi ini digunakan untuk menghapuskan sebagaian karakter dalam suatu string
·         Bentuk umum adalah DELETE (s, i, j)
·         Maksudnya adalah menghapuskan sebagaian karakter dalam string S, mulai dari posisi i dan panjang j
Pemetaan integer ke storage
Bentuk mapping ke storage dari int dapat dilakukan dengan beberapa cara yaitu :
ü  Skema sign dan magnitude (bentuk konvesional)
o   Disini representasi bilangan pos dan neg hanya dibedakan dengan tanda saja
o   Biasanya tanda pos/neg ditunjukkan oleh digit terdepan dari bentuk binernya untuk representasi dengan jumlah digit tertentu
ü  Skema One’s complement dan Skema Two’s complement
o    Diberikan bilangan int non neg x,x’  dan R di definisi bahwa
 x’ adalah complement dari x relatif terhadap  R jika x+x’ = R
x disebut sebagai bentuk true sedangkan x’=R-x disebut bentuk complement
o    Bentuk complement x’= R-x menyatakan bilangan int neg x sedangkan bentuk true x menyatakan  int pos x
o    Skema 2 complement menggunakan R = 2N
o    Skema  1 complement menggunakan R = 2N – 1
    Pemetaan karakter ke storage
v  Pada umumnya skema yang paling banyak digunakan adalah
ü  Exended Binary Coded Decimal Interchange Code (EBCDIC)
ü  American Standard Code for Information Interchange (ASCII)
ü  Selain kedua skema tersebut ada skema yang disebut dengan kode    Huffman
   Pemetaan String ke Storage
v  Untuk mengetahui bentuk mapping pada storage dari suatu string perlu diketahui beberapa hal yang menyangkut ruang untuk string yang bersangkutan
v  Letak posisi awal start dan posisi akhir (terminal) suatu pointer yang menunjukkan lokasi storage

STRUKTUR DATA PERTEMUAN 2

ARRAY DAN RECORD

Pertemuan 2


Array
   Aray juga dapat dikatakan suatu himpunan terurut dengan elemen-elemen homogen. Adalah tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe data yang sama. Suatu Array mempunyai jumlah komponen yang banyaknya tetap. Banyaknya komponen dalam suatu larik ditunjukkan oleh suatu indek untuk membedakan variabel yang satu dengan variable yang lainnya.

Array dapat dikelompokkan:
1.      Array 1 Dimensi
Bentuk Array yang paling sederhana adalah Array 1 Dimensi
-  Array ini dapat dianggap sebagai sebuah vektor, yang tersusun dalam bentuk kolom atau baris saja.
-  Suatu Array A berdimensi satu dengan N buah elemen, secara fisik dapat digambarkan sebagai berikut:
 
Yang perlu diketahui disini adalah letak elemen ke I dari Array A(1,N), atau letak masing-masing elemen Array pada storage.

Indeks dan elemen suatu Array menyatakan posisinya dalam urutan secara umum suatu Array A berdimensi satu dengan elemen berjenis data I yang mempunyai Indeks.
2.      Array Multi Dimensi
Adalah salah satu contoh array jenis multi dimensi (dimensi banyak).
-  Tersusun dalam bentuk baris dan kolom, dimana indeks pertama menunjukkan baris dan indeks kedua menunjukkan kolom.
-  Array ini elemen-elemennya merupakan Array pula.
-  Bentuk yang danggap dapat mewakili dimensi ini :
Array ditulis :
Array ditulis = B(1:M, 1:N) = {B(I,J)},
          Untuk I = 1, 2, ..., M
                      J = 1,2, ..., N
-          Jumlah elemen (range) dari Array B ini adalah M X N
-    Secara umum, Array 2 Dimensi B dengan batas bawah indeks pertama L1, batas atas pertama U1, batas bawah Indeks kedua L2, batas atas kedua U2 :

B = (L1: U1, L2:U2) = {B(1,J)}
Untuk L1 < 1< U1 dan L2 < J < U2

-          Jumlah elemen baris dari Array B               : (U2-L2 + 1)
-          Jumlah elemen kolom dari Array B            : (U1 – L1 + 1)
-          Jumlah total Array B                                  : (U2-L2 + 1)(U1-L1+1)


Cross Section
-  Cross Section dari Array 2 dimensi :
Suatu himpunan yang anggotanya adalah elemen-elemen dalam satu baris saja.
-  Notasinya menggunakan *
-  Misal diberikan Array B (1 : M, 1:N)
B (4,*) = {B(4,1), B (4,2), ..., B (4,N)}
B (*,4) = { B(1,4), B(2,4), ..., B(M,4)} 

                        
Tranpose
                  Tranpose 2 Dimensi : Suatu Array 2 Dimensi pula dengan menukar posisi Indeksnya.
-          Tranpose dari Array berukuran M X N adalah suatu Array berukuran N X M
-          Tranpose dari suatu Array dari b dinotasikan dengan BT
 

Semua Karyawan desain pegawai Tetap = Percetakan (*, A, 1 )
Karyawan pria bagian produksi               = Percetakan (P, C, *)

Deklarasi Array dalam Bahasa Pemrograman 
-          Misalkan ada Array nama R dengan 10 elemen dengan masing-masing elemen berjenis data integer, maka deklarasinya dalam bahasa pemrograman adalah sbb:
Var R : Array [1..10] Of Integer;
Dalam mendeklarasikan suatu Array ada 3 hal :
~ Nama Array
Range dari Indeks
Tipe elemen-elemen datanya  
  
Pemetaan Aray 1 Dimensi ke Storage

Starting Adress elemen ke 1 dari array, dinyatakan dengan B, disebut juga base-location. Misalkan bahwa masing-masing elemen dari array menduduki S byte.
Maka Starting address dari elemen ke I adalah :
Array A (1:N) adalah = B + (i - 1)*S

Pemetaan Array Multi Dimensi ke Storage
-          Prinsip yang digunakan disini tetap didasarkan pada Array satu dimensi
Linearisasi menurut Baris :
Record
Himpunan dari elemen-elemen yang heterogen. Adalah komponen-komponen yang mempunyai tipe data yang berbeda.
Beberapa hal yang perlu diketahui dalam record sbb:
-  Elementary Item : suatu field (bidang) yang tidak mempunyai sub field
-  Group Item : Suatu field yang memiliki subfield
-  Tupel : Gabungan atribut yang mempunyai field
File
 Record-record yang tipenya sama

-  Untuk menyatakan suatu data dalam dalam record yang mempunyai identifikasi yang khusus, maka harus mempunyai 1 field khusus yang disebut Key (Kunci Field).