Minggu, 17 Januari 2010

SQL

[NO 1]


CREATE DATABASE PELSERVIS_MOTOR_CHACHA ON
(NAME=PELSERVIS_MOTOR_CHACHA_DAT,
FILENAME="D:\Program Files\Microsoft SQL Server\MSS\Data\PELSERVIS_MOTOR_CHACHA.mdf",
SIZE=12,
MAXSIZE=100,
FILEGROWTH=2)
LOG ON
(NAME="CPELSERVIS_MOTOR_CHACHA_log",
FILENAME="D:\Program Files\Microsoft SQL Server\MSSQL\Data\PELSERVIS_MOTOR_CHACHA.ldf",
SIZE=4 MB,
MAXSIZE=50 MB,
FILEGROWTH=2 MB)



[NO 2]


CREATE TABLE MOTOR
(
NO_POLISI CHAR (10) PRIMARY KEY NOT NULL,
WARNA CHAR (10),
MERK CHAR (10),
TAHUN CHAR (4)
)

CREATE TABLE SERVIS
(
NO_FAKTUR CHAR (4) PRIMARY KEY NOT NULL,
TGL_FAKTUR DATETIME,
NO_POLISI CHAR (10) FOREIGN KEY REFERENCES MOTOR (NO_POLISI),
KD_PART CHAR (20) FOREIGN KEY REFERENCES PART (KD_PART),
QTY TINYINT
)

CREATE TABLE PART
(
KD_PART CHAR (20) PRIMARY KEY NOT NULL,
NAMA_PART CHAR (30),
HRG_SAT FLOAT
)



[NO 3]
DELETE FROM SERVIS

INSERT INTO MOTOR VALUES ('B 3117 LB','BIRU','SUPRA X','2005')
INSERT INTO MOTOR VALUES ('B 3775 JO','HITAM','SHOGUN','2005')
INSERT INTO MOTOR VALUES ('B 5118 AA','BIRU','JUPITER','2006')
INSERT INTO MOTOR VALUES ('B 4229 BB','MERAH','MIO','2007')
INSERT INTO MOTOR VALUES ('B 2557 HJ','HITAM','JUPITER','2004')

INSERT INTO SERVIS VALUES ('F001','05/20/2007','B 3117 LB','OLTI 1000 CC',1)
INSERT INTO SERVIS VALUES ('F002','05/21/2007','B 5118 AA','SERV0001',1)
INSERT INTO SERVIS VALUES ('F003','05/21/2007','B 3775 JO','OLMP 1000 CC',1)
INSERT INTO SERVIS VALUES ('F004','05/22/2007','B 4229 BB','SERV0001',1)

INSERT INTO PART VALUES ('SERV0001','ENGINE TUNE UP',25000)
INSERT INTO PART VALUES ('OLTI 1000 CC','OLI TOP ONE 1000 CC',27000)
INSERT INTO PART VALUES ('OLMP 1000 CC','OLI MESRAN PRIMA 1000 CC',15000)



[NO 4]


SELECT *
FROM MOTOR
WHERE WARNA = 'BIRU' AND TAHUN < 2006 OR RIGHT(NO_POLISI,1) = 'B'



[NO 5]


SELECT *
FROM PART
WHERE HRG_SAT BETWEEN 10000 AND 20000



[NO 6]


SELECT KD_PART , "JUMLAH PART YANG TERJUAL" = SUM (QTY)
FROM SERVIS
GROUP BY KD_PART



[NO 7]


SELECT *
FROM SERVIS
ORDER BY TGL_FAKTUR
COMPUTE SUM (QTY) BY TGL_FAKTUR



[NO 8]


SELECT NO_FAKTUR , TGL_FAKTUR , WARNA , MERK , TAHUN , QTY
FROM MOTOR
JOIN SERVIS ON MOTOR.NO_POLISI = SERVIS.NO_POLISI
WHERE MERK = 'SUPRA X' OR MERK = 'JUPITER'




[NO 9]


