Jumat, 06 November 2009

Tombol yang biasa digunakan dalam Turbo Pascal

Cepat Mahir Bahasa Pascal

Mengenal hotkey di Turbo Pascal

Sebetulnya akan lebih mudah jika memanggil sebuah menu dengan menggunakan hotkey, table dibawah ini adalah hotkey yang digunakan dalam turbo pascal :

Kunci

Fungsi

Ekivalen menu

F1

F2

F3

F4

F5

F6

F7

F8

F9

F10

Alt + F1

Alt + F3

Alt + F5

Alt + F6

Alt + F9

Alt + B

Alt + C

Alt + D

Alt + E

Alt + F

Alt + O

Alt + R

Alt + X

Ctrl + F1

Ctrl + F2

Ctrl + F3

Ctrl + F4

Ctrl + F7

Ctrl + F8

Ctrl + F9

Ctrl + F10

Mengaktifkan jendela pertolongan.

Menyimpan berkas yang ada pada editor.

Memanggil program kedalam editor.

Mengeksekusi program sampai posisi kursor.

Memperbesar atau memperkecil jendela yang aktif.

Mengganti jendela yang aktif.

Melacak kedalam subrutin.

Melompati pemanggil subrutin.

Mengaktifkan perintah ‘Make’.

Berpindah dari menu-menu ke jendela yang aktif.

Memanggil jendela pertolongan yang terakhir dibaca.

Memilih berkas untuk dimuat.

Memperlihatkan hasil eksekusi.

Mengganti isi jendela yang aktif.

Mengkompilasi program.

Mengaktifkan menu Break / Watch.

Mengaktifkan menu compile.

Mengaktifkan menu debug.

Mengaktifkan editor.

Mengakaktifkan menu file.

Mengaktifkan menu option.

Mengaktifkan menu run.

Keluar dari Turbo Pascal dan kembali ke DOS.

Menampilkan menu pertolongan bahasa.

Menghentikan pembetulan.

Menampilkan isi tumpukan.

Melakukan penghitungan atau mengubah nilai peubah.

Menambahkan ungkapan pada jendela watch

Toggles Breakpoint.

Menjalankan program.

Menampilkan versi layar monitor

File / Save

File / Load

Run / Go to cursor

Run / Trace into

Compile / Make


File / Pick

File / user screen

Compile

Run / Program reset

Debug / Call Stack

Debug / Evaluate

B / Add Watch

B / Toggle breakpoint

Run / Run

Nah, itu tadi adalah beberapa hotkey yang ada pada Turbo Pascal, sekarang kita langsung aja yah mempelajari menu di Turbo Pascal ini.

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.

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.

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.

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.

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.

Submenu Write to

pilihan ini digunakan untuk menggantikan program lama dengan program yang baru (istilah kerennya Overwrite). Jika nama program anda sudah ada pada cakram atau folder maka ada verifikasi dari Turbo Pascal untuk penggantian nama.

Submenu Directory

pilihan ini digunakan untuk menampilkan direktori dan nama-nama file yang anda inginkan. Anda juga bisa menggunakan pilihan Load.

Submenu Change Dir

Pilihan yang satu ini digunakan untuk menampilkan direktori yang sedang digunakan dan juga bisa digunakan untuk mengganti nama direktori yang baru.

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.

Submenu Quit [Alt + x]

Dari namanya sudah jelas, perintah ini digunakan untuk keluar dari Turbo Pascal dan kembali ke prompt DOS.

Menu Edit

Perintah edit ini digunakan untuk mengaktifkan editor Turbo Pascal.

Menu Run [Ctrl + F9]

Perintah ini digunakan untuk mengeksekusi program yang sudah anda buat. Anda juga bisa menekan Ctrl + F9 untuk mengeksekusi program anda.

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.

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.

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.

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 keseluruhan subrutin akan dikerjakan sekaligus dan debugger akan berhenti pada statement sesudah pemanggilan ke subrutin.

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

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.

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.

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.

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.

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.

Submenu Primary File

Perintah ini digunakan untuk menyatakan bahwa file .PAS akan dikompilasi pada saat make [F9] atau build [Alt + C + B] diaktifkan.

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

Menu Options

Pilihan pada menu yang satu ini berfungsi mengkonfigurasi untuk mengoptimalkan penggunaan fasilitas-fasilitas pada turbo pascal.

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.

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

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

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

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

Overlay Allowed [Off] :

Mengaktifkan atau menonaktifkan pembakitan kode Overlay. Pilihan ini sama dengan penunjuk kompiler {$O}.

Var string checking [Strict] :

Digunakan untuk mengendalikan cara pengecekan data string yang digunakan sebagai parameter berubah. Pilihan sama dengan penunjuk kompiler {$V}.

Boolean Evaluation [Short Circuit] :

Digunakan untuk memilih pembangkitan kode pada saat operasi logika [operasi Boolean] dijalankan. Pilihan ini sama dengan penunjuk kompiler {$B}.

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}

Emulation [On] :

Mengaktifkan atau menonaktifkan linking dengan run – time yang mengemulasikan ke prosessor numeric 8087. pilihan ini sama dengan penunjuk kompiler {$E}

Debug Information [On] :

Digunakan untuk membangkitkan atau tidak membangkitkan informasi pada saat didalam program terjadi kesalahan. Pilihan ini sama dengan penunjuk kompiler {$D}.

Local Symbol [On] :

Digunakan untuk mengaktifkan atau menonaktifkan symbol informasi local.

Conditional defines:

Digunakan untuk menyatakan penunjuk kompiler berkondisi.

Memory sizes:

Digunakan untuk mengkonfigurasi peta pengingat. Dengan penunjuk kompiler{$M}.

Stack Size:

ukuran segmen tumpukan maksimum 64 K dengan standart 16 K.

Low Heap limit:

ukuran heap minimum standart adalah 0 K.

High Heap limit:

ukuran heap maksimum adalah 655360 byte.

Submenu Linker

Pilihan ini digunakan untuk mengatur konfigurasi built in linker.

Map File [Off] :

Menentukan berapa banyak informasi dalam berkas peta map yang akan dihasilkan. Berkas peta akan ditempatkan dalam direktori .EXE dengan akhiran .MAP

Segment :

Informasi segment [Nama, Ukuran, Awal dan Akhir segment dan kelasnya].

Public :

