Anda di halaman 1dari 25

KATA PENGANTAR

Puji Syukur khadirat Allah Yang Maha Kuasa karena atas Rahmat dan Hidayah-
Nyalah kami dapat menyelesaikan Tugas Akhir Semester ini. Jurnal ini berisi tentang
Pembelajaran mengenai 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.

Bangkinang, 2022

Penyusun

1
DAFTAR ISI

KATA PENGANTAR..........................................................................................................................i
DAFTAR ISI........................................................................................................................................ii
BAB I PENDAHULUAN....................................................................................................................1
A. LATAR BELAKANG..............................................................................................................1
BAB II2 TIPE DATA............................................................................................................................
A. JENIS-JENIS TIPE DATA.....................................................................................................2
B. TIPE SEDERHANA (SIMPLE TYPE)..................................................................................2
C. JENIS DATA NON-STANDARD (USER DEFINED)..........................................................6
D. TIPE STRUKTUR...................................................................................................................7
E. TIPE DATA POINTER.........................................................................................................20
DAFTAR PUSTAKA........................................................................................................................22

2
BAB I
PENDAHULUAN

A. LATAR BELAKANG

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 :
1. Tipe data sederhana / Jenis data yang standar (Dasar)
a. Ordinal
b. Integer
c. Real
d. char
e. Boolean
2. Tipe data non standar (user defined)
a. Enumerated
b. Sub-range
3. Tipe data berstuktur
a. Array
b. Record
c. Set
d. File
4. Tipe data Pointer
Tipe data berfungsi membatasi jangkauan data ynag akan dilaksanakan.

B. 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.
1. 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:

4
a. 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.
b. Fungsi standar ORD atau ordinalitasnya dapat diterapkan pada sembarang tipe
ordinal untuk mengetahui ordinalitasnya.
c. Fungsi standar PRED atau Predecessor dapat diterpkan untuk mengetahui
pendahulunya.. Jika diterapkan pada nilai pertama akan menyebabkan error
d. 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.

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

5
3. 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 /

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

6
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

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

7
C. JENIS DATA NON-STANDARD (USER DEFINED)

1. 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 elemenelemennya.
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

2. 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;

8
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;

D. 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
1. 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 .

9
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

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;

10
/* 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();
}

2. 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);

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

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

12
{ 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:

{ 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 }

13
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 }
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;

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

14
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‟;
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.

Operasi SET
(Himpunan)

Operasi Penjumlahan
Disebut juga operasi penggabungan (UNION), Operatornya (+).
Contoh :
A:= [„B‟,‟F‟,‟J‟,‟L‟];

15
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‟]

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]

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

16
> = 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 :
a. [3,4,5]=[4,5,3] hasil TRUE
b. [c,d]=[d,g,c] hasil FALSE
c. [2,4]< >[2,3] hasil TRUE
d. f in [„a‟..‟z‟] hasil TRUE
e. [2,1] < = [1,2,3] hasil TRUE
f. [5,6,7] > = [7,6] hasil TRUE
g. 3 in [4,5,3,2] hasil TRUE
h. [2,1] > = [1,2] hasil TRUE

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‟]; hidup:=[„A‟,‟E‟,‟I‟,‟O‟,‟U‟,‟a‟,‟e‟,‟i‟,‟o‟,‟u‟];
jumlahh:=0; jumlahk:=0;

17
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;
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.

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

18
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).

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.

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.

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

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.

20
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:
– read only
– write only
– 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.
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.

21
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]);

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

22
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

23
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@QoKCEEAAF
L9 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=100000079
1
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

24

Anda mungkin juga menyukai