Anda di halaman 1dari 33

KATA PENGANTAR

Puji Syukur khadirat Allah Yang Maha Kuasa karena atas Rahmat dan Hidayah-Nyalah
kami dapat menyelesaikan Tugas Akhir Semester ini. Jurnal ini merupkan salah satu
bagian dalam Tugas kami yang berjudul “TIPE DATA”. Terima kasih juga kepada Ibu
Susi Herlinda selaku dosen Pembimbing Mata Kulias Struktur Data di kelas kami 2a.

Jurnal ini berisi tentang Pembelajaran mengenai “TIPE DATA” di dalam Struktur
Data. Tentunya kami sangat berharap Makalah ini dapat berguna bagi siapapun yang
membacanya.

Masih banyak kekurangan dalam makalah ini . Selain itu dalam penyusunan
tugas atau materi ini, tidak sedikit hambatan yang penulis hadapi. Namun penulis
menyadari bahwa kelancaran dalam penyusunan materi ini tidak lain berkat bantuan,
dorongan dan bimbingan orang tua, sehingga kendala-kendala yang penulis hadapi
teratasi

Pekanbaru, 12 Juni 2012

TRY MERSIANTO

1
DAFTAR ISI

KATA PENGANTAR ................................................................................................................ 1


DAFTAR ISI. ............................................................................................................................. 2
I. PENDAHULUAN ................................................................................................................... 3
II. TIPE DATA ........................................................................................................................... 4
A. JENIS-JENIS TIPE DATA .............................................................................................. 4
1. TIPE SEDERHANA ...................................................................................................... 5
a. Tipe Ordinal ............................................................................................................. 1
b. Tipe Integer ............................................................................................................. 6
c. Tipe Real ................................................................................................................. 7
d. Tipe Char ................................................................................................................ 8
e. Tipe Boolean .......................................................................................................... 9
2. TIPE DATA NON STANDAR .................................................................................... 10
a. Enumerated .......................................................................................................... 10
b. Sub-range ............................................................................................................. 11
3. TIPE DATA BERSTUKTUR ...................................................................................... 12
a. Array ...................................................................................................................... 12
b. Record ................................................................................................................... 14
c. Set ......................................................................................................................... 19
d. File ......................................................................................................................... 26
4. TIPE DATA POINTER ............................................................................................... 32
III. DAFTAR PUSTAKA ......................................................................................................... 33

2
BAB I

PENDAHULUAN
Seringkali pada program-program aplikasi untuk sistem informasi, data perlu
disimpan untuk keperluan penegelolaan lebih lanjut. Bila data yang perlu disimpan
mempunyai volume yang cukup besar, maka penggunaan variabel, larik, atau pointer
sudah tidak tepat lagi, karena variabel, larik, atau pointer menggunakan memori internal
komputer, sehingga tidak cukup untuk menampungnya. Variabel, larik, dan pointer
hanya tepat digunakan untuk menyimpan data yang sedang digunakan untuk proses
saja.

Untuk menyimpan data dengan volume yang besar harus digunakan cara yang lain,
yaitu dapat dengan menyimpannya di external memory yang relatif mempunyai
kapasitas penyimpanan lebih besar daripada internal memory serta involatile (tidak
hilang bila aliran listrik terputus, sehingga dapat menyimpan data lebih permanen).

Data yang ada di external memory disimpan dalam bentuk file. File ini dapat diibaratkan
dengan map-map yang berisi dengan data di filling cabinet dan filling cabinet itu sendiri
dapat diibaratkan sebagai simpanan luarnya. Seperti halnya filling cabinet yang dapat
menyimpan beberapa map, demikian juga dengan disk dapat menyimpan beberapa file.

Suatu file terdiri dari urutan komponen yang mempunyai tipe yang sama. Berbeda
dengan larik yang jumlah komponennya sudah pasti, jumlah komponen dalam file
sifatnya luwes, yaitu dapat ditambah dan dikurangi sewaktu-waktu.

3
BAB II

TIPE DATA

A. JENIS-JENIS TIPE DATA

Tipe data yang dikenal dalam bahasa pascal antara lain :

 Tipe data sederhana / Jenis data yang standar (Dasar)

1. Ordinal
2. Integer
3. Real
4. char
5. Boolean

 Tipe data non standar (user defined)

a. Enumerated
b. Sub-range

 Tipe data berstuktur

1. Array
2. Record
3. Set
4. File

 Tipe data Pointer

Tipe data berfungsi membatasi jangkauan data ynag akan dilaksanakan.

4
1. TIPE SEDERHANA (SIMPLE TYPE)

disebut juga sebagai tipe data skalar, yakni bahwa dalam sebuah perubah hanya
dimungkinkan untuk menyimpan sebuah nilai data, yakni bahwa tipe data skalar
menunjukkan untuk data tersebut nilainya terbentuk menurut suatu urutan tertentu.

a. Tipe Ordinal (Ordinal Type)

Adalah sebuah subset dari tipe data sederhana. Semua tipe sederhana disebut
sebagai data dengan tipe ordinal kecuali tipereal. Dalam bahasa pascal, tipe data skalr
menunjukkan bahwa untuk datatersebut nilainya terbentuk menurut urutan tertentu,
yaitu nilainya ada dalamurutan. Karakteristik dari tipe ordinal adalah:
 Merupakan himpunan berurutan(Ordered set) dan setiap nilai berkaitan