SELECT NO_FAKTUR , TGL_FAKTUR , QTY , NAMA_PART , HRG_SAT
FROM SERVIS
JOIN PART ON SERVIS.KD_PART = PART.KD_PART
ORDER BY NO_FAKTUR
COMPUTE COUNT (NO_FAKTUR) BY NO_FAKTUR



[NO 10]


SELECT TGL_FAKTUR , WARNA , MERK , NAMA_PART , HRG_SAT , QTY
FROM SERVIS
JOIN MOTOR ON SERVIS.NO_POLISI = MOTOR.NO_POLISI
JOIN PART ON SERVIS.KD_PART = PART.KD_PART
ORDER BY TGL_FAKTUR

Selasa, 12 Januari 2010

struktur data

Tipe data adalah jenis data yang mampu ditangani oleh suatu bahasa pemrograman pada komputer.Tiap-tiap bahasa pemrograman memiliki tipe data yang memungkinkan:

Deklarasi terhadap variabel tipe data tersebut

Menyediakan kumpulan operasi yang mungkin terhadap variabel bertipe data tersebut

Jenis obyek data yang mungkin

Contoh tipe data di C? Java? Pascal? .NET?

Obyek Data adalah kumpulan elemen yang mungkin untuk suatu tipe data tertentu.

Mis: integer mengacu pada obyek data -32768 s/d 32767, byte 0 s/d 255, string adalah kumpulan karakter maks 255 huruf

Struktur Data adalah cara penyimpanan dan pengorganisasian data-data pada memori komputer maupun file secara efektif sehingga dapat digunakan secara efisien, termasuk operasi-operasi di dalamnya.

Di dalam struktur data kita berhubungan dengan 2 aktivitas:

Mendeskripsikan kumpulan obyek data yang sah sesuai dengan tipe data yang ada

Menunjukkan mekanisme kerja operasi-operasinya

Contoh: integer (-32768 s/d 32767) dan jenis operasi yang diperbolehkan adalah +, -, *, /, mod, ceil, floor, <, >, != dsb.

Struktur data = obyek data + [operasi manipulasi data]


Dalam ilmu komputer, stack atau tumpukan merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhr kali dimasukkan akan pertama kali keluar dari stack tersebut. Stack dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix). Ciri Stack :

  • Elemen TOP (puncak) diketahui
  • penisipan dan penghapusan elemen selalu dilakukan di TOP
  • LIFO

Pemanfaatan Stack :

  • Perhitungan ekspresi aritmatika (posfix)
  • algoritma backtraking (runut balik)
  • algoritma rekursif

Operasi Stack yang biasanya :

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

Jenis/Tipe Data (Data Type)

n Terdiri dari

Set nilai data

Set operasi yang bisa diterapkan pada nilai tersebut

Klasifikasi Jenis Data

n Simple Data Type (Jenis Data Sederhana)

Item data individual

n Data Structures / data aggregates (struktur data)

Kombinasi dari item data individual

Membentuk item data lain

Jenis Data Sederhana

n Numerik, terdiri dari :

Numerik integer (bilangan bulat)

Numerik real (bilangan riil)

n Karakter, terdiri dari :

Alfabet : a .. z, A .. Z

Angka : 0 .. 9

Simbol khusus : + ? ‘ ! [ ] { } … dll

n Boolean (logika), terdiri dari :

True

False

Identifier

n Dalam bahasa pemrograman, item data diidentifikasi menurut namanya, bukan menurut alamat lokasinya dalam memori

n Identifier akan merupakan konstanta jika ia selalu dikaitkan dengan nilai data yang sama

n Identifier akan merupakan variabel jika nilai datanya yang terkait bisa berubah

n Literal, nilai data yang tertera dalam program namun bukan sebagai identifier

Deklarasi Data

n Jenis data konstanta dan variabel harus didefinisikan dalam program sehingga :

operasi yang tepat dapat dijalankan pada nilai data dan

Jumlah ruang penyimpanan yang tepat bisa ditentukan

n Statement untuk mendefinisikan jenis data disebut declarative statement

n Beberapa bahasa pemrograman memiliki sintaks pendeklarasian yang berbeda