Informasi segment, semua nama-nama symbol dan alamatnya dan titik masukkan program.

Detailed :

segement, informasi symbol dan titik masukkan program dan nomor barisnya dan tabel-tabel modul.

Submenu Environment

Pilihan ini digunakan untuk memberitahukan Turbo Pascal dimana bisa ditemukan berkas yang akan dikompilasi, di link dengan dilengkapi dengan menu-menu pertolongan.

Config Auto Save [Off] :

Digunakan untuk mencegah kehilangan setting komfigurasi yang telah anda lakukan.

Edit Auto Save [Off] :

Digunakan untuk mencegah kehilangan berkas yang disebabkan oleh penyimpanan otomatis pada saat anda menggunakan Run / Step Over atau Run / Run.

Backup Files [On] :

Secara standard, turbo pascal akan membangkitkan berkas backup pada saat anda menyimpan berkas. Yang biasa kita lihat dengan .BAK

Tab Size [2] :

Digunakan untuk mengatur ukuran Tab pada editor. Ukuran yang diperbolehkan adalah 2 sampai 16 dengan defaultnya 8.

Zoom Windows [Off] :

Jika di On kan maka, Jendela Edit, Watch, dan Output akan diperluas sampai satu layar penuh.

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.

Submenu Directories

Pilihan menu ini digunakan untuk menunjukkan kepada Turbo Pascal lokasi setiap direktori yang diperlukan.

Turbo directory :

Digunakan untuk menemukan berkas konfigurasi [.TP] dan berkas pertolongan

[Turbo.HLP].

EXE & TPU directory :

Digunakan untuk menyimpan berkas .EXE dan .TPU.

Include Directories :

Digunakan untuk menentukan direktori yang berisi Include File.

Unit Directories :

Digunakan untuk memberitahu TP dimana berkas-berkas unit berada.

Object Directories :

Digunakan untuk menentukan direktori yang berisi berkas [.OBJ].

Pick file name :

Digunakan untuk menentukan nama dan lokasi pick file.

Current pick file :

Digunakan untuk menunjukkan nama dan lokasi pick file, jika ada.

Submenu Parameters

Digunakan untuk memberikan parameter baris perintah [Command Line parameters] pada program-program yang akan dijalankan.

Submenu Save Option

Digunakan untuk menyimpan semua pengaturan dalam menu Compiler, Environment, dan Directories dalam berkas konfigurasi [standardnya adalah TURBO.TP]

Submenu Retrieve Options

Digunakan untuk memuat berkas konfigurasi yang sebelumnya disimpan dengan pilihan save.

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.

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.

Submenu Call Stack [Ctrl + F3] :

Pada saat anda melakukan debugging, suatu jendela yang menunjukan daftar pemanggil prosedur dan fungsi akan terlihat.

Submenu Find Procedure :

Memungkinkan anda untuk menuliskan nama prosedur dan fungsi dan kemudian mencari dalam program yang sedang anda aktifkan.

Submenu Integrated Debugging [On]

Jika dipilih On, debugging dilakukan menggunakan IDE.

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.

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.

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

Submenu Add Watch [Ctrl + F7] :

Digunakan untuk menambahkan rinci data, perubah atau ungkapan kedalam jendela watch.

Submenu Delete Watch :

Untuk menghapus ungkapan dalam jendela Watch pada saat jendela ini terlihat.

Submenu Edit Watch :

Pilihan ini akan membawa posisi watch ke kotak input sehingga anda bisa mengubahnya.

Submenu Remove All Watches :

Menghapus semua rinci dalam jendela watch sekaligus memperkecil ukurannya sampai minimum.

Submenu Toggle Breakpoints [Ctrl + F8]:

mengatur suatu baris sebagai breakpoint. Dalam editor breakpoint ditunjukkan dengan highlight text.

Submenu Clear All Breakpoints:

Menghapus semua breakpoint yang telah diset.

Submenu View Next Breakpoint :

Digunakan untuk menggerakkan kursor ke posisi breakpoint berikutnya.

Kamis, 05 November 2009

Membuat program biodata menggunakan Turbo pascal

KONSEP DASAR PEMROGRAMAN PASCAL

Membuat Program sederhana

KONSEP DASAR PEMROGRAMAN PASCAL



program biodata;
uses crt;
var
nama, alamat : string;
umur : integer;
begin
clrscr;
writeln('===========================================');
writeln(' Biodata');
writeln('===========================================');
write('Nama : '); readln(nama);
write('Umur : '); readln(umur);
write('Alamat : '); readln(alamat);
writeln('-------------------------------------------');
writeln('Jadi data Anda : ');
writeln('Anda bernama ',nama,'. Umur Anda ',umur,' tahun. Anda tinggal di ',alamat,'.');
writeln;
readkey;
end.


Kalau sudah ditulis semua, silakan compile program tersebut untuk melihat hasilnya.

Cara meng-compile nya sebagai berikut :

  1. Klik RUN
  2. Klik Run

Hwhwhwh… cara yang lebih mudah yaitu hanya dengan menekan tombol Ctrl + F9.

Udah kelihatan kan hasilnya?

Nah coba dicermati dulu…. penjelasannya ada di bawah :

  • ‘Uses Crt’ merupakan salah satu unit di pascal. Unit yang satu ini harus digunakan jika ingin menggunakan perintah ‘clrscr’ (perintah untuk membersihkan layar) dan ‘readkey’ (perintah untuk membaca masukan user).
  • ‘Var’ merupakan bagian pendeklarasian variabel yang di dalamnya memuat tipe-tipe data, seperti string, integer, byte, word, char, dll.
  • Setiap listing program utama harus diawali dengan huruf ‘begin’ dan diakhiri dengan ‘end.’ (ingat! jangan lupa titik(.) nya pada end.)
  • Perintah untuk mencetak adalah ‘write’. Jadi kalau mau mencetak “Halo, saya pascal” yaitu dengan perintah :
write('Halo, saya pascal')


Tapi selain write, ada juga perintah ‘writeln’. Bedanya kalau ‘write’ setelah mencetak kursornya tetap disamping, sedangkan kalau ‘writeln’ kursornya ke bawah. Untuk contohnya dapat dicermati dari listing program tadi.

  • Perintah ‘read’ dan ‘readln’ digunakan untuk membaca input yang dimasukkan user. Perbedaan antara keduanya sama dengan ‘write’ dan ‘writeln’.
  • Jangan lupa untuk menuliskan tanda titik dua (;) di setiap akhir baris program.

