Tipe Data dan Operator dalam pascal
Tipe Data menunjukkan suatu nilai yang dpat digunakan oleh sutu variable yang bersangkutan. Tipe data juga berfungsi membatasi jangkauan data ynag akan dilaksanakan.
Tipe Data dalam Pascal yaitu :
1. Tipe Data Sederhana, terdiri dari :
a. Tipe data standar (standard data type):
- integer : merupakan tipe data berupa bilangan bulat atau bilangan yang tidak
mempunyai titik desimal/bilangan pecahan.
Ada 5 macam tpe integer, yaitu:
Contoh deklarasi:
Var A, B, C : Integer;
D, E, F : Longint;
Operator-operator yang berlaku pada tipe data integer, yaitu :
Operator arithmatik : +(penjumlahan), -(pengurangan) , *(perkalian), /(pembagian), div, mod, sisa pembagian.
Operator logic : <, = , > , <= , >= , <>
Contoh :
VAR a,b,jumlah1,jumlah2 : INTEGER;
BEGIN
jumlah1:=10;
jumlah2:=3;
a:=jumlah1 DIV jumlah2;
b:=jumlah1 MOD jumlah2;
WRITELN('HASIL A = ',a);
WRITELN('HASIL B =',b);
END.
hasil program : hasil a = 3
hasil b = 1
- real : merupakan jenis bilangan pecahan. Paling sedikit harus ada satu
digit sebelum dan sesudah titik desimal. Bilangan real bisa dinyatakan
dalam bentuk eksponensial. Ada 5 macam tipe real, yaitu:
Contoh deklarasi:
Var A, B, C : Real;
D, E, F : Double;
Operasi – operasi yang bisa dikerjakan oleh tipe data real adalah:
• Operasi biner, seperti penjumlahan (+), pengurangan (-), perkalian (*),
dan pembagian (/)
• Operasi uner. Contoh: -4.25, +1.25
Contoh :
VAR nilai1,nilai2,hasil : REAL;
BEGIN
nilai1 := 2.52;
nilai2 := 3.2;
hasil := nilai1 + nilai2;
WRITE('HASIL PENJUMLAHAN = ',hasil:4:2);
END.
Output program, sbb : hasil penjumlahan = 5.72
- char : merupakan karakter yg ditulis diantara tanda petik tunggal. Ex : ‘A’, '@' ,‘a’, ‘5_ dll. Char adalah semua tombol yang terdapat pada keyboard atau lebih lengkapnya semua karakter yang terdapat pada kode ASCII. Karakter yang dapat diterima oleh komputer :
huruf besar/kecil : A,B,C,...,Z / a,b,...,z
digit : 1,2,3,...,9
operator aritmatika : * / + -
tanda baca : , . ; : ? !
simbol khusus : $ @ { } ( ) [ ] % #
spasi
Contoh :
VAR nilai : CHAR;
BEGIN
nilai :='A';
WRITELN('NILAI TERBAIK = ',nilai);
END.
hasilnya : nilai terbaik = A
Catatan : Apabila char ingin dijadikan sebagai konstanta maka karakter yang dimasukkan harus diapit dengan tanda kutip satu. Dan apabila karakter itu berupa tanda kutip satu maka harus diapit dengan dua tanda kutip satu.
Beberapa fungsi untuk memanipulasi tipe data char:
– Ord(x) dengan x adalah data bertipe char. Fungsi ini digunakan untuk memperoleh nilai urutan dalam kode ASCII yang digunakan untuk melambangkan karakter tersebut. Contoh: Ord('C') adalah 67.
– Char(x) dengan x adalah data bertipe byte. Fungsi ini adalah kebalikan dari fungsi Ord. Nilai yang diperoleh merupakan karakter ASCII yang dinyatakan dengan urutan ke x. Contoh: Char(67) adalah 'C'.
– Pred(x) dengan x adalah data bertipe char. Fungsi ini digunakan untuk mengetahui karakter yang mendahului x. Contoh: Pred('h') adalah 'g'.
– Succ(x) dengan x adalah data bertipe char. Fungsi ini digunakan untuk mengetahui karakter sesudah x. Contoh: Succ('h') adalah 'i'. Jika x tidak mempunyai penerus, maka nilai fungsi ini tidak terdefinisikan.
– Upcase(x) dengan x adalah data bertipe char. Jika x merupakan huruf kecil maka akan dikembalikan huruf kapitalnya. Contoh: upcase('a') adalah 'A'.
- string : merupakan urut-urutan dari karakter yang terletak di antara tanda petik tunggal. String adalah data yang berisi sederet karakter yang terletak diantara tanda kutip satu. Jika karakter kutip merupakan bagian dari konstanta string, maka ditulis dengan menggunakan dua buah tanda kutip satu berurutan. Nilai data string akan menempati memori sebesar maksimla jumlah karakter yang dapa ditampung ditambah denga 1 byte (index ke-0) untuk menyimpan panjang string yang sebenarnya. Jika panjang string tidak ditulis, maka panjang string dianggap 255 karakter. Panjang string yang diijinkan antara 1 sampai 255.
Bentuk umum dari deklarasi tipe string adalah:
Var pengenal : string[panjang];
dimana
pengenal : nama variabel
panjang : bilangan bulat yang menunjukkan banyaknya karakter (1 – 255).
Untuk tipe data string, operator yang berlaku adalah operator penggabungan (+).
Contoh :
VAR kata1 : STRING[5];
kata2 : STING[9];
kata : CHAR;
BEGIN
kata1 :='STMIK';
kata2 :='GUNADARMA';
kata :=' '; { karakter berupa spasi }
WRITELN(kata1,kata,kata2);
END.
hasil : STMIK GUNADARMA
- boolean(logika) : merupakan tipe data logika, yang berisi dua kemungkinan nilai: TRUE atau FALSE . Biasanya tipe data ini digunakan untuk perbandingan. Var A, B, C : Boolean; Operator NOT, OR, AND, dan XOR dapat dibentuk secara bersamaan menjadi sebuah ungkapan Boolean yang rumit.
Misal:
Var A,B,C: Boolean;
Begin
C := false; B := true;
A := (Not(C) AND Not (B)) XOR (C);
Write(A); readln;
End.
Contoh :
VAR
benar : BOOLEAN;
BEGIN
benar := TRUE;
WRITELN('benar = ',benar);
END.
hasil : benar = TRUE
b. Tipe data didefinisikan pemakai
– Subrange(sub jangkauan)
Tipe data subrange adalah suatu range yang menunjukkan nilai terkecil dan nilai terbesar yang dapat dipergunakan. Tipe data ini adalah tipe data yang dapat didefinisikan sendiri oleh pemakai. Nilai data pada tipe ini mempunyai jangkauan tertentu.
Misalkan nilai ujian mempunyai harga 0 sampai 100, maka nilai ujian dapat didefinisikan
sbb :
TYPE
nilai = 0..100;
Contoh :
VAR sks : 1..4;
angkatan : 89..95;
nilai : 'A'..'E';
Deklarasi tipe data subrange mempunyai bentuk: Type pengenal = konstanta1 .. konstanta2; dimana: pengenal : nama tipe data yang dideklarasikan
konstanta1 : batas bawah nilai data
konstanta2 : batas atas nilai data
Kedua konstanta di dalam subrange harus bertipe ordinal yang sama, di mana nilai konstanta pertama lebih kecil atau sama dengan nilai konstanta kedua. Tipe data real tidak dapat digunakan sebagai nilai subrange, karena buka tipe ordinal.
Contoh:
Type tanggal = 1 .. 31;
bulan = 1 .. 12;
– Enumerated(terbilang)
Tipe data enumerated (skalar) menunjukkan kumpulan dari nilai yang urutannya sudah pasti. Nilai dari tipe yang dideklarasikan ini akan diwakili dengan pengenal – pengenal (identifiers) yang akan menjadi nilai suatu konstanta. Disebut tipe terbilang
karena semua nilai disebut satu persatu.
Contoh 1:
Type bahasa = (delphi, java, c, pascal, basic);
bulan = (maret, april, mei, juni, juli);
Tipe data bulan mempunya 5 elemen dari maret sampai juli. Dari urutannya, maret adalah identifier berupa konstanta bernilai 0 dan juli bernilai 4. Yang perlu diperhatikan dengan tipe data skalar ini adalah tipe data ini sudah berbeda dengan tipe standar yang ada dan pascal tidak mengijinkan operasi dengan tipe data yamg berbeda.
Contoh 2:
TYPE hari = (Senin,Selasa,Rabu,Kamis,Jum'at,Sabtu,Minggu);
hari_kerja = (Senin,Selasa,Rabu,Kamis,Jum'at);
situasi = (senang,gembira,sedih,susah);
2. Tipe Data Terstruktur, terdiri dari :
a. Array(larik)
Larik (array) adalah kumpulan data yang mempunyai tipe data sejenis dan tipe terstruktur yang mempunyai komponen dalam jumlah yang tetap. Posisi masing-masing komponen dalam larik dinyatakan sebagai nomor indeks. Daftar nomor telpon, daftar kode mata kuliah, vektor, matrik merupakan contoh larik.
Bentuk umum dari tipe larik adalah
type pengenal = array [tipe_index] of tipe;
pengenal : nama tipe data.
tipe_index : tipe data untuk nomor index.
tipe : tipe data komponen.
Contoh,
type Vek = array [1..100] of integer;
Contoh penulisan tipe larik berdimensi satu sbb :
CONST batas = 20;
VAR telpon : ARRAY[1..3] OF STRING[7]; { larik dengan nama telpon
mempunyai 3 data dengan tipe string }
nilai : ARRAY[1..5] OF INTEGER; { larik dengan nama nilai mempunyai 5 data dengan tipe integer }
gaji : ARRAY[1..batas] OF REAL; { larik dengan namagaji mempunyai 20 data dengan tipe real }
Contoh penulisan tipe larik berdimensi dua sbb :
Var
Nama_Variabel_Array=Array[1...N,1...M]of tipe_data
Contoh larik yang mempunyai tipe data terbilang atau subjangkauan :
TYPE batas = 0..100;
keadaan = (baru,lama,bagus,jelek);
VAR nilai : ARRAY[1..30] OF 'A'..'B'; { larik dengan nama nilai mempunyai
30 data, dan pengisian data yang
diperbolehkan hanya A, B, C, D,
E }
angka : ARRAY[1..50] OF batas; { larik dengan nama angka
mempunyai 50 data, dan pengisian
data yang diperbolehkan hanya
1,2,3,...,99,100 }
baju : ARRAY[1..10] OF keadaan; { larik dengan nama angka
mempunyai 10 data,dan pengisian
data yang diperbolehkan baru, lama,
bagus, jelek }
Contoh program :
VAR jumlah : INTEGER;
nilai : ARRAY[1..3] OF 'A'..'E';
angka : ARRAY[1..3] OF INTEGER;
BEGIN
nilai[1] := 'C';
nilai[2] := 'B';
nilai[3] := 'A';
angka[1] := 75;
angka[2] := 60;
angka[3] := 90;
jumlah := angka[1]+angka[2]+angka[3];
WRITELN('NILAI = ',angka[2],' MENDAPAT ',nilai[1]);
WRITELN('JUMLAH = ',jumlah);
END.
hasil : nilai 60 mendapat C
jumlah = 225
Contoh penulisan tipe larik berdimensi dua sbb :
VAR tabel : ARRAY[1..3,1..2] OF BYTE; { larik tabel mempunyai 3 baris dan 2
kolom dengan tipe byte }
BEGIN tabel[1,1] := 5; { baris 1, kolom 1 }
tabel[1,2] := 7;
11
tabel[2,1] := 21; { baris 2, kolom 1 }
tabel[2,2] := 18;
tabel[3,1] := 8;
tabel[3,2] := 7;
WRITELN('BARIS 1 KOLOM 2 = ',tabel[1,2]);
END.
hasil : BARIS 1 KOLOM 2 = 7
b. Record(rekam)
Sama halnya dengan larik, rekaman (record) adalah kumpulan data. Perbedaan antara larik dengan rekaman adalah dalam larik semua elemennya harus bertipe sama tetapi dalam rekaman setiap elemen bisa mempunyai tipe data yang berbeda satu sama lainnya.
Bentuk umum deklarasi rekaman adalah
type pengenal = record
medan1 :tipe1;
medan2 :tipe2;
.
.
.
medann :tipen;
end;
Keterangan:
pengenal : pengenal yang menunjukkan tipe data yang akan dideklarasikan.
medan1,…, medann : nama medan yang akan digunakan.
tipe1,…, tipen : sembarang tipe data yang telah dideklarasikan sebelumnya.
Contoh 1 deklarasi himpunan adalah sebagai berikut.
type Irama = (jazz, rock, blues, country, classic);
Musik = set of Irama;
Nilai = set of 0..10;
Untai = set of char;
Huruf = set of ‘A’..’Z’;
Sakit = (pusing, mual, lemas, lesu, letih);
Penyakit = set of sakit;
Contoh 2 Program Pascal :
Uses crt;
Var nama:string[20];jabatan:string;
Gaji:longint;
Tunj,ppn,gajibersih:real;
Begin
Clrscr;
Write(‘Nama Karyawan : ‘); readln(nama);
Write(‘Masukkan Jabatan : ‘); readln(jabatan);
If (jabatan=’Direktur’) or (jabatan=’direktur’) then
Begin
Gaji:=3000000;
Tunj:=0.1* gaji;
End
Else If (jabatan=’Manager’) or (jabatan=’manager’) then
Begin
Gaji:=2000000;
Tunj:=0.05* gaji;
End
Else If (jabatan=’Karyawan’) or (jabatan=’karyawan’) then
Begin
Gaji:=1000000;
Tunj:=0.1* gaji;
End
Else
Begin
Gaji:=800000;
Tunj:=0.1* gaji;
End;
Writeln(‘Gaji Bersih : Rp.‘,gaji);
Writeln(‘Tunjangan Jabatan : Rp.‘,tunj:9:2);
Ppn:=0.1*gaji;
Writeln(‘PPN 10 % : Rp.‘,ppn:9:2);
Total:=(gaji+total)-ppn;
Writeln(‘Total Gaji : Rp.‘,total:9:2);
Readln;
End.
c. File(berkas)
Berkas (file) adalah kumpulan sejumlah komponen yang bertipe data sama yang jumlahnya tidak tentu dan biasanya tersimpan dalam suatu media penyimpan luar. Jumlah komponen dalam berkas dapat ditambah jika diperlukan.
Dalam Pascal, berkas menyediakan data yang nantinya akan digunakan oleh suatu program. Berkas dapat berupa berkas yang disimpan di dalam cakram magnetis, pita magnetis, kartu plong dan sejenisnya atau berupa piranti logika yang selama ini kita gunakan, yaitu dengan statemen input dan output, yang menunjukkan piranti masukan keluaran standar (papan ketik dan layar tampilan).
Bentuk umum dari deklarasi berkas adalah
type pengenal = file of pengenal1;
Keterangan:
pengenal : pengenal yang akan dinyatakan sebagai tipe data berkas.
pengenal1 : tipe data komponen berkas.
d. Set(himpunan)
Tipe himpunan adalah kumpulan obyek yang mempunyai tipe data yang sama dan urutan penulisannya tidak diperhatikan.Setiap onyek di dalam suatu himpunan disebut dengan anggota atau elemen himpunan
Bentuk umum deklarasi himpunan adalah
type pengenal = set of tipe_data;
atau dapat juga langsung dideklarasikan dalam bagian deklarasi perubah seperti berikut
var pengenal = set of tipe_data;
Keterangan:
pengenal : nama perubah atau pengenal yang akan dinyatakan sebagai tipe himpunan.
tipe_data : tipe data dari anggota himpunan, harus bertipe ordinal.
Contoh deklarasi himpunan adalah sebagai berikut:
type Irama = (jazz, rock, blues, country, classic);
Musik = set of Irama;
Nilai = set of 0..10;
Untai = set of char;
Huruf = set of ‘A’..’Z’;
Sakit = (pusing, mual, lemas, lesu, letih);
Penyakit = set of sakit;
3. Tipe Data PointerOperator
Tanda operasi (operator) di dalam bahasa Pascal di kelompokkan dalam :
- Assignment operator (operator pengerjaan) menggunakan simbol titik dua diikuti
oleh tanda sama dengan (:=). Contoh –> A:=B;.
- Binary operator digunakan untuk mengoperasikan dua buah operand yang
berbentuk konstanta ataupun variable. Operator ini digunakan untuk operasi arithmatika yang berhubungan dgn nilai tipe data Integer dan Real. Operasi yang dilakukan adalah : Pertambahan (+), Pengurangan (-), Perkalian (*), Pembagian Bulat (DIV), Pembagian Real (/) dan Modulus atau Sisa Pembagian (MOD).
- Unary operator, operator ini menggunakan sebuah operand saja dapat berupa unary
minus dan unary plus. Contoh : +2.5, a+(+b) dll.
- Bitwise operator digunakan untuk operasi bit per bit pada nilai integer. Operator
yang digunakan (NOT, AND, OR, XOR, Shl, Shr.
Derajat Operator
Anda sudah mengenal beberapa tipe data di dalam Pascal dan operatornya. Di dalam Pascal, operator – operator tersebut memiliki derajat atau tingakatan. Adapun kegunaan dari derajat ini adalah Pascal dapat menentukan operator mana yang akan di jalankan terlebih dahulu.
Misal: x := 4 + 5 * 3 Menurut anda, berapakah nilai dari x? Apakah 27 (hasil dari 9 * 3) atau 19 (hasil dari 4 + 15) Berikut ini urutan operator berdasarkan derajatnya: @, not, *, /, div, mod, as, and, shl, shr, +, -, or, xor, :=, <>, <, >, <=, >=, in.
Berdasarkan dari urutan operator di atas, maka nilai x pada x := 4 + 5 * 3 adalah 19, karena operator * lebih dulu dikerjakan daripada operator +. Akan tetapi, jika kita ingin agar operator + dikerjakan terlebih dahulu, kita bisa meletakkan operasi penjumlahan tersebut di dalam kurung, musalnya: x := (4 + 5) * 3. Di sini nilai x itu adalah 27, karena di dalam Pascal operasi yang di dalam kurung akan dilakukan terlebih dahulu, tidak dipengaruhi oleh derajat operator.
thankz yach ataz info and bntuannya...
BalasHapusok min , makasih banyak sudah share isolasi hp
BalasHapusTeimakasih materinya....
BalasHapusBuat saya menambah wawasan