dengan ordinalitasnya, yaitu nilai integral. Dalam semua tipe data kecuali
integer, nilai pertama mempunyai ordinalitas = 0, 1 dan seterusnya.
Semua nilai kecuali pada character yang pertama mempunyai nilai
pendahulu dan semua nilai kecuali character terakhir tidak mempunyai
nilai penerus.
 Fungsi standar ORD atau ordinalitasnya dapat diterapkan pada
sembarang tipe ordinal untuk mengetahui ordinalitasnya.
 Fungsi standar PRED atau Predecessor dapat diterpkan untuk mengetahui
pendahulunya.. Jika diterapkan pada nilai pertama akan menyebabkan
error
 Fungsi standar SUCC atau successor dapat diterapkan untuk mengetahui
nilai penerusnya. Jika diterapkan pada nilai akhir akan menyebabkan
Error. Turbo pascal memiliki tujuh tipe ordinal standar, yaitu: integer,
long int, byte, word, boolena dan character. Ada pula tipe ordinal yang
dapat didefinisikan sendiri oleh user yaitu tipe subrange, enumerated.

5
b. Tipe Integer

Adalah tipe data yang nilainya tidak memiliki titik desimal. Dalam
bahasa pemrograman pascal hanya digit yang bisa muncul sebagai integer,
tidak boleh ada character lain termasuk koma kecuali + dan -. Adal lima tipe
data yang termasuk dalam kelompok ini, yaitu integer, short int, long int, bute
dan word.

Tabel 1. Jenis data integer

Tipe Ukuran memori Jangkauan nilai

(dalam byte)

BYTE 1 0..255

SHORTINT 1 -128..127

INTEGER 2 -32768..32767

WORD 2 0..65535

LONGINT 4 -2147483648..2147483647

Operator Integer terdiri atas : + , - , * , DIV dan MOD

Var

Jumlah : byte;

Begin

Jumlah := 200;

WriteLn(„Nilai JUMLAH = „,Jumlah);

End.

Hasilnya bila dijalankan :

Nilai JUMLAH = 200

6
c. Tipe Real

Adalah suatu bilangan yang berisi titik desimal. Dalam bahasa


pemrograman pascal minimal harus ada satu digit sebelum titik desimal.
Tidak boleh ada koma dan nilainya bisa positif atau negatif. Dapat dinyatakan dalam
bentuk eksponsial dengan notasi E,sebagai contoh: 0.00017543 adalah 1.7543E-4.
Terdapat 5 macam data pada tipe real, yaitu: real, single, double, extended dan
comp.
Operator matematika yang digunakan adalah +, -, *, /
Penggunaan tipe data real ini adalah dalam perhitungan matematika, sains
dimana derajat ketelitian sangat diperhatikan.

Contoh :

123.45

12345.  salah, titik desimal tidak boleh dibelakang

12E5

12E+5

-12.34

.1234  salah, titik desimal tidak boleh dimuka

Pada TURBO PASCAL, jenis data ini dibedakan ( lihat tabel 2.)

Jenis data Real

Tipe Ukuran memori Jangkauan nilai Digit signifikan

(dalam byte)

SINGLE 4 1.5x10E-45 .. 3.4x10E38 7-8

DOUBLE 8 5.0x10E-324 .. 1.7x10E308 15-16

EXTENDED 10 1.9x10E-4951 .. 1.1x10E4932 19-20

COMP 8 -2E+63+1 .. 2E+63-1 19-20

Operator untuk jenis data ini terdiri atas : + , - , * dan /

7
d. Tipe Char

Kata char disini digunakan untuk mendefinisikan tipe data yang nilainya
merupakan himpunan karakter yang dikenal komputer seperti dalamtabel ASCII.
Dalam program pascal, nilai data tipe char ditulis diantara tanda petik, misalnya „F‟ „A‟
„U‟ „Z‟ „I‟ „15‟ ‟12, dan perlu diingat bahwa data tipe char hanya terdiri dari 1 karakter
seperti ‟TRY MERSIANTO‟ yang merupakan tipe data char yang lebih
kompleks sehingga disebut dengan string. Ada enpat fungsi yang telah
didefinisikan dapat digunakan untuk memanipulasi data tipe char, yaitu:

 Fungsi ordinal,ord(kar), dan kar adalah adalah data tipe char yang nilai
ord(kar) adalah angka urutan dalam kode ASCII yang digunakan untuk
melambangkan karakter tersebut. Sebagai contoh ord(„A‟) adalah 65.
 Fungsi karakter, chr(I) dengan I bilangan bulat positif, merupakan
kebalikan dari fungsi ord. Nilai yan diperoleh merupakan karakter ASCII
yang dinyatakan dengan urutan ke I, contohnya: chr(65) adalah „A‟
 Fungsi pendahulu, pred(kar), dengan Kar adalah data tipe char dimana
