Senin, 18 Oktober 2010

konstruktor

Konstruktor dan Destruktor

Teori Singkat
Untuk mengisi anggota data dalam kelas perlu ditambah fungsi untuk mengisi
data itu. (Lihat Modul 4, fungsi anggota IsiData() pada kelas TBarang). Kelas
menyediakan mekanisme untuk mengisian anggota datanya lewat konstruktor.
Dengan konstruktor kita tidak perlu membuat fungsi IsiData, karena tugas ini dapat
digantikan oleh konstruktor.Konstruktor adalah fungsi khusus anggota kelas yang otomatis dijalankanpada saat penciptaan objek (mendeklarasikan instance). Konstruktor ditandai dengannamanya, yaitu sama dengan nama kelas. Konstruktor tidak mempunyai tipe hasil,bahkan juga bukan bertipe void. Biasanya konstruktor dipakai untuk inisialisasi
anggota data dan melakukan operasi lain seperti membuka file dan melakukan alokasi
memori secara dinamis. Meskipun konstruktor tidak harus ada di dalam kelas, tetapi
jika diperlukan konstruktor dapat lebih dari satu.


Tiga jenis konstruktor:
1. Konstruktor default : tidak dapat menerima argumen, anggota data diberi nilai
awal tertentu.
2. Konstrukor penyalinan : anggota data diberi nilai awal berasal dari parameter.
3. Konstruktor penyalinan objek lain : parameter berupa objek lain, anggota data
diberi nilai awal dari objek lain.

Rabu, 21 Juli 2010

TIPE DATA

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".

· 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.

· 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

· 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 =.

· 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

· 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

· 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)

· 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 :

· 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'

· 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

· PASCAL

Var Count : integer;

Switch : boolean;

Betha : char;

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

· 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

· 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

· 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.

· 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

· 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.

· 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'

· CARA 1

Jika diberikan suatu informasi tentang :

- nama string

- starting address

- panjang string

Contoh :

Nama String

Start

Panjang

String1

Ptr1

7

String2

Ptr2

3


· 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

Ptr2

· CARA 3

Jika diberikan informasi :

- nama string

- starting address

- suatu tanda yang menunjukkan batas string

Misalnya :

Nama String

Start

String1

Ptr1

String2

Ptr

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

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