Penggunaan if, looping, array dan record dalam pascal

KONSEP DASAR PEMROGRAMAN PASCAL

PASCAL

Daftar ISI

- Pengenalan

- Tutor 1 (cara mencetak ke layar dan penggunaan variabel)

- Tutor 2 (penggunaan kondisi)

- Tutor 3 (looping)

- Tutor 4 (prosedur dan fungsi)

- Tutor 5 (array dan record)

- Tutor 6 (Database)


Contoh Program

Program 1 menghitung luas/keliling bangunan

Program 2 menentukan bilangan ganjil, genap dan prima

Program 3 menentukan bilangan terbesar (dengan if)

Program 4 penggurutan angka (looping)

Program 5 bintang (looping)

Program 6 penggabungan program 1, 2 dan 4 dengan membuat menu (prosedur, fungsi)

Program 7 toko (record dengan array)

Program 8 Operasi String

Program 9 Contoh penggunaan teori di tutor 6


PENGENALAN

Pada bagian ini gua cuman ngejelasin secara garis besar tentang pascal dan tips penulisan program.

Rasanya gak lengkap kalo gak tahu sejarah pascal. Pascal adalah bahasa tingkat tinggi yang orientasinya pada segala tujuan, dirancang oleh Prof. Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan philosiphi terkenal abad 17 dari Prancis.

Profesor Niklaus Wirth memperkenalkan kompiler bahasa Pascal pertama kali untuk komputer CDC 6000 (Control Data Corporation) yang dipublikasikan pada tahun 1971 dengan tujuan untuk membantu mengajar program komputer secara sistematis, khususnya pemrograman terstruktur. Pada perkembangannya banyak versi-versi pascal yang beredar, MS-Pascal, Apple Pascal, Turbo Pascal, dll. Gua pernah baca kalo pascal itu di buat karena bahasa C terlalu sulit untuk di pelajari untuk pemula.

Sekarang kita ngeliat bagaimana struktur program pascal. Pascal terdiri dari 2 bagian utama, yaitu pendeklarasian variabel dan programnya. Perhatikan contoh:


1: Program KaryaPertamaku;

2: uses crt;

3: var nama: string;

4: Begin

5: write('Masukkan nama anda: '); readln(nama);

6: clrscr;

7: write('Hi ', nama, 'apakabar?');

8: End.


Gak usah dipikirin apa isi program itu. Tapi perhatikan strukturnya. Pada baris ke 3, itu yang disebut bagian pendeklarasian variabel. Sedangkan dari baris ke-4 s/d 8, disebut bagian pernyataan (tempat nulis program). Baris pertama itu hanya merupakan judul programnya doank, gak ditulis juga boleh. Judulnya adalah "KaryaPertamaku", jangan pake spasi loh nulisnya (gunakan garis bawah aja).


O iya, dalam pascal ada yang disebut unit-unit lain semacam librari lah... Misalnya pada baris kedua digunakan uses crt; (berfungsi untuk memanipulasi layar teks). Perhatikan baris 6, itu adalah salah satu fungsi dari unit crt yaitu untuk membersihkan layar (sama dengan perintah cls di dos).


Perhatikan cara penulisan programnya! Setiap baris selalu diakhiri dengan titik koma ";" (kecuali pada baris ke-4 dan 8, karena itu adalah tanda dari awal dan akhir program). Selain itu program pascal selalu dimulai dengan "begin" dan "end." (jangan lupa titiknya loh).

Bagaimana, mudah bukan? Gua kasih satu tips yang berguna. Kalo nulis program usahakan yang rapi. Ingat bila ada "Begin" pasti ada "end", nah penulisan program diantara begin dan end itu usahakan di kasih 2 spasi atau satu tab. Perhatikan baris ke-5 s/d 7. Itu akan memudahkan penelusuran program bila terjadi kesalahan


MENCETAK KE LAYAR DAN PENGGUNAAN VARIABEL

Ok, sekarang kita bakal belajar cara menampilkan teks di layar dan penggunaan variabel. Perhatikan contoh dibawah ini:


1: Program KaryaPertamaku;

2: uses crt;

3: var nama: string;

4: Begin

5: write('Masukkan nama anda: '); readln(nama);

6: clrscr;

7: write('Hi ', nama, 'apa kabar?');

8: End.


Pada baris ke-3 dideklarasikan variabel nama dengan tipe string. Karena berupa string, variabel nama bisa menampung input dari user berupa kata dan angka. Untuk lebih jelas tentang jenis tipe data lihat tabel di bawah. Jangan sampai salah mendeklarasikan jenis variabelnya loohh...

Sekarang perhatikan baris ke-5. Fungsi write adalah mencetak kalimat atau isi variabel yang ada ke layar. Jadi yang tercetak adalah "Masukkan nama anda: ". Selanjutnya ada perintah readln. Apa fungsinya? readln itu berfungsi untuk menampung (menyimpan hasil input user) dan disimpan pada variabel nama. Jadi sekarang variabel nama bernilai sama yang kamu ketikan.