nilai pred(kar) adalah karakter yang dalam urutannya mendahului kar.
Contoh:pred(„B‟) adalah „A‟
 Fungsi penerus, succ(kar) dengan nilai succ(kar) adalah karakter yang

Dasarnya adalah ASCII CHARACTER SET.

Misalnya : 032 pada tabel ASCII CHARACTER SET menunjukkan karakter.

Blank.

033 !

048 0

076 L

dsb

8
e. Tipe Boolean

Adalah nilai data yang sangat penting untuk pengambilan suatu


keputusan dalam suatu program karena pada tipe ini data akan mempunya
dua nilai, yaitu benar dan salah. Operator yang digunakan adalah AND, OR
atau NOT.

Jenis data ini mempunyai nilai TRUE atau FALSE.

Operator untuk jenis data ini adalah :

 Logical Operator, yaitu : NOT, AND dan OR


 Relational Operator, yaitu : >, <, >=, <=, <> dan =

9
2. JENIS DATA NON-STANDARD (USER DEFINED)

a. Enumerated

Jenis data ini terdiri atas barisan identifier yang terurut dimana setiap identifier
tersebut dianggap sebagai suatu individual data item (elemen data yang berdiri
sendiri).Pada saat mendeklarasikan jenis data ini kita harus menuliskan semua elemen-
elemennya.

Bentuk umum deklarasinya adalah :


TYPE nama = (data_item_1, data_item_2, ……., data_item_n);
Contoh :
TYPE hari = (sen,sel,rab,kam,jum,sab,ming);
TYPE warna = (red,blue,green,yellow,black,white);
Setelah jenis data ini dideklarasikan, maka selanjutnya kita dapat mendeklarasikan
suatu variabel yang berjenis data sama dengan jenis data ini.
Misalnya :
TYPE nama_hari = (sen,sel,rab,kam,jum,sab,ming);
VAR libur : nama_hari;
Fungsi standar yang dapat digunakan pada jenis data ini adalah :
PRED, SUCC dan ORD
Misalnya :

PRED (sel) = sen


SUCC (sen) = sel
ORD (sen) = 0
ORD (sel) = 1

dsb

10
b. Sub-range

Jenis data ini berupa range dari suatu kumpulan data yang mempunyai urutan..

Bentuk umum deklarasinya adalah :

TYPE nama = data_item_pertama .. data_item_terakhir;

Contoh :

TYPE jam_kuliah = 1 .. 10;

tanggal = 1 .. 31;

abjad = „A‟ .. „Z‟;

TYPE bulan = (jan,feb,mar,apr,mei,jun,jul,agt,sep,okt,nov,des);

hari = (sen,sel,rab,kam,jum,sab,ming);

ata = agt .. jan;

pta = feb .. jun;

hari_kerja = sen .. jum;

11
3. TIPE STRUKTUR

pada tipe ini setiap perubah dapat menyimpan lebih dari sebuah nilai
data yang masing-masing nilai data disebut komponen. Karakteristik tipe data
terstruktur ini adalah ditentukan berdasarkan cara penstrukturan dan tipe masingmasing
komponen. Ukuran tipe terstruktur dalam bahasa pemrograman Turbo
Pascal maksimum 65520 byte. Pada tipe ini terdapat empat buah tipe data
terstruktur, yaitu larik, rekaman, himpunan, dan berkas

a. Tipe Array

Adalah tipe terstruktur yang mempunyai komponen


dalam jumlah yang tetap dan setiap komponen mempunyai tipe data yang
sama. Posisi masing-masing komponen dalam larik dinyatakan sebagai nomorindex.
Deklarasi Larik "array"
Ditulis diantara tanda “[ ]” dikuti dengan tipe data dari nama larik .
Nama_array [subscript]
Contoh = float nilai [10];
Nama array = nilai
Menyimpan 10 buah data bertipe float.
Penomoran array secara default dimulai dari subscript 0 , bukan 1.
Tipe data yang digunakan pada array
Dapat berupa tipe data dasar , tipe data terstruktur .

Pemberian Nilai Awal


