"Manners Before Knowledge"

Sabtu, 19 Maret 2011

TURBO PASCAL

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. 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
2.Edit
3.Search
4.Run
5.Compile
6.Options
7.Window
8.Help


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



















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


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
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)
·         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);
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
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.
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
karakter
Bit
Warna Latar belakang karakter
3
2
1
0
6
5
4
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

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





































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






































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

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 bebas
Stack
Penampung overlay
Awal heap
Puncak heap
Memori tersisa
Daftar blok bebas









Stack berkembang ke memori rendah ukuran penampung = 0 jika tidak ada overlay
Stack berkembang ke memori tinggi

Memori Tinggi


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


Share:

0 komentar:

Posting Komentar

Lautan Jilbab

Pengunjung Blog

Posted by Arip. Diberdayakan oleh Blogger.

Pengikut