You are on page 1of 20

PENGENALAN TURBO PASCAL

A. PENDAHULUAN

Turbo pascal merupakan bahasa pemograman tingakt tinggi. Sebagai bahasa


pemograman tingkat tinggi, Turbo Pascal mudah dipelajari karena instruksi-
instruksinya mendekati bahasa manusia. Instruksi-instruksi Turbo Pascal
menggunakan kata-kata dari bahasa Inggris.

Turbo Pascal merupakan bahasa pemograman terstruktur sehingga program yang


dibuat dengan Turbo Pascal dapat dipecah-pecah menjadi blok-blok kecil. Blok-blok
kecil ini menyusun blok besar yang kemudian secara keseluruan membentuk program
utuh/lengkap. Dalam Turbo Pascal blok-blok kecil tersebut biasa disebut
procedure/fungction.

B. MENJALANKAN TURBO PASCAL

Untuk dapat menjalankan program Turbo Pascal ini kita harus mempunyai
disket atau cd yang berisikan program pascal dan untuk program pascal for windows
kita harus menginstal program ini terlebih dahulu.

Setelah dinstal program pascal, dan kita menjalankannya dilayar akan tampil seperti
berikut:

C. STRUKTUR PROGRAM PASCAL

Pada dasarnya Turbo Pascal dibagi atas 3 Bagian :

1
1. Bagian Kepala Program , diawali kata tercadang PROGRAM diikuti dengan judul
program dan diakhiri dan tanda koma, untuk versi sesudah 4.0 pada bagian ini dapat
mengandung klausa USES (unit yang dipakai pada program yang akan ditulis)

2. Bagian definisi dan deklarasi, pada bagian ini berisi definisi dan deklarasi yang
akan digunakan program.

3. Bagian Pernyataan, pada bagian ini berisi program-program yang an dieksekusi,


yang diawali dengan BEGIN dan diakhiri dengan END dan tanda titik.

D. KEGUNAAN MENU PADA TURBO PASCAL

Pada Turbo Pascal terdapat beberapa menu yang berguna untuk proses suatu
program, edit proram, memanggil program paa disket maupun hardisk, serta
mengcompile program, merubah tampilan pascal dan lain-lain.

Tampilan menu pada pascal antara lain sebagai berikut:

Menu utamanya adalah :


1. File 5. Compile
2. Edit 6. Options
3. Search 7. Window
4. Run 8. Help

Untuk mengatifkan salah satu menu utama kita bisa menggunakan cara cepat
menggunakan keyboard, yaitu dengan menekan tombol Alt + huruf depan menu
utamanya.

2
BAB I. DASAR PEMROGRAMAN

A. KARAKTER PADA TUBO PASCAL

Karakter disini dalam Tubo Pascal berpengertian sebagai huruf, angka atau
berupa simbol-simbol khusus, seperti :
1. huruf A sampai dengan Z atau a sampai z
2. angka 0 sampai 9
3. angka heksa desimal 0 sampai 9 dan A sampai F
4. spasi
5. karakter kontrol : karakter yang mempunyai kode ASCII antara 0 sampai 31
6. karakter ASCII tak standar kode 128 smapi 255
7. simbol-simbol khusus berpasangan, seperti <= , >= , := atau yang lainnya.

B. PENGENAL

Pengenal (identifier) digunakan untuk memberi nama : konstanta, variabel, tipe


data, prosedure, label, fungsi, program, unit dan field pada record. Pengenal harus
diawali dengan HURUF dilanjutkan huruf atau angka atau tanda garis bawah, tidak
boleh memakai spasi, titik atau karakter khusus dan tidak boleh memakai kata
tercadang (reserved word), Panjang karakter yang digunakan adalah bebas tetapi
berarti untuk Tubo Pascal adalah 63 karakter yang digunakan adalah bebas tetapi
berarti untuk tubo pascal adalah 63 karakter yang pertama. Contoh : JenisPekerjaan,
Total_Gaji dsb.

C. JENIS ATAU TIPE DATA

Terdiri dari lima macam tipe data yaitu :


