You are on page 1of 56

1

MODUL PEMROGRAMAN DASAR


PASCAL dan DELPHI 7








Guru Mata Palajaran

HERUL HERDIANA






SMK HANDAYANI BANJARAN
TEKNIK KOMPUTER JARINGAN ADMINISTRASI PERKANTORAN
BANDUNG
2010


2

KATA PENGANTAR

Bissmillahirrahmanirrahim
Puji dan syukur kita panjatkan ke hadirat Allah SWT, Shalawat serta salam
senantiasa tercurah limpah kepada nabi besar kita Muhammad SAW, kepada sahabatnya
dan sampai kepada kita selaku umatnya, Amin.
Alhamdullilah, setelah melakukan pembelajarann dan praktik, akhirnya selesai
juga modul Pemrograman Dasar Pascal dan Delphi, yang akan Kami gunakan di
lingkungan SMK HANDAYANI Banjaran. Kedua mata pelajaran ini sengaja
diperingkas agar siswa dapat memahami dasar dari pada kedua Pemrograman tersebut.
Pada modul ini, Siswa ditekankan untuk lebih memperdalam tanpa menunggu
Guru Mata Pelajaran yang memberikan materi pada Mata Pelajaran Pemrograman ini.
Penulis menyadari bahwa isi modul ini jauh dari sempurna, oleh karena itu Penulis
sangat menerima saran dan kritik untuk memperbaiki isi dari pada modul ini.
Mudah-mudahan dengan mempelajari isi modul ini, dapat meningkatkan
wawasan akan Pemrograman bagi Siswa yang baru memulai mempelajari
Pemrograman, terutama yang dibahas pada modul ini yang seyogyanya hanya
didapatkan di Perguruan Tinggi saja. Akhir kata Penulis mengucapkan sekian dan
terima kasih.






Dadang Hermawan, S.Pd
Kepala SMK HANDAYANI Banjaran
Arjasari, Juni 2010
Penyusun,



Herul Herdiana
Mobile : 0857.2006.6481

3




MODUL 1
PENDAHULUAN

Pascal merupakan suatu bahasa komputer tingkat tinggi yang dibuat sekitar tahun
1970 oleh Niklaus Wirth dan digunakan untuk pendidikan komputer. Nama Pascal
diambil dari seorang ahli matematika yang bernama Blaise Pascal yang menemukan mesin
hitung pertama. Bahasa Pascal dirancang untuk menyelesaikan masalah dari berbagai
kalangan pemakai, mulai dari para mahasiswa, pendidik, dan ilmuwan. Salah satu kompiler
pascal yang terkenal dan tercepat adalah Turbo PASCAL yang dibuat oleh perusahaan
Borland.
Adakah versi Turbo Pascal untuk pemrograman Visual ?
Pada trend pemrograman Visual, perusahaan Borland mengeluarkan Borland Delphi yang
menggunakan dasar dialek Pascal pada lingkungan pemrograman Visual. Apa artinya Pascal
adalah bahasa pemrogram terstruktur ? Pascal adalah suatu bahasa pemrograman terstruktur.
Hal tersebut berarti semua program yang anda buat harus terstruktur dan teratur, dalam hal
ini ada pemakaian goto dan jump.
Bagaimana Struktur program pascal yang paling sederhana ?
Perintah Input :
Perintah Pascal yang digunakan untuk memasukkan/menginputkan data.
Bentuk perintah:
Read dan Readln
Struktur penulisan:
Read(nama variabel);
Readln(nama Variabel)
Perintah Output:
Perintah Pascal yang digunakan untuk menampilkan/mengoutputkan data.
Bentuk perintah:
Write : setelah menampilkan data atau teks, kursor berada tepat disamping kanan data yang
ditampilkan.
Write : setelah menampilkan data atau teks, kursor berada pada baris berikutnya.
Struktur penulisan:

4

write(nama variabel);
write(teks);
writeln(nama Variabel);
writeln(teks);

Contoh:
Buat program sederhana untuk Menghitung Luas Persegi Panjang:
Program LuasPersegiPanjang;
Var
Luas, Panjang, Lebar : integer;
Begin
Readln(panjang);
Readln(Lebar);Luas:= Panjang*Lebar;
Writeln(Luas Persegi Panjang adalah:,Luas);
Readln;
End.

Tampilan pada lembar kerja Pascal,
Menjalankan program dengan perintah:
Ctrl+F9(tekan tombol Ctrl dan F9 bersama-sama).
Struktur program pascal yang paling sederhana adalah :

uses ...;
var ...;
begin
.... {Your program is here}
end.

Adapun struktur dasar suatu program pascal adalah sebagai berikut :
program ... ; { Program heading }
uses ... ; { Uses clause }
label ... ; { Labels }
const ... ; { Constants }
type ... ; { Types }
var ... ; { Variables }
procedure ... ; { Procedures }
function ... ; { Functions }

5

begin
statement; { Statements }
...
end.

Program heading
Judul program dalam Turbo Pascal bersifat optional dan tidak ada pengaruhnya
dalam program. Jika ditulis akan memberikan nama program dan suatu daftar parameter
optional dimana program itu berkomunikasi. Daftar itu terdiri dari sederetan
indentifier yang diakhiri dengan tanda kurung dan dipisahkan dengan tanda koma.
Contoh :
Program Perhitungan (Input,Output);

Uses Clause
Bagian uses clause digunakan untuk menentukan library yang dibutuhkan saat
proses program. LIBRARY merupakan file penyimpan subroutine yang secara
berulang digunakan saat proses program. Library ini diistilahkan sebagai unit dalam
Turbo PASCAL yang terdiri dari SYSTEM, OVERLAY, GRAPH, DOS, CRT yang
ditempatkan dalam file TURBO.TPL.
Contoh :
Uses Crt; (*menggunakan Unit Crt *)

Perhatian :
Unit system merupakan unit yang secara otomatis akan disertakan dalam
setiap program, unit inilah mengatur semua perintah dasar input dan output pada Pascal.
Sedangkan unit-unit lain hanya akan disertakan bila kita pilih pada bagian uses.
Declaration Bagian ini meliputi deklarasi untuk label, const, type, var, procedure
dan function.Syarat terpenting dalam pembentukan suatu program adalah, bahwa setiap
variabel, type non-standard, label, procedure non-standard, serta function non-standard
yang dipakai didalamnya harus nyatakan (deklarasi) terlebih dahulu pada bagian deklarasi.
Setiap deklarasi tersebut harus bersifat unik (tidak boleh serupa satu sama yang
lain). Penulisan nama dalam deklarasi tersebut harus memenuhi syarat-syarat sebagai
berikut :
panjang nama maximum 63 character, diawali dengan alphabet
tidak ada special character kecuali tanda garis bawah ("_")

6

tidak boleh serupa dengan reserved word (kata tercadang)
tidak boleh serupa dengan indentifier lainnya.

Variabel Declaration
Setiap variabel yang digunakan dalam program harus didefinisikan terlebih dahulu sebelum
digunakan. Cara penulisan ini adalah :

Var
<nama var> : <type variable>;
Statement

Bagian ini merupakan inti dari program. Seluruh perintah dan urutannya serta proses
Input/Output dalam program perlu disusun secara teratur oleh penyusun program. Segala
yang ada pada bagian uses maupun deklarasi merupakan pendukung terhadap isi program.
Bagaimana membuat keterangan ?
Untuk membuat program anda menjadi mudah dibaca dan dimengerti, maka perlu
diberi keterangan yang akan diabaikan oleh kompiler. Untuk membuat keterangan gunakan
tanda kurawal { ini adalah keterangan }, atau (* ini adalah keterangan *). Type data apa saja
yang disediakan Turbo Pascal ?
Adapun type variable yang disediakan pada TURBO PASCAL :