contoh :
int angka [10]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Pendefinisian array bertipe angka yang terdiri 12 elemen bertipe data int .
Atau
int angka [ ]= {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
Secara otomatis kompiler akan menghitungnya sendiri

12
CONTOH PROGRAM
#include <stdio.h>

#incluade <conio.h>

#include <math.h>

void main()

int N,I;

float angka [10],Rerata, Total=0;

/*Masukkan Jumlah Data */

Printf ("Banyaknya Data (Maksimum 10 buah angka)?");

scanf ("%d", &N);

printf ("\n");

/*Masukan Data dari ke 0 sampai dengan ke N-1*/

/* dan hitung nilai totalnya*/

for(I=0;I<N;I++)

printf ("Nilai Data ke %d?" , I+1);

scanf ("%f", &angka[I]);

Total = Total+angka[I];

/*Hitung Nilai Rata-ratanya*/

for(I=0;I<N;I++)

Rerata=Total/N;

/* Tampilkan Hasilnya*/

printf("\nJumlah Data = %d\n" , N);

printf("Total Nilai = %f\n" , Total);

printf("Rata-rata Nilai = %f\n" , Rerata);

//printf("Devisi Standar = %f", SD);

getch();

13
b. Tipe Record

Selain array, bahasa pemrograman Pascal juga menyediakan tipe data terstruktur lain
yang disebut dengan record. Kita mempergunakan tipe data record jika dalam sebuah
komponen data, kita membutuhkan lebih dari sebuah tipe data. Misalnya, data seorang
mahasiswa bisa terdiri dari NIM, Nama dan IPK. Untuk mendeklarasikan variabel bertipe
data record yang bisa menyimpan data 100 mahasiswa, instruksi yang kita pergunakan
adalah:

type

TMahasiswa = record

NIM : longint;

Nama : string;

IPK : real;

end;

var

ArsipMahasiswa : array[1..100] of TMahasiswa;

Untuk mengisi data dari masing-masing mahasiswa, kita bisa mempergunakan instruksi:

ArsipMahasiswa[1].NIM := 123456;

ArsipMahasiswa[1].Nama := 'Adi';

ArsipMahasiswa[1].IPK := 3.25;

ArsipMahasiswa[2].NIM := 123567;

ArsipMahasiswa[2].Nama := 'Budi';

ArsipMahasiswa[2].IPK := 2.75;

Jika kita ingin menampilkan data dari mahasiswa 1, kita dapat menggunakan instruksi
berikut:

writeln ('Nama Mahasiswa 1 :', ArsipMahasiswa[1].Nama);

writeln ('IPK Mahasiswa 1 :', ArsipMahasiswa[1].IPK);

14
Jika kita ingin menampilkan data dari seluruh mahasiswa yang terdapat dalam array
ArsipMahasiswa, algoritma yang kita pergunakan adalah sebagai berikut:

for i:= 1 to 100 do begin

writeln('Mahasiswa ',i,':');

writeln('NIM : ', ArsipMahasiswa[i].NIM);

writeln('Nama : ', ArsipMahasiswa[i].Nama);

writeln('IPK : ', ArsipMahasiswa[i].IPK:1:2);

writeln;

end;

Jika kita mengelola data mahasiswa dalam contoh di atas dengan menggunakan tipe data
array semata-mata, maka variabel yang dibutuhkan akan dideklarasikan sebagai berikut:

{ DEKLARASI VARIABEL YANG DIBUTUHKAN JIKA DATA MAHASISWA

SEMATA-MATA DIKELOLA DENGAN MENGGUNAKAN ARRAY }

type

TMahasiswaNIM : array[1..100] of longint;

TMahasiswaNama : array[1..100] of string;

TMahasiswaIPK : array[1..100] of real;

var

MahasiswaNIM : TMahasiswaNIM;

MahasiswaNama : TMahasiswaNama;

MahasiswaIPK : TMahasiswaIPK;

Jika kita ingin mengirimkan data seluruh mahasiswa ke dalam sebuah fungsi atau
prosedur untuk diolah, maka kita harus mendeklarasikan fungsi tersebut dengan
menyertakan seluruh variabel array sebagai parameternya. Misalnya prosedur untuk
menampilkan data Nama dan IPK mahasiswa yang memiliki NIM tertentu, akan
dideklarasikan sebagai berikut:

15
{ DEKLARASI PROSEDUR YANG DIBUTUHKAN JIKA DATA MAHASISWA

SEMATA-MATA DIKELOLA DENGAN ARRAY }

procedure TampilkanMahasiswa(

NIM : longint;

var MaNama : TMahasiswaNama;

var MaIPK : TMahasiswaIPK);

Untuk memanggil fungsi tersebut kita harus menyertakan seluruh argumennya, misalnya:

{ INSTRUKSI PEMANGGILAN PROSEDUR YANG DIBUTUHKAN JIKA

DATA MAHASISWA SEMATA-MATA DIKELOLA DENGAN ARRAY }

TampilkanMahasiswa(12345678, MahasiswaNama, MahasiswaIPK);

Dalam contoh di atas, struktur data mahasiswa hanya terdiri dari 3 komponen.
Padahal dalam sistem informasi akademis sebuah Universitas, komponennya pasti
jauh lebih banyak dari 3 jenis. Betapa panjang panjangnya deklarasi prosedur
yang harus dibuat dan betapa panjangnya instruksi pemanggilan prosedur yang
harus diketikkan. Instruksi pemanggilan prosedur juga menjadi rentan terhadap
terjadinya kesalahan, mengingat urut-urutan argumen pemanggilan prosedur
harus sama persis dengan urut-urutan argumen prosedur yang dideklarasikan.

Jika pemanggilan fungsi atau prosedur dilakukan dengan menggunakan tipe


data record, maka pekerjaan untuk menuliskan argumen menjadi jauh lebih ringan,
sehingga memperkecil kemungkinan terjadinya kesalahan. Agar bisa menjadi
parameter sebuah fungsi atau prosedur, kita terlebih dahulu harus
mendeklarasikan sebuah type yang mewakili array dari variabel bertipe record:

16
{ DEKLARASI VARIABEL YANG DIBUTUHKAN JIKA DATA MAHASISWA

DIKELOLA DENGAN MENGGUNAKAN RECORD DAN ARRAY }

type

TMahasiswa = record

NIM : longint;

Nama : string;

IPK : real;

end;

TarsipMahasiswa: array[1..100] of TMahasiswa;

var

ArsipMahasiswa : TArsipMahasiswa;

Prosedur untuk menampilkan data mahasiswa di atas dapat dideklarasikan sebagai


berikut:

{ DEKLARASI PROSEDUR YANG DIBUTUHKAN JIKA DATA MAHASISWA

DIKELOLA DENGAN RECORD DAN ARRAY }

procedure TampilkanMahasiswa (

NIM: longint;

var ArsipMhs : TArsipMahasiswa);

Prosedur tersebut dapat dipanggil dengan cara sebagai berikut:

{ INSTRUKSI PEMANGGILAN PROSEDUR YANG DIBUTUHKAN JIKA

DATA MAHASISWA DIKELOLA DENGAN RECORD DAN ARRAY }

17
TampilkanMahasiswa (12345678, ArsipMahasiswa);

Berapa pun jumlah komponen yang menyusun data mahasiswa, maka cara
pendeklarasian prosedur dan pemanggilannya akan tetap sama dengan contoh terakhir di
atas.

Tipe data record juga sangat memudahkan pengelolaan data yang disimpan dalam
media penyimpanan sekunder. Deklarasi variabel yang dibutuhkan untuk melakukan
operasi file dengan tipe data record adalah sebagai berikut:

{ DEKLARASI VARIABEL YANG DIBUTUHKAN UNTUK

MELAKUKAN OPERASI FILE DENGAN RECORD }

type

TMahasiswa = record

NIM : longint;

Nama : string;

IPK : real;

end;

var

f: file of TMahasiswa;

mahasiswa:TMahasiswa;

18
c. Tipe Set

Set adalah kumpulan dari nilai-nilai yang memiliki kesamaan sifat, yaitu tipe data
yang sama dan urutan penulisannya tidak diperhatikan. Setiap obyek dalam himpunan
disebut dengan anggota atau elemen himpunan. Contoh :
1. Huruf vokal dalam alfabet
2. kendaraan bermotor
3. binatang menyusui
4. bilangan genap 1 sampai 100
5. dan sebagainya
Set termasuk ke dalam tipe data terstruktur, terdiri dari sejumlah elemen yang bertipe
sama dan harus bertipe data ordinal yang memiliki nilai terletak antara 0 sampai 255.
Berbeda dengan tipe data array, tipe data SET tidak mengenal elemen pertama,
elemen kedua dan seterusnya. Pada tipe data SET tidak terdapat elemen yang bernilai
sama.
Mendeklarasikan SET
(Himpunan)
Dapat dideklarasikan dalam deklarasi tipe data :
Type variabel_set = SET OF tipe_data;
Dapat pula dideklarasikan dalam deklarasi var data :
Var variabel_set = SET OF tipe_data;
Contoh :
Type
kata = set of char; {tipe dasar}
huruf besar =„A‟..‟Z‟; {subrange}
Perintah = set of hurufbesar ;
Hari = (senin,selasa,rabu,kamis,jumat,sabtu,minggu); {enumerasi}
Hari2 = set of Hari;
Pilihan = set of 1..7 {subrange dalam bentuk bilangan};

Var
hurufkecil : set of „a‟..‟z‟;

19
kapital : hurufbesar;
hariseminggu : hari2;
Kalimat : kata;
Dalam keadaan awal, suatu variabel yang bertipe data SET belum terisi. Variabel
tersebut merupakan suatu variabel kosong, dinyatakan dengan tanda [ ].
Contoh program memberikan nilai untuk tipe data SET :
Program SET1;
type
Hari = (senin,selasa,rabu,kamis,jumat,sabtu,minggu); {enumerasi}
Hari2 = set of Hari;
var
hariseminggu:hari2;
begin
hariseminggu:=[selasa, kamis,sabtu];
end.

20
Operasi SET
(Himpunan)

1. Operasi Penjumlahan
Disebut juga operasi penggabungan (UNION), Operatornya (+).
Contoh :
A:= [„B‟,‟F‟,‟J‟,‟L‟];
A:= A + [„a‟,‟B‟,‟b‟,‟c‟,‟d‟,‟e‟,‟f‟,‟j‟,‟k‟,‟l‟];
maka nilai A sekarang adalah [„B‟,‟F‟,‟J‟,‟L‟,„a‟,‟b‟,‟c‟,‟d‟,‟e‟,‟f‟,‟j‟,‟k‟,‟l‟]

2. Operasi Pengurangan
Disebut juga operasi selisih SET, operatornya (-).
Misal :
SET1 - SET2, menghasilkan elemen yang merupakan anggota SET1 yang bukan
anggota SET2.
Contoh :
A:=[1,2,3,4,5];
B:=[4,5,6,7];
W:=A-B;
Maka nilai W adalah [1,2,3]

3. Operasi Perkalian
Disebut juga operasi Intersection (irisan), operatornya (*).
Misal :
SET1 - SET2, menghasilkan elemen yang merupakan anggota SET1 dan sekaligus
merupakan anggota SET2.
Contoh :
1. A:=[1,2,3,4,5]; 2. D:=[1,2,3,4,5];

B:=[1,3,5,6,7];
C:=A*B;
Maka nilai C adalah [1,3,5]

21
Perbandingan dalam SET
(Himpunan)

OPERATOR NAMA OPERATOR KETERANGAN


= Sama dengan Bernilai TRUE, bila kumpulan anggota variabel
SET mempunyai anggota yang sama.
< > Tidak sama Bernilai TRUE, bila kumpulan anggota variabel
SET mempunyai anggota yang tidak sama.
< = Anggota dari Bernilai TRUE, bila semua elemen dari himpunan
1 terdapat pada himpunan 2.
> = Mempunyai anggota Bernilai TRUE, bila semua elemen dari himpunan
2 terdapat pada himpunan 1.
IN Terdapat di dalam Bernilai TRUE, bila elemen merupakan anggota
himpunan.
Contoh :
1. [3,4,5]=[4,5,3] hasil TRUE
2. [c,d]=[d,g,c] hasil FALSE
3. [2,4]< >[2,3] hasil TRUE
4. f in [„a‟..‟z‟] hasil TRUE
5. [2,1] < = [1,2,3] hasil TRUE
6. [5,6,7] > = [7,6] hasil TRUE
7. 3 in [4,5,3,2] hasil TRUE
8. [2,1] > = [1,2] hasil TRUE

22
Contoh Program perbandingan SET :
Program Set1;
Uses crt;
Type kbil=set of byte;
var kbil1,kabil2:kabil;
a,b:byte;
begin
clrscr;
write(„Tentukan batas bawah :‟);readln(a); {Input Himpunan Pertama}
write(„Tentukan batas Atas :‟);readln(b);
Kbil1:=[a..b];
write(„Tentukan batas bawah :‟);readln(a); {Input Himpunan Kedua}
write(„Tentukan batas Atas :‟);readln(b);
Kbil2:=[a..b];
if kbil1= kbil2 then writeln(„Himpunan 1 sama dengan Himpunan 2‟);
if kbil1 < > kbil2 then writeln(„Himpunan 1 tidak sama dengan Himpunan 2‟);
if kbil1< = kbil2 then writeln(„Himpunan 1 anggota dari Himpunan 2‟);
if kbil1> = kbil2 then writeln(„Himpunan 1 mempunyai anggota Himpunan 2‟);
end.
Contoh Program operator IN :
Program set2;
uses crt;
type karakter= set of char;
var kapital : karakter;
hidup : karakter;
jumlahh,jumlahk : integer;
kalimat : string;

i:integer;
begin
clrscr;
kapital:=[„A‟..‟Z‟];

23
hidup:=[„A‟,‟E‟,‟I‟,‟O‟,‟U‟,‟a‟,‟e‟,‟i‟,‟o‟,‟u‟];
jumlahh:=0;
jumlahk:=0;
writeln(„Masukkan suatu kalimat :‟);
readlne (kalimat);
for I:=1 to length(kalimat) do
begin
if kalimat[i] in kapital then inc(jumlahk);
if kalimat[i] in hidup then inc(jumlahh);
end;
writeln(„Jumlah kapital =„,jumlahk);
writeln(„Jumlah huruf hidup =„,jumlahh);
end.
Aplikasi Penggunaan SET dalam Program :
Program bacakarakter;
uses crt;
type karakter=set of char;
var pilihan:char;
function bacakar(pesan:string;pilihansah:karakter):char;
var ch:char;
begin
write(pesan);
repeat
ch:=upcase(readkey);
until(ch in pilihansah);
writeln(ch);
bacakar:=ch;
end;
{Program utama}
Begin
clrscr;

24
repeat
Pilihan:=bacakar(„Anda :(T)ulis Halo, (B)el,(S)elesai‟,[„T‟,‟B‟,‟S‟]);
Case pilihan of
„T‟:writeln(„Hallo...‟);
„B‟:writeln(„bel‟+ #7);
„S‟:writeln(„Terimakasih‟);
end;
Until pilihan =„S‟;
end.

25
d. Tipe File

Seringkali pada program-program aplikasi untuk sistem informasi, data perlu


disimpan untuk keperluan penegelolaan lebih lanjut. Bila data yang perlu disimpan
mempunyai volume yang cukup besar, maka penggunaan variabel, larik, atau pointer
sudah tidak tepat lagi, karena variabel, larik, atau pointer menggunakan memori internal
komputer, sehingga tidak cukup untuk menampungnya. Variabel, larik, dan pointer
hanya tepat digunakan untuk menyimpan data yang sedang digunakan untuk proses
saja.

Untuk menyimpan data dengan volume yang besar harus digunakan cara yang lain,
yaitu dapat dengan menyimpannya di external memory yang relatif mempunyai
kapasitas penyimpanan lebih besar daripada internal memory serta involatile (tidak
hilang bila aliran listrik terputus, sehingga dapat menyimpan data lebih permanen).

Data yang ada di external memory disimpan dalam bentuk file. File ini dapat diibaratkan
dengan map-map yang berisi dengan data di filling cabinet dan filling cabinet itu sendiri
dapat diibaratkan sebagai simpanan luarnya. Seperti halnya filling cabinet yang dapat
menyimpan beberapa map, demikian juga dengan disk dapat menyimpan beberapa file.

Suatu file terdiri dari urutan komponen yang mempunyai tipe yang sama. Berbeda
dengan larik yang jumlah komponennya sudah pasti, jumlah komponen dalam file
sifatnya luwes, yaitu dapat ditambah dan dikurangi sewaktu-waktu.

Di dalam bahasa Pascal dikenal 3 macam tipe file, yaitu file teks (text file), file bertipe
(typed file), dan file tak bertipe (untyped file).

26
Procedure dan Function Standard Untuk Semua Tipe File

Assign (f:file;name:string) : digunakan untuk menghubungkan nama dari external file


ke suatu variabel file.

Rewrite (f[:file; recsize:word]): digunakan untuk membuka file yang baru atau yang
belum pernah ada di disk.

Reset (f[:file; recsize:word]) : digunakan untuk membuka file yang sudah ada.

Close (f:file) : digunakan untuk menutup file yang telah dibuka dengan procedure
standard Rewrite, Reset, atau Append (procedure khusus untuk membuka file teks).

Erase (f:file) : digunakan untuk menghapus suatu external file. Dalam penggunaanya
harus didahului dengan procedure standard Close.

Rename (f:file;newname:string): digunakan untuk mengganti nama suatu external file.

GetDir (d:byte; var s:string) : digunakan untuk mengetahui direktori yang aktif
pada suatu drive.

ChDir (s:string) : digunakan untuk mengubah posisi dari direktori.

MkDir (s:string) : digunakan untuk membuat suatu direktori.

RmDir (s:string) : digunakan untuk menghapus suatu direktori.

Eof (f:file):boolean : fungsi ini akan menghasilkan status apakah file sudah berada di
posisi akhir dari file atau tidak.

27
File Teks

File tekas merupakan file yang berisi karakter yang dibentuk dalam baris-baris dan
masing-masing baris dengan end-of-line marker berupa karakter carriage return dan
karakter line feed (CR/LF). Sedangkan akhir dari file ditunjukkan dengan karakter Ctrl-Z.

Panjang dari tiap-tiap baris dari file teks dapat berbeda-beda, sehingga posisi dari suatu
baris tertentu dari file teks tidak dapat dihutung dan akibatnya file tekas hanya dapat
diakses secara urut.

File teks sebenarnya merupakan file dengan tipe Char, tetapi mempunyai perbedaan,
yaitu nilai yang bukan tipe Char dapat direkam dan dibaca oleh file teks. Nilai yang
bukan tipe Char ini akan secara otomatis dirubah ke atau dari tipe Char.

Deklarasi

var

variabelFile : Text;

begin

end.

28
Prosedur dan Fungsi Standard File Teks

Append(var f:text); : digunakan untuk membuka file yang telah ada untuk keperluan
menambah data ke dalam file.

Write([var f:text;] v1 [v2,…,vn]) : digunakan untuk merekam data ke dalam file.

Writeln([var f:text;] v1 [v2,…,vn]) : digunakan untuk merekam data ke dalam file dan
memberikan end-of-line marker.

Flush(var f:text) : digunakan untuk segera merekam data yang ada di dalam buffer
ke dalam file teks.

Read([var f:text;] v1 [v2,…,vn]) : digunakan untuk membaca satu atau lebih nilai dari
file ke dalam satu variabel atau lebih.

Readln([var f:text;] v1 [v2,…,vn]) : kegunaannya sana dengan procedure Read, tetapi


procedure ini akan menggeser pembacaan ke awal baris beikutnya dalam file.

Eoln[(var f:text)]:boolean : digunakan untuk mengetahui apakah posisi dari file berada
di end-of-line marker atau tidak.

SeekEof[(var f:text)]:boolean : kegunaannya sama dengan Eof, yaitu menghasilkan


status akhir dari file.

SeekEoln[(var f:text)]:boolean : kegunaannya sama dengan Eoln, yaitu


menghasilkan status akhir dari baris.

29
File Bertipe

Berbeda dengan file teks yang hanya dapat diakses secara urut, file bertipe (typed file)
disamping dapat juga diakses secara urut (sequential access), dapat juga dikases
secara acak (random access). Ini berarti komponen-komponen di dalam file bertipe
dapat dibaca atau direkam dari manapun di dalam file.

Dalam file bertipe, kita dapat menambahkan variabel terdefinisi dalam unit standard
System untuk menentukan kode akses file bertipe. Adapun kode aksesnya adalah:

0 – read only

1 – write only

2 – read/write (default)

Deklarasi

var

fileData : File of tipeData;

begin

end.

tipeData dapat berupa integer, real, char, string, array, record, dan sebagainya.

Prosedur dan Fungsi Standard File Bertipe

Write (f,v1[v2,…,vn]) : digunakan untuk merekam satu atau lebih nilai ke dalam
file.

Read (f,v1[v2,…,v3]) : digunakan untuk membaca satu atau lebih nilai dari file.

Seek (f; n : longint) : digunakan untuk mengarhkan penunjuk file ke suatu komponen
tertentu, sehingga memungkinkan kita untuk membaca komponen atau menuliskan
komponen secara acak.

30
Truncate(f) : digunakan untuk menghapus sejumlah komponen atau record mulai dari
posisi record tertentu.

FilePos(f):longint : digunakan untuk menghasilkan letak posisi sekarang dari


penunjuk file.

FileSize(f):longint : digunakan untuk menghasilkan jumlah dari komponen atau record


yang sudah ada di file. Fungsi ini harus digunakan setelah file dibuka.

Contoh Program:

File Tak Bertipe

File tak bertipe (untyped file) adalah channel I/O (Input/Output) level rendah (low level
I/O channel) yang digunakan untuk mengakses langsung suatu file di disk tidak peduli
bagaimana tipe dan strukturnya.

Deklarasi

FileData : File;

Karena file tak bertipe tidak memandang tipe dan struktur filenya, maka file tak bertipe
ini sifatnya kompatibel dengan file apapun dan tepat digunakan untuk operasi-operasi
mengecek keberadaan suatu file di dalam disk, menghapus suatu file, mengganti nama
dari suatu file, menyalin suatu file, dan operasi-operasi lainnya yang tidak langsung
melibatkan operasi I/O.

Prosedur dan fungsi standard yang dapat digunakan di file bertipe dapat juga
digunakan di file tak bertipe, kecuali prosedur standard Read dan Write yang diganti
dengan prosedur standard BlockRead dan BlockWrite. Kedua prosedur ini digunakan
untuk transfer data dengan kecepatan tinggi.

BlockRead(var f:file;var buf;countword[;result:word]);

BlockWrite(var f:file;var buf;countword[;result:word]);

31
4. TIPE DATA POINTER

Pemakaian array tidak selalu tepat untuk program-program terapan yang


kebutuhan pengingatnya selalu bertambah selama eksekusi program tersebut. Untuk itu
diperlukan satu tipe data yang dapat digunakan untuk mengalokasikan (membentuk)
dan mendealokasikan (menghapus) pengingat secara dinamis, yaitu sesuai dengan
kebutuhan pada saat suatu program dieksekusi. Oleh karena itu akan dijelaskan suatu
tipe data yang dinamakan sebagai tipe Data Pointer.

Nama peubah yang kita gunakan untuk mewakili suatu nilai data sebenarnya
merupakan / menunjukkan suatu lokasi tertentu dalam pengingat computer di mana
data yang diwakili oleh tipe data tersebut disimpan. Pada saat sebuah program
dikompilasi maka compiler akan melihat pada bagian deklarasi peubah (Var) untuk
mengetahui nama-nama peubah apa saja yang digunakan, sekaligus mengalokasikan
atau menyediakan tempat dalam memory untuk menyimpan nilai data tersebut. Dari sini
kita bisa melihat bahwa sebelum program dieksekusi, maka lokasi-lokasi data dalam
memory sudah ditentukan dan tidak dapat diubah selama program tersebut dieksekusi.
Peubah-peubah yang demikian itu dinamakan sebagai Peubah Statis (Static Variable).

Dari pengertian diatas kita perhatikan bahwa sesudah suatu lokasi pengingat
ditentukan untuk suatu nama peubah maka dalam program tersebut peubah yang
dimaksud akan tetap menempati lokasi yang telah ditentukan dan tidak mungkin
diubah. Dengan melihat pada sifat-sifat peubah statis maka bisa dikatakan bahwa
banyaknya data yang bisa diolah adalah sangat terbatas. Misalnya peubah dalam
bentuk Array yang dideklarasika sbb : Var matriks: array[1..100,1..100] of integer;
maka peubah tersebut hanya mampu menyimpan data sebanyak 100x100=10000 buah
data. Jika kita tetap nekat memasukkan data pada peubah tersebut setelah semua
ruangnya penuh maka eksekusi program akan terhenti dan muncul error

32
BAB III

DAFTAR PUSTAKA

http://kuliah.ningyung.com/wp-content/uploads/2010/04/TIPE_DATA_POINTER1.doc

http://images.hendrykomsi.multiply.multiplycontent.com/attachment/0/SEbEpAoKCqYA
ACTSAzc1/TIPE%20DATA%20FILE.doc?key=hendrykomsi:journal:3&nmid=99467600

http://images.redvego.multiply.multiplycontent.com/attachment/0/Scut@QoKCEEAAFL9
3is1/AlgoritmaPemrograman2_modul_004.doc?key=redvego:journal:2&nmid=22361679
1

http://attachment.fbsbx.com/messaging_attachment.php?aid=c5e0b33ec495b1487c2d8
93139b97721&mid=id.479371598755811&uid=100000079198229&accid=1000000791
98229&ext=1339691892&hash=AQDOOugMIKodTcKrmJe2eq4niUiqlnoCGbZpQfEG8o
YBMg

http://attachment.fbsbx.com/messaging_attachment.php?aid=c5e0b33ec495b1487c2d8
93139b97721&mid=id.479371598755811&uid=100000079198229&accid=1000000791
98229&ext=1339691892&hash=AQDOOugMIKodTcKrmJe2eq4niUiqlnoCGbZpQfEG8o
YBMg

33

Anda mungkin juga menyukai