1. Tipe data sederhana ; tipe bilangan (bulat dan real), karakter dan bolean.
2. Tipe data bulat ; terdiri dari beberapa tipe sepertti :
• Shortint : tipe data numerik dalam bilangan bulat tanpa bilangan desimal
dengan range data dari –128 s/d 127
• Integer : tipe data numerik dalam bilangan bulat tanpa bilangan desimal
dengan range data dari –32.768 s/d 32.767.
• Longint : tipe data numerik dalam bilangan bulat tanpa bilangan desimal
dengan range data dari –2.147.483.648 s/d 2.147.483.647 (-231 s/d 231)
• Byte : tipe data numerik dalam bilangan bulat tanpa bilangan desimal
dengan range data 0 s/d 255
• Word : tipe data numerik dalam bilangan bulat tanpa bilangan desimal
dengan range data dari 0 s/d 65.35
3. Tipe data real ; terdiri dari :
• Real : tipe data numerik dalam bilangan desimal dengan range data dari
± 2.9 x 10 -39 s/d 1.7 x 10 38
• Single : tipe data numerik dalam bilangan desimal dengan range data dari
± 1.5 x 10 -45 s/d 3.4 x 10 38
• Double : tipe data numerik dalam bilangan desimal dengan range data dari
± 2,9 x 10 -39 s/d 1,7 x 10 38

3
• Extended : tipe data numerik dalam bilangan desimal dengan range data
dari ± 5.0 x 10 -324 s/d 1,7 x 10 308
• Comp : tipe data numerik dalam bilangan desimal dengan range data dari
-2 63 s/d 2 63 –1
4. Tipe data bolean : tipe data yang hanya mengenal dua nilai yaitu true (benar) dan
false (salah).
5. Tipe data karakter : tipe data yang mengandung sebuah karakter
6. Tipe data String : berupa sederetan karakter.

D. KONSTANTA

Merupakan nilai yang tidak berubah selama program berjalan, dalam pascal mengenal
bermacam-macam konstanta, antara lain :
• Konstanta karakter
• Konstanta bilangan
• Konstanta string
• Konstanta bolean
• Konstanta yang dideklarasikan

E. VARIABEL

Suatu nama yang menyiratkan lokasi memory komputer yang digunakan untuk
menyimpan nilai. Dan nilainya dapat berubah selama program dijalankan. Variabek
ini harus dideklarasikan terlebih dahulu sebelum digunakn pada program, dengan
menggunakn kata tercadang VAR.

F. UNGKAPAN

Ungkapan dibentuk oleh operand dan operator.

G. OPERATOR

Operan aritmatik berfungsi untuk melakukan operasi aritmatika.

Operator Prioritas Kelompok


@ not Pertama Operator Unary
* / div mod shl shr Kedua Operator Pengali
+ - or xor Ketiga Operator Penambahan
= <> < <= >= in Keempat Operator Relasi

Operator Fungsi Contoh


^ Pangkat 10^5
/ Pembagi bilangan pecahan 10.5/10
Div Pembagi blangan bulat 10 div 20
* Perkalian 12*7
Mod Sisa pembagian bilangan bulat 3 mod 2
+ Penjumlahan 2 + 12
- Pengurangan 43 – 20

4
- Negatif -30

Operator logika ada 6 buah :


1. not : besifat unary, untuk memperoleh niali bit berlawanan
2. and : bersifat binary
3. or : bersifat binary
4. xor : bersifat binary
5. snl
6. shr

H. BEBERAPA FUNGSI / PERINTAH PROGRAM INPUT OUTPUT

Perintah WRITE / WRITELN ; berfungsi untuk mencetak kelayar


Contoh : Write(‘Perintah Input’);

Perintah READ / READLN ; berfungsi untuk membaca nilai pernyataan


Contoh : Readln(Output);

BAB II. PENGAMBILAN KEPUTUSAN DAN PROSES


PENGULANGAN
A. PERNYATAAN GOTO