Pada baris ke-7 di layar akan tercetak " Hi dijas apa kabar?" (itu kalo nama yang dimasukan dijas). Untuk menampilkan isi variabel cukup ditulis: "write(nama);". Sedangkan bila berupa teks yang fixed, contohnya sama seperti baris ke-5 (mengunakan ' (kutip) ).

Apa sih beda write dan writeln? write fungsinya mencetak di layar dan posisi kursor masih dibaris itu juga. Sedangkan writeln akan pindah kebaris yang baru. Perhatikan Contoh :


1: Begin

2: write('Hi...'); write(' Apa kabar?');

3: writeln;

4: writeln('Hi.. '); writeln('Apa kabar?');

5: End.


Maka output yang tampil adalah:


Hi... Apa kabar?

Hi...

Apa kabar ?


Jelas bukan? Jadi fungsi "ln" pada writeln adalah untuk pindah kebaris yang baru. Fungsinya akan sama bila ditaruh di read. Yup tutorial pertama kelar juga...

Tipe Data yang Sering Digunakan di Pascal

Char -> hanya menampung satu karakter

string -> menampung lebih dari satu karakter

Boolean -> hanya mempunyai dua nilai True atau False

Integer -> -32.768 s/d 32.767 (gak bisa bilangan desimal)

longint -> -2.147.483.648 s/d -2.147.483.648(gak bisa bilangan desimal)

read -> 2,9 x 10-39 s/d 1,7 x 1038 (untuk menampung bilangan desimal)


PENGGUNAAN KONDISI

Tutorial yang kedua ini akan dibahas mengenai pernyataan kondisi, if dan case.


1: Program Tutorial2_if;

2: var pilih: Integer;

3: Begin

4: write('Pilih 1 atau 2'); readln(pilih);

5: if pilih=1 then write('Anda memilih 1')

6: elseif pilih=2 then write('Pilihan anda 2')

7: else write('Anda memilih yang lain')

8: End.


Perhatikan baris 5, 6 dan 7. Di situ ada 3 pernyataan kondisi if. Apabila pilihan yang kita ketik ada di satu kondisi, maka yang lain akan diabaikan. Bingung? gini maksudnya... Misal pada program di atas kita pilih 2. Pada saat program dijalankan, baris ke-5 akan di eksekusi. Berhubung pilihan kita 2 bukan 1, maka akan langsung pindah kebaris selanjutnya. Ternyata pada baris ke-6 kondisi itu terpenuhi, maka yang tercetak dilayar adalah "Pilihan anda 2". Baris ke-7 tidak diperiksa lagi karena baris ke 6 sudah memenuhi syarat.

Bila kita memilih 3, maka baris ke-5 dan ke-6 tidak memenuhi konsisi tersebut, maka yang tercetak adalah "Anda memilih yang lain".


Selain dengan if, pernyataan kondisi di atas bisa juga menggunakan case. Perhatikan contoh:


1: Program Tutorial2_case;

2: var pilih: char;

3: Begin

4: write('Pilih 1 atau 2'); readln(pilih);

5: case pilih of

6: '1': write('Anda memilih 1');

7: '2': write('Pilihan anda 2');

8: else write('Anda memilih yang lain');

9: end;

10: End.


Keterangannya gak jauh beda dengan kondisi if kok. Coba amati pada baris ke 9, di sana ada pernyataan "end;". Pernyataan itu berfungsi untuk menutup pernyataan case yang dimulai pada baris ke-5. Perlu diingat "end" disertai dengan titik hanya untuk diakhir program.


LOOPING

Looping? apa hayoo...? masih ingatkan pelajaran fisika SMU, adakan pelajaran tentang looping dirangkaian elektronik. Looping adalah proses pengulangan hingga kondisi syarat yang ditentukan tercapai. Sekarang kita ngebahas 3 jenis looping, for, while dan repeat. Perhatikan contoh di bawah ini:


1: Program Tutorial3_for;

2: var i: Integer;

3: Begin

4: For i:=1 to 5 do

5: writeln('ini yang ke ', i);

6: End.


Perhatikan baris 4 dan 5. Di sana ada satu persyaratan, yaitu baris ke-5 akan dieksekusi bila nilai i antara 1 sampai 5. Apa output yang tercetak dilayar?

ini yang ke 1

ini yang ke 2

ini yang ke 3

ini yang ke 4

ini yang ke 5


Bagaimana kalo mau pake while? Perhatikan contoh:

1: Program Tutorial3_while;

2: var i: Integer;

3: Begin

4: i:=1;

5: while i <>

6: begin

7: writeln('ini yang ke ', i);

8: i:=i+1;

9: end;

10: End.


Apa perbedaan mendasar while dengan for? yup, di while dibutuhkan counter (diprogram ini adalah i). Jadi, baris ke-7 dan 8 akan dieksekusi (dijalankan) apabila nilai i <>sana ada "begin" dan "end;" sebagai pasangannya (dibaris ke 9). Bila ada lebih dari satu pernyataan harus di mulai dengan begin untuk kondisi if, case, looping. Jika tidak hanya baris pertama saja yang dieksekusi. Apa outputnya?

ini yang ke 1

ini yang ke 2

ini yang ke 3

ini yang ke 4


Coba baris ke 8 kamu ganti dengan "i:=i-1;" apa yang terjadi? Coba jalankan. Akan terjadi looping terus menerus karena kondisinya memenuhi syarat terus (i selalu kurang dari lima). Tekan control break untuk menghentikannya. Hal inilah yang disebut invinitive loop. Sekarang kita coba dengan repeat.


1: Program Tutorial3_while;

2: var pilih: char;

3: Begin

4: i:=1;

5: repeat

6: writeln('ini yang ke ',i);

7: i:=i+1;

8: until i<0;

9: End.


Apa outputnya? cuman 1, "ini yang ke 1". Loh kok bisa, kan pada baris ke 8 tidak memenuhi persyaratan i<0>

Kelar juga ngebahas looping. Gunakan jenis looping yang ada seseuai kebutuhan. O iya, apa yang dilakukan bila tertulis seperti ini? "For i:=10 downto 1 do". Pernyataan itu akan menghitung mundur dari 10 sampai 1.


PROSEDUR DAN FUNGSI

Misalnya kita punya rumus menghitung luas segita, apa yang kamu lakukan bila rumus itu ingin kamu tulis ditiga tempat yang berbeda? apa kamu akan ccp (copy, cut dan paste)? emang bisa sih diperbanyak dengan yang gituan, tapi boros memori dan berabe kalo rumus yang kita tulis ternyata salah, berarti kita harus betulin di tiga tempat juga. Untuk mempermudahnya gunakan Prosedur atau Fungsi.


1: Program Tutorial4_Prosedur;

2: Procedure Tampil;

3: begin

4: writeln('Hi...');

5: writeln('Apakabar');

6: end;

7: Begin

8: Tampil;

9: writeln('yang di atas menggunakan prosedur loohh...');

10: End.


Apa yang dilakukan program di atas? Coba lihat baris ke-3 sampai 7. Itulah yang disebut prosedur. Program utamanya mulai dari baris ke 8 sampai 11. Pada baris ke 9 prosedur yang kita buat sebelumnya dipanggil dan dieksekusi. Ini outputnya


Hi...

Apakabar

yang di atas menggunakan prosedur loohh...


Selain itu prosedur dan fungsi bisa di taruh variabel lohh... Perhatikan contoh penggunaan fungsi di bawah ini:


1: Program Tutorial4_Fungsi;

2: var hasil: integer;

3: Function Itung(a, b : integer) : integer;

4: begin

5: itung:=a+b;

7: end;

8: Begin

9: hasil:=itung(7, 9);

10: writeln('Hasil 7 + 9 sama dengan ', hasil);

11: End.


Baris 3 sampai 7 adalah fungsi. Tapi perhatikan bentuk fungsinya, ada pendeklarasian variabel a dan b. Coba liat baris ke 9 ketika fungsi itung dipanggil. Di sana tertulis "itung(7, 9)", secara otomatis a akan mendapat nilai 7 dan b mendapat 9. Bagaimana jika ditulis "itung(3,5,6)"? Jelas gak bisa karena dialokasikan hanya 2 variabel. Hasil penjumlahan a + b ditampung di fungsi itung (lihat baris ke-5) dan hasil itu diberikan ke variabel hasil (baris 9).

Lalu apa perbedaan prosedur dan fungsi? Prosedur hanya bisa menjalankan perintah dan tidak mengembalikan nilai (lihat kembali contoh program prosedur sebelumnya). Sedangkan fungsi bisa mengembalikan nilai untuk di tampilkan dilayar atau diolah lagi. Bila kita punya fungsi yang bernama CekSaldo, maka CekSaldo bisa berfungsi seperti variabel sama seperti pada fungsi Itung di atas.


Bagaimana? mudah bukan? gunakan prosedur dan fungsi sesuai kebutuhan. Terkadang fungsi lebih berguna dan efisien dibandingkan dengan prosedur.


ARRAY DAN RECORD

Pernahkah kamu membayangkan bila kita mau membuat program toko buah-buahan. Jika ada 3 jenis buah-buahan (melon, duku dan mangga) berarti kita harus mempunyai tiga variabel untuk masing-masing jenis buah. Tetapi betapa sulitnya jika toko itu punya 10 atau 20 jenis yang berbeda. Solusinya adalah gunakan array. Array itu adalah tipe data terstuktur yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagaimana cara kerjanya? yaitu dengan menggunakan index (semacam penanda). Perhatikan contoh:


1: Program Tutorial5_Array;

2: var buah: array [1..3] of string;

3: i: integer;

4: Begin

5: For i:=1 to 3 do

6: begin

7: write('Masukkan buah-buahan ke ',i , ' : ');readln(buah[i]);

8: end;

9: writeln;writeln('Isi buah-buahan yang dimasukkan tadi adalah : ');

10: For i:= 1 to 3 do

11: writeln('buah ke', i ,' : ', buah[i]);

12: End.


Lihat pada baris ke 7. Dengan hanya menggunakan satu nama variabel yaitu buah, kita bisa menyimpan 3 nilai yang berbeda. Misalkan yang kita masukkan adalah melon, duku dan mangga. maka buah[1] bernilai melon, buah[2] bernilai duku dan buah[3] bernilai mangga. Untuk mencetak isi variabel yang sudah disimpan di array tadi caranya bisa dilihat di baris ke 11.


Bagaimana, gampangkan? setelah mengetahui cara menggunakan array, sekarang kita belajar menggunakan record. Tidak seperti array, record adalah jenis tipe data terstruktur yang berisi beberapa data, yang masing-masing dapat berlainan tipe. Perhatikan contoh:


1: Program Tutorial5_Record;

2: type buah = record

3: nama: string;

4: harga: longint;

5: end;

6: var data:buah;

7: Begin

8: write('nama buah: ');readln(data.nama);

9: write('harga buah: ');readln(data.harga);

10: write('ditampilkan');

11: write('nama');readln(data.nama);

12: writeln('harga');readln(data.harga);

13: End.


Apa yang bisa kamu ambil kesimpulan dari program di atas? Bingung? Jadi gini, dengan menggunakan record (di sini bernama buah) kita bisa membuat tipe data yang berisi beberapa data yang berlainan tipe (nama dengan jenis string, dan harga dengan jenis long integer) yang ini disebut field.


Perhatikan baris ke 6, di situ dideklarasikan bahwa variabel data bertipe buah. Otomatis yang dimiliki buah (nama dan harga) dimiliki juga oleh data. Setelah itu lihat baris ke 8 dan 9. Nama buah disimpan dalam field nama dan harga buah disimpan di dalam field harga. Untuk bisa menyimpan data di field, urutannya harus variabel.field (contohnya di sini data.nama atau data.harga). Begitu juga bila kita ingin menampilkan isi field tersebut.

Tipe data seperti ini sangat berguna kedepannya loohh... Apalagi jika digabungkan dengan array.


DATABASE

Rasanya gak lengkap kalo buat program tapi gak bisa nyimpen data. Yang bakal dijelasin di sini adalah file bertipe, artinya harus disebutkan dulu tipe file tersebut, apakah integer, long integer, string, char atau bahkan record. Berikut ini adalah daftar prosedur dan fungsi yang berhubungan dengan program database file bertipe (no 12 sampai 16 hanya untuk file teks).


Procedure Assign (var f, NamaFile: string);

Procedure Rewrite (var f);

Procedure Reset(var f);

Procedure Close(var f);

Procedure Write(var f, var1 [, var2, ..., varn]);

Procedure Read(var f, var1 [, var2, ..., varn]);

Function Eof(var f): Boolean;

Function FilePos(var f): longint;

Function FileSize(var f): longint;

Procedure Seek(var f, N: longint);

Procedure Truncate(var f);

Function Eoln(var f:text):boolean;

Function SeekEoln(var f:text):boolean;

Function SeekEof(var f:text):boolean;

Procedure Flush(var f:text);

Procedure SetTextBuf(var f:text, var buf[, ukuran: word]);


Penjelasannya di bawah ini:

Pengacuan suatu file melalui variabel file. Setiap ingin melakukan manipulasi atau yang lainya, harus melakukan ini dulu

Apabila file tidak ada, maka file itu akan terbentuk. Tetapi bila ada, maka isi file itu akan hilang.

Membuka file yang sudah ada, tetapi tidak menghapus isinya

Menutup suatu file (lakukan setelah setelah file itu di manipulasi)

Mengisi file dengan data. (apabila filenya bertipe text, maka writeln bisa digunakan)

Membaca isi file. (apabila filenya bertipe text, maka readln bisa digunakan untuk membaca perbaris)


Memeriksa akhir file. Hasilnya akan True bila posisinya diakhir dan False apabila tidak diakhir. Biasa digunakan untuk membaca/mengubah data.

Mengetahui posisi file sekarang. Penomoran data mulai dari 0.

Mengetahui jumlah data yang ada.

Memindahkan posisi file. Data pertama bernilai 0.

Menghapus data dari posisi sekarang sampai akhir file

Menghasilkan status akhir baris file teks. Nilainya akan true kalau diakhir baris atau Eof memberikan nilai True.

Sama seperti Eoln, tetapi spasi dan tab diabaikan.

Sama seperti Eof, tetapi mengabaikan spasi, tab ataupun tanda akhir baris

Mengosongkan penyangga (buffer) file teks yang dibuka untuk keluaran (perekaman). Prosedur ini menjamin bahwa data yang direkam benar-benar telah disimpan ke file (normalnya, data akan disimpan ke file kalau penyangga file sudah penuh)


Menentukan ukuran penyangga yang digunakan file. Dipanggil setelah assign. Semakin besar semakin cepat pemrosesannya, defaultnya 128 byte.

Bila ada tulisan var f, itu artinya variabel file. NamaFile artinya nama databasenya (bila perlu pathnya). var1 artinya variabel yang bersesuaian dengan tipe filenya. N artinya data ke-N. Bila dalam bentuk fungsi, maka ia akan mengembalikan nilai tergantung jenisnya (apabila boolean maka akan mengembalikan True atau False, bila longint akan mengembalikan angka).

Waahhh... banyak yach? emang gitulah... Bahkan ada lagi yang lain loh untuk file tak bertipe. Prosedur dan fungsi di atas gua ambil dari bukunya pak Ir. Abdul Kadir, Pemrograman Pascal. Bukunya bagus juga, ada 2 jilid tebel-tebel tapinya :D. O iya, di sini gua gak ngasih contohnya loh... abis kepanjangan kalo ditulis di sini.Untuk contoh-contoh penggunaan prosedur dan fungsi di atas bisa di lihat di Program 9.


CONTOH PROGRAM


Program 1 : menghitung luas/keliling bangunan

Sekarang kita buat program yang pertama, menghitung luas dan keliling bangunan. Bangunan yang dijadikan contoh adalah segitiga. Perhatikan contoh di bawah ini:


1: Program Menghitung_Luas_dan_Keliling;

2: var alas, tinggi, sisimiring, luas, keliling: real;

3: Begin

4: writeln('MENGHITUNG LUAS DAN KELILING SEGITIGA');

5: writeln('-------------------------------------');

6: write('Masukkan alas : ');readln(alas);

7: write('Masukkan tinggi : ');readln(tinggi);

8: luas:= 0.5*alas*tinggi;

9: sisimiring:=sqrt(sqr(alas)+sqr(tinggi));

10: keliling:= alas+tinggi+sisimiring;

11: writeln;

12: writeln('luas segitiga : ', luas:0:2);

13: writeln('keliling segitiga : ', keliling:0:2);

14: readln;

15: end.


Pada baris 6 dan 7 adalah tempat memasukkan alas dan tinggi segitiga yang akan diproses di baris 8 sampai 10. Ingat kan rumus menghitung sisi miring segitiga? yaitu akar dari jumlah kuadrat sisi-sisinya. Fungsi "sqrt" adalah untuk mengakarkan dan sqr untuk mengkuadratkan.

Sekarang kebaris 12 dan 13. Apa yang beda hayoo...? betul.. setelah variabel luas dan keliling dicetak ke layar ada tambahan ":0:2". Itu artinya :banyaknya alokasi angka:jumlah desimal.


Program 2 : menentukan bilangan ganjil, genap dan prima

Pernah kan pas di SD kita disuruh nentuin bilangan ini ganjil apa genap, prima apa bukan. Sekarang kita jadiin program.


1: Program JenisBilangan;

2: var bil: longint;

3: begin

4: writeln('MENENTUKAN JENIS BILANGAN');

5: writeln('-------------------------');

6: write('Masukkan angka: ');readln(bil);

7: if ((bil=2) or (bil=3) or (bil=5) or (bil=7)) then

8: write('bilangan prima')

9: else if ((bil mod 2 <> 0) and (bil mod 3 <> 0) and (bil mod 5 <> 0) and (bil mod 7 <>0)) then

10: write('bilangan prima')

11: else write('bukan bilangan prima');

12: if bil mod 2 = 0 then

13: writeln(' dan genap')

14: else

15: writeln(' dan ganjil');

16: readln;

17: end.


Pada baris ke-7 sampai 12 adalah tempat menentukan bilangan prima atau bukan. Masih ingat kan karateristik bilangan prima? bilangan yang hanya bisa dibagi 1 dan dirinya sendiri dan juga hampir semuanya ganjil. Berhubung bilangan prima dibawah 10 adalah persyaratan untuk bilangan diatas 10 (perhatikan baris ke 7 dan 9), jadi bilangan prima dibawah 10 ditulis manual. Fungsi "mod" pada baris 9 dan 13 adalah sebagai sisa dari pembagian. Jika ditulis "7 mod 3" maka hasilnya adalah 1, artinya sisa dari 7/3 (tujuh dibagi tiga) adalah 1.


Program 3 : menentukan bilangan terbesar (dengan if)

Ini adalah program terakhir untuk mematangkan penggunaan kondisi if. Pernah kah kalian membuat program dengan susah payah tetapi setelah ditunjukkan dengan orang lain, mereka bilang "Hanya gitu doank kerjanya?". He he he... sakit hati emang :-(, kalo bisa rasanya pengen nimpuk tu orang dengan hardisk SEAGATE BARACUDA 80 giga lima biji :)). Ini salah satu program yang panjang, tapi fungsinya... yaa... gitulah :D