n Beberapa contoh program (pendeklarasian data) yang akan diberikan ditulis dalam pseudo-code

Contoh

Constants

pi = 3.141592654

Variables

i, qty : integer

harga_satuan, harga_beli : real

status : boolean

nama : character(25)

Struktur Data

n Kelompok item data yang terorganisasi yang dianggap sebagai suatu unit

n Disebut juga sebagai jenis data kompleks (complex data type) atau data aggregates

n Beberapa struktur data :

Array (larik)

String

Record

List (daftar)

Tree

Array (Larik)

n Set item data yang disusun secara baik menjadi rangkaian dan diacu atau ditunjuk oleh satu identifier

n Larik (Bahasa Inggris: array), dalam ilmu komputer, adalah suatu tipe data terstruktur yang dapat menyimpan banyak data dengan suatu nama yang sama dan menempati tempat di memori yang berurutan (kontigu) serta bertipe data sama pula.

n Larik dapat diakses berdasarkan indeksnya. Indeks larik umumnya dimulai dari 0 dan ada pula yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat dengan menggunakan perulangan (looping).

n

n Contoh : Nilai = (56 42 89 65 48)

n Item data individual dalam array bisa ditunjuk secara terpisah dengan menyatakan posisinya dalam array itu

Nilai(1) menunjuk 56

Nilai(2) menunjuk 42

n Bilangan yang ditulis dalam tanda kurung menandakan posisi item individual dalam array (disebut juga subscript / indeks)

n Variabel bisa digunakan sebagai subscript, misalnya Nilai(i).

Jika i = 2 maka menunjuk ke Nilai(2) yaitu 42

Jika i = 4 maka menunjuk ke Nilai(4) yaitu 65

n Item data individual dalam suatu array sering disebut elemen

n Matriks

Array yang hanya berisi bilangan dan tidak ada data alfabetisnya

n Klasifikasi Array

Array 1 dimensi

Array multi dimensi

Array Multi Dimensi

n Mempunyai elemen-elemen yang disusun ke dalam baris dan kolom dan digunakan sebagai tabel data

n Contoh : Nilai ujian dari mahasiswa satu kelas untuk beberapa mata kuliah bisa ditempatkan dalam array 2 dimensi

Siswa ke (no. baris)

B. Inggris (kolom 1)

Matematika (kolom 2)

1

2

3

4

5

A(1,1) = 56

A(2,1) = 42

A(3,1) = 89

A(4,1) = 65

A(5,1) = 48

A(1,2) = 44

A(2,2) = 36

A(3,2) = 73

A(4,2) = 86

A(5,2) = 51

Penanganan Array

n Metode dasar penanganan array :

Mencari nilai terbesar

Mencari nilai terkecil

Menghitung nilai rata-rata

Menghitung nilai total

Menghitung jumlah nilai di bawah rata-rata

n Menyortir Array (Sort)

Buble sort

Straight selection sort

n Mencari/Meneliti Array (Search)

Linear search

n Contoh : Nilai ujian mahasiswa akan dibaca dalam array. Kemudian akan ditampilkan nilai terbesar, nilai terkecil, nilai rata-rata, nilai total, dan jumlah nilai di bawah rata-rata.

n Tahapan penanganan array

Input nilai data ke dalam array

Mengkalkulasi nilai terbesar, terkecil, total, dan rata-rata

Mengkalkulasi jumlah nilai di bawah rata-rata

Menampilkan hasilnya (output)

String

n Rangkaian karakter yang ditangani sebagai unit data tunggal

n Contoh (string literal) :

“ABC, 32fl2. 3h”

“Kucing dalam karung”

n Contoh (variabel string) :

A = “Universitas”

B = “Gunadarma”

n Berada dalam bentuk array karakter 1 dimensi

Record

n Seperti array 1 dimensi

n Terdiri dari serangkaian item data yang terkait

n Item data berurutan yang ada dalam record bisa mempunyai jenis yang berbeda

n Contoh : Mengorganisasikan 3 item data yang berbeda ke dalam struktur data tunggal