5
Digunakan sebagai pernyataan loncatan tak bersyarat, berguna untuk mengarahkan
eksekusi program kepernyataan yang diawali label yanmg ditunjuk.
Contohnya :
Label Ulang;
Begin
Ulang
Writeln (turbopascal);
Goto Ulang
End.

B. PERNYATAAN MAJEMUK

Kumpulan pernyataan yang diawali dengan BEGIN dan diakhiri dengan END, antara
pernyataan dipisahkan oleh tanda titik koma (;), eksekusi program dimulai dari
pernyataan 1 sampai pernyataan ke n secara berurutan.
Bentuk umunya :
Begin
Pernyataan_1
Pernyataan_2

Pernyataan_n
End.

C. PERINTAH-PERINTAH LOOPING

• IF.......THEN.......ELSE adalah pernyataan logika percabangan yang mana


perintah ini akan memeriksa terhadap suatu kondisi.
Bentuk umumnya:
IF Ungkapan nalar THEN
Pernyataan
Atau
IF Ungkaan nalar THEN
Pernyataan_1;
ELSE
Pernyataan_2;
• Select CASE adalah pernyataan logika seperti IF...THEN tetapi pada perintah ini
digunakan untuk permasalahan dengan pilihan lebih banyak
Bentuk umum :
Case Pemilihan OF
Daftar_konstanta_1:Pernyataan_1;
Daftar_konstanta_2:Pernyataan_2;

Daftar_konstanta_n:Pernyataan_n;
[Else pernyataan_m]
End.

• Penggunaan FOR adalah salah satu bentuk penyataan pengulangan yang jumlah
pengulangannya sudah diketahui sebelum prose dimulai

6
Bentuk umum :
FOR pencacah : = Nilai_awal TO nilai_akhir DO pernyataan;
Atau
FOR pencacah : = Nilai_awal DOWNTO nilai_akhir DO
Pernyataan;

• Penggunaan REPEAT adalah pernyataan pengulangan yang digunakan karena


jumlah pengulangannya belum pasti, tetapi minimal proses akan minimal akan
dikerjakan sekali.
Bentuk umum :
REPEAT
Pernyataan;
UNTIL Ungkapan_nalar;

• Pengguanaan WHILE adalah bentuk penyataan pengulangan jika jumlah


pengulangan belum pasti dan pengujian kondisi dilakukan pada awal proses,
selama kondisi benilai benar mak proses pengurangan akan terus dikerjakan.
Bentuk umum :
WHILE Ungkapan_nalar DO
Pernyataan;

BAB III. PROSEDURE DAN FUNGSI


Fungsi dalam bahasa Pascal terdiri atas :
• Built-in Fungction : Fungsi yang telah disediakan oleh bahasa Pascal, yang
langsung dapat di implementasikan dalam bahasa pemograman.
• User Define Fungtion

A. FUNGSI ARITMATIKA

Fungsi yang berkaitan dengan operasi aritmatika yang disediakan oleh bahasa pascal
cukup banyak seperti :

• Fungsi ABS : untuk menghasilakan nilai absolut dari ekspresi numerik, hasil
bertipe sesuai dengan tipe argumen.
bentuk umum :
ABS (numeric expresion)

7
• Fungsi ArcTan : untuk menghasilkan nilai ArcTangen dari nilai trigonometri,
hasil bertipe real.
Bentuk umum :
Arctan (numeric expresion)
• Fungsi COS : untuk menghasilkan nilai Cosinus dari nilai trigonometri, hasil
bertipe real
• Fungsi SIN : untuk menghasilkan nilai Sinus dari nilai trigonometri, hasil bertipe
real.
• Fungsi Random : untuk menghasilkan nilai random antara 0 dan 1, hasil bertipe
word.
• Fungsi SQR : untuk menghasilkan nilai akar dari suatu numerik. Hasil bertipe
sesuai argumen.
• Fungsi Exp : untuk memperoleh eksposional dari argumen X, yaitu ex. hasil
bertipe real.
• Fungsi Frac : untuk mengambil bagian pecahan dari argumen data X. hasil beripe
real.
• Fungsi Int : untuk mengambil bagian bulat dari data X, hasil bertipe real.
• Fungsi LN : untuk memperoleh nilai logaritama natural (basis e), hasil bertipe
real.
• Fungsi Pi : untuk menghasilkan nilai 3.14159265365
• Fungsi Round : untuk memperoleh nilai pembulatan dari suatu bilangan real, hasil
bertipe real.
• Fungsi Sqrt : untuk memperoleh nilai akar kuadrat dari argumen X. hasil bertipe
real.
• Fungsi Trunc : untuk memperoleh bagian bulat dari X(real), hasil bertipe Longint.
• Fungsi Odd : untuk menentukan apakah argumen (tipe longint) berupa bilangan
ganjil atau tidak, hasil bertipe Boolean.