1: Program BilanganTerbesar;

2: Var bil1, bil2, bil3 :real;

3: Begin

4: Write('Masukkan Bilangan Pertama : ');Readln(bil1);

5: Write('Masukkan Bilangan Kedua : ');Readln(bil2);

6: Write('Masukkan Bilangan Ketiga : ');Readln(bil3);

7: If (bil1=bil2) and (bil2=bil3) then

8: Writeln('Semua bilangan yang anda masukkan sama besar ',bil1:0:0)

9: Else If (bil1=bil2) or (bil1=bil3) or (bil2=bil3) then

10: Begin

11: If bil1=bil2 then

12: Begin

13: Writeln('Bilangan Pertama dan Kedua Adalah Sama');

14: If Bil1 <>

15: Writeln('Bilangan Terbesar Adalah ',bil3:0:0)

16: Else

17: Writeln('Bilangan Terbesar Adalah ',bil1:0:0)

18: End

19: Else If bil1=bil3 then

20: Begin

21: Writeln('Bilangan Pertama dan Ketiga Adalah Sama');

22: If Bil1 <>

23: Writeln('Bilangan Terbesar Adalah ',bil2:0:0)

24: Else

25: Writeln('Bilangan Terbesar Adalah ',bil1:0:0)

26: End

27: Else If bil2=bil3 then