NIP : string(8)

Nilai : real

Lulus : boolean

List

n Memberikan cara yang fleksibel untuk penanganan item data secara urut

n Perubahan terhadap urutan tersebut dapat dicapai (dilakukan) dengan perpindahan data yang minimal dan kehilangan ruang penyimpanan yang sedikit

Contoh : Kalimat "Ahmad does not like cake" dituliskan sebagai suatu

n Beberapa istilah

Datum : item data dalam list

Pointer : penunjuk yang menyambungkan item data satu dengan yang lain

Node / elemen : elemen dari suatu list yang terbentuk dari datum dan pointer

Terminator : pointer terakhir dari list

Start pointer : menyatakan tempat datum pertama

Free storage pointer : menyatakan di mana datum berikutnya bisa mengarah atau menuju

Operasi pada List

n Deletion : penghapusan elemen suatu list

Ketika elemen suatu list dihapus, tempat penyimpanan yang telah dikosongkan dapat digunakan lagi

n Insertion : penyisipan elemen ke dalam suatu list

n Search : pencarian elemen dalam suatu list

Tree

n Struktur data hirarki

n Dikonstruksi menggunakan aturan preseden untuk item data, misal : menggunakan rangkaian alfabet atau numerik

n Beberapa Istilah :

Node : elemen dari suatu tree

Setiap node memiliki (sedikitnya) dua pointer yaitu left pointer dan right pointer

Root node : datum pertama yang ditempatkan dalam tree

Parent node : node yang memiliki node di bawahnya (sub-node)

Child node : node yang berada di bawah parent

Leaf node : node yang tidak mempunyai child

stack

Dalam ilmu komputer, stack atau tumpukan merupakan sebuah koleksi objek yang menggunakan prinsip LIFO (Last In First Out), yaitu data yang terakhr kali dimasukkan akan pertama kali keluar dari stack tersebut. Stack dapat diimplementasikan sebagai representasi berkait atau kontigu (dengan tabel fix). Ciri Stack :

  • Elemen TOP (puncak) diketahui
  • penisipan dan penghapusan elemen selalu dilakukan di TOP
  • LIFO

Pemanfaatan Stack :

  • Perhitungan ekspresi aritmatika (posfix)
  • algoritma backtraking (runut balik)
  • algoritma rekursif

Operasi Stack yang biasanya :

1. Push (input E : typeelmt, input/output data : stack): menambahkan sebuah elemen ke stack

2. Pop (input/output data : stack, output E : typeelmt ) : menghapus sebuah elemen stack

3. IsEmpty ()

4. IsFull ()

5. dan beberapas selektor yang lain

JENIS-JENIS DATA

Secara umum jenis-jenis data dapat dikelompokkan atas 2 bagian, yaitu :

1. Jenis data primitif, terdiri atas :

a. Integer

b. Real

c. Boolean

d. Karakter

2. Jenis data campuran, yaitu : "String".

n INTEGER

Suatu integer adalah anggota dari himpunan bilangan :

( ....., -(n+1), -n, ....., -2, -1, 0, 1, 2, ....., n, n+1, ..... )

Operasi-operasi dasar yang ada dalam integer antara lain :

Ÿ Penjumlahan

Ÿ Pengurangan

Ÿ Perkalian

Ÿ Pembagian

Ÿ Perpangkatan, dsb

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 operator negasi. Operator ini berfungsi untuk mengubah tanda suatu operand.

n 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. Disini penyajiannya terdiri atas dua bagian, yaitu : mantissa (pecahan) & eksponen.

Contoh :

Di dalam sistim 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

n BOOLEAN

Jenis data ini disebut juga jenis data "logical". Elemen dari jenis data ini mempunyai nilai salah satu dari "true" atau "false". Operator-operator yang dikenal pada jenis data ini terdiri atas:

A. Operator Logika, yaitu : NOT, AND dan OR.

Ÿ Operator OR akan menghasilkan nilai "true", jika salah satu atau kedua operand bernilai "true".

Ÿ Operator AND akan menghasilkan nilai "true", jika kedua operand bernilai "true".