B. MENCIPTAKAN FUNGSI
Fungsi merupakan salah satu jenis subprogram. Jika dipanggil maka pengenal yang
merupakan nama fungsi akan menghasilkan sebuah nilai.
Bentuk umum :
Fungtion nama_fungsi (daftar_parameter_formal):tipe_hasil;
Bagian_deklarasi_fungsi;
Bagian_pernyataan_fungsi;

Bagian deklarasi berisi Consts, Var, type,label atau sub program lainnya.
Bagian Pernyataan diawali BEGIN dan diakhiri END.

C. MENCIPTAKAN PROSEDURE

Prosedure terdiri dari tiga bagian yaitu :


1. Judul Prosedure
2. Deklarasi
3. Pernyataan

Bentuk umum :
Procedure nama_procedure (daftar_parameter_formal);

8
Bagian_deklarasi_fungsi;
Bagian_pernyataan_fungsi;

Bagian deklarasi berisi Consts, Var, type,label atau sub program lainnya.
Bagian Pernyataan diawali BEGIN dan diakhiri END.

D. MELEWATKAN PARAMETER DENGAN NILAI ATAU REFERENSI

Parameter dapat dilewatkan dalam subprogram dengan dua cara yaitu:


1. Parameter lewat nilai : menyebakan nilai parameter aktual disalin dalam
parameter formal subprogram, yang berarti apabila nilai parameter didalam
subprogram diubah tidak akan merubah nilai parameter aktual pemanggil
subprogram.
2. Parameter lewat referesi : menyebakan nilai parameter aktual dilewatkan dalam
subprogram, yang berarti ada kaitan antara nilai parameter formal didalam
subprogram dengan nilai parameter aktual pemanggil subprogram. Parameter
formal harus diawali kata-kata tercadang Var, sedamg parameter aktual harus
berupa Variabel.

E. PEMBATASAN PENGENAL

Pembatasan pengenal ini dimaksudkan agar pengenal dapat dikenal pada suatu blok
tetapi tidak dikenal pada blok lainnya. Beberapa sifat pembatasan pengenal :
1. tidak dikenal diluar blok deklarasi
2. pengenal global dapat diakses disembarang bagian program.
3. pengenal yang dideklarasikan dalam subprogram dapat diakses oleh subprogram
yang didefinisikan didalamnya
4. jika subprogram didefinisikan sama maka kedua subprogram dapat memanggil
subprogram lainnya.

BAB IV. ARRAY DAN RECORD


Data terstruktur adalah tipe data yang dapat digunakan untuk menyimpan lebih dari
sebuah elemen. Beberapa tipe data :

A. ARRAY

Array satu dimensi : tipe indeks berupa ordinal, keculai tipe longint dan subrange
dari longint, dan bisa menggunakan tipe integer, char dan bolean, array satu dimensi
ini gambarannya seperti sebuah kolom memanjang, dan berisikan nilai tipe data
sejenis tetapi beda nilainya.

Memberikan nilai kearray dilakukan dengan cara :


a. melalui pernyataan penugasan
b. menggunakan pernyataan Read/readln.

Memperoleh elemen array dilakukan dengan cara :


a. melalui pernyataan penugasan

9
b. menggunakan pernyataanWrite/writeln.