28: Begin

29: Writeln('Bilangan Kedua dan Ketiga Adalah Sama');

30: If Bil1 <>

31: Writeln('Bilangan Terbesar Adalah ',bil3:0:0)

32: Else

33: Writeln('Bilangan Terbesar Adalah ',bil1:0:0)

34: End

35: End

36: Else If bil1 > bil2 then

37: Begin

38: If bil1 > bil3 then

39: Writeln('Bilangan terbesar adalah ',bil1:0:0)

40: Else

41: Writeln('Bilangan terbesar adalah ',bil3:0:0);

42: End

43: Else If bil1 <>

44: Begin

45: If bil2 > bil3 then

46: Writeln('Bilangan terbesar adalah ',bil2:0:0)

47: Else

48: Writeln('Bilangan terbesar adalah ',bil3:0:0);

49: End;

50: readln;

51: End.


Lumayan keren kan? dengan bermodalkan if kita bisa menentukan bilangan mana yang terbesar dari 3 bilangan yang dimasukkan. Selain itu program ini bisa mendekteksi jika ada bilangan yang sama. Yup, hanya itu intinya. Prinsip utama program ini hanya membandingkan bilangan satu dengan yang lain. Mudah bukan? lebih baik kalian ngerjain yang ini tanpa ngeliat tu program, biar logikanya jalan...