Ÿ Sedangkan 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.

B. Operator Relasional, yaitu : >, <, >=, <=, <> dan =.

n KARAKTER & STRING

Jenis data karakter merupakan elemen dari suatu himpunan yang terdiri atas bilangan, abjad dan simbol-simbol khusus. Sedangkan jenis data string merupakan jenis data campuran, karena elemen-elemennya dibentuk dari karakter-karakter di atas. Karakter yang digunakan untuk membentuk suatu string disebut sebagai alphabet. Dalam penulisannya, suatu string berada dalam tanda "aphosthrope".

Contoh :

Misal, diberikan himpunan alphabet A = { C, D, 1 }.

String-string yang dapat dibentuk dari alphabet di atas antara lain adalah :

'CD1', 'CDD', 'DDC', 'CDC1', ...dsb, termasuk "null string" atau "empty string".

Himpunan yang anggotanya adalah semua string yang dapat dibentuk dari suatu himpunan alphabet disebut sebagai "vocabulary". Suatu vocabulary V yang dihasilkan dari himpunan alphabet A dinotasikan dengan VA atau A*.

Jika suatu string dibentuk dari alphabet { 0, 1 }, maka string yang terbentuk disebut dengan "Bit String".

Secara umum, suatu string S yang dibentuk dari himpunan alphabet A, dituliskan :

S = 'a1a2 ..... aN'

di mana setiap karakter ai anggota A untuk, 1 £ i £ N.

Dalam suatu string terdapat 3 operasi utama, yaitu :

1. Length

2. Concatenation

3. Substring


m LENGTH

Nilai dari operasi ini adalah suatu integer yang menunjukkan panjang dari suatu string.

Contoh :

A. Jika diberikan string S = 'a1a2 ..... aN'.

Maka LENGTH(S) = N.

B. Jika diberikan string S = 'ABCD13AB', maka LENGTH(S) = 8.

m CONCATENATION

Operasi ini bekerja terhadap dua string dan hasilnya merupakan resultan dari kedua string tersebut. Operasi ini hampir sama dengan operasi gabungan. Jika S1 dan S2 masing-masing adalah suatu string, maka bentuk operasi concatenation dinotasikan dengna : CONCAT(S1,S2).

Contoh :

Misal S1 = 'a1a2 ..... aN' dan S2 = 'b1b2 ..... bM'

Maka CONCAT(S1,S2) = ' a1a2 ..... aNb1b2 ..... bM'

Panjang dari string yang baru (resultan) merupakan jumlah panjang dari masing-masing string atau :

LENGTH(CONCAT(S1,S2)) = LENGTH(S1) + LENGTH(S2)

m SUBSTRING

Operasi ini adalah operasi membentuk string baru, yang merupakan bagian dari string yang diketahui. Notasi adalah :

SUBSTR(S,i,j)

di mana : S = string yang diketahui.

i dan j adalah integer

i = posisi awal substring, 0 £ i £ LENGTH(S)

j = banyak karakter yang diambil, 0 £ j £ LENGTH(S) dan 0 £ i+j-1£ LENGTH(S)

Contoh :

Diberikan S = 'a1a2 ..... aN' ; i = 2 ; j = 4.

Maka SUBSTR(S,i,j) = SUBSTR(S,2,4) = 'a2a3a4a5'

Catatan :

1. LENGTH(SUBSTR(S,i,j)) = j

2. SUBSTR(CONCAT(S1,S2),1,LENGTH(S1)) = S1

3. SUBSTR(CONCAT(S1,S2),LENGTH(S1)+1,LENGTH(S2)) = S2

Selanjutnya selain tiga operasi utama di atas, ada beberapa operasi lain yang didefinisikan dalam suatu string, yaitu :


m 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 S2 pada S1.

Contoh :

Misalkan: S1 = 'a1a2 ..... aN'

S2 = 'b1b2 ..... bM'

INSERT(S1,S2,3) = 'a1a2b1b2 ..... bMa3a4 ..... aN'

m DELETE