Array dua dimensi : berbentuk matriks dimana ukuran matriksnya ditentukan


besarnya nilai data.

Memberikan nilai kearray dilakukan dengan cara :


a. melalui pernyataan penugasan
b. menggunakan pernyataan Read/readln.

Memperoleh elemen array dilakukan dengan cara :


a. melalui pernyataan penugasan
b. menggunakan pernyataanWrite/writeln.

Array sebagai parameter : dapat dilewatkan ke subprogram sebagai parameter, baik


sebagai nilai maupun variabel.
Bentuk umum :
Pada bagian deklarasi prosedure :
Procedure nama_array(Var daftar_parameter_tipe);

Pada saat pemanggilan prosedure :


Nama_array(daftar_parameter);

Penugasan Array : Penyalinan suatu array ke array lainnya dapat dilakukan melalui
instruksi penyalian satu persatu atau secara keseluruhan.

B. RECORD

Merupakan jenis data terstruktur yang mengandung sejumlah elemen dengan setiap
elemen mempunyai tipe berbeda. Dan elemen dalam record disebut field.

1. Mendefinisikan/mendeklarasikan record :
Bentuk umum :
Record
Daftar_field_1 : tipe_record_1;
Daftar_field_2 : tipe_record_2;

Daftar_field_n : tipe_record_n;
End.

2. Mengakses record :
Field dari suatu record dapat diakses dengan menggunakan :
Nama_variabel_record.nama_field
Menggunakan pernyataan With : digunakan untuk pengaksesan record, dan cukup
digunakan satu kali.
Bentuk umum :
With nama_record DO
Pernyataan
3. Menggunakan Variant record
Bertujuan untuk menghemat memory, karna suatu data berbeda dapat menempati
lokasi yang sama.

10
Catatan :
• Kemungkinan nilai dari tag bisa lebih dari 2
• Field yang berkaitan dengan Tag harus ditulis diantara tanda kurung
• Jika tag field tidak digunakan bagian deklarasi tag cukup ditulis ()
• Case pada Variant record tidak diakhiri dengan End.
Inisiasi data record
Pemberian nilai awal record dilaksanakan dalam deklarasi CONST, dan berdiri
sebagai konstanta bertipe.
Bentuk konstanta record :
Pengenal_record : tipe_pengenal
= field_1 : nilai_1;
field_2 :nilai_2;

field_n :nilai_n;

BAB V. FASILITAS DALAM UNIT CRT


A. MENGATUR JENDELA TEKS

Unit CRT berupa prosedur window untuk mengatur jendela teks.


Bentuk umum
Window(X1,Y1,X2,Y2:byte);
B. MENGATUR WARNA TEKS

Dilakukan dengan memanipulasi atribut elemen teks (karakter), prosedur yang


digunakan adalah TextAtrr (bertipe byte).
Daftar warna latar depan dan belakang
Bit Warna latar depan Bit Warna Latar
3 2 1 0 karakter 6 5 4 belakang karakter
0 0 0 0 Hitam 0 0 0 Hitam
0 0 0 1 Biru 0 0 1 Biru
0 0 1 0 Hijau 0 1 0 Hijau
0 0 1 1 Cyan 0 1 1 Cyan
0 1 0 0 Merah 1 0 0 Merah
0 1 0 1 Magenta 1 0 1 Magenta
0 1 1 0 Coklat 1 1 0 Coklat
0 1 1 1 Abu-abu 1 1 1 Abu-abu
1 0 0 0 Abu-abu muda
1 0 0 1 Biru muda
1 0 1 0 Hijau muda
1 0 1 1 Cyan muda
1 1 0 0 Merah muda

11
1 1 0 1 Magenta muda
1 1 1 0 Kuning
1 1 1 1 Putih

Bentuk umum :
Textbackground (warna : byte);
TextColor (warna : byte);
Prosedur Lowvideo : mengatur warna teks dalam intensitas rendah (warna tua)
Prosedur Highvideo : mengatur warna teks dalam intensitas tinggi (warna cerah)
Prosedur Normvideo : mengatur warna teks dalam keadaan semula.