Program 4 : penggurutan angka (looping)

Pernahkah kalian dikasih nilai ulangan siswa lalu disuruh ngurutin dari yang kecil ke gede? Kalo jumlahnya dibawah 10 sih gak masalah, lah kalo ada 100 biji kan berabe... Ini solusinya:


1: Program Pengurutan;

2: var i, j: integer;

3: k : longint;

4: a: array[1..5] of longint;

5: begin

6: writeln('PROGRAM MENGGURUTKAN ANGKA');

7: writeln('--------------------------');

8: for i:=1 to 4 do

9: begin

10: write('Masukkan bilangan ke- ', i, ' : ');readln(a[i])

11: end;

12: for j:=2 to 4 do

13: begin

14: k:=a[j];

15: i:=j-1;

16: while (i>0) and (a[i]>k) do

17: begin

18: a[i+1]:=a[i];

19: i:=i-1;

20: end;

21: a[i+1]:=k

22: end;

23: for i:=1 to 4 do

24: writeln(a[i]);

25: readln;

26: end.


sebenarnya gak perlu dijelasin lagi yach tu program, gw harap kalian bisa nge-trace (menelusuri) algoritma programnya. Program ini dibatasi untuk 4 angka saja, bisa diubah sesuai keinginan. Pada prinsipnya program ini memasukkan input ke dalam array, kemudian membandingkannya, bila ternyata angka sebelumnya lebih besar, maka dipindah posisinya (coba dech di trace, pasti ngerti).


Program ini berguna banget buat kalian yang hobi ngitung, apa lagi buat anak smu. Untuk pengembanganya kalian bisa menghitung mean, modus dan median


Program 5 : bintang (looping)

Setelah sebelumnya kita bermain dengan if, sekarang ke for. Program di bawah ini akan memunculkan output berupa sekumpulan bintang yang membentuk tangga


1: Program BintangTangga;

2: const akhir=18;

3: var baris, kolom: integer;

4: begin

5: for baris:=1 to akhir do

6: begin

7: for kolom:=1 to baris do

8: write('*');

9: writeln;

10: end;

11: readln;

12: end.


Coba dijalankan, gimana hasilnya? menarik bukan?. Sekarang kita coba menampilkan sekumpulan bintang yang membentuk kubus.


1: Program BintangKubus;

2: uses crt;

3: Var i, j, x, y:integer;

4: Begin

5: clrscr;

6: Write('Masukkan Dimensi Kubus: ');Readln(x);

7: y:=0;

8: For i:=1 to x do

9: Begin

10: for j:=1 to x do

11: Begin

12: y:=y+1;

13: write(y:4);

14: if y mod x=0 then

15: Writeln;

16: End;

17: End;

18: readkey;

19: End.


Gimana? baguskan? Sekarang tugas kamu membuat sekumpulan bintang berbentuk piramida dan berbentuk tangga terbalik (seperti program pertama di atas tetapi terbalik)


Program 6 : penggabungan program 1, 2 dan 4 dengan membuat menu (prosedur, fungsi)

Setelah dari tadi belajar logika, sekarang kita menggabungkan beberapa program sebelumnya dan dibuat menu. Untuk contoh ini kita memanfaatkan repeat.


1: Program Gabung;

2: uses crt;

3: var pilih: integer;

4: Procedure luas;

5: {copy dan paste program 1}

6: end;

7: Procedure JenisBilangan;

8: {copy dan paste program 2}

9: end;

10: Procedure Pengurutan;

11: {copy dan paste program 4}

12: End;

13: begin {program utama}

14: repeat

15: clrscr;

16: writeln(' PILIHAN');

17: writeln('-------------------------------------------');

18: writeln(' 1. Menghitung Luas');

19: writeln(' 2. Jenis Bilangan');

20: writeln(' 3. Pengurutan');

21: writeln(' 4. Exit');

22: writeln('-------------------------------------------');

23: writeln;

24: writeln;

25: write(' Pilih Angka untuk Memilih Pilihan : ');

26: readln(pilih);

27: case pilih of

28: 1 : luas;

29: 2 : JenisBilangan;

30: 3 : Pengurutan;

31: 4 : exit;

32: end;

33: until pilih = 4;

34: end.


Ngertikan prisip kerjanya? Jadi program ini hanya akan berakhir jika user memilih no 4.


Program 7 : toko (record dengan array)