Operasi ini digunakan untuk menghapuskan sebagian karakter dalam suatu string.

Bentuk umumnya adalah :

DELETE(S,i,j) à menghapuskan sebagian karakter dalam string S, mulai dari posisi i dengan panjang j.

Contoh :

Diberikan string S = 'a1a2 ..... aN'

DELETE(S,3,4) = 'a1a2a7a8 ..... aN'

Catatan :

INSERT(S1,S2,i) = CONCAT (CONCAT (SUBSTR(S1,1,i-1),S2), SUBSTR(S1,i,LENGTH(S1)-(i-1)))

DELETE(S,i,j) = CONCAT(SUBSTR(S,1,i-1),SUBSTR(S,i+j,LENGTH(S)-(i+j-1)))

di mana : 1 £ i £ LENGTH(S1)

0 £ i £ LENGTH(S1)

0 £ i+j-1 £ LENGTH(S1)

Untuk i,j integer.

DEKLARASI DALAM BAHASA PEMROGRAMAN

n PASCAL

Var Count : integer;

Switch : boolean;

Betha : char;

Alamat : packed array[1..25] of char;

n COBOL

DATA DIVISION

01 Count PICTURE S999.

01 Flda PICTURE X.

88 Switch VALUE 'Y'.

01 Betha PICTURE X.

01 Alamat PICTURE X(25).

MAPPING KE STORAGE

n INTEGER

Bentuk mapping ke storage dari integer dapat dilakukan dengan beberapa cara, yaitu :

1. Skema Sign dan Magnitude

2. Skema One's Complement

3. Skema Two's Complement

m SKEMA SIGN AND MAGNITUDE

Cara ini merupakan bentuk konvensional yang digunakan manusia untuk menyatakan suatu bilangan dalam bentuk biner. Di sini representasi bilangan positif dan negatif hanya dibedakan dengan tanda saja. Biasanya tanda positif atau negatif ditunjukkan oleh digit terdepan dari bentuk binernya, untuk representasi dengan jumlah digit tertentu.

Contoh :

+ 7 à + 111 à representasi dengan 4 digit : 0111

- 7 à - 111 à representasi dengan 4 digit : 1111

Dengan cara ini kita akan mendapatkan kesulitan dalam menentukan tanda pada saat melakukan operasi terhadap dua bilangan yang berbeda tandanya.

m SKEMA TWO'S COMPLEMENT DAN ONE'S COMPLEMENT

Kedua skema ini merupakan cara yang digunakan untuk mengatasi kesulitan yang telah disebutkan di atas. Diberikan bilangan integer non negatif X, X' dan R. Didefinisikan bahwa X' adalah komplemen dari X relatif terhadap R, jika X + X' = R. X disebut sebagai bentuk true, sedangkan X' = R - X disebut bentuk komplemen. Bentuk komplemen X' = R - X menyatakan bilangan integer negatif X. Sedangkan bentuk true X menyatakan integer positif X.

Skema Two's Complement menggunakan R = 2N.

Skema One's Complement menggunakan R = 2N - 1.

Contoh :

Misal diberikan integer = 7, akan dicari bentuk binernya dengan skema Two's Complement untuk representasi 4 digit.

X = 7 ; R = 24 ; à X + X' = R

X' = R - X

= 24 - 7

= 16 - 7

= 9 à dalam biner = 1001

n KARAKTER

Saat ini banyak sekali skema yang digunakan untuk merepresentasikan karakter dalam storage. Pada umumnya skema yang paling banyak digunakan adalah :

1. Extended Binary Coded Decimal Interchange Code (EBCDIC)

2. American Standard Code for Information Interchange (ASCII)

Pada skema EBCDIC digunakan kode 8 bit untuk menyatakan sebuah karakter. Jika dihitung, kemungkinan kombinasi seluruhnya adalah : 28. Sedangkan skema ASCII menggunakan kode 7 bit untuk menyatakan suatu karakter. Skema ini mempunyai jumlah kemungkinan kombinasi yang lebih sedikit jika dibandingkan dengan skema EBCDIC. Selain dua skema tersebut di atas ada sebuah skema yang disebut dengan kode Huffman. Pada cara ini, jumlah bit yang digunakan tergantung dari frekuensi penggunaan suatu karakter.