C. MENEMPATKAN KURSOR KE SUATU LOKASI JENDELA LAYAR

Prosedur Goto XY : untuk menempatkan kursor pada posisi tertentu.


Bentuk umum :
Goto XY (X,Y :byte);
Fungsi Where X dan Where Y : untuk memperoleh posisi kursor.
Contoh :
X : = WhereX;
Y : = WhereY;
ClrScr : untuk menghapus layar
DelLine : untuk menghilangkan baris
Prosedur Insline : untuk menyisipkan baris kosong
D. MENGATUR DAN MEMERIKSA MODE TEKS

Prosedur TextMode : untuk mengatur mode teks


Bentuk Umum :
TextMode (Mode : integer);

E. FUNGSI YANG BERHUBUNGAN DENGAN TOMBOL

Fungsi Keypressed : untuk memeriksa ada tidaknya tombol yang ditekan, hasil
berupa bolean, true jika ditekan, dan false jika tidak.
Fungsi ReadKey : sebagai tombol papan ketik dan dapat dibaca tanpa karakternya
ditampilkan dilayar, juga digunakan untuk membaca tombol.
Prosedur Delay : untuk menunda eksekusi sesaat
Bentuk umum :
Delay (ms : word);

F. MENGATUR SUARA SPEAKER

Prosedur sound : menghasilkan bunyi atau suara, dalam satuan Hertz.


Bentuk umum :
Suond (hz : word);

G. PROSEDUR DAN FUNGSI LAIN

1. Variabel DirectVideo
2. Variabel CheckSnow
3. Variabel CheckEof

12
4. Variabel AssignCrt

BAB VI. PENGOLAHAN DATA DENGAN FILE


A. FILE BERTIPE

Tipe komponennya ditentukan oleh programmer.

1. Menentukan tipe komponen


Didefinisikan dengan cara :
File of tipe_data
2. Operasi file bertipe
a. Prosedur Assign : untuk mengkaitkan variabel file dan nama file
Bentuk umum : Assign (variabel_file, nama_file);
b. Prosedur Rewrite (variabel_file) dan Reset(variabel_file) : untuk membuka
file.
c. Write(varibel_file, variabel_komponen) dan Write(varibel_file,
variabel_komponen) : untuk mengakes data
d. Close (variabel_file) : untul menutup file
3. Prosedur Lainnya :
a. Prosedur seek
b. Prosedur filesize
c. Prosedur filepos
d. Prosedur erase
e. Prosedur rename
f. Prosedur truncate

B. FILE TEKS

1. Pendefinisian file teks : Menggunakan kata tercadang text.


Contoh : file_masuk : text;

13
2. Operasi file teks : sama dengan file bertipe
• Prosedur Assign
• Prosedur Rewrite (variabel_file) dan Reset(variabel_file)
• Append (variabel_file) : membuka sekaligus menambah isi file
• Write(varibel_file, karakter) dan Writeln(varibel_file,) atau
writeln(variabel_file,st).
• Read(varibel_file, karakter) dan Raeadln(varibel_file,) atau
readln(variabel_file,st).
• Close (variabel_file)
3. Prosedur Lainnya :
• Prosedur Settextbuff
• Prosedur Seekof
• Prosedur Eoln
• Prosedur Seekoln
• Prosedur Flush

C. FILE TAK BERTIPE

Merupakan cara pengaksesan disket secacar low-level. Dan digunakan untuk


menyalin sebarang file
Contoh :
Var
Proses : FILE
Artinya : veriabel file proses berjenis file tak bertipe.

Operasi file tak bertipe :


• Prosedur Assign
• Prosedur Rewrite (variabel_file, ukuran_record) dan Reset(variabel_file,
ukuran_record)
• Prosedur blokread(variabel_file, var_penampung, jumlah, [var_hasil])
• Prosedur blokwrite(variabel_file, var_penampung, jumlah, [var_hasil])
Prosedur Lainnya :
• Sama seperti prosedur lainnya file bertipe.