1. Ordinal types
Type data yang mempunyai urutan pasti, dan masih terbagi menjadi
- Integer
Type variable yang beguna untuk pengolahan data yang bulat, type ini masih terbagi atas
berberapa menurut jangkauan data dan ukurannya :
Type Jangkuan Ukuran
Shortint -128..127 8 bit
Integer -32768..32767 16 bit
Longint -2147483648..2147483647 32 bit
Byte 0..255 8 bit
Word 0..65535 16 bit
- Char
Type variabel yang berguna untuk pengolahan character ASCII, type character ini
penulisannya ditandai dengan dua buah petik tunggal seperti : 'A', '3','*',#7 untuk
menyatakan ' harus ditulis ''''
- Boolean

7

Type varibale yang berguna untuk pengolahan hal yang hanya mempunyai dua
ketentuan yaitu benar(TRUE) dan salah(FALSE) saja.
2. Real types
Type variable yang beguna untuk pengolahan data yang tidak bulat, untuk type real ini juga
terbagi atas beberapa :
Type Jangkauan Ketelitian Ukuran
Real 2.9e-39..1.7e38 11-12 digit 6 bit
Single 1.5e-45..3.4e38 7-8 7-8 digit 4 bit
Double 5.0e-324..1.7e308 15-16 digit 8 bit
Extended 3.4e-4932..1.1e4932 19-20 digit 10 bit
Comp -9.2e18..9.2e18 19-20 digit 8 bit

Untuk pengolahan type variabel diatas di sediakan berbagai jenis operator antara lain :
Operator Integer Type Real Type
+ Penjumlahan Penjumlahan
- Pengurangan Pengurangan
* Perkalian Perkalian
/ Pembagian Pembagian
DIV Hasil bagi
MOD Sisa Bagi

Operator Integer Type Boolean Type
NOT Bitwise Negation Logical Negation
AND Bitwise AND Logical AND
OR Bitwise inclusive OR Logical inclusive OR
XOR Bitwise exclusive OR Logical exclusive OR
SHL Bitwise shift-left
SHR Bitwise shift-right

Operator relasi yang mengembalikan hasil Boolean
Operator Fungsi
:= Menyatakan nilai
= Sama dengan
<> Tidak sama dengan
< Lebih kecil
> Lebih besar
<= Lebih kecil atau sama dengan

8

>= Lebih besar atau sama dengan


Bagaimana menampilkan tulisan ke layar ?
Pascal menyediakan perintah Write dan Writeln yang dapat anda gunakan
untuk menampilkan tulisan ke layar. Perintah Readln dapat digunakan untuk membaca
masukan dari pemakai dan menyimpannya ke suatu variabel.
Kunci Fungsi Ekivalen menu
F1 Mengaktifkan jendela pertolongan. File / Save
F2 Menyimpan berkas yang ada pada editor. File / Load
F3 Memanggil program kedalam editor. Run / Go to cursor
F4 Mengeksekusi program sampai posisi kursor. Run / Trace into
F5 Memperbesar atau memperkecil jendela yang aktif. Compile / Make
F6 Mengganti jendela yang aktif. File / Pick
F7 Melacak kedalam subrutin. File / user screen
F8 Melompati pemanggil subrutin. Compile
F9 Mengaktifkan perintah Make Run / Program reset
F10 Berpindah dari menu-menu ke jendela yang aktif.

Alt + F1 Memanggil jendela pertolongan yang terakhir dibaca.

Alt + F3 Memilih berkas untuk dimuat.

Alt + F5 Memperlihatkan hasil eksekusi.

Alt + F6 Mengganti isi jendela yang aktif.

Alt + F9 Mengkompilasi program.

Alt + B Mengaktifkan menu Break / Watch.

Alt + C Mengaktifkan menu compile.

Alt + D Mengaktifkan menu debug.

Alt + E Mengaktifkan editor.

Alt + F Mengakaktifkan menu file.

Alt + O Mengaktifkan menu option.

Alt + R Mengaktifkan menu run.


9

Alt + X Keluar dari Turbo Pascal dan kembali ke DOS.

Ctrl + F1 Menampilkan menu pertolongan bahasa.

Ctrl + F2 Menghentikan pembetulan.

Ctrl + F3 Menampilkan isi tumpukan. Debug / Call Stack
Ctrl + F4 Melakukan penghitungan atau mengubah nilai peubah.. Debug / Evaluate
Ctrl + F7 Menambahkan ungkapan pada jendela watch. . B / Add Watch
Ctrl + F8 Toggles Breakpoint..
B / Toggle
breakpoint
Ctrl + F9 Menjalankan program.. Run / Run
Ctrl + F10 Menampilkan versi layar monitor.

Nah, itu tadi adalah beberapa hotkey yang ada pada Turbo Pascal,
Fungsi MenuBar Program Pascal
1. Menu File : Didalam menu File banyak submenu yang bisa dipilih misalkan saja
perintah Load / F3 yang berfungsi untuk memanggil berkas yang sudah tersimpan, dan
banyak lainnya.
2. Submenu Load : Pilihan ini digunakan untuk memanggil program dari suatu folder
atau directory ke dalam editor. Didalam submenu ini anda juga bisa memilih submenu
yang lain dengan hanya menekan tombol huruf depan dari submenu yang dituju,
contohnya anda mau ke submenu New, maka anda tinggal menekan huruf N.
3. Submenu Pick : Pilihan yang satu ini digunakan untuk mengambil salah satu dari
beberapa buah program yang sebelumnya telah dimuat ke dalam jendela Edit. Hal ini
ditujukan agar kita tidak perlu repot-repot lagi mencarinya di submenu load.
4. Submenu New :Program yang ada di editor akan dihapus dan program yang akan anda
tulis dianggap sebagai program yang baru dengan nama NONAME.PAS, nama ini bisa
anda rubah ketika anda mau menyimpannya.
5. Submenu Save [F2] : Pilihan ini digunakan untuk menyimpan suatu program yang
sudah di edit ke dalam cakram atau folder, jika nama program itu masih
NONAME.PAS maka Turbo Pascal akan menanyakan pada anda, nama apa yang akan
anda berikan pada program yang akan disimpan tersebut. Atau anda juga bisa menekan
tombol F2.
6. Submenu Write to : pilihan ini digunakan untuk menggantikan program lama dengan
program yang baru (istilah kerennya Overwrite). Jika nama program anda sudah

10

ada pada cakram atau folder maka ada verifikasi dari Turbo Pascal untuk penggantian
nama.
7. Submenu Directory : pilihan ini digunakan untuk menampilkan direktori dan nama-
nama file yang anda inginkan. Anda juga bisa menggunakan pilihan Load.
8. Submenu Change Dir : Pilihan yang satu ini digunakan untuk menampilkan direktori
yang sedang digunakan dan juga bisa digunakan untuk mengganti nama direktori yang
baru.
9. Submenu OS shell : Perintah ini digunakan bagi anda yang ingin ke tampilan DOS
tetapi tanpa mematikan Turbo Pascalnya, untuk kembali lagi ke Turbo Pascal, anda
tinggal mengetikan exit, tetapi biasanya ketika anda sedang membuat suatu program
atau mengedit suatu program perintah ini tidak dapat dijalankan karena kurangnya
kapasitas memory.
10. Submenu Quit [Alt + x] : Dari namanya sudah jelas, perintah ini digunakan untuk
keluar dari Turbo Pascal dan kembali ke prompt DOS.
11. Menu Edit : Perintah edit ini digunakan untuk mengaktifkan editor Turbo Pascal.
12. Menu Run [Ctrl + F9] : Perintah ini digunakan untuk mengeksekusi program yang
sudah anda buat. Anda juga bisa menekan Ctrl + F9 untuk mengeksekusi program
anda.
13. Submenu Program Reset [Ctrl + F2] : Pilihan ini digunakan untuk memberitahukan
Turbo Pascal bahwa anda selesai dengan pembetulan-pembetulan dan menginisialisasi
debugger untuk operasi yang lain. Pilihan ini sekaligus membebaskan pengingat yang
telah dialokasikan dan menutup semua berkas, tetapi tidak merubah nilai-nilai perubah.
Pilihan ini sangat berguna jika anda ingin menjalankan pilihan File / OS shell.
14. Submenu Go to Cursor [F4] : Pilihan ini digunakan untuk memulai / melanjutkan
eksekusi program dimulai dari posisi saat eksekusi dimulai sampai tempat kursor
berada. Jika kursor berada pada statement yang bersifat executable, seperti spasi atau
baris komentar, maka eksekusi akan dilanjutkan sampai statement yang bersifat
executable.
15. Submenu Trace Into [F7] :Perintah ini digunakan untuk mengeksekusi baris
berikutnya, jika ada pemanggilan ke suatu subrutin, maka pelacakan akan dimulai dari
statement pertama dari subrutin tersebut. Sekaligus juga akan memuat berkas-berkas
atau unit Include jika dimungkinkan.
16. Submenu Step Over : Step over ini memiliki cara kerja yang hampir sama dengan
Trace Into, hanya saja jika statement adalah sebuah prosedur atau fungsi, maka

11

keseluruhan subrutin akan dikerjakan sekaligus dan debugger akan berhenti pada
statement sesudah pemanggilan ke subrutin.
17. Submenu User screen [Alt + F5] : Pada umumnya perintah ini digunakan untuk
melihat hasil dari program yang telah compile dan kita run. Pada tampilan ini IDE
[Integrated Debugger Environment] berpindah-pindah pada saat anda menjalankan
dan mendebug program. Perintah ini juga digunakan oleh File / OS shell Tampilan
User Screen.
18. Menu Compile [Alt + F9] : Perintah ini digunakan untuk mengkompile program atau
bisa juga kita bilang kalau program yang telah kita buat tadi dengan bahasa pascal di
terjemahkan kedalam bahasa komputer agar si komputer ini mengerti apa-apa saja
perintah kita.
19. Submenu Make : Pilihan ini digunakan untuk mengaktifkan perintah make, jika file
yang primer telah diberi nama, maka file ini akan dikompilasi, jika tidak maka file yang
terakhir yang sedang dimuat di editor akan dikompilasi.. Pilihan ini sangat berguna jika
terdapat beberapa program yang secara fisik terpisah tetapi secara logikanya
merupakan suatu kesatuan.
20. Submenu Build : Perintah ini mirip dengan perintah make, hanya saja perintah build ini
sifatnya bebas, sedangkan perintah make hanya akan mengkompilasi file-file selain file
yang digunakan.
21. Submenu Destination [Memory] : Perintah ini secara umumnya hanya berfungsi untuk
memilih apakah hasil kompilasi akan disimpan dalam cakram atau folder sebagai file
yang bertipe .EXE atau hanya di pengingat utama yang akan hilang pada saat anda
keluar dari Turbo Pascal.
22. Submenu Find Error : Dari namanya anda pasti sudah tahu, yah perintah ini digunakan
untuk menentukan lokasi kesalahan pada saat program dijalankan [run time error].
Lokasi kesalahan dinyatakan dengan format seg:off, misalnya 2BE0:FFD4. jika anda
kembali ke IDE, turbo pascal akan menempatkan kursor pada baris dimana terjadi
kesalahan. Jika anda terlanjur memindahkan kursor sembarangan maka anda bisa
memindahkan kembali kursor ke tempat kesalahan dengan menekan Ctrl + Q + W.
23. Submenu Primary File : Perintah ini digunakan untuk menyatakan bahwa file .PAS
akan dikompilasi pada saat make [F9] atau build [Alt + C + B] diaktifkan.
24. Submenu Get info : Tidak salah lagi, perintah ini digunakan untuk menampilkan
jendela informasi dari program .PAS yang sedang anda gunakan, termasuk ukuran
kode sumber [dalam sumber dan baris], ukuran file .EXE atau .TPU dalam byte dan
data.

12

25. Menu Options : Pilihan pada menu yang satu ini berfungsi mengkonfigurasi untuk
mengoptimalkan penggunaan fasilitas-fasilitas pada turbo pascal.
26. Submenu Compiler : Pilihan ini didalamnya pun masih banyak perintah yang lainnya
seperti pengecekan batas, pengecekan tumpukan dll, seperti yang anda lihat pada
gambar di atas. contohnya pengecekan batas [Range checking] adalah sama dengan
{$R}. sekarang saya akan coba jelaskan satu persatu agar lebih jelas dari masing-masing
penggunaan ini.
27. Range checking [Off]: Perintah ini digunakan untuk menghidupkan atau mematikan
pengecekan batas. Jika dihidupkan, kompiler akan membangkitkan kode yang akan
mencek batas index pada array dan string dan juga nilai yang dihasilkan dalam suatu
statement pemberian. Pilihan ini sama dengan petunjuk kompiler {$R}.
28. Stack checking [On]: Digunakan untuk menghidupkan atau mematikan pengecekan
kesalahan operasi I/O. Jika dihidupkan pada saat terjadi kesalahan operasi I/O proses
akan langsung dihentikan. Jika dimatikan, kode kesalahan akan tersimpan dalam fungsi
IO Result. Pilihan ini sama dengan penunjuk kompiler {$I}.
29. Force far calls [Off]: Digunakan untuk memilih model pemanggilan terhadap prosedur
atau fungsi yang telah dikompilasi. Model pemanggilan bisa secara far atau near.
Pilihan ini sama dengan penunjuk kompiler {$F}.
30. Allign Data [Word] : Digunakan untuk mengatur cara penyimpanan perubah dan
konstanta bertipe dari byte ke word atau sebaliknya. Pilihan ini sama dengan penunjuk
kompiler {$A}.
31. Overlay Allowed [Off] : Mengaktifkan atau menonaktifkan pembakitan kode Overlay.
Pilihan ini sama dengan penunjuk kompiler {$O}.
32. Var string checking [Strict] : Digunakan untuk mengendalikan cara pengecekan data
string yang digunakan sebagai parameter berubah. Pilihan sama dengan penunjuk
kompiler {$V}.
33. Boolean Evaluation [Short Circuit] : Digunakan untuk memilih pembangkitan kode
pada saat operasi logika [operasi Boolean] dijalankan. Pilihan ini sama dengan
penunjuk kompiler {$B}.
34. Numeric Processing [Software] : Digunakan untuk memilih pembangkitn kode operasi
titik mengambang [floating point] yang didukung oleh Turbo Pascal. Pilihan ini juga
sama dengan penunjuk kompiler {$N}
35. Emulation [On] : Mengaktifkan atau menonaktifkan linking dengan run time yang
mengemulasikan ke prosessor numeric 8087. pilihan ini sama dengan penunjuk
kompiler {$E}

13

36. Debug Information [On] : Digunakan untuk membangkitkan atau tidak
membangkitkan informasi pada saat didalam program terjadi kesalahan. Pilihan ini
sama dengan penunjuk kompiler {$D}.
37. Local Symbol [On] : Digunakan untuk mengaktifkan atau menonaktifkan symbol
informasi local.
38. Conditional defines: Digunakan untuk menyatakan penunjuk kompiler berkondisi.
39. Memory sizes: Digunakan untuk mengkonfigurasi peta pengingat. Dengan penunjuk
kompiler{$M}.
40. Stack Size: ukuran segmen tumpukan maksimum 64 K dengan standart 16 K.
41. Low Heap limit: ukuran heap minimum standart adalah 0 K.
42. High Heap limit: ukuran heap maksimum adalah 655360 byte.
43. Submenu Linker Pilihan ini digunakan untuk mengatur konfigurasi built in linker.
44. Map File [Off] : Menentukan berapa banyak informasi dalam berkas peta map yang
akan dihasilkan. Berkas peta akan ditempatkan dalam direktori .EXE dengan akhiran
.MAP
45. Segment : Informasi segment [Nama, Ukuran, Awal dan Akhir segment dan kelasnya].
46. Public : Informasi segment, semua nama-nama symbol dan alamatnya dan titik
masukkan program.
47. Detailed : segement, informasi symbol dan titik masukkan program dan nomor
barisnya dan tabel-tabel modul.
48. Submenu Environment Pilihan ini digunakan untuk memberitahukan Turbo Pascal
dimana bisa ditemukan berkas yang akan dikompilasi, di link dengan dilengkapi dengan
menu-menu pertolongan.
49. Config Auto Save [Off] : Digunakan untuk mencegah kehilangan setting komfigurasi
yang telah anda lakukan.
50. Edit Auto Save [Off] : Digunakan untuk mencegah kehilangan berkas yang disebabkan
oleh penyimpanan otomatis pada saat anda menggunakan Run / Step Over atau Run /
Run
51. Backup Files [On] : Secara standard, turbo pascal akan membangkitkan berkas backup
pada saat anda menyimpan berkas. Yang biasa kita lihat dengan .BAK
52. Tab Size [2] : Digunakan untuk mengatur ukuran Tab pada editor. Ukuran yang
diperbolehkan adalah 2 sampai 16 dengan defaultnya 8.
53. Zoom Windows [Off] : Jika di On kan maka, Jendela Edit, Watch, dan Output akan
diperluas sampai satu layar penuh.

14

54. Screen Size [25 line] : Digunakan untuk memilih ukuran layar. Dengan standard 25
baris, 43 baris [EGA] atau 50 baris [VGA]. Pilihan ini hanya bisa diaktifkan jika
perangkat kerasnya mendukung.
55. Submenu Directories : Pilihan menu ini digunakan untuk menunjukkan kepada Turbo
Pascal lokasi setiap direktori yang diperlukan.
56. Turbo directory : Digunakan untuk menemukan berkas konfigurasi [.TP] dan berkas
pertolongan [Turbo.HLP].
57. EXE & TPU directory : Digunakan untuk menyimpan berkas .EXE dan .TPU.
58. Include Directories : Digunakan untuk menentukan direktori yang berisi Include File.
59. Unit Directories : Digunakan untuk memberitahu TP dimana berkas-berkas unit
berada.
60. Object Directories : Digunakan untuk menentukan direktori yang berisi berkas [.OBJ].
61. Pick file name : Digunakan untuk menentukan nama dan lokasi pick file.
62. Current pick file : Digunakan untuk menunjukkan nama dan lokasi pick file, jika ada.
63. Submenu Parameters : Digunakan untuk memberikan parameter baris perintah
[Command Line parameters] pada program-program yang akan dijalankan.
64. Submenu Save Option : Digunakan untuk menyimpan semua pengaturan dalam menu
Compiler, Environment, dan Directories dalam berkas konfigurasi [standardnya adalah
TURBO.TP]
65. Submenu Retrieve Options :Digunakan untuk memuat berkas konfigurasi yang
sebelumnya disimpan dengan pilihan save.
66. Menu Debug : Pilihan-pilihan yang ada dalam menu ini terutama digunakan untuk
melacak nilai-nilai perubah, mencari letak suatu fungsi atau prosedur dan lain-lain.
67. Submenu Evaluate [Ctrl + F4] : Dengan pilihan ini anda akan dibawa ke suatu jendela
dengan 3 kotak yang memungkinkan anda untuk menuliskan sembarang nama perubah
/ ungkapan, menunjukan nilai perubah / ungkapan saat itu an memungkinkan anda
untuk memberikan nilai yang baru untuk sembarang perubah.
68. Submenu Call Stack [Ctrl + F3] : Pada saat anda melakukan debugging, suatu jendela
yang menunjukan daftar pemanggil prosedur dan fungsi akan terlihat.
69. Submenu Find Procedure : Memungkinkan anda untuk menuliskan nama prosedur
dan fungsi dan kemudian mencari dalam program yang sedang anda aktifkan.
70. Submenu Integrated Debugging [On] Jika dipilih On, debugging dilakukan
menggunakan IDE.

15

71. Submenu Stand Alone Debugging [Off] Jika diset Off, dan compile / destination
dipilih ke Disk debug information akan ditambahkan ke dalam berkas .EXE untuk
digunakan oleh Turbo Debugger.
72. Submenu Display Swapping [Smart] Penampilan pada layar bisa dipilih salah satu dari
3 pilihan, Smart, Always atau Never.
Smart : debugger akan melihat kode yang sedang dieksekusi untuk melihat apakah
perlu menampilkan hasilnya ke layar.
Always : pilihan ini akan menyebabkan layar dipindah setiap kali suatu statement
dieksekusi.
Never : pilihan ini akan memberitahukan debugger untuk tidak melakukan
pemindahan layar.
73. Submenu Refresh Display : Pilihan ini digunakan untuk memanggil kembali layar IDE.
Hal ini perlu, terutama jika program anda merusak tampilan yang sudah ada dalam
layar.



Menu Break / Watch
74. Submenu Add Watch [Ctrl + F7] : Digunakan untuk menambahkan rinci data,
perubah atau ungkapan kedalam jendela watch
75. Submenu Delete Watch : Untuk menghapus ungkapan dalam jendela Watch pada saat
jendela ini terlihat.
76. Submenu Edit Watch : Pilihan ini akan membawa posisi watch ke kotak input sehingga
anda bisa mengubahnya.
77. Submenu Remove All Watches : Menghapus semua rinci dalam jendela watch sekaligus
memperkecil ukurannya sampai minimum.
78. Submenu Toggle Breakpoints [Ctrl + F8]: mengatur suatu baris sebagai breakpoint.
Dalam editor breakpoint ditunjukkan dengan highlight text.
79. Submenu Clear All Breakpoints: Menghapus semua breakpoint yang telah diset.
80. Submenu View Next Breakpoint : Digunakan untuk menggerakkan kursor ke posisi
breakpoint berikutnya.





16



















MODUL 2
UNSUR-UNSUR PEMROGRAMAN

Turbo Pascal menyediakan suatu unit CRT, yang berisi perintah-perintah
pengaturan layar seperti membersihkan layar, mengatur warna tulisan, warna
background. Baiklah, berikut ini adalah nomor warna yang mewakili masing-masing
warna: 0 (black), 1 (blue), 2 (green), 3 (cyan), 4 (red), 5 (magenta), 6 (brown), 7 (lightgray),
8 (darkgray), (9) lightblue, 10 (lightgreen), 11 (lightcyan), 12 (lightred), 13
(lightmagenta), 14 (yellow), 15 (White).
Contoh :
TextColor(4 + 128);
Writeln('Merah dan berkedip-kedip');

Unsur Program
a. Mendapatkan data dengan membaca data dari default input (key board, file atau sumber
data lainnya).
b. Menyimpan data ke dalam memori dengan struktur data yang sesuai,

17

c. Memproses data dengan instruksi yang tepat.
d. Menyajikan atau mengirimkan hasil olahan data ke default output (monitor, file atau
tujuan lainnya).

Nama yang dipergunakan dalam program Pascal disebut dengan pengenal
atau Identifier. Identifier digunakan untuk nama: Program, Sub-program (procedure dan
function), nama: Variable, Constant, Type, Label. Nama-nama ini digunakan untuk
pemakaian dan pemanggilan dalam program. Ketentuan penulisan identifier
Nama identifier harus dimulai dengan karakter huruf alfabet: a sampai z, A sampai Z
atau karakter _ (underscore garis bawah)
Karakter berikutnya boleh karakter numerik (0 .. 9) atau kombinasi alphanumerik
(huruf-numerik).
Panjang nama, pada berbagai versi Pascal umumnya antara 32 63.
Tidak boleh menggunakan karakter istimewa: + * / | \ = < > [ ] . , ; : ( ) ^ @ { } $ #
~ ! % & ` dan ?
Contoh penulisan:
Penulisan yang benar: NamaMahasiswa, Gaji_Karyawan, PX4, dll. Penulisan yang salah:
3X, A & B, C Z dll.
Variable adalah identifier yang berisi data yang dapat berubah-ubah nilainya di dalam
program. Deklarasi Variable adalah :
Memberikan nama variabel sebagai identitas pengenal
Menentukan tipe data variable
Contoh deklarasi variabel:
var X : integer;
R : real;
C : char;
T : boolean;
Konstanta adalah identifier yang berisi data yang nilainya tidak berubah di dalam program.
Deklarasi Konstanta adalah:
a. Memberikan nama konstanta sebagai identitas pengenal
b. Menentukan nilai konstanta Contoh deklarasi konstanta:
conts MaxSize = 100; {integer}
ExitC = Q; {char}

Reserved Words atau kata-kata cadangan pada Pascal adalah kata-kata yang sudah
didefinisikan oleh Pascal yang mempunyai maksdu tertentu Suatu. Unit adalah kumpulan

18

dari konstanta, tipe-tipe data, variabel, prosedur dan fungsi-fungsi. Unit standar pada Pascal
yang bisa langsung digunakan adalah System, Crt, Printer Dos dan Graph.
Untuk menggunakan suatu unit, maka kita harus meletakkan clausa atau anak
kalimat Uses di awal blok program, diikuti oleh daftar nama unit yang digunakan. Pada
materi ini yang akan dibahas adalah unit Crt. Unit ini digunakan untuk memanipulasi layar
teks (windowing, peletakan cursor di layar, Color pada teks, kode extended keyboard dan
lain sebagainya.

Beberapa Statemen Turbo Pascal
Statemen adalah perintah untuk pengerjaan program pascal. Statemen terletak di
bagian deklarasi statemen dengan diawali oleh kata cadangan BEGIN dan diakhiri dengan
kata cadangan END. Akhir dari setiap statemen diakhiri dengan titik koma [ ; ].
Statemen statemen dalam bahasa Pascal terdiri dari pernyataan yang berupa fungsi dan
prosedur yang telah disediakan sebagai perintah standar Turbo Pascal.

1. Statemen-statemen yang digunakan untuk input/output.
# Read/Readln [prosedur].
Perintah ini digunakan untuk memasukkan [input] data lewat keyboard ke dalam suatu
variabel.
Sintaks : Read/Readln(x);
(ingat, selalu diakhiri dengan titik koma [;])
Keterangan : x = variabel.
Read = pada statemen ini posisi kursor tidak pindah ke baris selanjutnya.
Readln = pada statemen ini posisi kursor akan pindah ke baris selanjutnya setelah di input.

# Write/Writeln [prosedur].
Digunakan untuk menampilkan isi dari suatu nilai variable di layar.
Sintaks: Write/Writeln(x);
Keterangan : x = variabel.
Write/Writeln= statement ini digunakan untuk mencetak variable ke dalam monitor

2. Statemen-statemen yang digunakan untuk pengaturan letak layar.
# ClrScr [prosedur].
Perintah ini digunakan untuk membersihkan layar.
sintaks: ClrScr; [Clear screen]



19






















MODUL 3
STATEMENT IF CONDITIONAL

Bagaimana penulisan perintah pengambilan keputusan pada Pascal ? Salah satu perintah
struktur pengambilan keputusan adalah :
If condition Then statement;
Struktur kendali aliran adalah suatu bentuk/struktur yang memiliki peranan khusus untuk
mengatur aliran urutan pengerjaan operasi atau beberapa operasi tertentu. Salah satu
contoh pernyataan kendali yaitu pernyataan if. Pernyataan if (if statement) akan memeriksa
suatu persyaratan dan menentukan apakah syarat tersebut benar atau salah, kemudian
melakukan pekerjaan sesuai dengan nilai pernyataan tersebut.
Dimana condition adalah sesuatu yang bernilai True atau False, dan statement adalah
perintah yang akan dijalankan. Untuk keputusan seperti ini, pascal menyediakan
struktur pengambilan keputusan berikut.

20

Statement
If condition
Then Statement1 Else Statement2;
Atau lebih baik ditulis sebagai

If conditon Then
Statement1
Else
Statement2;

Contoh :
Uses Crt;
Var
Bilangan : Integer;
Begin
Clrscr;
Write(Masukan Bilangan ? ); Readln(Bilangan);
If (Bilangan Mod 2) = 0 Then
Writeln (Genap)
Else (pengecualisn)
Writeln (Ganjil);
Readln;
End.
Dalam Statement ini, akan di pilih jika statement pertama dipilih maka program tidak akan
berlanjut ke pengecualian yang kedua, akan tetapi apabila pengecualian pertama tidak
memenuhi syarat, maka pengecualian kedua akan dipilih.
Berikut IF Statement lebih dari 2 pengecualian
Statement :
If condition1 Then
Statement1
Else
If condition2 Then
Statement2
Else
If condition3 Then
Statement3

21

Else
Statement4;

Sama seperti pengecualian IF 2 Statement, hanya saja bertambah pengecualiannya.
Contoh :
if mark>=80 then
grade:='A'
else { 79 or below goes here }
if mark>=70 then
grade:='B'
else { 69 or below goes here }
if mark>=60 then
grade:='C'
else { 59 or below goes here }
if mark>=50 then
grade:='D'
else { 49 or below goes here }
grade:='E';

Selain struktur kendali If, pascal juga menyediakan suatu struktur Case, yang akan
menjalankan statement berdasarkan range tertentu, adapun syntaxnya adalah sebagai
berikut :


Case variabel Of
Range1 : Statement1;
Range2 : Statement2;
Range3 : Statement3;

Else StatementN;
End;






22

























MODUL 4
PENGULANGAN (LOOPING)

Secara sederhana looping diartikan sebagai proses berulang terhadap statement
maupun serangkaian statement lebih dari satu kali.Salah satu struktur perintah
perulangan pada pascal adalah yang menggunakan counter.
For variabel := nilai awal To nilai akhir Do Statement;
Atau
For variabel := nilai awal DownTo nilai akhir Do Statement; Dimana variabel harus ordinal
type


23

Contoh :

Var I : Integer;
Begin
For I := 1 To 10 Do Writeln('PentaCOM');
End.

Program yang menggunakan pengulangan atau Looping :
Program Pengulangan;
uses crt;
var
x : integer;
begin
clrscr;
For x:= 1 to 10 do
writeln ('I LOVE U GIRL');
readln;
end.

Pengulangan pada program diatas adalah kata I LOVE U GIRL akan dicetak sebanyak 10
kali. Logikanya, jika kata belum memenuhi akhir daripada variable yang telah ditentukan,
maka pengulangan itu akan terus berlanjut sampai variable terpenuhi.






MODUL 5
PROCEDURE DAN FUNCTION

Sebuah program yang baik adalah program yang membagi permasalahan utama
menjadi bagian-bagian kecil dimana setiap bagian kecil ditangani oleh sebuah
subprogram, cara ini disebut dengan modular programming (pemrograman
terbagi/terpecah). Cara ini termasuk pemrograman terstruktur dan sangat didukung
oleh bahasa Pascal. Untuk itu, Pascal telah menyediakan dua jenis subprogram, yaitu
procedure dan function (prosedur dan fungsi).

24

Dengan modular programming, program lebih mudah dibaca dan dimengerti.
Selain itu, pembenahan program dan penelusuran jalannya program (debugging)
menjadi lebih mudah sebab dapat langsung diketahui subprogram mana yang berjalan
tidak sesuai dengan yang diharapkan.
Procedure dan function merupakan sub-program yang memiliki bagian deklarasi dan begin-
end; tersendiri layaknya suatu program pascal. Tujuan pemakaian procedure maupun
function adalah untuk memecah program kita menjadi kesatuan logika yang lebih kecil
(sub-sub program) untuk menghindari perulangan pengetikan dan memudahkan
pembacaan.
a. Prosedur
Prosedur adalah subprogram yang menerima masukan tetapi tidak mempunyai
keluaran secara langsung.
b. Fungsi
Fungsi adalah subprogram yang menerima masukan dan mempunyai keluaran secara
langsung

procedure Nama_Prosedur;
begin
. . .
end;

Function Nama_Fungsi;
begin
. . .
end;
{ Program utama }
begin
. . .
end.


Contoh pemakaian procedure :
uses crt;
begin
clrscr;
writeln('ABC');
writeln('Press any key when ready ...');
readkey;
writeln('Hey, let''s pause !');
writeln('Press any key when ready ...');

25

readkey;
writeln('Pause again !');
writeln('Press any key when ready ...');
readkey;
end.

Dengan memecah program kita menjadi kesatuan yang lebih kecil :
uses crt;
procedure pause;
begin
writeln('Press any key when ready ...');
readkey;
end;
begin
clrscr;
writeln('ABC');
pause;
writeln('Hey, let''s pause !');
pause;
writeln('Pause again !');
pause;
end.





Contoh pemakaian function :
Var I : Byte;
Akar,Bagi : Word;
Begin
Writeln(Upper('Bilangan Prima dari 1 s/d 100');
Writeln(Replicate('-',30);
For I := 1 To 100 do
If (Bil > 1 And Bil < 4) Then
Write(I : 4)

26

Else
Begin
Akar := Round(Sqrt(Bil));
Bagi := 3;
While (Bagi <= Akar) And (Bil Mod Bagi <> 0) Do
Bagi := Bagi + 1;
If Bagi > Akar Then
Write(I : 4);
End;
End.

Dan contoh berikut yang menggunakan function :
Function IsPrime (Num : Longint) : Boolean;
Var
Sq ,Dv : Word; (*local variable )
Begin
If Num < 2 Then
IsPrime := False
Else
If Num < 4 Then
IsPrime := Bil > 1
Else
Begin
Sq := Round(Sqrt(Num));
Dv := 3;
While (Dv <= Sq) And (Num Mod Dv <> 0) Do
Dv := Dv + 1;
IsPrime := Dv > Sq;
End;
End;

Pada prinsipnya function mengembalikan nilai.
Pada deklarasi bagian deklarasi parameter kita menentukan parameter dan type data dari
masing-masing parameter yang akan dikirim kedalam procedure maupun function.


27





























MODUL 6
A R R A Y

Array adalah variabel yang dapat menampung sejumlah data yang ditandai dengan suatu
index pada masing-masing elemennya.
Contoh :
Var

28

Nilai : Array [1..10] of Integer;

Penjelasan dari contoh diatas adalah menyisakan ruang pada penyimpanan sebanyak array
itu sendiri, seperti contoh akan terpenuhi setelah jumlah ke 10. Dalam hal ini variabel
Nilai adalah suatu array yang memiliki 10 element, yaitu Nilai[1], Nilai[2], Nilai[3],
, Nilai[10]. Pada masing-masing elemennya dapat menampung satu nilai Integer.

Adakah bentuk array yang lain, selain yang anda sebutkan ?
Ada, array yang telah kita sebutkan tersebut adalah array 1 dimensi, kita dapat juga
membuat multi dimensi sesuai dengan kebutuhan, contoh :

Var
Matrix : Array [1..3,1..3] Of Integer;

Adalah contoh array 2 dimensi, yang terdiri dari elemen Matrix[1,1], Matrix [1,2],
Matrix[1,3], Matrix[2,1], Matrix[2,2], Matrix[2,3], Matrix[3,1], Matrix[3,2], dan
Matrix[3,3].
Jadi jumlah elemennya adalah 3 x 3 = 9 elemen.

Dapatkah kita buat 3 Dimensi, 4 Dimensi, dst ?
Oh, bisa, hal ini tergantung bagaimana kita mendeklarasikan variabel array tersebut. Adakah
hal-hal yang khusus dalam mendeklarasikan array pada Pascal ? Ada, anda bisa
mendeklarasikan array seperti :
x : Array[3..10] of Integer; {elemennya x[3], x[4], x[5], , x[10]}
idx : Array['A'..'Z'] of Integer;
a : Array['a'..'z'] of Byte;
n : Array[byte] of Integer; { The same as array[0..255] of integer; }

Cara pemakaiannya seperti array bisanya, Cuma indexnya ditulis sebgai character,
contoh:
Idx['A'] = 100;

Dan kalau pakai looping :
For c:='A' to 'Z' do
idx[c]:= 0;

Contoh Program Array :
Program Nama_Bulan;
uses crt;

29

const
Bulan :array[1..13] of string = ('Januari','Februari','Maret','April','Mei','Juni','Juli',
'Agustus','September','Oktober','Nopember','Desember','KIAMAT');
var
NoBulan : integer;
begin
clrscr;
write ('Masukan nomor bulan : '); readln (NoBulan);
write ('Nama bulan ke ' ,NoBulan,' adalah ', bulan [NoBulan]);
readln;
end.



















MODUL 7
RECORD

Record adalah tipe data kompleks yang elemen-elemennya boleh mempunyai tipe data yang
berbeda. Record lebih kompleks daripada array karena record merupakan kumpulan

30

beberapa variabel dengan tipe data yang berbeda. Berbeda dengan array yang tiap
elemennya ditandai dengan nomer indeks maka record ditandai dengan nama variabel
anggotanya. Cara mengakses elemen dari record dilakukan dengan menyebutkan nama
variabel anggota setelah menyebutkan nama record yang akan diakses. Di antara nama
record dan nama variabel anggota dipisahkan tanda titik (.).
Cara pendeklarasian record adalah sebagai berikut :
var
B : record
X : integer;
Y : real;
end;

Pada pendeklarasian di atas, maksudnya adalah sebagai berikut : variabel B berupa
record dengan dua elemen yaitu X bertipe integer dan Y bertipe real. Untuk
mengakses elemen dari variabel B seperti berikut : B.nama_variabel
contoh : B.X := 10;
Untuk lebih memahami penggunaan record dalam program, perhatikan contoh berikut ini :
program Jumlah_Kompleks;
uses CRT;
Type
Kompleks = record
bil_real : integer;
bil_imaj : integer;
end;
var
K1, K2, H : kompleks;
procedure Awal;
begin
Writeln(' Latihan Pascal 3 : Array dan Record');
Writeln('------------------------------------');
Writeln;
Writeln('Nama : ____________________');
Writeln('NIM : __________');
Writeln;
end;

31

procedure JumlahKompleks(var Komp1, Komp2, KompHasil : kompleks);
begin
KompHasil.bil_real := Komp1.bil_real + Komp2.bil_real;
KompHasil.bil_imaj := Komp1.bil_imaj + Komp2.bil_imaj;
end;
procedure BacaData(var Komp : kompleks);
begin
Write('Bilangan real : ');
Readln(Komp.bil_real);
Write('Bilangan imajiner : ');
Readln(Komp.bil_imaj);
end;
procedure TulisKompleks(var Komp : kompleks);
begin
Write('(',Komp.bil_real:3,' + ',Komp.bil_imaj:3,'i)');
end;
begin
ClrScr;
Awal;
Writeln('Isi bilangan kompleks pertama :');
BacaData(K1);
Writeln;
Writeln('Isi bilangan kompleks kedua :');
BacaData(K2);
Writeln;
JumlahKompleks(K1, K2, H);
Writeln('Penjumlahan bilangan kompleks pertama dan kedua :');
TulisKompleks(K1);
Write(' + ');
TulisKompleks(K2);
Write(' = ');
TulisKompleks(H);
Writeln;
Writeln;
Write('Tekan Enter...');

32

Readln;
end.
Perhatikan program di atas. Untuk lebih jelasnya, jalankan program dengan F7 sehingga
akan terlihat urutan jalannya program. Perhatikan pula bagaimana cara mengakses elemen
record seperti pada prosedur Jumlah Kompleks.































33

MODUL 8
DELPHI INTERFACE

Tampilan Interface Delphi 7






1. Perintah penting pada Delphi
F9 Berfungsi untuk melakukan proses RUN (menjalankan program)
File | Close All Berfungsi untuk menutup File project sekaligus
Run | Program Reset Berfungsi untuk menghentikan program yang berjalan
F12 Berfungsi untuk berpindah dari Form editor dan sebaliknya
Ctrl+F11 Berfungsi untuk membuka File project(*.dpr)
Alt+F+V Berfungsi untuk menyimpan File project sekaligus
Ctrl+S Berfungsi menyimpan File dan yang belum didimpan
Alt+F+A Berfungsi untuk menyimpan nama file unit yang baru (sama
dengan Ctrl+S) untuk menyimpan file unit yang berbeda nama
MenuBar
Component Palete
Code
Editor
Object
Inspector
Speed Bar
Form
Design

34

Alt+F+E Berfungsi untuk menyimpan nama file project (*.dpr) dengan nama
yang berbeda

2. Menu
Menu pada Delphi memiliki kegunaan seperti menu pada aplikasi Windows lainnya. Dari
menu ini, kita bias memanggil atau menyimpan program, menjalankan dan melacak bug
program. Singkatnya, segala sesuatu yang berhubungan dengan IDE Delphi.


3. Speed Bar
Speed bar atau toolbar yang berisi kumpulan tombol yang tidak lain adalah pengganti
beberapa item menu yang sering digunakan.


4. Componnent Pallete
Pada komponen Pallete berisi kumpulan ikon yang melambangkan komponen-komponen
pada VCL (Visual Component Library).


5. Code Editor
Code Editor merupakan tempat untuk menuliskan listing program yang dinyatakan dengan
bahasa Pascal, karena sangat serupa bahasa Pemrograman Delphi dengan bahasa
Pemrograman Pascal. Yang perlu diperhatikan pada code editor adalah, kita tidak perlu
menuliskan seluruh kode sumber. Delphi telah menuliskan semacam kerangka untuk kita.

6. Object Inspector
Pada object Inspector terdiri dari 2 menu :
- Propertis
- Event
Pada tab Propertis Kita bias mengubah property dari komponen Kita, property dapat
dijelaskan sebagai data yang menentukan karakteristik komponen.
Pada Tab event Kita dapat menyisipkan kode untuk menangani kejadian tertentu.


35
























36

PROGRAM AJAR PEMROGRAMAN PASCAL


Program Input_Nama;
Uses crt;
var
Nama, NIS : String;
begin
clrscr;
writeln ('Masukan Nama dan NIS');
writeln ('____________________');
write ('Nama Anda :'); readln (Nama);
write ('NIS Anda :'); readln (NIS);
end.

Program Cetak_Data;
uses crt;
begin
clrscr;
TextColor(4 + 128);
Writeln('Hai Nama Saya Udin');
readln;
end.

Program Aritmatika;
uses crt;
var
A,B,Plus,Minus : Integer;
Kali,Bagi : Real;
begin
clrscr;
writeln('Hitungan Sederhana Pascal');
writeln('*************************');
writeln;
write('Nilai A : '); Readln (A);
write('Nilai B : '); Readln (B);
writeln;
Plus:=A+B;
Minus:=A-B;
Kali:=A*B;
Bagi:=A/B;
writeln;
writeln('Hasilnya Adalah ???');
writeln;
writeln('A+B=',Plus);
writeln('A-B=',Minus);
writeln('A*B=',Kali:0:2);
writeln('A/B=',Bagi:0:2);
writeln;
writeln('Press ENTER to Continue....');
Readln;
end.

37

Program BBM;
uses crt;
var
Liter,Solar,Premium,Pertamax : Real;
begin
clrscr;
write('Silahkan Masukan Jumlah Yang Anda Kehendaki:'); Readln (Liter);
Solar:=Liter*4000;
Premium:=Liter*4500;
Pertamax:=Liter*5000;
writeln('Harga Solar =Rp ', Solar:0:0);
writeln('Harga Premium =Rp ', Premium:0:0);
writeln('Harga Pertamax =Rp ', Pertamax:0:0);
Readln;
end.

Program Bintang;
Uses crt;
var
bar,kol,jml : integer;
begin
clrscr;
write('Jumlah Baris : '); readln (jml);
bar:=1;
while bar <= jml do
begin
write ('*' : jml + 1 - bar);
kol:=1;
while kol <= (1 * bar - 1) do
begin
write ('*');
kol :=kol + 1;
end;
writeln;
bar:=bar + 1;
end;
readln;
end.

Program Bilangan;
uses crt;
var
x : Integer;
begin
clrscr;
x := 1;
while x <= 1000 do
begin
write(x,' ');
x:=x+1;
end;
readln; end.

38

Program Bonus;
uses crt;
var
a : real;
b : Integer;
begin
clrscr;
write('Total Pembelian: '); readln(a);
writeln;
write('Jumlah Barang: '); Readln(b);
writeln;
if (a >= 500000) and (b>5) then
begin
write('Bonus Setrika');
end
else if (a >=400000) and (b>5) then
begin
write('Bonus Celana Jeans');
end
else if (a >=300000) and (b>5) then
begin
write('Bonus T-Shirt');
end
else if (a >=200000) and (b>5) then
begin
write('Bonus Kemeja Batik');
end
else if (a >=100000) and (b>5)then
begin
write('Bonus Jam Dingding');
end
else if (a >=50000) and (b>5) then
begin
write('Bonus Payung');
end
else
begin
write('Maaf Anda Tidak Mendapat Bonus');
end;
readln;
end.

Program Luas_Balok;
uses crt;
var
p,l,t,luas : Integer;
begin
clrscr;
writeln('Penghitungan Luas Balok');
writeln;
write('panjang : ') ; readln(p);
write('lebar : ') ; readln(l);

39

write('tinggi : ') ; readln(t);
luas:=2*p*t + 2*p*l + 2*l*t;
writeln;
writeln('luasnya adalah : ', luas);
readln;
end.

Program Diskon_pembelian;
uses crt;
var
a,diskon : Real;
begin
clrscr;
write('Harga Pembelian :Rp.'); readln(a);
writeln;
if a > 100000 then
begin
diskon:=a*(15/100);
write('Diskon :Rp.',Diskon:0:2);
end
else
begin
write('Maaf Anda Tidak Mendapat Diskon');
end;
readln;
end.

Program Cetak_Angka;
uses crt;
var
x : integer;
begin
clrscr;
x := 0;
write('Nilai Kelipatan 2 = ');
while x <= 1000 do
begin
write(x, ' ');
x:=x+2;
end;
readln;
end.

Program Konfersi_Waktu;
Uses crt;
type Jam = Record
hh : longint;
mm : longint;
ss : longint;
end;
var
J : Jam;

40

TotalDetik : longint;
begin
write('Jam : '); readln(J.hh);
write('Menit : '); readln(J.mm);
write('Detik : '); readln(J.ss);
TotalDetik:= (J.hh*3600) + (J.mm*60) + J.ss;
writeln('Total Detik = ', TotalDetik);
end.

Program LIST_SISWA;
uses crt;
type
Siswa = Record
Nama : String;
Kelamin : String;
Kelas : String;
Sekolah : String;
Alamat : String;
end;
Var Sis : Siswa;
begin
clrscr;
writeln('Masukan Data Diri Anda:');
Writeln;
write('Nama : '); Readln (Sis.Nama);
write('Kelamin : '); Readln (Sis.Kelamin);
write('Kelas : '); Readln (Sis.Kelas);
write('Sekolah : '); Readln (Sis.Sekolah);
write('Alamat : '); Readln (Sis.Alamat);
Writeln;
Writeln('Berikut Data Informasi Diri Anda :');
writeln;
writeln(Sis.Nama);
writeln(Sis.Kelamin);
writeln(Sis.Kelas);
writeln(Sis.Sekolah);
writeln(Sis.Alamat);
readln;
end.

Program Pengulangan;
uses crt;
var
x : integer;
begin
clrscr;
For x:= 1 to 10 do
writeln ('I LOVE U GIRL');
readln;
end.



41

Program Nama_Bulan;
uses crt;
var
month : integer;
begin
clrscr;
write('Input Bulan Ke : '); readln(month);
writeln;
case month of
1 : Write('Bulan Januari');
2 : Write('Bulan Februari');
3 : Write('Bulan Maret');
4 : Write('Bulan April');
5 : Write('Bulan Mei');
6 : Write('Bulan Juni');
7 : Write('Bulan Julii');
8 : Write('Bulan Agustus');
9 : Write('Bulan Setpember');
10 : Write('Bulan November');
11 : Write('Bulan Oktober');
12 : Write('Bulan Desember');
else
write('Yang Anda Masukan Salah');
end;
readln;
end.

Program Nama_Bulan;
uses crt;
const
Bulan :array[1..13] of string = ('Januari','Februari','Maret','April','Mei','Juni','Juli',
'Agustus','September','Oktober','Nopember','Desember','KIAMAT');
var
NoBulan : integer;
begin
clrscr;
write ('Masukan nomor bulan : '); readln (NoBulan);
write ('Nama bulan ke ' ,NoBulan,' adalah ', bulan [NoBulan]);
readln;
end.

Program Status_Nilai;
uses crt;
var
Nilai : integer;
begin
clrscr;
write('Masukan Nilai Anda : '); readln (Nilai);
case nilai of
80..100 : writeln ('Nilai Sangat Baik');
70..79 : writeln ('Nilai Baik');
60..69 : writeln ('Nilai Kurang');

42

50..59 : writeln ('Nilai Sangat Kurang');
else
writeln ('Nilai Buruk !!! ');
end;
readln;
end.

Program Jenis_SegiTiga;
uses crt;
var a,b,c : Integer;
begin
clrscr;
write('Input sisi a : '); readln(a);
write('Input sisi b : '); readln(b);
write('Input sisi c : '); readln(c);
writeln;
if (a=b) and (b=c) and (c=a) then
writeln('Segitiga Sama Sisi')
else
if (a=b) and (a<>c) or (b=c) and (b<>a) or (c=a) and (c<>b) then
writeln('Segitiga Sama Kaki')
else
if (a<>b) and (b<>c) and (c<>a) then
writeln('Segitiga Sembarang');
Readln;
end.

Program Perkalian_Matrix;
Uses crt;
var
i,j,n : integer;
begin
clrscr;
write('Masukan Jumlah Perkalian : '); readln (n);
write('A' : 5);
for i:= 1 to n do
write(i:5);
writeln;
for i:= 1 to n do
begin
write (i:5);
for j:= 1 to n do
write(i*j:5);
writeln;
end;
end.

Program Nilai_SISWA;
uses crt;
var
Nama : array [1..20] of string;
Tugas, UTS, UAS, Persentasi : array [1..20] of Integer;

43

rata : array [1..20] of real;
a,jd :byte;
begin
clrscr;
writeln('Masukan Jumlah Data Nilai');
write('Masukan Nama : '); readln (Nama[a]);
write('Masukan Nilai Tugas : '); readln (Tugas[a]);
write('Masukan Nilai UTS : '); readln (UTS[a]);
write('Masukan Nilai UAS : '); readln (UAS[a]);
write('Masukan Nilai Persentasi: '); readln (Persentasi[a]);
rata[a]:=(0.1*Tugas[a]) + (0.2*UTS[a]) + (0.3*UAS[a]) + (0.4*Persentasi[a]);
end.
clrscr;
for a := 1 to jd do
begin
writeln('PENILAIAN UJIAN SISWA');
writeln('Nama : ',Nama[a]);
writeln('Nilai Tugas : ',Tugas[a]);
writeln('Nilai UTS : ',UTS[a]);
writeln('Nilai UAS : ',UAS[a]);
writeln('Persentasi : ',Persentasi[a]);
writeln('Rata-rata :', rata[a]:1:2);
Readln;
end.

Program Perubahan_Zat;
uses crt;
var
Suhu : Integer;
begin
clrscr;
write ('Input Suhu : '); Readln (Suhu);
WRITELN;
if Suhu <=0 Then
writeln('padat');
if (Suhu>0) and (Suhu<100) Then
write('Cair');
if Suhu >100 Then
writeln('Gas');
Readln;
end.

Program Pembuatan_Tabel;
uses crt;
var
a,b,c : integer;
begin
clrscr;
writeln ('--------------------------------');
writeln (' a a*a a*b*c ');
writeln ('--------------------------------');
For a:= 1 to 10 Do

44

begin
b:=a*a;
c:=a*a*a;
writeln (a:4, b:10, c:10);
end;
writeln ('--------------------------------');
readln;
end.

Program Persegi;
uses crt;
var p,l,luas : integer;
begin
clrscr;
writeln('Penghitungan Luas Persegi Panjang');
writeln;
write('panjang : '); Readln (p);
write('lebar : '); Readln (l);
luas:=p*l;
writeln;
writeln('Luasnya Adalah : ', Luas);
readln;
end.

Program Tukat_Uang;
Uses crt;
Var
a,b,c,d,e,f : word;
begin
clrscr;
write('Masukan Jumlah Uang Yang Akan Ditukarkan: '); readln (a);
b:= a div 1000;
a:= a-(b*1000);
c:= a div 500;
a:= a-(c*500);
d:= a div 200;
a:= a-(d*200);
e:= a div 100;
a:= a-(e*100);
f:= a div 50;
a:= a-(f*50);
writeln('Rp.1000 = ',b,'buah');
writeln('Rp.500 = ',c,'buah');
writeln('Rp.200 = ',d,'buah');
writeln('Rp.100 = ',e,'buah');
writeln('Rp.50 = ',f,'buah');
readln;
end.





45

Program Contoh_Bulan;
uses wincrt;
const
Bulan :array[1..12] of string =
('Januari','Februari','Maret','April','Mei','Juni','Juli',
'Agustus','September','Oktober','November','Desember');
var
NoBulan:integer;
begin
clrScr;
write ('Masukkan nomor bulan: ' ); readln (NoBulan);
write ('Nama bulan ke- ' ,NoBulan , ' adalah ', Bulan [NoBulan]);
readln;
end.

Program data_mhs;
uses wincrt;
type mahasiswa = record
nim : string[8];
nama : string[25];
umur : integer;
end;
var
data:mahasiswa;
begin
clrScr;
writeln ('Masukkan data diri Anda : ' );
write ('Nim : ' );readln(data.Nim);
write ('Nama : ' );readln(data.Nama);
write ('Umur : ' );readln(data.Umur);
writeln; {Memasukkan baris kosong}

{Menampilkan data yang telah dimasukan}

writeln ('Beikut ini informasi data diri yang telah anda masukkan : ');
writeln ('Nim : ' , data.Nim);
writeln ('Nama : ' , data.Nama);
writeln ('Umur : ' , data.Umur);
readln ;
end.

program penilaian_MHS
uses wincrt;
var nama : array[1..20] of string;
tugas, uts, uas, presensi : array[1..20] of integer;
rata : array[1..20] of real;
a,jd : byte;
begin
clrscr;
write('Masukkan Jumlah Data Nilai: '); readln(jd);
for a := 1 to jd do;
begin

46

writeln('PENILAIAN UJIAN MAHASISWA');
write('Masukkan Nama : '); readln(nama[a]);
write('Masukkan Nilai Tugas : '); readln(tugas[a]);
write('Masukkan Nilai UTS : '); readln(uts[a]);
write('Masukkan Nilai UAS : '); readln(uas[a]);
write('Masukkan Presensi : '); readln(presensi[a]);
Rata[a]:=(0.1*tugas[a])+(0.2*uts[a])+(0.3*uas[a])+(0.4*presensi[a]);
end;
clrscr;
for a := 1 to jd do;
begin
writeln('PENILAIAN UJIAN MAHASISWA');
writeln('Nama : ',nama[a]);
writeln('Nilai Tugas : ',tugas[a]);
writeln('Nilai UTS : ',uts[a]);
writeln('Nilai UAS : ',uas[a]);
writeln('Presensi : ',presensi[a]);
{untuk menampilkan semua data yang sudah dimasukkan di awal}
writeln('Rata-rata : ',rata[a]:1:2);{untuk menampilkan rata-rata}
end;
end.

Program_penjualan ;
uses crt ;
var pembelian,potongan : integer ;
begin
write ( total pembelian ); readln (pembelian);
case pemotongan of
=10000 : potongan := 1000;
=100000 : potongan := 10000;
end;
writeln ( jumlah pembelian : ,pembelian) ;
writeln ( potongan : ,potongan) ;
write ( jumlah bayar : ,pembelian potongan) ;
readln ;
end.

Program Gaji ;
uses wincrt;
var Nama,Nip : char ;
gaji_pokok,gaji_kotor,tunjangan,pajak,gaji_bersih :real;
begin
writeln ( Gaji Pegawai ) ;
write ( Nama : ) ; readln ( Nama ) ;
write ( Nip : ) ; readln (Nip) ;
write ( Gaji Pokok : ) ; readln ( gaji_pokok ) ;
write ( Tunjangan : ) ; readln ( tunjangan ) ;
writeln;
pajak := 0.1 * gaji_pokok ;
writeln ( Pajak : , pajak : 2 : 0 ) ;
gaji_kotor := gaji_pokok + tunjangan ;
writeln ( Gaji Kotor : , gaji_kotor: 2 : 0 ) ;

47

gaji_bersih := gaji_kotor + pajak ;
writeln ( Gaji Bersih: , gaji_bersih : 2 : 0 ) ;
readln ;
end.

Program Berat_badan ;
uses crt ;
var berat : integer ;
begin
write ( masukkan berat badan : ); readln (berat) ;
if berat > 37 then
writeln (berat);
else
writeln ( kurus ) ;
readln ;
end.

Program Kalkulator_Sederhana;
uses crt;
var x,y,hasil:real;
jawab:char;
begin
write ('masukan angka ke-1:');readln (x);
write ('pilih operator: (+)/(-)/(*)/(/)');readln (jawab);
write ('masukan angka ke-2:');readln (y);
if ( jawab= '+') then
begin
hasil:= x+y
end;
if ( jawab = '-') then
begin
hasil:= x-y
end;
if ( jawab = '*') then
begin
hasil:= x*y
end;
if (jawab='/') then
begin
hasil:= x/y
end;
write ('hasilnya: ',(hasil):5:2);
end.

Program Counter_Pulsa;
uses crt;
label awal;
const
days : array [0..6] of string[9] =
('minggu','senin','selasa','rabu','kamis','jumat','sabtu');
var
operator,i,j,u,y,m,d,dow : integer;

48

uang,harga, pulsa,pilihan,c : longint;
hp : string;

{pernghitungan uang-harga}
function hitung(a,b : longint):longint;
begin
hitung:= b-a
end;

procedure simpati(var pulsa:longint);
label simpati1;
var nominal : longint;
begin
clrscr ;
simpati1:
writeln('daftar harga SIMPATI');
writeln('v 5 ===== 6.000');
writeln('v 10 ===== 12.000');
writeln('v 20 ===== 21.000');
writeln('v 50 ===== 50.000');
writeln('v 100 ===== 98.000');
writeln;
writeln('masukkan nominal pulsa');
readln (nominal);
case nominal of
5 : pulsa := 6000;
10 : pulsa := 12000;
20 : pulsa := 21000;
50 : pulsa := 50000;
100: pulsa := 98000;
else begin
pulsa := 0;
writeln ('salah, tulis nominal');
goto simpati1;
end;
end;
end;

procedure as(var pulsa:longint);
label as1;
var nominal : longint;
begin
as1:
writeln('daftar harga Kartu As');
writeln('v 5 ===== 6.000');
writeln('v 15 ===== 18.000');
writeln('v 25 ===== 29.000');
writeln('v 50 ===== 54.000');
writeln('v 100 ===== 108.000');
writeln;
writeln('masukkan nominal pulsa');
readln (nominal);

49

case nominal of
5 : pulsa := 6000;
15 : pulsa := 18000;
25 : pulsa := 29000;
50 : pulsa := 54000;
100: pulsa := 108000;
else begin
pulsa := 0;
writeln ('salah, tulis nominal');
goto as1;
end;
end;
end;

procedure MENTARI(var pulsa:longint);
label im31;
var nominal : longint;
begin
im31:
writeln('daftar harga MENTARI');
writeln('v 5 ===== 6.000');
writeln('v 10 ===== 11.000');
writeln('v 20 ===== 21.000');
writeln('v 50 ===== 50.000');
writeln('v 100 ===== 98.000');
writeln;
writeln('masukkan nominal pulsa');
readln (nominal);
case nominal of
5 : pulsa := 6000;
10 : pulsa := 11000;
20 : pulsa := 21000;
50 : pulsa := 50000;
100: pulsa := 98000;
else begin
pulsa := 0;
writeln ('salah, tulis nominal');
goto im31;
end;
end;
end;

procedure im3(var pulsa:longint);
label im32;
var nominal : longint;
begin
im32:
writeln('daftar harga im3');
writeln('v 5 ===== 6.000');
writeln('v 10 ===== 11.000');
writeln('v 20 ===== 20.000');
writeln('v 50 ===== 48.000');

50

writeln('v 100 ===== 95.000');
writeln;
writeln('masukkan nominal pulsa');
readln (nominal);
case nominal of
5 : pulsa := 6000;
10 : pulsa := 11000;
20 : pulsa := 20000;
50 : pulsa := 48000;
100: pulsa := 95000;
else begin
pulsa := 0;
writeln ('salah, tulis nominal');
goto im32;
end;
end;
end;

procedure XL(var pulsa:longint);
label xl1;
var nominal : longint;
begin
xl1:
writeln('daftar harga XL');
writeln('v 5 ===== 6.000');
writeln('v 10 ===== 11.000');
writeln('v 20 ===== 21.000');
writeln('v 50 ===== 47.000');
writeln('v 100 ===== 95.000');
writeln;
writeln('masukkan nominal pulsa');
readln (nominal);

case nominal of
5 : pulsa := 6000;
10 : pulsa := 11000;
20 : pulsa := 21000;
50 : pulsa := 47000;
100: pulsa := 95000;
else begin
pulsa := 0;
writeln ('salah, tulis nominal');
goto xl1;
end;
end;
end;

{program utama}
begin
{GetDate(y,m,d,dow : word); }
{program untuk menampilkan date belum bisa keluar...
bantuin dounk masss....}

51


awal:
for j:=7 to 11 do
begin
for i:=1 to j do
write('=');
writeln;
end;
writeln('================================');
writeln('********************************');
writeln(' ');
writeln('selamat datang di counter digital');
writeln(' ');
writeln;
writeln('********************************');
writeln('================================ ');
for j:=11 downto 7 do
begin
for i:=1 to j do
write('=');
writeln;
end;
writeln(' zen design');
readln;
clrscr;
writeln('================================');
writeln('********************************');
writeln(' ');
writeln(' kami ada untuk anda ');
writeln('tekan enter untuk memulai ');
writeln('transaksi anda');
writeln('********************************');
writeln('================================ ');
readln;
clrscr;
writeln('1. Telkomsel');
writeln('2. Indosat');
writeln('3. XL');
writeln;
writeln('silahkan pilih operator anda');
readln (operator);
clrscr;

case operator of
1 :
begin
writeln('1. Simpati');
writeln('2. Kartu As');
readln (pilihan);
clrscr;
case pilihan of
1 : simpati(pilihan); {memanggil procedure simpati}

52

2 : as(pilihan); {mamanggil procedure as}
end;
end;
2 :
begin
writeln('1. MENTARI');
writeln('2. im3');
readln (pilihan);
clrscr;
case pilihan of
1 : MENTARI(pilihan);
2 : im3(pilihan);
end;
end;
3 :
begin
readln (pilihan);
XL(pilihan);
clrscr;
end
else begin
writeln ('maaf anda salah pilih');
goto awal; {mengembalikan program ke label awal}
end;
end;
clrscr;
writeln ('masukan nomer hepe'); readln(hp); {input nomer hape}
clrscr;
writeln ('masukkan uang anda'); readln (uang); {input uang}
clrscr;
if uang > pilihan then
begin
harga:=hitung(pilihan,uang); { memanggil fungsi hitung}
writeln('=============================');
writeln(' BERHASIL ');
writeln;
writeln('transaksi ke nomor ',hp);
writeln('');
writeln('sisa uang anda Rp.',harga);
writeln('============================');
while harga > 6000 do {6000 adalah harga minimal voucher}
begin {supaya pelanggan dapat melakukan trakdaksi lagi}
writeln('saldo anda masih bisa untuk melanjutkan transaksi');
readln(u);
goto awal;
end;
writeln(days[dow],',',m:0,'/',d:0,'/',y:0); {yang ini belum bisa ditampilkan.. bantuin dounk mass}
end
else begin
writeln('=========================');
writeln(' TRANSAKSI GAGAL');
writeln('saldo anda tidak mencukupi');

53

writeln('==========================');
writeln;
writeln(' TERIMA KASIH');
end;
end.






PROGRAM AJAR PEMROGRAMAN DELPHI


Kalkulator Sederhana Delphi


procedure TForm1.Button1Click(Sender: TObject);
var
x,y,z:real;
begin
x:=strTOfloat(edit1.Text);
y:=strTOfloat(edit2.Text);

z:=x+y;
edit3.Text:=floatTOstr(z);

z:=x*y;
edit4.Text:=floatTOstr(z);

z:=x/y;
edit5.Text:=floatTOstr(z);

z:=x-y;
edit6.Text:=floatTOstr(z);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
Close;
end;
end.













54

Input Data




procedure TForm1.Button1Click(Sender: TObject);
begin
laporan.clear;
laporan.Items.add('Laporan Data Pegawai');
laporan.Items.add('');
laporan.Items.add('NIP : '+nip.Text);
laporan.Items.add('NAMA : '+nama.Text);
laporan.Items.add('GOL : '+gol.Text);
laporan.Items.add('STATUS : '+status.Text);
laporan.Items.add('LAHIR : '+dateTOstr(lahir.date));
if K1.checked then

Laporan.Items.add('KELAMIN : '+K1.Caption) else
Laporan.Items.add('KELAMIN : '+K2.Caption);
Laporan.Items.add('ALAMAT : '+alamat.Text);
Laporan.Items.add('');
Laporan.Items.add ('ADMINISTRASI : ');

if A1.checked then
Laporan.Items.add('-'+A1.Caption);
if A2.checked then
Laporan.Items.add('-'+A2.Caption);
if A3.checked then
Laporan.Items.add('-'+A3.Caption);
end;

55

procedure TForm1.Button2Click(Sender: TObject);
begin
Laporan.Clear;
nip.Text:='';
nama.Text:='';
gol.Text:='';
status.Text:='';
lahir.date:=Now;
K1.Checked:=True;
alamat.Text:='';
A1.Checked:=false;
A2.Checked:=false;
A3.Checked:=false;
nip.SetFocus;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
Close;
end;
end.



Data Base Buku (DB Access)







56

procedure TForm1.Button1Click(Sender: TObject);
begin
ADOTable1.Append;
ADOTable1['Kode Buku']:=edit1.Text;
ADOTable1['Nama Buku']:=edit2.Text;
ADOTable1['Pengarang']:=edit3.Text;
ADOTable1['Penerbit']:=edit4.Text;
ADOTable1['Tahun Terbit']:=edit5.Text;
ADOTable1.Post;
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
edit1.Text:='';
edit2.Text:='';
edit3.Text:='';
edit4.Text:='';
edit5.Text:='';
edit1.SetFocus;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ADOTable1.Delete;
end;

procedure TForm1.Button4Click(Sender: TObject);
begin
ADOTable1.Locate('Nama Buku',edit6.Text,[loPartialKey]);
begin
if not ADOTable1.locate('Nama Buku',edit6.text,[loPartialKey])then
ShowMessage('Maaf Buku Tidak ditemukan');
edit6.Text:='';
end;
end;
end.

procedure TForm1.Button5Click(Sender: TObject);
begin
Close;
end;

You might also like