Pada tutorial 5 telah dijelaskan cara penggunaan array dan record. Sekarang kita akan menggabungkan array dan record tersebut. Perhatikan program di bawah ini:


1: Program Array_dan_Record;

2: type dmhs=record

3: nrp:string[10];

4: nama:string[25];

5: alamat:string[50];

6: end;

7: var data:array[1..3] of dmhs;

8: i:integer;

9: begin

10: for i:=1 to 3 do

11: begin

12: write('nrp : ');readln(data[i].nrp);

13: write('nama : ');readln(data[i].nama);

14: write('alamat : ');readln(data[i].alamat);

15: end;

16: writeln;

17: writeln('Data ditampilkan');

18: for i:=1 to 3 do

19: begin

20: writeln('nrp : ', data[i].nrp);

21: writeln('nama : ', data[i].nama);

22: writeln('alamat : ', data[i].alamat);

23: end;

24: readln;

25: end.


Di dalam program tersebut dideklarasikan bahwa dmhs (data mahasiswa) itu adalah record yang mempunyai field nrp, nama dan alamat (lihat baris 2 sampai 6). Selanjutnya variabel data dideklarasikan bertipe dmhs yang berbentuk array (baris ke 7). Kemudian seperti biasa untuk memasukkan data ke field digunakan "readln(data[i].nrp)", dst (baris 10 sampai 15). Untuk menampilkannya bisa dilihat dibaris ke 18 sampai 23.


Program 8 : Operasi String

Yang ini sebenarnya program tambahan, habis program-program sebelumnya kan kebanyakan bermain logika matematik (tentang angka melulu). Ehh... dipikir-pikir, operasi tentang string kok gak ada? Tenaaannggg.... sekarang udah ada kok :p


1: var nama : string;

2: urutan, posisi: integer;

3: begin

4: nama:='Dijas Keren';

5: writeln('Yang ini delete');

6: for urutan:=1 to 11 do

7: begin

8: posisi:= 13 - urutan;

9: delete(nama, posisi, 1);

10: writeln(nama);

11: end;

12: writeln;

13: nama:='DijasKeren';

14: writeln('Yang ini insert');

15: writeln('Sebelum di Insert : ', nama);

16: insert('-', nama, 6);

17: writeln('Setelah di Insert : ', nama);

18: readln;

19: end.

Outputnya seperti di bawah ini

Yang ini delete

Dijas Keren

Dijas Kere

Dijas Ker

Dijas Ke

Dijas K

Dijas

Dijas

Dija

Dij

Di

D


Yang ini insert

Sebelum di Insert : DijasKeren

Setelah di Insert : Dijas-Keren

Jadi isi penggunaan delete itu => delete(string, posisinya, jumlah yang di hapus). Sedangkan insert => insert(yang mau disisipkan, string, posisinya). Gampang kan? Dengan ini bisa dibuat kayak Program 5 loh (tentang bintang).


Bagaimana jika suatu saat kamu pengen ngerubah string jadi numerik atau numerik jadi string?

str(angkanya:desimal yang diambil, variabel string tempat hasilnya disimpan)

prosedur ini untuk mengubah numerik ke string

val(string, variabel numerik tempat hasilnya disimpan, posisi salah)

prosedur ini untuk mengubah string ke numerik. Khusus posisi salah, yang dideteksi adalah posisi salah yang pertama (walaupun ada 5 biji yang salah, yang ke tangkap yang pertama)

Concat(string, string, string) : string


Yang ini untuk menggabungkan string, ini fungsi loohh.. jadi hasil penggabungannya ditampung di Concat

Ini program terakhir tentang operasi string, program pembalik kata


1: program pembalik_kata;

2: var kata,hasil,tmp:string; i:integer;

3: begin

4: write('Kata : ');readln(kata);

5: hasil:='';

6: for i :=length(kata) downto 1 do

7: begin

8: tmp:=copy(kata,i,1);

9: hasil:=hasil+tmp;

10: end;

11: write('Dibalik ',hasil);

12: readln;

13: end.


Di program ini ada dua fungsi operasi string baru yang digunakan.

length(string) : integer

Fungsi ini untuk menghitung panjang atau jumlah karakter.

copy(string, posisinya, jumlah yang akan diambil)

Fungsi ini untuk mengambil sejumlah huruf dari sting yang dimasukkan

Pos(string/huruf yang akan dicari posisinya, string awal):byte


Fungsi ini untuk mengetahui posisi dari string/huruf dari kata/kalimat yang dimaksud. Bila bernilai nol berarti nilai string yang dicari tidak ada.


Program 9 : Contoh penggunaan teori di tutorial 6

Program database ini adalah contoh-contoh penggunaan fungsi dan prosedur dari Tutorial 6. Perhatikan contoh berikut:


1: Program BuatFile;

2: var fText : text; data: string;

3: begin

4: writeln('MENGISI DATA');

5: writeln('------------');

6: assign(fText, 'nama.txt');

7: rewrite(fText); {gunakan reset(fText) bila file sudah ada}

8: writeln(fText, 'dijas');

9: writeln(fText, 'dian');

10: writeln(fText, 'cecep');

11: close(fText);

12: readln;

13: end.


Prosedur yang digunakan di atas adalah prosedur no. 1 sampai 5 yang ada di Tutorial 6. Untuk membaca databasenya gunakan reset (jangan rewrite) dan gunakan prosedur no 6. Perhatikan contoh di bawah ini:


assign(fText, 'bil.dat');

reset(fText);

read(fText, data);

writeln(data);


Sekarang kita gunakan fungsi nomor 7 yachh... Fungsi ini biasa digunakan untuk membaca data yang ada dari awal/posisi tertentu sampai akhir. eof kepanjangan end of file


while not eof(fText) do

begin

readln(fText, data);

writeln(data);

end;


Bagaimana caranya jika ingin mengedit data yang sudah ada? Gunakan prosedur seek, perintahnya: Seek(fText, filesize(fText));. Setelah menempatkan kursor ditempat yang diinginkan, gunakan perintah write untuk mengedit atau prosedur Truncate untuk menghapus (perintahnya Truncate(fText)). Tapi hati-hati mengunakan Truncate, soalnya mulai dari posisi yang dimaksud sampai akhir file akan dihapus. Fungsi dan prosedur lainnya bisa dicoba-coba sendiri yaaa....

Selamat mencoba.…