14
BAB VII. PEMOGRAMAN DENGAN POINTER
Pointer dapat diciptakan maupun dihapus selama eksekusi program, sehingga disebut
variabel dinamis. Total variabel dibatasi oleh kapasitas memory yang ada dikomputer,
variabel dinamis terdiri dari simpl (node), yang biasa berupa record.

A. PENDEFINISIAN POINTER
Ponter hanya menunjuk kesuatu lokasi data, tipe pointer didefinisikan dengan diawali
tenda caret (^) dan diikuti pengenal tipe.
Bentuk umum :
^pengenal_tipe

B. DAFTAR BERANTAI
Daftar berantai (linked list) merupakan salah satu bentuk struktur data dinamis yang
sederhana.
Menciptakan Variabel Dinamis : menggunakan Prosedur New.
Bentuk umum :
New (variabel_pointer)
Membuat Daftar Berantai : dimulai dengan memberi nilai NIL.
Menampilkan isi daftar berantai :
1. Variabel pointer diatur menunjuk lokasi yang ditunjuk
2. Jika Masih belum berisi NIL, maka cetak isi simpul, dan variabel pointer digeser
menunjuk lokasi yang ditunjuk oleh pointer lanjutan
3. Tujuan pembuatan variabel pointer, agar selama proses tetap menunjujk lokasi
yang sama.
Bentuk umum :
Ptrsemen : = ptrkepala;
While ptrsemen <> Nil DO

15
Begin
Writeln (ptrsemen^ nama, ptrsemen^ jabatan);
Ptrsemen : = ptrsemen^lanjutan;
End;
Readln (ptrbaru^nama);

C. VARIABEL DINAMIS
Heap adalah tempat menyimpan varibel dinamis, Heapptr adalah pointer bawaan
yang terdapat pada heap, bersifat Global, dan selalu menunjuk memory terendah.
Dispose atau freemem dan Mark&release.
Bentuk umum prosedur mark :
Mark(var_ptr)
Bentuk umum prosedur release :
release(var_ptr)
Bentuk umum prosedur dispose :
Dispose(var_ptr)
Semua Var_ptr diatas bertipe pointer

Prosedur getmem dan freemem


Freemem untuk mengahpus variabel dinamis dan getmem untuk menciptakan variabel
dinamis, dengan ukuran yang bisa ditentukan.
Bentuk umum :
GetMem (var_ptr, ukuran);
FreeMem (var_ptr, ukuran);
Var_ptr : Variabel pointer dan Ukuran bertipe Word
Fungsi Maxavail dan MemVail : sebagai alokasi variabel dinamis, dan tanpa
argumen dan/parameter.
Maxavail : untuk memperoleh ukuran blok bebas terbesar dalam heap
Memavail : untuk memperoleh total memori dalam heap.

16
BAB VIII. MANIPULASI MEMORI
Pascal mempunyai unit system yang berguna untuk memanipulasi memori komputer,
seperti :
a. Membaca dan mengubah isi suatu memory secara langsung
b. Memperoleh alamat suatu variabel, konsatanta bertipe atau subprogram
c. Memperoleh ukuran memori yang digunakan untuk suatu tipe, konstanta bertipe
atau variabel.

A. MEMORI KOMPUTER IBM


Setiap memori komputer berukuran 1 byte ( 8 bit). dan masing-masing memiliki
alamat, setiap alamat memilki bagian yang disebut segmen atau ofset. Notasi untuk
menyatakan alamat memori :
Segmen : ofset
Organisasi memori dalam komputer terdiri dari 16 blok, setiap blok mengandung 64
KB memori (total 1 MB)
Blok 0 RAM sampai 64 KB
Blok 1 RAM sampai 128 KB
Blok 2 RAM sampai 192 KB
Blok 3 RAM sampai 256 KB
Blok 4 RAM sampai 320 KB
Blok 5 RAM sampai 384 KB
Blok 6 RAM sampai 448KB
Blok 7 RAM sampai 512 KB
Blok 8 RAM sampai 576 KB
Blok 9 RAM sampai 640 KB
Blok A Memori perluasan untuk video
Blok B Memori standar untuk video
Blok C
Blok D Ekspansi ROM untuk keperluan lain
Blok E