n STRING

Untuk mengetahui bentuk mapping pada 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

Ada tiga cara yang umum digunakan untuk mapping suatu string ke dalam storage. Misal diberikan dua string, yaitu :

S1 = 'ABCDEFG' dan S2 = 'BCD'

m CARA 1

Jika diberikan suatu informasi tentang :

- nama string

- starting address

- panjang string

Contoh :

Nama String

Start

Panjang

String1

Ptr1

7

String2

Ptr2

3


Maka secara fisik bentuk formatnya pada storage adalah :

atau

m CARA 2

Jika diberikan informasi sebagai berikut :

- nama string

- starting address

- terminal address

Misalnya diberikan tabel sbb :

Nama String

Start

Terminal

String1

Ptr1s

Ptr1t

String2

Ptr2s

Ptr2t

Maka secara fisik bentuknya pada storage adalah :

atau


m CARA 3

Jika diberikan informasi :

- nama string

- starting address

- suatu tanda yang menunjukkan batas string

Misalnya :

Nama String

Start

String1

Ptr1

String2

Ptr2

Maka bentuknya secara fisik pada storage adalah :

Selain cara-cara di atas, representasi suatu string pada storage dapat pula dalam bentuk packed atau unpacked. Suatu string yang direpresentasikan dalam bentuk packed terbagi atas beberapa word. Banyaknya karakter untuk masing-masing word tergantung dari kode yang digunakan oleh mesin (bitnya). Secara umum jumlah word yang digunakan untuk merepresentasikan string S dalam storage dengan R karakter per word adalah :

Contoh :

Misal diberikan string S = "ManajemenInformatika", direpresentasikan dalam 4 karakter per word dalam bentuk packed. Maka secara fisik dapat digambarkan :

Mana

jeme

nInf

orma

tika

Jumlah Word : 5

Jumlah Karakter/Word : 4

Sedangkan cara unpacked, setiap word terdiri hanya satu karakter, berarti jumlah word yang diperlukan untuk merepresentasikan suatu string S adalah : LENGTH(S)

Contoh :

Diberikan string S = "StmikGunadarma". Representasinya dalam bentuk unpacked, adalah :

S

t

m

i

k

G

u

n

a

d

a

r

m

a

PENGERTIAN 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

a. Type data sederhana tunggal, misalnya

Integer, real, boolean dan karakter

b. Type data sederhana majemuk, misalnya

String

2. Struktur Data, meliputi

a. Struktur data sederhana, misalnya array dan record

b. Struktur data majemuk, yang terdiri dari

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 :

�� List linier (Linked List) dan variasinya Multilist

�� Stack (Tumpukan)

�� Queue (Antrian)

�� Tree ( Pohon )

�� Graph ( Graf )

RECORD (REKAMAN)

Disusun oleh satu atau lebih field. Tiap field menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya. Nama rekaman ditentukan oleh pemrogram.

Rekaman disebut juga tipe terstruktur.

Contoh :

1. type Titik : record

jika P dideklarasikan sebagai Titik maka

mengacu field pada P adalah P.x dan P.y.

2. Didefinisikan tipe terstruktur yang mewakili Jam yang terdiri

atas jam (hh), menit (mm) dan detik (ss), maka cara menulis

type Jam adalah :

type JAM : record

mm : integer, {0…59}

ss : integer {0…59}>

Jika J adalah peubah (variabel) bertipe Jam

maka cara mengacu tiap field adalah J.hh, J.mm dan J.ss

Terjemahan dalam bahasa C :

1. type Titik : record

diterjemahkan menjadi :

typedef struct { float x;

float y;

} Titik;

2. type JAM : record

mm : integer, {0…59}

ss : integer {0…59}

>

Diterjemahkan menjadi :

typedef struct

{ int hh; /*0…23*/

int mm; /*0…59*/

int ss; /*0…59*/

} Jam;