17
Blok F Sistem ROM_BIOS dan ROM-BASIC

Peta memori dalam turbo pascal


Memori terendah

Awal kode objek


Akhir kode objek
Kode unit n
......
Kode unit 1
Kode unit sistem
Awal dari data
Akhir dari data
Stack berkembang ke Stack bebas
memori rendah ukuran Stack
penampung = 0 jika tidak
Penampung overlay
ada overlay
Awal heap
Stack berkembang ke
Puncak heap
memori tinggi
Memori tersisa
Memori Tinggi Daftar blok bebas

B. ALAMAT, SEGMEN ATAU OFSET


Fungsi yang berkaitan dengan ketiga hal tersebut :
Addr (X) : untuk memperoleh alamat dari objek X
Seg (X) : untuk memperoleh Segmen dari objek X
Ofs (X) : untuk memperoleh Ofset dari objek X
Cseg : untuk memperoleh isi yang terkandung dalam register CS (Code segment)
Dseg : untuk memperoleh isi yang terkandung dalam register DS (Data segment)
Sseg : untuk memperoleh isi yang terkandung dalam register SS (Stack segment)
Sptr : untuk memperoleh isi yang terkandung dalam register SP ( Stack Pointer)

18
Sizeof (objek) : untuk memperoleh ukuran memori yang diperlukan oleh objek
argumennya.

MENGISI SUATU DATA TERSTRUKTUR DENGAN NILAI YANG SAMA


Untuk inisialisasi terhadap tipe data tersetruktur dapat digunakan Prosedur fillchar.

19
Bentuk umum :
Fillchar (var_x, cacah, nilai)
Jika prosedur ini dipanggil maka memori pertama sampai kecacah dari var_x akan
diisi dengan nilai.
MENYALIN ISI SEJUMLAH MEMORI
Isi sejumlah memori dapat disalin kelokasi lain dengan prosedur Move.
Bentuk umum :
Move(var_1, var_2);

MANIPULASI DATA BERTIPE WORD


Tipe Word mengandung 2 buah byte, dlam bentuk heksa desimal word dinyatakan
dalam 4 digit.

Fungsi HI :untuk memperoleh byte tertinggi


Bentuk umum :
Hi (X), dengan x berupa sebarang ungkapan bertipe word.
Fungsi LO :untuk memperoleh byte terendah
Bentuk umum :
Lo (X), dengan x berupa sebarang ungkapan bertipe word.
Fungsi SWAP :untuk memperoleh nilai tipe word yang merupakan pertukaran byte
terendah dan byte tertinggi dari X.

MENGUBAH SEGMEN OFSET MENJADI ALAMAT


Untuk mengubah suatu alamat alternatif yang terdiri dari segmen dan ofset menjadi
sebuah alamat bertipe pointer dapat digunakan fungsi ptr.
Bentuk umum :
Ptr (segmen, ofset)

MENGAKSES MEMORI DAN PORT SECARA LANGSUNG


Fasilitas yang disediakan :
• Mem : untuk mengakses sebuah byte memori yang mempunyai alamat segmen
: ofset
• MemW : untuk mengakses sebuah data bertipe Word (2 byte) yang berada
dalam alamat awal segmen : ofset
• MemL : untuk mengakses sebuah data bertipe longint (4 byte) yang berada
dalam alamat awal segmen : ofset

Fasilitas untuk mengakses Port secara langsung :


PORT[nomor_port]
PORTW[nomor_port]
Komponen array PORT bertipe byte dan PORTW bertipe word.

KLAUSA ABSOLUTE
Bertujuan untuk memungkinkan pendeklarasian variabel absolut, yaitu variabel yang
tertinggal pada memori yang dikehendaki oleh programmer.
Bentuk deklarasi :
Var_absolut : tipe_variabel ABSOLUTE segmen : ofset;

20

You might also like