Panduan Instalasi Free Pascal dan Turbo Pascal
Panduan Instalasi Free Pascal dan Turbo Pascal
Dalam 2 tutorial ini akan dibahas langkah demi langkah untuk mendownload dan menginstall
aplikasi untuk menjalankan kode program pascal, yakni Free Pascal dan Turbo Pascal 7.
Pada tutorial belajar pascal kali ini kita mendownload dan menginstall compiler Free
Pascalkedalam sistem operasi Windows.
File Free Pascal yang saya unduh bernama [Link]. Kemungkinan besar
nama file yang anda gunakan akan sedikit berbeda, terutama jika terdapat versi baru.
Setelah file instalasi Free Pascal tersedia, silahkan double klik file tersebut untuk memulai
proses instalasi.
Pada jendela “Welcome to the Free Pascal Setup Wizard”, klik Next untuk melanjutkan.
Jendela kedua “Select Destination Location”, kita bisa mengatur lokasi folder instalasi Free
Pascal. Secara default, folder yang akan digunakan berada di C:\FPC\2.6.4. Anda bisa
mengubah lokasi folder ini agar mudah diakses, seperti C:\FreePascal, atau C:\Pascal.
Pemilihan lokasi ini tidak berpengaruh apa-apa ketika menjalankan aplikasi nantinya.
Kali ini saya akan membiarkan lokasi default pada C:\FPC\2.6.4. Klik Next untuk
melanjutkan.
Jendela ketiga adalah “Select Components”. Pada bagian ini kita bisa memilih jenis instalasi
Free Pascal, yakni Full Instalation, Minimum Instalation atau Custom Instalation. Apabila
anda tidak memiliki masalah dengan kapasitas harddisk, saya menyarankan menggunakan
pilihan default: Full Instalation. Klik Next untuk melanjutkan.
Ukuran folder Free Pascal setelah proses instalasi berkisar sekitar 150 MB
Jendela berikutnya adalah “Select Start Menu Folder”. Pada bagian ini kita bisa mengubah
nama shortcut Free Pascal sewaktu diakses melalui Start Menu. Saya membiarkan pilihan
yang ada dan klik Next.
Jendela “Select Additional Tasks” berguna untuk mengatur beberapa konfigurasi seperti file
assosiation, membuat shorcut, dan konfigurasi compiler. Khusus pada menu file assosiation,
terdapat pilihan untuk men-checklist Associate .pas files with Free Pascal
IDE dan Associate .dpr files with Free Pascal IDE.
Extension .pas adalah extension file yang digunakan untuk membuat kode program pascal.
Sebagai contoh, kode program untuk menghitung luas segitiga bisa diberi
nama luas_segitiga.pas, atau [Link].
Dengan memilih pilihan Associate .pas files with Free Pascal IDE, maka ketika kita men-
double klik file tersebut dari Windows Explorer, kode program akan langsung ditampilkan di
dalam Free Pascal. Anda boleh memilih pilihan ini agar lebih mudah ketika mengedit kode
program. Klik Next untuk melanjutkan.
Jendela terakhir adalah “Ready to Install”. Pada bagian ini akan diperlihatkan pilihan-pilihan
konfigurasi yang telah dipilih. Jika semuanya sesuai, klik tombol Install untuk memulai
proses instalasi.
Tergantung kecepatan komputer, proses instalasi akan berjalan beberapa saat. Jika sudah
selesai, akan tampil jendela “Information”. Jendela ini berisi informasi mengenai versi Free
Pascal dan fitur-fitur baru yang ditambahkan. Klik Next untuk melanjutkan.
Jika jendela “Completing the Free Pascal Setup Wizard” telah tampil, maka proses
instalasi Free Pascal sudah selesai. Klik Tombol Finish untuk mengakhiri.
Apabila anda langsung menuju tampilan desktop, akan terlihat sebuah shortcut bernama Free
Pascal IDE. Silahkan double klik icon ini untuk menjalankan aplikasi Free Pascal.
IDE adalah singkatan dari Integrated Development Environment, yakni sebuah lingkungan
pengembangan software yang terintegrasi. Sebuah aplikasi IDE biasanya terdiri dari code
editor, compiler, debugger, dan beberapa fasilitas lain untuk memudahkan pembuatan
program komputer.
Sampai disini, aplikasi Free Pascal telah terinstall dengan sempurna, dan anda bisa mulai
membuat kode program pascal. Jika anda pernah menggunakan Turbo Pascal sebelumnya,
terlihat tampilan Free Pascal sama persis dengan Turbo Pascal (kecuali tambahan gambar
artwork “FPC” yang cukup mempesona).
Akan tetapi, seperti yang terlihat, jendela aplikasi Free Pascal dan font yang digunakan cukup
kecil. Saya akan melakukan beberapa setingan agar tampilan Free Pascal lebih user friendly.
Pada bagian Font, kita bisa mengubah ukuran font dari menu Size, dan jenis font dari
menu Font. Setelah beberapa kali percobaan saya memutuskan menggunakan jenis Font
Lucida Consoledengan ukuran font 20. Klik Ok untuk menerapkan setingan dan restart Free
Pascal.
Ketika anda mengubah jenis dan ukuran font, kemungkinan besar ukuran jendela juga ikut
berubah (karena jendela aplikasi menggunakan satuan yang bergantung kepada besar font).
Silahkan atur ulang ukuran jendela agar lebih sesuai.
Perlu juga diketahui bahwa file help ini menggunakan bahasa inggris. Apabila anda belum
terlalu paham bahasa inggris, dan belum butuh mendalami aturan penulisan pascal, tidak
perlu menambahkan file help ini.
Untuk menjalankan file help, anda bisa menekan tombol F1 dari dalam aplikasi Free Pascal.
Jika belum melakukan apa-apa, akan tampil keterangan bagaimana cara menambahkan file
help ini.
Sesuai dengan perintah yang ada, kita harus mendownload file help dalam format HTML dari
alamat [Link] Anda juga bisa mendownloadnya
langsung dari alamat
berikut: [Link]
[Link]/download. File help tersebut di compress dalam bentuk zip berukuran sekitar 15
MB, bernama [Link].
Setelah file help tersedia, berikutnya cari folder instalasi Free Pascal. Jika menggunakan
lokasi default, file instalasi berada di drive C di dalam folder FPC\2.6.4\. Di dalam folder
inilah seluruh file aplikasi Free Pascal berada. Jika anda perhatikan, di dalam folder ini
terdapat folder doc yang berisi file help dalam format pdf.
Unzip file help yang baru saja kita download tadi ke dalam folder FPC\2.6.4\doc\. File help
ini berisi ribuan halaman HTML, sehingga akan membutuhkan waktu beberapa saat untuk
men-uncompress seluruh file. Apabila sudah selesai, akan terdapat folder doc yang berisi
seluruh file help dalam format HTML. Agar tidak membuat bingung, anda bisa mengubah
nama folder ini menjadi doc_html (folder dari zip, bukan folder doc bawaan Free Pascal)
Langkah selanjutnya adalah memberitahukan keberadaan file help ini kepada aplikasi Free
Pascal. Caranya, jalankan Free Pascal, pilih menu Help -> Files…. Pada jendela “Install
Help Files”, klik New, lalu cari folder doc_html yang kita tambahkan sebelumnya.
Apabila anda baru pertama kali menggunakan aplikasi DOS, menelusuri file dan folder
mungkin sedikit membingungkan.
Tanda “../” digunakan untuk naik 1 folder. Silahkan double klik tanda “../” sebanyak 3 kali
untuk naik 3 folder keatas, jika anda melakukannya dengan benar, akan terlihat struktur
folder seperti yang ada pada folder C:\FPC\2.6.4.
Kemudian double klik folder doc, pillih folder doc_html, kemudian pilih
file [Link] dan klik Open.
Pada jendela konfirmasi yang tampil, pilih Yes dari pertanyaan “Create keyword index from
help file?”. Proses meng-index file help akan mulai berjalan. Karena banyaknya file HTML
yang ada, proses ini mungkin akan berlangsung beberapa menit. Silahkan anda tunggu
sejenak, atau membuat secangkir kopi :)
Setelah proses index selesai, Klik OK dan file help telah terintegrasi di dalam Free Pascal.
Untuk mengujinya, silahkan tekan tombol F1, dana anda akan melihat tampilan index help
yang bisa digunakan sebagai referensi untuk membuat program dengan pascal.
Sepanjang tutorial belajar Pascal di duniailkom ini, saya akan menggunakan aplikasi Free
Pascal.
Tutorial Belajar Pascal Part 5: Cara
Menjalankan Kode Program Pascal
(Membuat File exe)
17 Mar 15 | Andre | Tutorial Pascal | 118 Comments
Setelah menginstall aplikasi Free Pascal atau Turbo Pascal, kini saatnya kita mencoba
menjalankan kode program Pascal. Dalam tutorial belajar pascal kali ini akan dibahas tentang
alur kerja pembuatan dan cara menjalankan kode program pascal (membuat file .exe).
Dalam tutorial ini dan seterusnya, saya lebih banyak menggunakan aplikasi Free Pascal.
Walaupun begitu, anda tetap bisa mengikuti tutorial ini dari Turbo Pascal 7, karena dari sisi
tampilan serta pilihan menu yang ada, kedua aplikasi ini hampir sama.
Sebagai contoh klasik ketika mempelajari bahasa pemrograman baru, dalam tutorial ini kita
akan membuat kode program untuk menampilkan teks “Hello World” menggunakan pascal.
Sebelumnya, saya sudah mempersiapkan folder “belajar” dimana kode program pascal akan
disimpan. Saya meletakkan folder ini di alamat “C:\FPC\2.6.4\”, sehingga akan bersebelahan
dengan folder-folder aplikasi Free Pascal lainnya.
Jika anda perhatikan, di bagian tengah atas editor ini terdapat tulisan [Link]. Ini
adalah nama file sementara (temporary) sebelum kita menyimpan file pascal. Anda juga
dapat melihat bahwa pascal menggunakan extension .pas.
Berikutnya, silahkan ketik kode program berikut ke dalam editor :
1 program hello_world;
2 begin
3 writeln('Hello World');
4 writeln('Sedang belajar pascal...');
5 readln;
end.
6
Proses compile sebenarnya cukup rumit. Biasanya sebuah compiler akan mengubah kode
yang kita buat menjadi apa yang disebut dengan object code. Object codeselanjutnya
diproses lagi menjadi program executable, yakni file dengan akhiran *.exe yang merupakan
hasil akhir aplikasi.
Dalam jurusan ilmu komputer / teknik informatika, proses compile ini dipelajari dalam mata
kuliah khusus: Teknik Kompilasi. Anda tidak harus memahami proses compile untuk bisa
mempelajari bahasa pemrograman pascal.
Untuk men-compile kode program pascal, pilih menu Compile -> Compile. Atau gunakan
shortcut ALT+F9.
Ketika melalukan proses compile, program Free Pascal (atau Turbo Pascal) akan memproses
seluruh kode program dan menampilkan error (jika ada) atau menampilkan keterangan
“Compile sucessfull: Press any key” jika berhasil.
Silahkan tekan tombol sembarang untuk keluar dari pemberitahuan hasil compile.
Jika anda sudah melakukan proses compile dan sukses. Periksa kembali folder “belajar”
menggunakan Windows Explorer. Apabila menggunakan Free Pascal, akan terlihat 3 buah
file: [Link], hello.o dan [Link].
Bagi yang menggunakan Turbo Pascal, hanya akan terlihat file [Link] dan [Link].
Apabila anda menggunakan Turbo Pascal dan tidak melihat file [Link], ini disebabkan
hasil compile Turbo Pascal di letakkan di “memory”, bukan di dalam “disk”. Anda bisa
memeriksanya dari menu Compile -> Destination. Jika tertera Destination Memory seperti
berikut ini:
Klik menu tersebut untuk mengubahnya menjadi Destination Disk.
Silahkan kembali ke program Free Pascal / Turbo Pascal, dan jalankan menu run. Kali ini
hasil program akan ditampilkan langsung dari editor. Klik tombol sembarang untuk kembali
ke editor.
Sepanjang pembuatan program, akan lebih praktis jika kita menggunakan menu ini. Terlebih,
ketika memilih menu Run, aplikasi Free Pascal/Turbo Pascal akan otomatis juga men-
compilenya kode tersebut. Tombol CRTL+F9 akan menjadi salah satu tombol yang paling
sering anda gunakan.
utorial Belajar Pascal Part 6: Aturan dan
Cara Penulisan Kode Program Pascal
18 Mar 15 | Andre | Tutorial Pascal | 48 Comments
Setelah memahami cara menjalankan kode program pascal pada tutorial sebelumnya, dalam
tutorial belajar pascal kali ini kita akan membahas tentang aturan dan cara penulisan kode
program pascal. Saya juga akan membahas sekilas tentang kode program Hello World yang
kita buat sebelumnya.
2 begin
3 writeln('Hello World');
5 readln;
end.
6
Sebuah kode program pascal, diawali dengan keyword program kemudian diikuti dengan
judul program yang diinginkan (dalam contoh diatas, saya menggunakan judul hello_world).
Selanjutnya, kode program dibuka dengan perintah “begin”, dan diakhiri dengan perintah
“end.”(perhatikan tanda titik di akhir end). Diantara “begin” dan “end.” inilah seluruh kode
program pascal berada.
Perintah writeln digunakan untuk menampilkan teks (output), sedangkan
perintah readlndigunakan untuk menerima masukan (input). Perintah readln pada kode
diatas saya tambahkan hanya untuk menahan jendela tampilan jendela program ketika di-run.
Anda boleh menghapus baris readln; dan mencoba men-run kode diatas. Hasilnya hanya
akan terlihat sekilas saja (tidak sampai 1 detik).
Saya akan membahas struktur kode pascal secara mendalam dalam tutorial berikutnya.
Jika anda tidak ingin menambahkan perintah readln, bisa menggunakan alternatif lain. Setelah
program di-run (layar akan berkedip sebentar), silahkan tekan tombol ALT+F5, atau pilih
menu Debug -> User Screen.
Perbedaan Huruf Besar / Kecil
Pascal tidak membedakan penggunaan huruf besar atau kecil. Dalam pemrograman, hal ini
dikenal dengan istilah case insensitive. Kita boleh
menulis program, Program, PROGRAM, WRITEln, maupun wrITln. Semuanya
dianggap sama dalam pascal.
Kode program dibawah ini akan menghasilkan tampilan yang sama dengan kode kita
sebelumnya:
1 PROGRAM hello_world;
2 BEGIN
3 WRITELN('Hello World');
5 READLN;
END.
6
program hello_world;
1
begin
2
(* Kode untuk menampilkan tulisan 'Hello World'*)
3
writeln('Hello World');
4
{ Kode untuk menampilkan tulisan 'Sedang belajar pascal...'}
5
writeln('Sedang belajar pascal...');
6 readln;
7 end.
Penulisan komentar juga bisa mencakup beberapa baris, selama tanda penutup komentar
belum di temukan:
1
program hello_world;
2
begin
3
(* Kode untuk
4 menampilkan tulisan
5 'Hello World'*)
6 writeln('Hello World');
7 { Kode untuk
8 menampilkan tulisan
Selain untuk membuat keterangan, komentar juga berguna untuk ‘menghapus sementara’
sebuah kode program, seperti contoh berikut:
1
program hello_world;
2 begin
3 writeln('Hello World');
readln;
6
end.
7
Cara diatas sangat berguna jika anda ingin mencoba kode program baru, tetapi tidak ingin
menghapusnya.
Khusus untuk Free Pascal, terdapat 1 lagi cara penulisan komentar, yakni menggunakan tanda
‘//’:
1
program hello_world;
2 begin
3 writeln('Hello World');
readln;
6
end.
7
Komentar dengan karakter ‘//’ digunakan untuk membuat komentar singkat (hanya 1 baris)
dan tidak memerlukan tanda penutup. Jika anda ingin membuat komentar 2 baris, maka tanda
‘//’ dibuat sebanyak 2 kali pada tiap-tiap awal baris:
1
program hello_world;
2 begin
3 writeln('Hello World');
readln;
7
end.
8
Tanda komentar ‘//’ sangat populer digunakan, khususnya dalam bahasa pemrograman lain
seperti C, C++, atau PHP. Akan tetapi komentar ini tidak didukung oleh Turbo Pascal.
Penggunaan Whitespace
Whitespace adalah istilah pemrograman yang merujuk kepada tanda baca ‘spasi’ yang tidak
terlihat. Contoh karakter-karakter whitespace adalah: spasi, tab dan enter (new line). Di
dalam Pascal, secara umum whitespace akan diabaikan.
Sebagai contoh, kode program hello world kita sebelumnya bisa juga ditulis seperti berikut
ini:
1 program hello_world;
2 begin
3 writeln('Hello World');
5 readln;
end
6
writeln(‘Hello World’);
readln(var);
writeln(4+5);
writeln(6/10);
Penulisan statement tidak harus 1 baris 1 statement, kita juga bisa menggabungkan beberapa
statement dalam 1 baris, atau memecah 1 statement ke dalam beberapa baris, seperti contoh
berikut:
1 writeln
2 ('Hello World');
3 writeln
Error yang paling sering ditemui adalah lupa memberi tanda “;” di akhir statement. “Fatal:
Syntax error, “;” expected” merupakan error yang disebabkan lupa menutup statement di
dalam kode pascal.
Syntax adalah istilah pemrograman yang berarti aturan penulisan. Jika anda menemui kalimat syntax
error, kemungkinan besar ada kesalahan pada cara penulisan perintah.
Fungsi, variabel dan konstanta ini akan kita bahas dalam tutorial tersendiri.
Aturan penulisan identifier adalah sebagai berikut:
nama_pengguna
luas_segitiga
PanjangLingkaran
angkatan45
NAMAKOTA
Khusus untuk Free Pascal, anda cukup copy kode program dari dalam Windows, kemudian
buka Free Pascal, pilih menu Edit -> Paste from Windows.
Jika menggunakan Turbo Pascal, kita terpaksa men-paste kode tersebut di dalam sebuah file
dengan extension .pas menggunakan notepad (misalnya: kedalam folder ‘belajar’),
kemudian buka secara manual dari dalam Turbo Pascal.
Tutorial Belajar Pascal Part 7: Struktur
Dasar Kode Program Pascal
19 Mar 15 | Andre | Tutorial Pascal | 47 Comments
Setelah memahami Aturan dan Cara Penulisan Kode Program Pascal pada tutorial
sebelumnya, kali ini kita akan fokus membahas Struktur Dasar Kode Program Pascal, yakni
apa-apa saja yang bisa ditulis di dalam kode program pascal.
Berikut contoh kode menghitung luas dan keliling segitiga menggunakan pascal:
1 program hitung_lingkaran;
2
3 uses
4 crt;
5
6 type
7 warna=(merah, kuning, biru);
8
const
9 PI=3.14;
10
11 var
12 jari2:integer=7;
13 warna_lingkaran:warna=merah;
14
15 function luas_lingkaran:real;
begin
16 luas_lingkaran:=PI*jari2*jari2;
17 end;
18
19 procedure kel_lingkaran(jari2:integer);
20 begin
21 write('Keliling Lingkaran = ');
writeln(PI*(jari2+jari2):4:2, ' cm');
22 end;
23
24 begin
25 clrscr;
26 writeln('==PROGRAM MENGHITUNG LUAS LINGKARAN==');
writeln('==---------------------------------==');
27 writeln('Diketahui: jari-jari lingkaran = ',jari2,' cm');
28 writeln('Warna Lingkaran = ',warna_lingkaran);
29 writeln('Luas Lingkaran = ',luas_lingkaran:4:2, ' cm');
30 kel_lingkaran(jari2);
31 readln;
end.
32
33
34
35
36
Kode program diatas cukup panjang, namun sekali lagi anda tidak perlu memahaminya. Saya
akan membahas kode-kode diatas dalam tutorial pascal lainnya. Kali ini kita hanya fokus
kepada struktur program. Berikut penjelasannya dari struktur diatas:
Penulisan Nama Program Pascal
Seperti biasa, baris pertama sebuah kode pascal dimulai dengan penulisan
keyword program , kemudian diikuti dengan nama program.
Sebenarnya, anda tidak harus menulis kode ini. Penulisan nama program
sepenuhnya opsional(boleh ditulis, boleh tidak). Silahkan coba hapus baris “program
hitung_lingkaran;” dari kode diatas, hasilnya tetap bisa di-compile dan dijalankan.
Aturan penulisan nama program sama seperti aturan penulisan identifier yang kita bahas
pada tutorial aturan dan cara penulisan kode program pascal.
Perintah Uses
Uses adalah cara bahasa pemrograman pascal untuk memasukkan kode-kode external yang
dikenal dengan unit (atau library dalam bahasa pemrograman lain). Sebagai contoh,
perintah clrscr yang saya gunakan pada program utama merupakan perintah yang ada pada
unit crt. Terdapat berbagai unit yang bisa kita gunakan, seperti math, sysutils,
printer, dan strutils.
Ketersediaan unit ini berbeda-beda untuk masing-masing aplikasi. Compiler Free Pascal
memiliki unit yang lebih banyak dari pada Turbo Pascal karena masih aktif dikembangkan
hingga sekarang.
Deklarasi Type
Pada bagian deklarasi Type, kita bisa membuat tipe data bentukan. Sebagai contoh, dalam
kode diatas saya membuat tipe data warna, dimana tipe data ini hanya bisa diisi dengan
nilai merah, kuning, atau biru.
Dalam penulisan angka, tanda ‘koma’ digunakan sebagai pemisah ribuan, sedangkan tanda
‘titik’ digunakan untuk pemisah desimal. Ini berlaku dalam hampir semua bahasa
pemrograman komputer lainnya, seperti C, C++, PHP, dan Java
Deklarasi Variabel (variable)
Variabel atau variable adalah ‘penampung’ yang nilainya bisa berubah sepanjang alur
program. Kita akan sering menggunakan variabel dalam pembuatan kode program. Pada
contoh diatas saya membuat variabel jari2 yang diset bertipe data integer. Nilai jari2 juga
langsung diisi dengan angka 7.
Main Program
Main program adalah tempat dimana kode program utama ditulis. Disinilah dilakukan
pemanggilan fungsi atau prosedur (jika ada), serta pembuatan proses alur kerja program.
Main program diawali dengan keyword begin dan diakhiri dengan end.
Pada contoh kode diatas, saya memulai main program dengan perintah clrscr. Perintah ini
berasal dari unit crt. Clrscr merupakan singkatan dari clear screen, digunakan untuk
menghapus output dari kode program sebelumnya (membersihkan layar).
Agar anda bisa mengetahui fungsi clrscr, silahkan hapus kode ini dan jalankan program
beberapa kali dari dalam aplikasi Free Pascal atau Turbo Pascal. Anda akan lihat bahwa
output program akan ‘bertumpuk’ setiap kali kita menjalankan kode program.
Perintah clrscr akan menghapus kode-kode diatasnya, sehingga tampilan output akan
‘bersih’.
Jika anda menggunakan Turbo Pascal 1.5 for Windows, perintah clrscr ditulis dengan uses
wincrt, bukan uses crt.
Sebuah kode program pascal tidak harus menggunakan seluruh struktur diatas, contohnya
kode program Hello World yang kita jalankan pada tutorial sebelumnya tidak menggunakan
struktur ini sama sekali. Kita akan mempelajari lebih dalam mengenai masing-masing
struktur ini dalam tutorial tersendiri.
Tutorial Belajar Pascal Part 8: Pengertian
Variabel dan Cara Penulisan Variabel
Pascal
19 Mar 15 | Andre | Tutorial Pascal | 40 Comments
Dalam tutorial belajar pascal kali ini kita akan membahas tentang pengertian variabel dan
cara penulisan variabel dalam bahasa pemrograman pascal.
Pengertian Variabel
Variabel adalah ‘penanda’ identitas yang digunakan untuk menampung suatu nilai. Nilai
tersebut dapat diubah sepanjang kode program. Secara teknis, variabel merujuk kepada suatu
alamat di memory komputer. Setiap variabel memiliki nama yang sebagai identitas variabel
tersebut.
Dalam matematika, konsep variabel biasanya menggunakan x atau y, seperti persamaan
berikut:
x=y+2
Disini, nilai ‘x’ dan ‘y’ bisa diisi dengan angka apapun (walaupun dalam persamaan diatas,
nilai xbergantung kepada nilai y).
Di dalam pemrograman, nilai variabel bisa berubah dari waktu ke waktu, tergantung
kebutuhkan. Sebagai contoh, jika saya membuat program menghitung luas lingkaran, saya
bisa membuat variabel ‘jari2’ dan mengisinya dengan nilai ‘7’, kemudian di dalam kode
program, saya bisa mengubah nilainya menjadi ‘8’, ‘10’ atau ‘1000’.
Integer: tipe data berupa angka bulat, seperti 1,2,5,9,1000 atau 476563.
Real: tipe data yang berisi angka desimal (pecahan), seperti 22.7, 3.14, atau 0.006
Char: tipe data yang berisi huruf, seperti “a”, “A”, “C” atau “z”.
Boolean: tipe data yang hanya berisi 2 nilai, true atau false.
Selain itu, Pascal juga menyediakan 8 tipe data tambahan:
String: tipe data yang berisi kumpulan karakter, seperti “aku”, “kamu” atau “belajar pascal di
duniailkom”.
Enumerated: tipe data bentukan yang bisa didefenisikan sendiri. Sebagai contoh kita bisa
membuat tipe data warna yang terdiri dari nama-nama warna.
Subrange: tipe data bentukan yang berisi bagian dari tipe data lain. Sebagai contoh, kita bisa
membuat tipe data “angka_kecil” yang hanya berisi angka 1 – 9 (merupakan bagian dari tipe
data integer)
Array: tipe data yang terdiri dari banyak variabel, sebagai contoh kita bisa membuat nama
siswa sebagai array “siswa”, dan variabel penyusunnya adalah siswa[1], siswa[2], siswa[3], dst.
Record: tipe data bentukan yang bisa berisi berbagai tipe data. Record untuk “siswa” bisa
terdiri dari “nama”, “alamat”, “tinggi_badan”, dll.
Set: tipe data yang mirip dengan subrange, tetapi bisa digunakan untuk operasi himpunan
seperti gabungan, irisan, bagian, dll.
File: tipe data yang digunakan untuk mengakses file atau dokumen.
Pointer: tipe data khusus yang merujuk kepada sebuah alamat di memory.
Gambar dibawah ini memperlihatkan jenis-jenis tipe data dan pembagiannya
(sumber: [Link]):
Penjelasan lebih lanjut mengenai penggunaan tipe data diatas akan dibahas dalam tutorial
tersendiri.
panjang_persegi
angkatan99
AnGKa
1 var
2 nama_variabel:tipe_data;
Perhatikan bahwa penulisan nama variabel dengan tipe datanya dipisah oleh karakter titik
dua ” : ”. Diakhir deklarasi juga ditutup dengan karakter titik koma “;”
Berikut contohnya di dalam kode pascal:
1 var
2 nama: string;
3 umur: integer;
4 alamat: string;
Pascal juga membolehkan deklarasi variabel untuk tipe data yang sama dalam 1 baris
(dipisahkan dengan tanda koma “ , ”):
1 var
3 umur: integer;
1 nama_variabel := nilai;
Perhatikan bahwa untuk memberikan nilai, pascal menggunakan karakter ‘titik dua sama
dengan’ yakni “ := ”. Di dalam pemrograman, proses pemberian nilai ini dikenal dengan
istilah assignment, dan tanda “ := ” disebut juga dengan operator assignment di dalam
pascal.
Proses assignment dibaca dari kanan ke kiri. Perhatikan kode berikut:
1 nama := 'Andika';
Kode diatas berarti kita memberikan nilai ‘Andika’ kedalam variabel nama.
1 nama:string='Andika';
2 umur:integer:19;
Cara memberikan nilai pada saat deklarasi ini dikenal dengan istilah inisialisasi (bahasa
inggris: initialization).
Update: Sepertinya perintah gabungan deklarasi dan assignment ini tidak bisa berjalan di Turbo
Pascal 7, namun tidak masalah dengan FreePascal. Oleh karena itu jika anda menggunakan Turbo
Pascal 7, perintah diatas akan menghasilkan error
2 writeln(umur);
program biodata;
1
uses crt;
2
3
var
4 nama,alamat:string;
5 umur:integer=19;
8 begin
9 clrscr;
10
nama:='Andika';
11
alamat:='Jl. Kemerdekaan no.9';
12
umur:=17;
13
14
writeln(nama);
15 writeln(umur);
16 writeln(alamat);
writeln(sekolah);
17
readln;
18
end.
19
20
21
Dalam kode diatas saya membuat beberapa variabel, memberikan nilai kepada variabel
tersebut, kemudian menampilkannya.
Pada baris ke-5 saya membuat 2 variabel: nama dan alamat. Kedua variabel ini
bertipe string.
Pada baris ke-6, variabel umur dideklarasikan dengan tipe integer, kemudian langsung
diberikan nilai 19. Dengan kata lain, variabel umur di-inisialisasi dengan nilai integer 19.
Baris selanjutnya saya juga men-inisialisasi variabel sekolah dengan nilai string ‘SMA 1
Durian Runtuh’.
Dalam program utama (main program), pada baris 12 dan 13 saya men-
assigment variabel namadan alamat dengan nilai masing-masing. Di baris 14, saya juga
memberi nilai 17 ke dalam variabel umur. Perhatikan bahwa variabel umur juga telah saya
isi dengan nilai 19 pada saat inisialisasi, sehingga nilai dalam variabel umur akan “ditimpa”
dengan nilai baru.
Sebagai percobaan, anda bisa memberikan nilai ‘sembilan belas’ kepada variabel umur.
Hasilnya? Seperti yang bisa ditebak, pascal akan ‘komplain’ dan mengeluarkan error, karena
kita mencoba mengisi variabel umur yang bertipe integer dengan nilai string ‘sembilan
belas’. Dalam bahasa pemrograman pascal, setiap variabel hanya bisa diisi dengan nilai yang
sesuai dengan tipe datanya.
Update: Pada contoh diatas, saya menggunakan compiler Free Pascal. Jika anda
menggunakan Turbo Pascal 7, ini akan menghasilkan error, karena Turbo Pascal tidak mendukung
penggabungan perintah deklarasi dan assignment.
Untuk Turbo Pascal 7 bisa menggunakan kode program berikut:
1
program biodata;
2
uses crt;
3
4
var
5
nama,alamat:string;
6
umur:integer;
7
sekolah:string;
8
9 begin
10 clrscr;
11
12 nama:='Andika';
14 umur:=17;
16
writeln(nama);
17
writeln(umur);
18
writeln(alamat);
19
writeln(sekolah);
20
readln;
21 end.
22
Dalam tutorial kali ini kita telah mempelajari pengertian variabel dan cara penulisan variabel
di pascal.
Tutorial Belajar Pascal Part 9: Pengertian
Konstanta dan Cara Penulisan Konstanta
Pascal
20 Mar 15 | Andre | Tutorial Pascal | 7 Comments
Setelah mempelajari pengertian variabel pada tutorial sebelumnya, dalam tutorial belajar
pascal di duniailkom kali ini kita akan membahas tentang pengertian konstanta dan cara
penulisan konstanta dalam bahasa pemrograman pascal.
Pengertian Konstanta
Secara singkat, konstanta adalah variabel yang nilainya bersifat tetap dan tidak dapat diubah
sepanjang kode program. Umumnya konstanta digunakan untuk nilai yang tidak akan
berubah, seperti nilai phi dalam matematika yang bernilai 3.14, atau kecepatan_cahaya yang
bernilai 299.792.458 m/s.
1 const
2 phi = 3.14;
3 dollar = 13000;
4 nama = ‘Joko’;
Perhatikan bahwa pascal menggunakan tanda sama dengan ‘ = ’ untuk memberikan nilai
kepada konstanta saat dideklarasikan (proses inisialisasi).
Berikut adalah contoh program pascal yang menggunakan konstanta:
1
2 program konstanta;
3 uses crt;
4
5 const
6 phi=3.14;
dollar=13000;
7 nama='Joko';
8
9 var
10 situs:string='[Link]';
11
12 begin
13 clrscr;
writeln(phi:4:2);
14 writeln(dollar);
15 writeln(nama);
16 writeln(situs);
17 readln;
end.
18
19
Dalam kode program diatas, saya membuat beberapa konstanta, kemudian menampilkan
nilainya menggunakan perintah writeln. Khusus pada baris ke 14, saya menulis phi:4:2, ini
digunakan untuk men-format tampilan angka desimal. Angka 4:2 berarti saya ingin
menampilkan angka dengan 4 digit sebelum desimal, dan 2 digit setelah tanda desimal.
Jika kita mencoba untuk mengubah nilai konstanta di dalam kode program, pascal akan
mengeluarkan “error: variable identifier expected”, dimana kita diberitahu untuk
menggunakan variabel jika ingin mengubah nilai konstanta.
Sepanjang pembuatan program, konstanta relatif jarang digunakan jika dibandingkan dengan
variabel. Konstanta umumnya dipakai untuk program matematis yang sering memiliki nilai
yang selalu tetap.
Tutorial Belajar Pascal Part 10: Cara
Penggunaan serta Perbedaan Write dan
Writeln Pascal
27 Mar 15 | Andre | Tutorial Pascal | 14 Comments
Sejak awal pembahasan mengenai kode pemrograman pascal, beberapa kali saya telah
menggunakan perintah writeln. Dalam tutorial belajar pascal kali ini saya akan membahas
lebih jauh tentang cara penggunaan perintah write dan writeln serta perbedaan keduanya.
Perintah write dan writeln sangat sering digunakan di dalam kode program pascal.
Nama : Alex
Nama:
Anto
Duniai
l
k
o
m
Dapat dilihat hasil kode program pada baris 6 dan 7 ditampilkan dalam 1 baris. Ini karena
perintah write akan membuat teks berikutnya tetap di baris yang sama.
Hasil tampilan juga memperlihatkan kata “duniai”, bukan ‘dunia’ seperti yang diinginkan.
Ini terjadi karena perintah writeln hanya akan memindahkan teks selanjutnya ke baris
baru, bukan teks saat ini.
Seraca teknis, perintah writeln akan menambahkan karakter carriage return dan line
feed diakhir baris. Kedua karakter ini digunakan pada Windows untuk menandai akhir
sebuah baris (instruksi untuk pindah ke baris berikutnya). Di dalam sistem Unix (Linux),
perintah writeln hanya akan menambahkan karakter Line feed saja.
Oleh karena itu, perintah writeln juga digunakan untuk pindah baris, tanpa perlu menulis teks
apapun, dan ditulis sebagai:
writeln;
Nama : Joni
Umur : 17
Kota : Ambon
IPK : 3
Pada kode program diatas saya membuat 1 konstanta dan 2 variabel.
Perintah write(‘nama’) dengan write(nama) adalah suatu yang berbeda. Penulisan pertama
berarti kita ingin menampilkan teks ‘nama’, sedangkan penulisan yang kedua kita ingin
menampilkan nilai dari variabel/konstanta ‘nama’.
1 program tampil;
2 uses crt;
3 const
kota='Ambon';
4 var
5 nama:string='Joni';
6 umur:integer=17;
7 begin
8 clrscr;
9
writeln('Nama : ',nama);
10 writeln('Umur : ',umur);
11 writeln('Kota : ',kota);
12 writeln('IPK : ',3);
13
14 readln;
15 end.
16
17
Lebih jauh lagi, seluruh tampilan diatas bisa digabung kedalam 1 perintah writeln. Seperti
berikut:
1
2 program tampil;
3 uses crt;
const
4 kota='Ambon';
5 var
6 nama:string='Joni';
7 umur:integer=17;
8 begin
clrscr;
9 writeln('Nama : ',nama,'. Umur : ',umur,'. Kota : ',kota,'. IPK : ',3);
10 readln;
11 end.
12
Perhatikan bahwa kita perlu mengetahui kapan harus menggunakan tanda kutip, dan kapan
menggunakan tanda koma.
1 program tampil;
2 uses crt;
3 var
angka_int:integer=12345;
4 angka_real:real=1234.123456;
5 begin
6 clrscr;
7
8 writeln(angka_int);
9 writeln(angka_int:4);
writeln(angka_int:8);
10
11 writeln(angka_real);
12 writeln(angka_real:4:2);
13 writeln(angka_real:2:4);
14 readln;
15 end.
16
17
Hasil kode program:
12345
12345
12345
1.23412345600000E+003
1234.12
1234.1235
Pada contoh diatas, saya membuat 2 variabel: angka_integer dan angka_real. Kedua
variabel ini kemudian di beri nilai awal.
Dalam baris 11, perintah angka_int:8 akan membuat hasil tampilan sedikit ‘menjorok’ ke
dalam, ini karena pascal menyediakan 8 digit tempat untuk angka_int. Tetapi karena
variabel angka_int hanya terdiri dari 6 digit, maka pascal akan menambah 2 buah spasi
didepan angka tersebut.
Pada baris 12 saya menulis angka_int:4, yang bermaksud agar angka_int ditampilkan
dengan jumlah digit 4. Namun karena angka_int terdiri dari 6 digit, perintah ini akan
diabaikan.
Variabel angka_real saya inisialisai dengan nilai 1234.123456 namun pada saat ditampilkan
hasilnya menjadi 1.23412345600000E+003. Ini adalah tampilan ‘normal’ pascal untuk tipe
data real. Dalam matematika, penulisan ini dinamakan dengan notasi ilmiah (scientific
notation). Saya akan membahas tentang tipe data real dalam tutorial terpisah.
Untuk ‘memperindah’ tampilan notasi ilmiah ini, bisa menggunakan format perintah:
Setelah mempelajari perintah write dan writeln, dalam tutorial belajar pascal kali ini kita akan
membahas tentang cara penggunaan perintah read dan readln di dalam bahasa pemrograman
pascal.
program input;
1
uses crt;
2
var
3
nama,alamat:string;
4
umur:integer;
5
ipk:real;
6
7
begin
8 clrscr;
9 writeln('Masukkan Data Mahasiswa');
10 writeln('=======================');
write('Nama :');
11
readln(nama);
12
write('Alamat :');
13
readln(alamat);
14
write('Umur :');
15
read(umur);
16 write('IPK :');
17 readln(ipk);
18
19 writeln;
20
21 writeln('=========HASIL=========');
24
readln;
25
end.
26
27
28
2 uses crt;
3 var
4 a,b,c,d:integer;
5 begin
clrscr;
6
writeln('Input 4 angka, dipisah dengan spasi:');
7
read(a);
8
read(b);
9
read(c);
10
read(d);
11 writeln;
12 writeln('Hasil Input:');
14 readln; readln;
end.
15
16
65 7 89 999
Hasil Input:
Perhatikan bahwa saya menggunakan 2 kali perintah readln di akhir program. Ini digunakan
untuk ‘menahan’ jendela program agar tidak langsung menutup ketika di–run. Jika tidak
menggunakan ini, anda bisa melihat hasil program dari menu Debug->User Screen atau
menekan tombol ALT+F5.
Perintah diatas juga bisa ditulis menjadi seperti berikut ini:
1 program input;
2 uses crt;
3 var
4 a,b,c,d:integer;
begin
5
6 clrscr;
read(a,b,c,d);
8
writeln;
9
writeln('Hasil Input:');
10
writeln('a: ',a,'. b: ',b,'. c: ',c,' d: ',d);
11
readln;
12
end.
13
Kali ini saya menggabungkan penulisan input 4 variabel ke dalam 1 perintah read.
Jika menggunakan perintah readln, maka kita harus memisahkan keempat inputan
dengan enter, seperti contoh berikut:
1
program input;
2
uses crt;
3
var
4
a,b,c,d:integer;
5
begin
6 clrscr;
8 readln(a);
9 readln(b);
10 readln(c);
readln(d);
11
writeln;
12
writeln('Hasil Input:');
13
writeln('a: ',a,'. b: ',b,'. c: ',c,' d: ',d);
14
readln;
15
end.
16
Hasil program:
Input 4 angka, dipisah dengan enter:
45
23
65
111
Hasil Input:
Khusus untuk tipe data angka (integer/real), perintah read bisa digunakan dengan pemisah
spasi, maupun enter. Berikut contohnya:
1
program input;
2
uses crt;
3
var
4
a,b,c,d,e,f,g,h,i:integer;
5
begin
6
clrscr;
7 writeln('Input Matriks 3x3');
8 read(a,b,c);
9 read(d,e,f);
10 read(g,h,i);
11 writeln;
writeln('Hasil Matriks:');
12
writeln(a,' ',b,' ',c);
13
writeln(d,' ',e,' ',f);
14
writeln(g,' ',h,' ',i);
15
readln;
16
readln;
17 end.
18
Hasil program:
Input Matriks 3x3
4 5 6
9 7 1
4 9 9
Hasil Matriks:
4 5 6
9 7 1
4 9 9
2 uses crt;
3 var
a,b,c,d,e:char;
4
begin
5
clrscr;
6
writeln('Input Teks Sembarang (5 karakter)');
7
read(a);
8
read(b);
9
read(c);
10 read(d);
11 read(e);
12
13 writeln;
14 writeln('Hasil Teks:');
15 write(a,' ',b,' ',c,' ',d,' ',e);
16 readln;
readln;
17
end.
18
19
Hasil program:
belajar
Hasil Teks:
b e l a j
Jika kita menginput 5 karakter (atau lebih), dan mengakhiri dengan tombol enter, tiap-tiap
varibel akan diisi dengan 5 karakter pertama dari teks (teks ke-6 dan seterusnya akan
diabaikan).
Jika anda mencoba menekan ‘enter’ pada saat menginput 5 karakter awal, maka pascal akan
menampilkan sesuatu yang ‘berbeda’:
Input Teks Sembarang (5 karakter)
Hasil Teks:
Hasil diatas di dapat dengan mengetik huruf a, ‘enter’, huruf b, dan program akan langsung
selesai. Ini terjadi karena cara pascal memproses karakter ‘enter’.
Sebuah karakter enter di dalam pascal terdiri dari 2 karakter khusus, yakni carriage
return dan line feed. Kedua karakter ini hanya tampak seperti ‘spasi’ (kosong), sehingga jika
kita menekan tombol enter, 2 variabel akan langsung terisi. 1 dengan karakter carriage
return, dan 1 lagi dengan karakter line feed. Kedua variabel ini akan ditampilkan ‘kosong’.
Jika kita mengganti read dengan readln, pembacaan karakter akan dilakukan secara vertikal.
Setiap karakter di pisah dengan enter, seperti contoh kode program berikut:
program input;
1
uses crt;
2 var
3 a,b,c,d,e:char;
begin
4
clrscr;
5
writeln('Input Teks Sembarang (5 karakter) :');
6
readln(a);
7
readln(b);
8
readln(c);
9 readln(d);
10 readln(e);
11
12 writeln;
13 writeln('Hasil Teks:');
17
18
Hasil Teks:
i l k o m
Kali ini, enter pada karakter ke-2 atau lebih dianggap sebagai tombol untuk masuk ke
variabel selanjutnya.
Jika anda menambahkan beberapa karakter setelah karakter pertama di sebuah baris, sisanya
akan diabaikan oleh readln:
Input Teks Sembarang (5 karakter) :
belajar
pascal
di
dunia
ilkom
Hasil Teks:
b p d d i
4 begin
5 clrscr;
6 writeln('Input 4 kata:');
8 read(a);
read(b);
9
read(c);
10
read(d);
11
12
writeln;
13 writeln('Hasil Teks:');
14 writeln('a: ',a);
writeln('b: ',b);
15
writeln('c: ',c);
16
writeln('d: ',d);
17
readln;
18
readln;
19
end.
20
21
22
Jika kita menginput 4 kata yang dipisah dengan spasi, dan menekan tombol enter, keempat
kata ini akan diinput kedalam variabel a:
Hasil program:
Input 4 kata:
Hasil Teks:
b:
c:
d:
Namun jika kita membuat sebuah kata dan menekan enter, program akan ‘melewati’ variabel
b, c, dan d:
Hasil program:
Input 4 kata:
saya
Hasil Teks:
a: saya
b:
c:
d:
Solusi untuk hal ini, kita mengganti perintah read dengan readln. Dengan begitu, setiap teks
dipisah dengan enter dan diinput kepada masing-masing variabel.
1
2 program input;
uses crt;
3
var
4
a,b,c,d:string;
5
begin
6
clrscr;
7
writeln('Input 4 kata:');
8
9 readln(a);
10 readln(b);
11 readln(c);
12 readln(d);
13
writeln;
14
writeln('Hasil Teks:');
15
writeln('a: ',a);
16
writeln('b: ',b);
17
writeln('c: ',c);
18
writeln('d: ',d);
19 readln;
20 end.
21
Input 4 kata:
belajar pascal
di duniailkom
sangat
menyenangkan
Hasil Teks:
a: belajar pascal
b: di duniailkom
c: sangat
d: menyenangkan
Untuk menghindari hal ini, sebaiknya kita selalu menggunakan perintah readln jika ingin
memproses data input bertipe string.
Tutorial Belajar Pascal Part 12:
Pengertian dan Cara Penggunaan Tipe
Data Integer Pascal
31 Jul 15 | Andre | Tutorial Pascal | 15 Comments
Pada lanjutan tutorial belajar bahasa pemrograman pascal di Duniailkom kali ini, saya akan
membahas tentang pengertian dan cara penggunaan tipe data Integer di Pascal.
uses crt;
2
var
3
a:integer;
4
begin
5
clrscr;
6
a:=20;
7
writeln('a: ',a);
8
9 a:=15;
10 writeln('a: ',a);
11
12 a:= a + 10;
13 writeln('a: ',a);
readln;
14
end.
15
16
Dalam kode diatas saya mendefenisikan variabel a dengan tipe data integer (baris ke-4).
Kemudian sepanjang kode program variabel a ini diubah-ubah nilainya, dan pada setiap
perubahan, ditampilkan sebagai output (menggunakan perintah writeln).
Contoh lain penggunaan tipe data integer bisa dilihat dari kode program dibawah ini:
1 program tipe_integer;
uses crt;
2
var
3
a,b,c,d:integer;
4
begin
5
clrscr;
6
a:=1234;
7
b:=-1234;
8
9 c:= a + b;
10 d:= a * 3;
11
12 writeln('a: ',a);
13 writeln('b: ',b);
writeln('c: ',c);
14
writeln('d: ',d);
15
readln;
16
end.
17
18
Kali ini saya mendefenisikan variabel a, b, c dan d bertipe integer. Variabel a dan b langsung
diisi dengan nilai 1234 dan -1234, sedangkan variabel c dan d digunakan untuk menampung
operasi penambahan dan perkalian.
Terkait operasi aritmatika di dalam Pascal, akan saya bahas dalam tutorial tersendiri.
Pascal menganut sistem variabel bertipe, oleh karena itu jika sebuah variabel di defenisikan
sebagai integer, kita tidak bisa mengisinya dengan nilai lain seperti huruf, kalimat, atau
bahkan angka pecahan.
Sebagai contoh, jika saya mengisi huruf kedalam variabel integer, compiler Pascal akan
‘komplain’ dengan Error 26: Type mismatch:
1 program tipe_integer;
2 uses crt;
3 var
4 a:integer;
5 begin
6 clrscr;
a:='Duniailkom';
7
readln;
8
end.
9
Begitu juga jika kita menginput nilai yang diluar jangkauan integer, seperti kode berikut ini:
1
program tipe_integer;
2
uses crt;
3 var
4 a:integer;
5 begin
6 clrscr;
a:=32767;
7
readln;
8
end.
9
Kode errornya adalah Error 76: Constant out of range. Karena secara default tipe data
integer hanya bisa menampung nilai dari -32768 hingga 32767. Bagaimana jika angka yang
kita butuhkan lebih besar dari ini? Kita harus menggunakan tipe data selain ‘integer’.
Byte 0 .. 255 1
Word 0 .. 65535 2
Cardinal longword 4
Longword 0 .. 4294967295 4
Int64 -9223372036854775808 .. 9223372036854775807 8
QWord 0 .. 18446744073709551615 8
Tabel diatas adalah tipe data integer yang tersedia didalam Free Pascal. Untuk Turbo Pascal
7, mungkin terdapat sedikit perbedaan.
* Dalam Free Pascal, secara default jangkauan tipe data integer sama dengan smallint,
namun dalam aplikasi Object Pascal seperti Delphi atau Lazarus, jangkauan tipe integer
sama dengan longint.
Berikut contoh penggunaan tipe data ini:
1 program tipe_integer;
2 uses crt;
var
3
a:shortint;
4
b:byte;
5
c:longint;
6
d:longword;
7
e:int64;
8 begin
9 clrscr;
10 a:=-128;
11 b:=255;
c:=-2147483648;
12
d:=4294967295;
13
e:=9223372036854775807;
14
15
writeln('a: ',a);
16
writeln('b: ',b);
17
writeln('c: ',c);
18 writeln('d: ',d);
19 writeln('e: ',e);
20 readln;
21 end.
22
23
Pada contoh program diatas saya mendefenisikan 5 variabel: a, b, c, d, dan e dengan berbagai
tipe variabel integer.
Tipe data integer yang kita pelajari disini sangat penting untuk dipahami, terutama tentang
jangkauan tipe-tipe data integer. Jika anda butuh jangkauan yang cukup besar, bisa
menggunakan tipe data longword atau int64.
utorial Belajar Pascal Part 13: Pengertian
dan Cara Penggunaan Tipe Data Real
Pascal
11 Sep 15 | Andre | Tutorial Pascal | 2 Comments
Setelah membahas tipe data integer pascal pada tutorial sebelumnya, kali ini kita akan
membahas tentang pengertian dan cara penggunaan tipe data real dalam bahasa pemrograman
pascal.
1
2 program tipe_real;
3 uses crt;
4 var
a:real;
5 begin
6 clrscr;
7 a:=3.14;
8 writeln('a: ',a);
9
10 a:=999.99;
writeln('a: ',a);
11
12 a:= a + 0.01;
13 writeln('a: ',a);
14 readln;
15 end.
16
Dalam kode program diatas, saya mendeklarasikan variabel a sebagai tipe data real (baris ke-
4). Sepanjang kode program, variabel a ini diubah-ubah nilainya dan ditampilkan
menggunakan perintah writeln. Seperti apa hasilnya? Mari kita lihat:
Apa yang terjadi? Angka apa ini? Apakah kode kita terdapat error?
Tidak, ini memang format tampilan default dari Pascal, dimana tipe data real akan
ditampilkan dalam format angka scientific. Huruf E disini mewakili pangkat sepuluh,
sehingga angka:
3.14000000000000E+000 = 3.14 * 100 = 3.14
9.99990000000000E+002 = 9.9999 * 102 = 999.99
1.00000000000000E+003 = 1 * 103 = 1000
Bagaimana jika kita ingin menampilkan angka-angka tersebut dengan tampilan ‘normal’?
Cukup dengan menambahkan beberapa karakter khusus di dalam perintah writeln. Berikut
contohnya:
1
2 program tipe_real;
3 uses crt;
4 var
a:real;
5 begin
6 clrscr;
7 a:=3.14;
8 writeln('a: ',[Link]);
9
10 a:=999.99;
writeln('a: ',[Link]);
11
12 a:= a + 0.01;
13 writeln('a: ',[Link]);
14 readln;
15 end.
16
1
2 program tipe_real;
3 uses crt;
4 var
a,b,c:real;
5 begin
6 clrscr;
7 a:=123.456;
8 writeln('a: ',[Link]);
9
10 b:=999.999;
writeln('b: ',[Link]);
11
12 c:=6782.555555;
13 writeln('c: ',[Link]);
14 readln;
15 end.
16
Seperti yang terlihat, tampilan variabel real akan diformat sesuai dengan jumlah digit yang
ditetapkan. Selain itu, nilai-nilai ini juga akan dibulatkan. Sebagai contoh, variabel b akan
ditampilan dengan nilai 1000, bukan 999.999. Ini karena kita hanya menyediakan 2 angka
dibelakang koma, sehingga angka 9 yang ‘terpotong’ akan dibulatkan menjadi 10.
Contoh lain, angka 6782.555555 akan dibulatkan menjadi 6782.5556 karena
perintah writeln(‘c: ‘,[Link]) hanya menyediakan 4 digit dibelakang koma, sehingga digit ke-
5 dibulatkan menjadi 6.
-922337203685477.5808 s/d
Currency 922337203685477.5807 19-20 8
*Khusus untuk jangkauan tipe data real, bergantung kepada processor yang digunakan, dan
akan berbeda-beda.
Berikut contoh penggunaan berbagai tipe data ini:
1
2
3 program tipe_real;
uses crt;
4 var
5 a:real;
6 b:single;
7 c:double;
8 d:extended;
e:comp;
9 begin
10 clrscr;
11 a:=12345.6789;
12 b:=12345.6789;
13 c:=12345.6789;
d:=12345.6789;
14 e:=12345.6789;
15
16 writeln('a: ',[Link]);
17 writeln('b: ',[Link]);
18 writeln('c: ',[Link]);
writeln('d: ',[Link]);
19 writeln('e: ',[Link]);
20 readln;
21 end.
22
23
Dalam contoh diatas saya membuat 5 variabel: a, b, c, d, dan e dengan berbagai tipe
data real. Hampir semua memberikan hasil yang sama (kecuali single dan comp). Selain
jangkauan, setiap tipe data ini juga bisa memberikan hasil yang berbeda terutama untuk
proses perhitungan yang butuh ketelitian. Kita akan membahas hal ini pada tutorial
tentang operator Pascal.
Tutorial Belajar Pascal Part 14:
Pengertian dan Cara Penggunaan Tipe
Data Char Pascal
12 Sep 15 | Andre | Tutorial Pascal | 7 Comments
Melanjutkan tutorial belajar bahasa pemrograman pascal di duniailkom, kali ini kita akan
membahas tentang pengertian dan cara penggunaan tipe data char di dalam pascal.
1 program tipe_char;
uses crt;
2
var
3
a:char;
4
begin
5
clrscr;
6
a:='A';
7
writeln('a: ',a);
8
9 a:='9';
10 writeln('a: ',a);
11
12 a:='x';
13 writeln('a: ',a);
readln;
14
end.
15
16
Dalam contoh diatas, saya mendefenisikan variabel a dengan tipe data char, sehingga kita
bisa mengisinya dengan 1 karakter saja.
Yang perlu diperhatikan, penulisan angka untuk tipe data char juga harus menggunakan tanda
kutip. Karakter ‘9’ tidak boleh ditulis sebagai 9 (tanpa tanda kutip), karena jika tanpa tanda
kutip, ini adalah tipe data integer!. Berikut contohnya:
1
program tipe_char;
2
uses crt;
3 var
4 a:char;
5 begin
6 clrscr;
8 a:=9;
writeln('a: ',a);
9
readln;
10
end.
11
Jika anda menjalankan kode diatas, akan tampil pesan Error: Incompatible types: got
“ShortInt” expected “Char”. Oleh karena itu kita harus ingat untuk menambahkan tanda
kutip ini.
Membuat Karakter Char Berdasarkan Nomor ASCII
Selain menulis karakter secara langsung, tipe data char juga mendukung penulisan karakter
berdasarkan nomor urut tabel ASCII.
Karakter ASCII (American Standard Code for Information Interchange) adalah 256 karakter
dasar yang digunakan secara internal oleh komputer. Selain programmer, sangat jarang anda
akan berurusan dengan karakter ASCII ini, walaupun sebenarnya ia ada di setiap komputer.
Sebagaimana yang kita tahu, komputer hanya beroperasi berdasarkan 2
kondisi: hidup dan mati, atau on dan off. Selanjutnya kondisi off dan on dari ratusan juta
transistor di dalam komputer direpresentasikan dengan angka biner: 0 dan 1.
Agar sebuah komputer bisa ‘mengingat’ karakter, misalnya huruf ‘A’, kita perlu membuat
aturan bagaimana ‘A’ ini disimpan sebagai angka biner.
Salah satu standar ini adalah tabel karakter ASCII, dimana huruf ‘A’ disimpan dengan nilai
biner: 01000001, yang dalam bentuk desimal (basis 10) dikonversi menjadi angka 65. Oleh
karena itu, karakter ‘A’ berada pada urutan ke 65 dari tabel karakter ASCII. Daftar lengkap
tabel ASCII ini bisa anda lihat di [Link].
Kembali ke pembahasan tentang tipe data char di pascal, kita bisa menginput karakter
berdasarkan no urut tabel ASCII ini. Caranya, dengan menambahkan tanda pagar “#”
sebelum angka no urut.
Sebagai contoh, karakter ‘A’ yang mimiliki nilai ASCII: 65 bisa ditulis sebagai berikut:
a:=#65;
Berikut contoh lengkap kode programnya:
program tipe_char;
1
uses crt;
2
var
3
a:char;
4 begin
5 clrscr;
6 a:=#65;
7 writeln('a: ',a);
9 a:=#57;
writeln('a: ',a);
10
11
a:=#137;
12
writeln('a: ',a);
13
readln;
14
end.
15
16
Silahkan anda samakan urutan tabel ASCII untuk nilai ‘65’, ‘57’ dan ‘137’. Hasilnya sama
dengan karakter ‘A’, ‘9’ dan tanda permil (per million).
Tutorial Belajar Pascal Part 15:
Pengertian dan Cara Penggunaan Tipe
Data String Pascal
12 Sep 15 | Andre | Tutorial Pascal | 10 Comments
Tipe data char yang kita pelajari sebelumnya hanya mendukung 1 karakter saja. Untuk
menyimpan 2 karakter atau lebih, kita bisa menggunakan tipe data string di dalam Pascal.
Dalam tutorial kali ini akan dibahas tentang pengertian dan cara penggunaan tipe data string
pascal.
uses crt;
2
var
3
a:string;
4
begin
5
clrscr;
6
a:='Duniailkom';
7
writeln('a: ',a);
8
10 writeln('a: ',a);
11
12 a:='12345678';
13 writeln('a: ',a);
readln;
14
end.
15
16
Pada kode program diatas, saya mendefinisikan variabel a sebagai string, kemudian
mengubah nilainya sepanjang kode program dan menampilkan hasilnya menggunakan
perintah writeln.
Secara default, tipe data string akan menyediakan tempat untuk 255 karakter. Kita bisa
menetapkan seberapa besar ‘ruang’ yang disediakan. Caranya, dengan menambahkan angka
di dalam kurung siku sebagai penanda jumlah karakter.
Sebagai contoh, perintah a: string[10] akan membuat variabel a hanya bisa diisi dengan 10
karakter saja. Jika karakter yang diinput lebih dari 10, sisanya akan dibuang. Berikut
contohnya:
1 program tipe_string;
2 uses crt;
var
3
a:string[10];
4
begin
5
clrscr;
6
a:='Duniailkom - Learn Programming';
7
writeln('a: ',a);
8
10 writeln('a: ',a);
11
12 a:='1234567890123456789';
13 writeln('a: ',a);
14 readln;
end.
15
16
Seperti yang terlihat, karakter yang bisa disimpan kedalam variabel a hanya 10 karakter saja.
2 uses crt;
3 var
4 a:string;
begin
5
clrscr;
6
a:='Pascal diambil dari nama ahli matematika prancis abad pertengahan, ' +
7
'Blaise Pascal. Bahasa Pascal di kembangkan oleh Niklaus Wirth pada ' +
8
'tahun 1970, dan populer digunakan pada era 1970 hingga awal 1990an. ' +
9
'Dari awal dikembangkan, Pascal dirancang untuk keperluan akademik. ' +
10 'Atas alasan itu pula Pascal masih digunakan di berbagai sekolah dan ' +
12 writeln(a);
13 readln;
14 end.
15
Variabel a saya isi dengan string yang cukup panjang, tanda ‘ + ’ digunakan untuk
menyambung sebuah string dengan string lain, sehingga saya bisa memecahnya menjadi
beberapa baris. Ini adalah operator penyambungan string di dalam pascal.
Seperti yang terlihat, kalimat tersebut akan terpotong pada karakter ke 255.
Compiler FreePascal memperkenalkan tipe data AnsiString yang tidak membatasi jumlah
string. Berikut contoh penggunaannya:
1
program tipe_string;
2
uses crt;
3
var
4
a:ansistring;
5
begin
6 clrscr;
7 a:='Pascal diambil dari nama ahli matematika prancis abad pertengahan, ' +
8 'Blaise Pascal. Bahasa Pascal di kembangkan oleh Niklaus Wirth pada ' +
9 'tahun 1970, dan populer digunakan pada era 1970 hingga awal 1990an. ' +
Apabila anda baru pertama kali mempelajari algoritma dan pemrograman, tipe data
booleanmungkin terasa asing, apalagi jika dibandingkan dengan tipe data ‘biasa’ yang telah
kita pelajari seperti angka (integer dan real) atau huruf (char dan string).
Dalam lanjutan tutorial belajar Pascal di duniailkom kali ini, saya akan membahas pengertian
dan cara penggunaan tipe data boolean pascal.
7 a:= true;
8 writeln('a: ',a);
9
a:= false;
10
writeln('a: ',a);
11
12
a:= not true;
13
writeln('a: ',a);
14
15
a:= not false;
16
writeln('a: ',a);
17
18 readln;
19 end.
20
21
Dalam contoh diatas, saya membuat variabel a sebagai boolean, kemudian mengisinya
dengan true dan false. Pada contoh ketiga dan keempat, saya menggunakan
perintah not untuk membalik nilai boolean. Perintah ‘not true’ akan menghasilkan false,
sedangkan ‘not false’ akan menghasilkan true.
Perhatikan bahwa nilai untuk boolean ini (true atau false) harus ditulis tanpa tanda kutip.
Jika anda menambahkan tanda kutip, ini menjadi string. Dengan kata lain ‘true’ tidak sama
dengan true (perhatikan tanda kutipnya).
Selain menulis langsung nilai boolean, kita juga bisa menginput hasilnya dari sebuah operasi
perbandingan. Berikut contohnya:
1 program tipe_boolean;
2 uses crt;
3 var
a:boolean;
4
begin
5
clrscr;
6
7
a:= 1=1;
8
writeln('a: ',a);
9
10
a:= 9<8;
11 writeln('a: ',a);
12
13 a:= 999<>998;
14 writeln('a: ',a);
15
writeln('a: ',a);
17
18
readln;
19
end.
20
21
Salah satu konsep yang harus anda pahami di dalam pemrograman adalah penggunaan tanda
‘=’. Didalam pascal, tanda ini digunakan untuk operasi perbandingan, bukan pengisian ke
dalam sebuah variabel (operasi assignment).
Dengan kata lain, “a:= 1=1” berarti kita mengisi nilai variabel a dengan hasil dari
perbandingan “1=1”. Jadi apakah 1=1? Yup benar, yang di dalam bahasa inggris
menjadi: true. Oleh karena itulah variabel a akan diisi dengan nilai boolean true.
Pada contoh kedua, apakah “9<8”? salah!, karena 9 bukan lebih kecil dari delapan, sehingga
hasilnya: false.
Berikutnya, apakah “999<>998”? Tanda “<>” di dalam pascal bisa dibaca sebagai “tidak
sama dengan”, sehingga hasilnya adalah: true.
Contoh terakhir, apakah ‘duniailkom’ = ‘[Link]’? salah!, karena untuk ‘benar’,
kedua string harus mengandung karakter yang sama persis. Sehingga hasilnya adalah false.
Tipe data boolean yang dipelajari disini akan lebih jelas penggunaannya jika anda telah
mempelajari struktur logika percabangan kode program seperti IF. Saya akan menjelaskan
struktur alur kode program ini setelah pembahasan mengenai tipe data dan operator pascal.
Tutorial Belajar Pascal Part 17:
Pengertian dan Cara Penggunaan Tipe
Data Enumerated Pascal
14 Sep 15 | Andre | Tutorial Pascal | 4 Comments
Dalam tutorial pascal sebelum ini kita telah mempelajari 4 tipe dasar
pascal: integer, real, chardan boolean (di dalam pascal, tipe data string bukanlah tipe data
dasar karena merupakan arraydari char).
Pada tutorial ini dan beberapa tutorial selanjutnya kita akan masuk ke tipe data bentukan
pascal. Saya akan mulai dengan membahas pengertian dan cara penggunaan tipe data
enumerated dalam bahasa pemrograman pascal.
2 nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
1 var
2 a,b: nama_hari;
Sekarang variabel a dan b berisi tipe enum nama_hari. Berikut contoh kode program
lengkapnya:
1 program tipe_enumerated;
2 uses crt;
3 type
4 nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
var
5
a,b: nama_hari;
6
begin
7
clrscr;
8
9
a:= senin;
10
writeln('a: ',a);
11
12 b:= minggu;
13 writeln('b: ',b);
14
15 readln;
16 end.
17
Perhatikan urutan pendefenisian tipe enum ‘warna’, dimana kita harus membuat isinya
terlebih dahulu (menggunaka keyword type), baru kemudian diberikan ke dalam variabel
(menggunakan keyword var).
Variabel a dan b dalam contoh diatas hanya bisa diisi dengan nilai yang ada di dalam tipe
data enum warna. Jika saya memberikan nama lain, compiler pascal akan
menghasilkan error, seperti contoh berikut:
program tipe_enumerated;
1
uses crt;
2
type
3
nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
4
var
5 a,b: nama_hari;
6 begin
clrscr;
7
8
a:= januari;
9
writeln('a: ',a);
10
11
readln;
12
end.
13
14
Pada contoh diatas, saya mencoba memberikan nilai ‘januari’ ke dalam variabel a. Hasilnya,
compiler FreePascal akan menghasilkan error karena ‘januari’ tidak ada di dalam nama hari.
Selain itu perhatikan bahwa walaupun nama-nama hari diatas adalah kumpulan karakter
(string), kita tidak perlu memberikan tanda kutip.
Salah satu sifat tipe data enumerated di pascal, kita tidak bisa membuat nilai angka sebagai
bagian dari tipe data enumerated. Contoh berikut akan menghasilkan error:
program tipe_enumerated;
1
uses crt;
2
type
3
angka= (1,2,3,4,5);
4
var
5 a,b: angka;
6 begin
clrscr;
7
8
a:= 1;
9
writeln('a: ',a);
10
11
readln;
12
end.
13
14
Error diatas terjadi karena saya memberikan nilai angka (integer): 1,2,3,4,5 untuk tipe data
enum ‘angka’. Jika kita ingin membuat batasan seperti ini bisa menggunakan tipe
data subrange (akan dijelaskan dalam tutorial setelah ini).
Di dalam sebuah kode program pascal, kita juga bisa membuat lebih dari 1 tipe enum, seperti
contoh berikut:
program tipe_enumerated;
1
uses crt;
2
type
3
warna= (merah,kuning,biru,ungu,jingga);
4
angka= (satu,dua,tiga,empat,lima);
5 var
6 a: warna;
b: angka;
7
begin
8
clrscr;
9
10
a:= kuning;
11
writeln('a: ',a);
12
13
b:= tiga;
14 writeln('b: ',b);
15
16 readln;
17 end.
18
19
Pada contoh diatas, saya membuat 2 buah tipe data enumerated yang berisi nama-nama
warna dan nama angka, kemudian menampilkan isinya.
Tutorial Belajar Pascal Part 18:
Pengertian dan Cara Penggunaan Tipe
Data Subrange Pascal
16 Sep 15 | Andre | Tutorial Pascal | 4 Comments
Sama seperti tipe data enumerated, tipe data subrange juga merupakan tipe data yang
dibentuk sendiri. Kali ini saya akan membahas lebih dalam tentang pengertian dan cara
penggunaan tipe data subrange pascal.
uses crt;
2
type
3
satuan= 1..9;
4
var
5
a,b: satuan;
6
begin
7
clrscr;
8
9 a:= 2;
10 writeln('a: ',a);
11
12 b:= 7;
13 writeln('b: ',b);
14
readln;
15
end.
16
17
Dalam kode program diatas, saya mendefenisikan sebuah tipe data subrange ‘satuan’ dengan
angka 1 hingga 9. Tanda titik dua ‘..’ digunakan untuk membatasi seberapa jauh jangkauan
untuk satuan ini.
Jika saya ingin membuat tipe data ‘puluhan’ yang terdiri dari angka 11 hingga 99 maka
penulisannya adalah sebagai berikut:
1 type
2 satuan= 11..99;
Apa yang terjadi jika kita memberikan angka diluar jangkauan tipe data subrange? Berikut
contohnya:
1 program tipe_subrange;
uses crt;
2
type
3
satuan= 1..9;
4
var
5
a,b: satuan;
6
begin
7
clrscr;
8
9 a:= 10;
10 writeln('a: ',a);
11
12 readln;
13 end.
14
Hasilnya, compiler FreePascal akan menghasilkan error: range check error while
evaluating constants, yang artinya nilai tersebut berada di luar range (jangkauan) yang telah
ditetapkan, dimana saya mencoba memberikan nilai 10.
Kita tidak dibatasi untuk menggunakan angka saja, tapi bisa juga menggunakan karakter
huruf sebagai tipe data subrange. Berikut contohnya:
1 program tipe_subrange;
2 uses crt;
type
3
huruf= 'A'..'F';
4
var
5
a,b: huruf;
6
begin
7
clrscr;
8
9
a:= 'A';
10 writeln('a: ',a);
11
12 B:= 'C';
13 writeln('b: ',b);
14
15 readln;
16 end.
17
Kali ini saya membuat tipe data subrange ‘huruf’ yang dibatasi dari huruf ‘A’ hingga ‘F’.
Perhatikan tanda kutip untuk huruf-huruf ini, karena huruf tersebut adalah bagian (subrange)
dari tipe data char yang harus dibuat dengan tanda kutip.
Yang juga perlu diperhatikan, huruf ‘A’ tidak sama dengan huruf ‘a’, seperti contoh kasus
berikut:
1
program tipe_subrange;
2
uses crt;
3
type
4 huruf= 'A'..'F';
5 var
6 a,b: huruf;
7 begin
8 clrscr;
9
a:= 'a';
10
writeln('a: ',a);
11
12
readln;
13
end.
14
Kali ini saya mencoba memberikan nilai ‘a’ kepada variabel a yang didefenisikan sebagai
subrange ‘huruf’. Hasilnya?
Yup, Pascal kembali komplain karena huruf ‘a’ tidak ada di dalam subrange.
Walaupun sehari-hari kita menyamakan ‘A’ (huruf A besar) dengan ‘a’ (huruf ‘a’ kecil),
komputer tidak memahami hal ini. Jika anda telah mempelajari tutorial tentang tipe
data char, kedua karakter ini sebenarnya memiliki nomor ASCII yang berbeda, sehingga
hasilnya tidak sama.
2 uses crt;
type
3
nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
4
hari_kerja= senin..jumat;
5
weekend= sabtu..minggu;
6
var
7
a:hari_kerja;
8 b:weekend;
9 begin
10 clrscr;
11
12 a:= kamis;
13 writeln('a: ',a);
14
b:= sabtu;
15
writeln('b: ',b);
16
17
readln;
18
end.
19
20
Contoh diatas saya ambil dari kode program dari tutorial tipe data enumeration, dimana saya
mendefenisikan nama_hari sebagai tipe data enumerated. Namun kali ini saya membuat
tipe data subrange hari_kerja dan weekend dari nama_hari.
Konsep penggabungan enumerated dan subrange ini mungkin cukup rumit, tapi jika anda
telah memahami tutorial sebelumnya tentang enumeration, saya rasa bisa memahami cara
kerja kode program diatas. Silahkan diubah-ubah dan lihat bagaimana hasilnya.
Tutorial Belajar Pascal Part 19:
Pengertian dan Cara Penggunaan Tipe
Data Array Pascal
26 Sep 15 | Andre | Tutorial Pascal | 22 Comments
Tipe data array merupakan tipe data yang hampir selalu hadir di dalam setiap bahasa
pemrograman. Dalam tutorial pascal kali ini saya akan membahas pengertian dan cara
penggunaan tipe data array di dalam bahasa pemrograman pascal.
1 program tipe_array;
2 uses crt;
3 var
7
nilai1:= 23;
8
nilai2:= 13;
9
nilai3:= 98;
10
nilai4:= 106;
11
12 writeln('nilai1: ',nilai1);
13 writeln('nilai2: ',nilai2);
14 writeln('nilai3: ',nilai3);
15 writeln('nilai4: ',nilai4);
16
17 readln;
18 end.
19
Dalam contoh tersebut saya membuat 4 variabel: nilai1, nilai2, nilai3 dan nilai4. Keempat
variabel ini bertipe integer.
Tidak ada yang salah dari kode program diatas. Tapi bayangkan apabila kita ingin
menyimpan lebih dari 4 nilai, bagaimana jika 10 atau 100 nilai? Tentu tidak efisien jika kita
harus membuat variabel nilai1, nilai2, nilai3… sampai dengan nilai100. Untuk hal inilah tipe
data array lebih cocok digunakan.
Sekarang, variabel ‘nilai’ berisi array dengan 10 element bertipe integer. Perhatikan angka
0..9, ini berarti saya membuat element array dari element 0, element 1, element 2, element 3,..
hingga element 9 (total terdapat 10 element).
program tipe_array;
1
uses crt;
2
var
3
nilai: array[0..9] of integer;
4
5
begin
6
clrscr;
7
8 nilai[0]:= 23;
9 nilai[1]:= 13;
nilai[2]:= 98;
10
nilai[3]:= 106;
11
12
writeln('nilai0: ',nilai[0]);
13
writeln('nilai1: ',nilai[1]);
14
writeln('nilai2: ',nilai[2]);
15
writeln('nilai3: ',nilai[3]);
16
17 readln;
18 end.
19
20
Pada contoh diatas, saya membuat variabel ‘nilai’ sebagai array yang berisi 10
element integer. Di dalam variabel ‘nilai’ ini, index array dimulai dari 0 hingga 9, karena
saya menulisnya dengan array[0..9] of integer. Jika anda ingin membuat 100 element array,
bisa menulisnya sebagai array[0..99] of integer.
Walaupun saya membuat 10 element, tapi kita tidak harus mengisi semua element ini. Pada
contoh tersebut, saya hanya mengisi 4 element. Bagaimana dengan element lainnya? ini akan
menggunakan nilai default (bawaan) pascal, biasanya berisi angka 0 untuk tipe data integer.
Selain itu, kita juga tidak harus mengisinya secara berurutan. Kita bisa mengisi element-
element array ini secara acak, selama masih dalam batas yang ditetapkan. Berikut contohnya:
1 program tipe_array;
2 uses crt;
3 var
6 begin
7 clrscr;
8
nilai[3]:= 23;
9
nilai[9]:= 13;
10
nilai[2]:= 98;
11
nilai[0]:= 106;
12
13
writeln('nilai3: ',nilai[3]);
14
writeln('nilai9: ',nilai[9]);
15 writeln('nilai2: ',nilai[2]);
16 writeln('nilai0: ',nilai[0]);
17
18 writeln('nilai1: ',nilai[1]);
19 writeln('nilai7: ',nilai[7]);
20
readln;
21
end.
22
23
Kali ini saya mengisi element secara acak, dan juga saya menampilkan
element nilai[1] dan nilai[7] yang memang tidak diisi dengan nilai. Hasilnya? pascal akan
menggunakan nilai default: 0.
Bagaimana jika kita melewati batas element array? Misalnya saya mengakses element ke 10?
Pascal akan meneluarkan error: Range check error while evaluating constants.
Kita tidak hanya bisa membuat array bertipe integer saja, tapi juga bisa menggunakan tipe
lain seperti real, char atau string. Berikut contohnya:
1
program tipe_array;
2
uses crt;
3
var
4
kata: array[20..29] of string[20];
5
begin
6 clrscr;
11 kata[27]:= '[Link]';
12
write(kata[24]);
13
write(kata[25]);
14
write(kata[26]);
15
write(kata[27]);
16
17
readln;
18
end.
19
Saya membuat variabel kata dengan array berjumlah 10 element yang masing-masing isinya
adalah string[20].
Anda bisa lihat bahwa saya menggunakan penomoran array mulai dari 20 hingga 29. Ini tidak
menjadi masalah, selama kita juga mengaksesnya dengan index yang sesuai. Berikut hasil
yang didapat:
Pembahasan mengenai array cukup banyak, oleh karena itu saya akan pecah menjadi
beberapa tutorial.
Tutorial Belajar Pascal Part 20: Cara
Membuat Array 2 Dimensi Pascal
26 Sep 15 | Andre | Tutorial Pascal | 6 Comments
Dalam tutorial pascal sebelumnya, kita telah mempelajari pengertian dan cara penggunaan
tipe data array. Kali ini saya akan masih membahas tentang array, yakni cara membuat array
2 dimensi pascal.
6 clrscr;
8 nilai[0]:= 10;
9 nilai[1]:= 20;
10 nilai[2]:= 30;
11
writeln('nilai1: ',nilai[0]);
12
writeln('nilai2: ',nilai[1]);
13
writeln('nilai3: ',nilai[2]);
14
15
readln;
16
end.
17
Maksud dari 1 dimensi disini adalah, setiap element array dibahas dengan 1 index,
seperti nilai[0], nilai[1] dan nilai[2].
1 var
Kode diatas berarti saya membuat variabel ‘nilai’ sebagai array 2 dimensi. Dimana untuk
dimensi pertama berisi 0 dan 1, sedangkan di dimensi kedua berisi 0, 1 dan 2. Total, variabel
‘nilai’ berisi 6 element (hasil dari 2 * 3).
Cara mengakses element pada array 2 dimensi ini menggunakan tanda koma sebagai
pemisah, seperti: nilai[0,2] atau nilai[1,1].
Contoh berikut akan memperjelas cara penggunaanya:
1
program tipe_array;
2 uses crt;
3 var
5 begin
clrscr;
6
7
nilai[0,0]:= 1;
8
9 nilai[0,1]:= 2;
10 nilai[0,2]:= 3;
nilai[1,0]:= 4;
11
nilai[1,1]:= 5;
12
nilai[1,2]:= 6;
13
14
writeln('nilai0,0: ',nilai[0,0]);
15
writeln('nilai0,1: ',nilai[0,1]);
16
writeln('nilai0,2: ',nilai[0,2]);
17 writeln('nilai1,0: ',nilai[1,0]);
18 writeln('nilai1,1: ',nilai[1,1]);
19 writeln('nilai1,2: ',nilai[1,2]);
20
21 readln;
end.
22
23
Silahkan anda pelajari sejenak kode diatas, baik cara pembuatan array 2 dimensi maupun cara
mengakses tiap-tiap elemennya. Menggunakan array 2 dimensi ini akan memudahkan kita
untuk membuat kode program yang lebih kompleks.
Contoh lain yang sering menggunakan array 2 dimensi adalah untuk membuat struktur
matriks. Berikut contohnya:
program tipe_array;
1
uses crt;
2
var
3
nilai: array[0..1,0..1] of integer;
4 begin
5 clrscr;
6
nilai[0,0]:= 1;
7
nilai[0,1]:= 2;
8
nilai[1,0]:= 4;
9
nilai[1,1]:= 5;
10
11
write (nilai[0,0],' ');
12
writeln(nilai[0,1]);
13
write (nilai[1,0],' ');
14
writeln(nilai[1,1]);
15
16 readln;
17 end.
18
19
Contoh kali ini hampir mirip dengan contoh kode program pascal sebelumnya, tapi saya
membatasi dengan element 2×2 (perhatikan cara pendeklarasikan variabel ‘nilai’). Ketika
menampilkan hasil array, saya menyusunnya agar sesuai dengan bentuk matriks 2×2. Ini
didapat dengan perpaduan perintah write dan writeln.
Sebagai latihan, dapatkah anda membuat struktur matriks 3×3?
Sampai disini, saya yakin anda sudah paham maksud kode diatas. Cara pengaksesannya pun
cukup dengan menambahkan dimensi ketiga di nomor index, seperti nilai[1,2,3] atau
nilai[0,0,1]. Berikut contohnya:
1
program tipe_array;
2
uses crt;
3
var
4 nilai: array[0..1,0..2,0..3] of integer;
5 begin
6 clrscr;
8 nilai[0,0,2]:= 2;
9 writeln(nilai[0,0,2]);
10
nilai[1,2,3]:= 999;
11
writeln(nilai[1,2,3]);
12
13
readln;
14
end.
15
Dalam 2 tutorial pascal sebelumnya kita telah mempelajari cara membuat tipe data array yang
jumlah element-nya bersifat tetap (fixed). Selain itu, pascal juga mendukung array dinamis
(dynamic arrays) dimana ukuran array belum ditulis pada saat array dideklarasikan.
Pada lanjutan tutorial pascal di duniailkom ini saya akan membahas tentang cara membuat
array dinamis dalam bahasa pemrograman pascal.
1 var
Berarti kita membuat array integer yang terdiri dari 10 element (0, 1, 2, 3 … 9).
1 var
Berarti kita membuat array string dengan 9 element, yakni 3 untuk dimensi pertama, dan 3
untuk dimensi kedua (3*3=9). Mulai dari kata[0,0], kata[0,1] hingga kata [2,2].
Dalam kedua contoh ini ukuran array sudah diketahui pada saat array dideklarasikan.
Jadi, berapa jumlah element di dalam array ini? Jumlah element akan ditentukan
menggunakan fungsi setlength() di bagian kode program utama. Sebagai contoh, jika saya
ingin variabel ‘nilai’memiliki 10 element, saya tinggal menulis setlength(nilai, 10).
Langsung saja kita masuk kedalam contoh kode programnya:
1
program tipe_array;
2
uses crt;
3
var
4
nilai: array of integer;
5
begin
6 clrscr;
7 setlength(nilai,10);
9 nilai[0]:= 1;
10 nilai[6]:= 2;
nilai[9]:= 4;
11
12
writeln('nilai 0: ',nilai[0]);
13
writeln('nilai 6: ',nilai[6]);
14
writeln('nilai 9: ',nilai[9]);
15
16
readln;
17
end.
18
Pada saat variabel ‘nilai’ dideklarasikan sebagai array, kita belum mengetahui berapa jumlah
element array tersebut. Barulah di dalam kode program, fungsi setlength(nilai,10) akan
menetapkan bahwa array ‘nilai’ akan berisi 10 element. Perhitungan 10 element ini dimulai
dari index 0 hingga 9.
Kalau jumlah element array tetap ditulis, dimana letak dinamisnya?
Di dalam pascal, jumlah element suatu array memang harus ditulis, tapi dalam array dinamis,
jumlah element ini ditentukan di dalam kode program utama, bukan pada saat di
deklarasikan.
Oleh karena itu nantinya kita bisa menentukan jumlah element array berdasarkan kondisi
tertentu (menggunakan struktur logika IF), misalnya jika syarat terpenuhi, set jumlah
element 1000, jika tidak set jumlah element array menjadi 10.
Jika anda telah mempelajari pointer, array dinamis juga bisa dibuat menggunakan pointer, tapi
caranya lebih rumit daripada menggunakan fungsi setlength().
Untuk array 2 dimensi, kita tinggal men-set 2 buah batasan element array, seperti contoh
berikut:
program tipe_array;
1
uses crt;
2
var
3
nilai: array of array of integer;
4
begin
5 clrscr;
6 setlength(nilai,4,4);
8 nilai[0,0]:= 34;
9 nilai[2,3]:= 99;
nilai[3,0]:= 15;
10
11
writeln('nilai [0,0]: ',nilai[0,0]);
12
writeln('nilai [2,3]: ',nilai[2,3]);
13
writeln('nilai [3,0]: ',nilai[3,0]);
14
15
readln;
16
end.
17
18
Perhatikan cara penulisan variabel nilai. Kita membuatnya sebagai array of array of integer,
yang berarti ini adalah array 2 dimensi dengan tipe integer. Untuk men-set batasan jumlah
element array, saya menggunakan fungsi setlength(nilai,4,4). Fungsi ini akan membuat
variabel ‘nilai’ berisi 25 element (hasil dari 5*5 = 25).
Tutorial Belajar Pascal Part 22: Cara
Membuat Array dari Tipe Data Bentukan
Pascal
27 Sep 15 | Andre | Tutorial Pascal | 5 Comments
Melajutkan tutorial tentang array di dalam bahasa pemrograman pascal, kali ini saya akan
membahas tentang cara membuat array dari tipe data bentukan.
1 program tipe_array;
uses crt;
2
type
3
nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
4
usia= 0..99;
5
var
6
hari: array[0..9] of nama_hari;
7
umur: array[0..9] of usia;
8 begin
9 clrscr;
10
11 hari[1]:= senin;
12 hari[9]:= sabtu;
13
umur[3]:= 17;
14
umur[8]:= 80;
15
16
writeln('hari [1]: ',hari[1]);
17
writeln('hari [9]: ',hari[9]);
18
writeln('umur [3]: ',umur[3]);
19
writeln('umur [8]: ',umur[8]);
20
21 readln;
22 end.
23
24
Dalam kode diatas saya membuat 2 buah tipe data bentukan, yakni nama_hari yang
merupakan tipe data enumeration dan umur yang merupakan tipa data subrange. Setelah
deklarasi kedua tipe data ini, saya kemudian ‘memasukkannya’ ke dalam
variabel hari dan umur. Keduanya merupakan array dari tipe data nama_hari dan usia.
Jika anda kurang paham tentang maksud keduanya, silahkan pelajari tutorial tipe data
enumeration pascal dan tutorial subrange pascal.
Selebihnya, cara penggunaannya sama seperti biasa, kecuali kita dibatasi kepada batasan
yang dibuat. Sebagai contoh, variabel hari hanya bisa diisi dengan nama-nama hari yang
telah dideklarasikan pada bagian type. Untuk variabel umur, juga tidak bisa diisi dengan
angka lebih dari 100.
Tutorial Belajar Pascal Part 23:
Pengertian dan Cara Penggunaan Tipe
Data Record Pascal
27 Sep 15 | Andre | Tutorial Pascal | 15 Comments
Setelah membahas tentang tipe data array pascal dalam 4 tutorial sebelum ini, kita akan
beralih ke tipe data bentukan lainnya, yakni record. Kali ini saya akan membahas
tentang pengertian dan cara penggunaan tipe data record dalam bahasa pemrograman pascal.
3 record
4 variabel: tipe_data;
5 variabel: tipe_data;
variabel: tipe_data;
6
end;
7
Perhatikan bahwa untuk membuat record, diawali dengan nama_record. Ini adalah variabel
yang akan menampung seluruh isi record. Setelah itu, pembuatan ‘isi’ record berada di antara
perintah record dan end;. Disinilah seluruh variabel yang menjadi ‘isi’ record di defenisikan.
Sebagai contoh, saya akan membuat sebuah record ‘siswa’ yang terdiri
dari nama, umur, sekolah, dan kota. Berikut cara penulisannya:
1
var
2 siswa: record
3 nama: string[20];
4 umur: integer;
5 sekolah: string[30];
kota: string[20];
6
end;
7
Sekarang, variabel ‘siswa’ adalah tipe data record yang terdiri dari nama, umur, sekolah,
dan kota. Bagaimana cara mengakses record ini?
Untuk mengakses variabel di dalam record (atau disebut juga sebagai field), digunakan
karakter titik ( . ), seperti contoh berikut:
1 [Link]:= 'Anto';
2 [Link]:= 17;
4 [Link]:= 'Pelembang';
Dalam kode diatas, saya mengisi beberapa data kedalam record ‘siswa’. Perhatikan bahwa isi
masing-masingnya harus bersesuaian dengan tipe data sewaktu kita merancang record.
Untuk nama, bisa diisi dengan string[20], sedangkan untuk umur bisa diisi dengan angka
bulat (integer).
Berikut kode lengkap cara penggunaan struktur record di dalam pascal:
program tipe_record;
1
uses crt;
2
var
3 siswa: record
4 nama: string[20];
5 umur: integer;
6 sekolah: string[30];
kota: string[20];
7
end;
8
begin
9
clrscr;
10
11 [Link]:= 'Anto';
12 [Link]:= 17;
15
writeln('Nama : ',[Link]);
16
writeln('Umur : ',[Link]);
17
writeln('Sekolah : ',[Link]);
18
writeln('Kota : ',[Link]);
19
20 readln;
21 end.
22
23
24
Pada kode diatas, saya membuat sebuah record siswa, mengisinya dengan beberapa data,
kemudian menampilkan isi record menggunakan perintah writeln.
Tutorial Belajar Pascal Part 24: Fungsi
Perintah With pada Tipe data Record
Pascal
28 Sep 15 | Andre | Tutorial Pascal | 8 Comments
Setelah membahas pengertian tipe data record dan cara penggunaan tipe data record pascal,
kali ini saya akan membahas perintah with yang bisa digunakan untuk mengakses isi record
dalam bahasa pemrograman pascal.
Perintah with ini akan memudahkan pengaksesan isi atau field dari record.
3 nama: string[20];
4 umur: integer;
5 sekolah: string[30];
kota: string[20];
6
end;
7
2 [Link]:= 17;
4 [Link]:= 'Pelembang';
Perintah [Link]:= ‘Anto’ berarti saya ingin mengisi field nama dari
record siswa dengan nilai ‘Anto’.
1
with siswa do
2 begin
3 nama:= 'Anto';
4 umur:= 17;
kota:= 'Pelembang';
6
end;
7
Kode program diatas diawali dengan perintah “with siswa do” ini merupakan instruksi
kepada pascal bahwa kita ingin akan mengakses isi dari record siswa. Setelah perintah with,
kita harus membatasi block kode program dengan perintah begin hingga end; Diantara blok
inilah pengaksesan record dengan with dilakukan.
Perhatikan cara pengaksesan isi/field dari record siswa. Saya tidak perlu membuat nama
variabel record “[Link]”, tetapi cukup “nama” saja. Ini akan memudahkan penulisan
kode program, terutama jika record yang diisi cukup banyak.
Berikut contoh lengkap kode program pascal dengan perintah with:
1 program tipe_record;
2 uses crt;
3 var
4 siswa: record
nama: string[20];
5
umur: integer;
6
sekolah: string[30];
7
kota: string[20];
8
end;
9
begin
10 clrscr;
11 with siswa do
12 begin
13 nama:= 'Anto';
14 umur:= 17;
kota:= 'Pelembang';
16
end;
17
18
writeln('Nama : ',[Link]);
19
writeln('Umur : ',[Link]);
20
writeln('Sekolah : ',[Link]);
21
writeln('Kota : ',[Link]);
22
23 readln;
24 end.
25
26
Lebih jauh lagi, kita bisa melingkupi seluruh kode program dengan perintah with.
program tipe_record;
1
uses crt;
2
var
3
siswa: record
4
nama: string[20];
5 umur: integer;
6 sekolah: string[30];
7 kota: string[20];
8 end;
begin
9
clrscr;
10
with siswa do
11
begin
12
nama:= 'Anto';
13
umur:= 17;
14 sekolah:= 'SMA 1 Durian Runtuh';
15 kota:= 'Pelembang';
16
writeln('Nama : ',nama);
17
writeln('Umur : ',umur);
18
writeln('Sekolah : ',sekolah);
19
writeln('Kota : ',kota);
20
end;
21
22
readln;
23 end.
24
25
26
Penggunaan perintah with seperti ini hanya bisa digunakan selama di dalam block kode
program tersebut kita tidak mengakses record lain. Jika butuh untuk mengakses record lain,
kita harus keluar dari block with terlebih dahulu (menggunakan perintah end;).
Perintah with yang kita pelajari disini cocok digunakan untuk mempermudah pengaksesan
record, terutama jika record tersebut memiliki banyak field.
Tutorial Belajar Pascal Part 25: Cara
Membuat Array dari Struktur Data Record
Pascal
29 Sep 15 | Andre | Tutorial Pascal | 15 Comments
Melihat judul tutorial kali ini mungkin terdengar sedikit rumit. Tapi jika anda sudah
memahami cara penggunaan tipe data array dan tipe data record pascal (yang telah kita bahas
sebelumnya) , pembahasan kali ini bisa dipahami dengan mudah.
Kali ini saya akan saya akan menggabungkan tipe data array dengan tipe data record, atau
lebih tepatnya membuat array dari struktur data record di dalam bahasa pemrograman pascal.
3 nama: string[20];
4 umur: integer;
5 sekolah: string[30];
kota: string[20];
6
end;
7
Saya akan memindahkannya kepada bagian type, kemudian mengaksesnya dari bagian var:
type
1
rec_siswa =
2
record
3
nama: string[20];
4
umur: integer;
5
sekolah: string[30];
6 kota: string[20];
7 end;
9 var
siswa: rec_siswa;
10
11
Tampak sedikit perubahan, dimana kali ini saya menggunakan variabel ‘rec_siswa’ sebagai
penampung tipe data bentukan record, baru kemudian ‘memasukkannya’ ke dalam variabel
‘siswa’.
Berikut kode program lengkap cara pembuatan record di bagian type pascal:
1 program tipe_record;
uses crt;
2
3
type
4
rec_siswa =
5
record
6
nama: string[20];
7
umur: integer;
8 sekolah: string[30];
9 kota: string[20];
10 end;
11
12 var
siswa: rec_siswa;
13
14
begin
15
clrscr;
16
with siswa do
17
begin
18
nama:= 'Anto';
19 umur:= 17;
22
23 writeln('Nama : ',nama);
writeln('Umur : ',umur);
24
writeln('Sekolah : ',sekolah);
25
writeln('Kota : ',kota);
26
end;
27
28
readln;
29
end.
30
31
32
Kode program ini akan membuat variabel siswa berisi 5 element array yang setiap element-
nya adalah record. Terasa membingungkan?
Untuk mengakses element ini, kita juga harus menggunakan index array. Sebagai contoh,
untuk mengakses element pertama, yang memiliki index 0, kita bisa menulis sebagai berikut:
1 siswa[0].nama:= 'Anto';
2 siswa[0].umur:= 17;
4 siswa[0].kota:= 'Pelembang';
2 siswa[1].umur:= 18;
4 siswa[1].kota:= 'Makasar';
Seperti yang terlihat, kita mengkombinasikan pengaksesan index array dengan record.
Berikut kode program lengkap cara penggabungkan array dengan record ini:
1 program tipe_record_array;
uses crt;
2
3
type
4
rec_siswa =
5
record
6
nama: string[20];
7
umur: integer;
8 sekolah: string[30];
9 kota: string[20];
10 end;
11
12 var
14
begin
15
clrscr;
16
17
siswa[0].nama:= 'Anto';
18
siswa[0].umur:= 17;
19
siswa[0].sekolah:= 'SMA 1 Durian Runtuh';
20 siswa[0].kota:= 'Pelembang';
21
22 writeln('Nama : ',siswa[0].nama);
23 writeln('Umur : ',siswa[0].umur);
24 writeln('Sekolah : ',siswa[0].sekolah);
writeln('Kota : ',siswa[0].kota);
25
26
writeln;
27
28
siswa[1].nama:= 'Santi';
29
siswa[1].umur:= 18;
30
siswa[1].sekolah:= 'SMA 1 Merdeka';
31
siswa[1].kota:= 'Makasar';
32
33 writeln('Nama : ',siswa[1].nama);
34 writeln('Umur : ',siswa[1].umur);
35 writeln('Sekolah : ',siswa[1].sekolah);
36 writeln('Kota : ',siswa[1].kota);
37
readln;
38
end.
39
40
41
42
Semoga anda bisa memahami maksud dari kode program diatas. Sebagai latihan, dapatkah
anda melanjutkannya hingga element ke-6 (yang memiliki index array 5)?
Tutorial kali ini sekaligus menutup 3 tutorial yang membahas tipe data record pascal.
Tutorial Belajar Pascal Part 26:
Pengertian dan Cara Penggunaan Tipe
Data Set Pascal
29 Sep 15 | Andre | Tutorial Pascal | 3 Comments
Melanjutkan tutorial belajar tentang tipe data pascal, kali ini saya akan membahas pengertian
dan cara penggunaan tipe data set di dalam pascal.
Tipe data set digunakan untuk membuat operasi himpunan.
Di dalam pascal, konsep himpunan inilah yang menjadi tipe data set.
Sekarang, variabel himpunan1 merupakan tipe data set yang bisa diisi dengan sembarang
karakter (char). Kita juga bisa membatasi anggota yang bisa diterima oleh himpunan ini,
yang penulisannnya dilakukan sebagai berikut:
1 var
Sekarang, himpinan 1 akan berisi 5 anggota yakni huruf ‘a’, ‘i’, ‘u’, ‘e’, dan ‘o’.
Mari kita lihat cara penggunaan tipe data set ini didalam bahasa pemrograman pascal:
1
program tipe_set;
2
uses crt;
3
var
4 himpunan1: set of char;
5 begin
6 clrscr;
7 himpunan1 := ['a','i','u','e','o'];
8
if 'e' in himpunan1 then
9
writeln('e ada di himpunan1');
10
11
readln;
12
end.
13
Jika anda menjalankan kode program diatas, hasilnya adalah: ‘e ada di himpunan1’. Sampai
di tutorial ini, saya memnag belum membahas struktur logika IF, tapi kode:
1 if 'e' in himpunan1 then
Bisa dibaca: Jika ‘e’ ada di dalam himpunan1, maka jalankan perintah writeln(‘e ada di
himpunan1’).
Bagaimana jika karakter yang dicari tidak ada? Mari kita coba:
program tipe_set;
1
uses crt;
2
var
3
himpunan1: set of char;
4
begin
5 clrscr;
6 himpunan1 := ['a','i','u','e','o'];
7
if 'x' in himpunan1 then
8
writeln('x ada di himpunan1');
9
10
readln;
11
end.
12
13
Jika anda menjalankan kode diatas, tidak akan tampil apa-apa, karena variabel x tidak
terdapat di dalam himpunan1.
Untuk contoh selanjutnya, saya akan menggunakan himpunan angka 0 sampai 9. Berikut
kode programnya:
1
program tipe_set;
2
uses crt;
3
var
4 himpunan1: set of 1..9;
5 begin
6 clrscr;
7 himpunan1 := [1,3,8,9];
8
if 8 in himpunan1 then
9
writeln('8 ada di himpunan1');
10
11
readln;
12
end.
13
Kode program diatas sangat mirip dengan kode program kita sebelumnya, tapi kali ini saya
membuat anggota himpunan yang terdiri dari angka 0 hingga 9. Karena huruf 8 terdapat di
dalam himpunan1, maka akan tampil hasil ‘8 ada di himpunan1’.
Jika anda perhatikan, himpunan1 saya batasi hanya bisa diisi dengan angka 0 hingga 9
(melalui perintah: himpunan1: set of 1..9). Bagaimana jika saya memasukkan angka diluar
ini? Mari kita coba:
1
program tipe_set;
2
uses crt;
3
var
4 himpunan1: set of 1..9;
5 begin
6 clrscr;
7 himpunan1 := [1,3,8,9,10];
8
if 10 in himpunan1 then
9
writeln('10 ada di himpunan1');
10
11
readln;
12
end.
13
Saya menambahkan angka ‘10’ kedalam anggota himpunan1, dan anehnya pascal tidak akan
mengeluarkan error. Kode program diatas bisa dijalankan, tapi…. tidak akan menampilkan
hasil apa-apa. Kenapa? Karena angka 10 tidak ikut dihitung sebagai aggota himpunan1 yang
memang dibatasi hanya angka 0 sampai 9.
Sebagai penutup tutorial cara penggunaan tipe data set pascal ini, saya akan mencoba
menampilkan operasi penggabungan himpunan, atau di dalam teori himpunan dikenal
dengan operasi union. Berikut contoh kode programnya:
1 program tipe_set;
uses crt;
2
var
3
i:char;
4
himpunan1: set of char;
5
himpunan2: set of char;
6
himpunan3: set of char;
7 begin
8 clrscr;
9 himpunan1 := ['a','i','u','e','o'];
10 himpunan2 := ['x','y','z'];
11
himpunan3 := himpunan1 + himpunan2;
12
13
for i in himpunan3 do
14
writeln(i);
15
16
readln;
17
end.
18
19
Sekali lagi, pembahasan tentang operator dan struktur FOR akan saya bahas setelah
tutorial tentang tipe data selesai. Tapi secara singkat, kode program diatas menggabungkan
(union) himpunan1 dengan himpunan2, yang hasilnya disimpan ke dalam himpunan3.
Perulangan for digunakan untuk menampilkan seluruh isi dari himpunan3. Hasilnya adalah
sebagai berikut:
Dapat terlihat, himpunan3 terdiri dari anggota gabungan dari himpunan1 dan himpunan2.
Dalam tutorial belajar pascal kali ini kita telah membahas tentang tipe data set di dalam
pascal.
Tutorial Belajar Pascal Part 27:
Pengertian dan Cara Penggunaan Tipe
Data Pointer Pascal
30 Sep 15 | Andre | Tutorial Pascal | 7 Comments
Kali ini saya akan membahas salah satu tipe data khusus yang (bagi kebanyakan programmer
pemula) cukup rumit, yakni tipe data pointer.
Saya akan membahas pengertian dan cara penggunaan tipe data pointer di dalam bahasa
pemrograman pascal.
Untuk dapat membuat pointer, di dalam pascal kita harus menyesuaikannya dengan variabel
yang ingin diakses. Maksudnya seperti ini, jika saya mendeklarasikan sebuah variabel
‘angka’:
1 var
2 angka: integer;
Disini variabel ‘angka’ disiapkan untuk menampung tipe data integer.
Untuk bisa menampung alamat memory dari variabel ‘angka’ ini, saya harus membuat
pointer yang juga di-set untuk menampung tipe data pointer integer. Berikut cara
penulisannya:
1 var
2 pointer_angka : ^integer;
Perhatikan tanda ‘topi’ atau ‘caret’. Inilah cara pendeklarasian tipe data pointer di dalam
pascal. ^integer berarti saya mempersiapkan sebuah pointer untuk variabel integer.
Jika kita butuh pointer ke tipe data lain, penulisannya juga akan berbeda. Misalnya, untuk
membuat pointer ke alamat variabel yang bertipe data char, bisa ditulis sebagai berikut:
1 var
2 pinter_kata : ^char;
Baiklah, setelah deklarasi tipe data pointer selesai, lalu bagaimana cara penggunaannya?
Di dalam pascal, kita butuh karakter ‘@’ yang berfungsi untuk menampilkan alamat memory
sebuah variabel.
Perhatikan potongan kode program pascal berikut ini:
1 var
2 angka: integer;
3 pointer_angka : ^integer;
4 begin
pointer_angka:= @angka;
5
Baris terkahir: pointer_angka:= @angka adalah kode yang ‘mengaitkan’ kedua variabel ini.
Sekarang, variabel pointer_angka akan berisi alamat memory dari variabel ‘angka’.
Silahkan anda pahami sebentar maksud kalimat ini.
Apabila di tampilkan, variabel pointer_angka akan berisi: 40960. Inilah alamat memory
yang dipergunakan pascal untuk menyimpan variabel ‘angka’. Alamat ini sepenuhnya
ditentukan oleh pascal, terserah akan menyimpan di alamat memory mana.
Baiklah, jika sekarang variabel pointer_angka sudah berisi ‘40960’, lalu bagaimana cara
menampilkan isi dari alamat memory ini?
Jika saya menggunakan perintah:
1 writeln(pointer_angka);
Yang akan ditampilkan adalah alamat memory, bukan isi dari alamat memory tersebut.
Untuk hal ini kita kembali harus menggunakan karakter topi ‘^’ tetapi letaknya di akhir
variabel, seperti berikut:
1 writeln(pointer_angka^);
Kali ini, perintah diatas akan menampilkan isi dari alamat memory yang ada di alamat
‘40960’.
Huff… anda masih bersama saya? Sebelum terlanjur ngantuk, mari kita langsung masuk ke
contoh kode program pascal:
1
program tipe_pointer;
2
uses crt;
3
var
4
angka: integer;
5
pointer_angka : ^integer;
6 begin
7 clrscr;
8 angka:= 99;
10
pointer_angka:= @angka;
11
writeln('Variabel pointer merujuk ke nilai: ',pointer_angka^);
12
13
angka:=74;
14
writeln('Variabel pointer merujuk ke nilai: ',pointer_angka^);
15
16
readln;
17
end.
18
Setelah penjelasan panjang sebelumnya, dapatkah anda memahami maksud kode program
ini?
Dalam kode program tersebut, saya membuat 2 buah variabel: angka dan pointer_angka.
Variabel pertama bertipe integer, sedangkan variabel kedua bertipe pointer integer.
Selanjutnya, saya memberikan nilai 99 kedalam variabel angka.
Dapatkah anda menebak apa fungsi dari kode program berikut?
1 pointer_angka:= @angka;
Yup, kode diatas akan membuat variabel pointer_angka berisi alamat memory dari variabel
angka.
Jika saya menulis kode:
1 writeln(pointer_angka^)
Hasilnya adalah 99. Sekali lagi, dapatkah anda memahami dari mana angka 99 ini berasal?
Perintah diatas berarti saya memerintahkan pascal untuk menampilkan isi dari variabel yang
berada di alamat memory pointer_angka (perhatikan penambahan karakter ‘topi’).
Sampai disini, kedua variabel telah saling terhubung. Untuk memastikannya, saya mengubah
nilai variabel angka menjadi 74. Dan, seperti yang bisa ditebak, hasil dari
perintah writeln(pointer_angka^), juga akan ikut berubah.
Jika pada contoh diatas masih membuat anda bingung, mari kita masuk ke contoh kedua:
1 program tipe_pointer;
2 uses crt;
3 var
nama: string[20] ;
4
pointer : ^string;
5
begin
6
clrscr;
7
nama:= 'Unyil';
8
writeln('Variabel nama berisi: ',nama);
9
10
pointer:= @nama;
11 writeln('Variabel pointer merujuk ke nilai: ',pointer^);
12
13 nama:= 'Alex';
15
16 pointer^:= 'Joni';
17 writeln('Variabel nama berisi: ',nama);
18
19 readln;
end.
20
21
Contoh diatas mirip dengan contoh sebelumnya, tapi kali ini saya menggunakan tipe data
string. Perhatikan bahwa ketika saya mengubah isi dari variabel ‘nama’, nilai dari
variabel pointer juga akan mengikuti. Dengan kata lain, variabel nama dan
variabel pointer merujuk kepada nilai yang sama di alamat memory komputer.
1 writeln(‘pointer_angka’);
Untuk dapat menampilkan alamat memory ini, kita harus mengubahnya ke dalam tipe
data word(termasuk kedalam kelompok tipe data integer), dan menggunakan fungsi addr().
Berikut contohnya:
1 program tipe_pointer;
2 uses crt;
3 var
4 angka: integer;
5 pointer : ^integer;
i : ^word;
6
7 begin
8 clrscr;
angka:= 99;
9
writeln('Variabel angka berisi: ',angka);
10
11
pointer:= @angka;
12
writeln('Variabel pointer merujuk ke nilai: ',pointer^);
13
14
i:= addr(pointer);
15
writeln('Alamat memory yang digunakan adalah: ',i^);
16
17 readln;
18 end.
19
Dalam program diatas, saya menyiapkan sebuah variabel i dengan tipe data word. Untuk
menampilkan alamat memory dari tipe data pointer, saya harus menggunakan perintah:
1 i:= addr(pointer);
Tipe data pointer yang dibahas disini memang cukup rumit, terutama untuk pemula. Tapi
saya sangat sarankan agar anda bisa memahami konsep pointer ini. Karena di berbagai bahasa
pemrograman lain, konsep pointer juga sering dibahas.
Tutorial Belajar Pascal Part 28: Jenis-jenis
Tipe Data di Dalam Bahasa Pascal
07 Oct 15 | Andre | Tutorial Pascal | 5 Comments
Tutorial pascal kali ini saya rancang berisi kesimpulan dari berbagai jenis tipe data di dalam
bahasa pemrograman pascal. Hampir semua tipe data ini telah kita bahas dalam tutorial-
tutorial sebelumnya.
Sengaja saya kumpulkan kembali agar lebih mudah diakses :)
1 var
2 a:integer;
1 var
2 a:real;
1 var
2 a:char;
1 var
2 a:boolean;
1 type
2 nama_hari= (senin,selasa,rabu,kamis,jumat,sabtu,minggu);
3 var
4 a: nama_hari;
1 type
2 satuan= 1..9;
3 var
4 a: satuan;
1 var
2 a:string;
1
var
2 siswa: record
3 nama: string[20];
4 umur: integer;
5 sekolah: string[30];
kota: string[20];
6
end;
7
1 var
2 a: set of 1..9;
Tipe Data File
Tipe data file adalah tipe data yang digunakan untuk mengakses file. Tipe data ini digunakan
jika kita ingin membaca file atau menulis sesuatu kedalam file.
Berikut contoh cara pendefenisian tipe data file di dalam pascal:
1 var
Tipe data pointer adalah tipe data yang berisi alamat memory dari sebuah variabel. Tipe data
ini digunakan jika kita butuh memanipulasi variabel langsung dari memory komputer.
Biasanya pointer digunakan ketika mempelajari struktur data.
1 var
2 pointer : ^string;
Itulah semua tipe data yang ada didalam bahasa pemrograman pascal. Selain tipe data file,
seluruh tipe data ini telah kita bahas pada tutorial pascal di duniailkom sebelum ini. Tutorial
ini juga sekaligus sebagai penutup tutorial tentang tipe data pascal.
Tutorial Belajar Pascal Part 29: Jenis-jenis
Operator dalam Bahasa Pemrograman
Pascal
09 Oct 15 | Andre | Tutorial Pascal | 6 Comments
Pada sesi tutorial pascal sebelumnya, kita telah membahas tentang jenis-jenis tipe data di
dalam pascal. Untuk mengoperasikan tipe data ini, membutuhkan operator. Dalam beberapa
tutorial ke depan, saya akan membahas tentang jenis-jenis operator dalam bahasa
pemrograman Pascal.
Untuk tutorial kali ini akan dibahas secara ringkas apa saja jenis-jenis operator pascal.
Cara penggunaan serta contoh kode programnya akan dibahas pada tutorial berikutnya.
Operator Assignment
Operator Aritmatika
Operator String
Operator Perbandingan / Relasional
Operator Logika / Boolean
Operator Bitwise
Operator Set / Himpunan
Operator Address (Pointer)
Operator Assignment
Operator assignment adalah operator yang digunakan untuk memberikan nilai ke dalam
suatu variabel. Di dalam pascal hanya terdapat 1 operator assignment, yakni ‘:=’.
Operator Penjelasan Contoh
Operator Aritmatika
Operator aritmatika adalah operator yang biasa kita temukan untuk operasi matematika.
Berikut jenis-jenis operator aritmatika di dalam pascal:
Operator Penjelasan Contoh
+ Penambahan 2+3=5
– Pengurangan 5–2=3
* Perkalian 2*3=6
+ Positif (plus) +5
– Negatif (min) -3
Operator String
Di dalam pascal, hanya terdapat 1 jenis operator string, yakni tanda tambah ‘ + ’ yang
digunakan untuk menyambung string (concatenated).
Operator Penjelasan Contoh
and Akan menghasilkan TRUE jika kedua operand TRUE TRUE and FALSE, hasilnya: FALSE
or Akan menghasilkan TRUE jika salah satu operand TRUE TRUE or FALSE, hasilnya: TRUE
xor Akan menghasilkan TRUE jika kedua operand berbeda TRUE xor FALSE, hasilnya: TRUE
not Akan menghasilkan TRUE jika operand FALSE not TRUE , hasilnya: FALSE
Operator Bitwise
Operator bitwise mirip dengan operator logika / boolean, tapi dilakukan di level bit.
Operator Penjelasan Contoh
+ Union
– Selisih (Difference)
* Irisan (Intersection)
Dalam sesi tutorial operator di dalam pascal ini akan saya buka dengan membahas jenis-jenis
operator assignment di dalam bahasa pemrograman Pascal.
1 A := 500
Berarti kita memasukkan nilai 500 ke dalam variabel ‘A’. Di dalam bahasa pseudo code (jika
anda membaca buku tentang algoritma), ini biasa ditulis dengan simbol:
1 A <- 500
5 c:string;
begin
6
clrscr;
7
a:=8;
8
b:=3.14;
9
c:='belajar pascal di duniailkom';
10
11
writeln('a: ',a);
12 writeln('b: ',[Link]);
13 writeln('c: ',c);
14
15 readln;
16 end.
17
18
Tidak ada hal yang baru dari kode program diatas. Saya mendefenisikan beberapa variabel,
memberikan nilai kedalam variabel tersebut dan menampilkan hasilnya.
Khusus di dalam compiler Free Pascal, kita bisa menggabungkan operator assignment pada
saat variabel tersebut di deklarasikan. Berikut contohnya:
program operator_assignment;
1
uses crt;
2
var
3
a:integer=8;
4
b:real=3.14;
5 c:string='belajar pascal di duniailkom';
6 begin
clrscr;
7
8
writeln('a: ',a);
9
writeln('b: ',[Link]);
10
writeln('c: ',c);
11
12
readln;
13
end.
14
15
Jika anda menggunakan Turbo Pascal, kode program diatas akan menghasilkan error, karena Turbo
Pascal tidak mendukung cara memberikan nilai kepada variabel seperti ini.
Memberikan nilai awal ketika sebuah variabel di deklarasikan biasa dikenal dengan
proses inisialisasi. Dalam best practice pemrograman, men-inisialisasi sebuah variabel
dengan nilai awal cukup penting. Ini untuk menghindari error/bug yang tidak terduga.
Misalnya ketika kita mendefenisikan variabel a sebagai integer, berapakah nilai ‘a’ ini?
apakah 0? 1? 100?.
Dalam compiler Free Pascal, nilai defaultnya adalah 0. Namun di dalam bahasa pemrograman
lain, belum tentu. Oleh karena itulah sedapat mungkin kita memberikan nilai awal kepada
setiap variabel.
Mengakses variabel yang tidak diberikan nilai awal, tidak akan menghasilkan error, seperti
contoh berikut:
program operator_assignment;
1
uses crt;
2
var
3
a:integer;
4
b:real;
5
c:string;
6 begin
7 clrscr;
9 writeln('a: ',a);
writeln('b: ',b);
10
writeln('c: ',c);
11
12
readln;
13
end.
14
15
Namun, praktek seperti ini sebaiknya tidak digunakan. Jika kita ingin memberikan nilai 0
kepada variabel a, tetap isi variabel tersebut dengan angka 0, dan tidak mengandalkan
nilai defaultbawaan pascal:
1 program operator_assignment;
2 uses crt;
var
3
a:integer;
4
b:real;
5
c:string;
6
begin
7
clrscr;
8
9 a:=0;
10 b:=0.0;
11 c:='';
12
13 writeln('a: ',a);
14 writeln('b: ',b);
writeln('c: ',c);
15
16
readln;
17
end.
18
19
Dalam tutorial belajar pascal kali ini kita telah membahas operator yang cukup sederhana,
tetapi sangat penting, yakni operator assignment.
Tutorial Belajar Pascal Part 31: Jenis-jenis
Operator Aritmatika dalam Pascal
02 Dec 15 | Andre | Tutorial Pascal | 14 Comments
Melanjutkan tutorial tentang operator di pascal, kali ini kita akan membahas tentang jenis-
jenis operator aritmatika dalam bahasa pemrograman pascal.
+ Penambahan 2+3=5
– Pengurangan 5–2=3
* Perkalian 2*3=6
+ Positif (plus) +5
– Negatif (min) -3
2 program operator_aritmatika;
uses crt;
3
var
4
a,b,c,d,e,f,g,h:integer;
5
begin
6
clrscr;
7
a:=8+4;
8 b:=9-2;
9 c:=2*3;
10 d:=10+3-7*4;
11 e:=((10+3)-7)*4;
12 f:=-79;
13
writeln('a: ',a);
14
writeln('b: ',b);
15
writeln('c: ',c);
16
writeln('d: ',d);
17
writeln('e: ',e);
18
writeln('f: ',f);
19
20 readln;
21 end.
22
Untuk operasi artimatika (dan beberapa operasi lainnya), kita bisa menggunakan tanda
kurung untuk menjelaskan operator yang harus dijalankan terlebih dahulu. Pada contoh
diatas, saya menggunakan tanda kurung agar operasi penambahan dijalankan terlebih dahulu
sebelum operasi perkalian (seperti pada variabel e)
Jika anda perhatikan, dalam contoh diatas saya tidak membuat operasi pembagian, mari kita
coba:
1
program operator_aritmatika;
2
uses crt;
3 var
4 a:integer;
5 begin
6 clrscr;
7 a:=8/4;
8
writeln('a: ',a);
9
10
readln;
11
end.
12
Kode program diatas akan menghasilkan error!. Kenapa? karena di dalam pascal, hasil
operasi pembagian (/) harus disimpan kedalam variabel bertipe real, seperti berikut ini:
1 program operator_aritmatika;
2 uses crt;
3 var
4 a:real;
5 begin
6 clrscr;
a:=8/4;
7
8
writeln('a: ',[Link]);
9
10
readln;
11
end.
12
Walaupun 8 dibagi 4 akan menghasilkan bilangan bulat 2, tapi dalam pascal semua hasil
operator pembagian harus disimpan di dalam variabel real. Oleh karena itu, operator “ / ”
disebut juga dengan real division.
Meskipun sama-sama angka, tipe data integer (bilangan bulat) dan tipe data real(bilangan desimal
pecahan) adalah berbeda. Konsep seperti ini sangat penting untuk dipahami.
2 uses crt;
3 var
4 a,b,c,d:integer;
begin
5
6 clrscr;
7 a:=10 div 4;
b:=7 div 2;
8
c:=100 div 5;
9
d:=9999 div 20;
10
11
writeln('a: ',a);
12
writeln('b: ',b);
13
writeln('c: ',c);
14 writeln('d: ',d);
15
16 readln;
17 end.
18
Perhatikan, untuk menampung nilai dari operator div, kita bisa menggunakan variabel
bertipe integer, karena hasil dari div, pasti adalah bilangan bulat (integer).
Operator mod (singkatan dari modulo atau modulus) digunakan untuk menghasilkan angka
sisa dari sebuah hasil bagi.
Sebagai contoh, 8 mod 5 = 3, karena 3 adalah angka sisa pembagian.
Sedangkan 100 mod 7 = 2, karena hanya 98 yang habis dibagi 7 (bersisa 2).
1 program operator_aritmatika;
2 uses crt;
3 var
4 a,b,c,d:integer;
begin
5
clrscr;
6
a:=8 mod 4;
7
b:=8 mod 5;
8
c:=10 mod 2;
9
d:=100 mod 7;
10
11 writeln('a: ',a);
12 writeln('b: ',b);
13 writeln('c: ',c);
14 writeln('d: ',d);
15
readln;
16
end.
17
18
Praktek langsung dari penggunaan operator div dan mod ini seperti dalam menentukan
apakah sebuah bilangan ganjil atau genap. Jika hasi x mod 2 = 0, bisa dipastikan angka
tersebut adalah bilangan genap.
Dalam tutorial pascal kali ini kita telah membahas cara penggunaan operator aritmatika di
dalam pascal. Selain itu kita juga telah membahas pengertian dari operator div dan mod.
Tutorial Belajar Pascal Part 32: Jenis-jenis
Operator String dalam Pascal
02 Dec 15 | Andre | Tutorial Pascal | No Comments
Dalam tutorial sebelumnya, kita telah membahas tentang operator aritmatika di Pascal. Kali
ini saya akan lanjut dengan Jenis-jenis Operator String dalam Pascal.
1 program operator_string;
2 uses crt;
3 var
a,b,c,d,e:string;
4
begin
5
clrscr;
6
a:='Belajar';
7
b:='Pascal';
8
c:='di Duniailkom';
9
10 d:=a+b+c;
11 writeln(d);
12
14 writeln(e);
15
16 readln;
17 end.
18
Dalam contoh diatas, saya membuat 3 buah variabel string: a, b, dan c. Ketiganya digabung
menjadi 1 string panjang ke dalam variabel d dan e.
Khusus pada variabel e, saya menambahkan tanda spasi diantara ketiga string ini. Cara
seperti ini sangat umum dilakukan agar tampilan kalimat menjadi lebih rapi.
uses crt;
2
var
3
ipk:real;
4
sumber:string;
5
begin
6
clrscr;
7
ipk:=3.8;
8 sumber:='Duniailkom';
12 readln;
13 end.
14
Walaupun singkat (dan hanya satu-satunya), operator penyambungan string pascal yang kita
bahas disini sangat sering digunakan.
Tutorial Belajar Pascal Part 33: Jenis-jenis
Operator Perbandingan / Relasional
Pascal
04 Dec 15 | Andre | Tutorial Pascal | 20 Comments
Menyambung pembahasan tentang operator di bahasa pemrograman Pascal, kali ini saya akan
membahas tentang jenis-jenis operator perbandingan atau operator relasional dalam Pascal.
Operator perbandingan ini kadang disebut juga dengan operator relasional, karena kita
membandingkan apa hubungan (relasi) sebuah variabel dengan variabel lainnya.
7 clrscr;
8 a:=6;
9 b:=8;
10 writeln('a = ',a);
writeln('b = ',b);
11
writeln;
12
13
hasil:= a = b;
14
writeln('a = b :',hasil);
15
hasil:= a <> b;
16
writeln('a <> b :',hasil);
17 hasil:= a > b;
19 hasil:= a < b;
hasil:= a >= b;
21
writeln('a >= b :',hasil);
22
hasil:= a <= b;
23
writeln('a <= b :',hasil);
24
25
readln;
26
end.
27
28
Dalam contoh kode program pascal diatas, saya membuat 2 buah variabel: a dan b.
Variabel abernilai 6, dan variabel b bernilai 8. Selanjutnya saya membandingkan kedua nilai
ini. Dalam setiap perbandingan, hasilnya disimpan ke dalam variabel hasil.
Jika anda tidak bolos ketika mata pelajaran matematika di SD, tentunya bisa menebak apa
hasil dari setiap operasi perbandingan di atas :)
Operasi perbandingan tidak hanya untuk tipe data angka saja, tapi juga bisa berbagai tipe data
lain, seperti char. Berikut contohnya:
program operator_perbandingan;
1
uses crt;
2
var
3
a,b:char;
4
hasil:boolean;
5 begin
6 clrscr;
7 a:='X';
8 b:='Y';
writeln('a = ',a);
9
writeln('b = ',b);
10
writeln;
11
12
hasil:= a = b;
13
writeln('a = b :',hasil);
14
hasil:= a <> b;
15 writeln('a <> b :',hasil);
16 hasil:= a > b;
23
24 readln;
25 end.
26
27
28
Kali ini saya membandingkan karakter X dan Y. Untuk kasus seperti ini, operator
perbandingan pascal akan membandingkan urutan setiap karakter dalam tabel ASCII. Di
dalam tabel ASCII, karakter X lebih dulu muncul dari Y. Oleh karena itulah X dianggap
lebih kecil daripada Y.
Seperti yang saya jelaskan diawal, operator perbandingan ini baru ‘berguna’ di dalam
percabangan kode program, seperti struktur IF. Berikut contohnya:
program operator_perbandingan;
1
uses crt;
2
var
3 password,konf_pass:string;
4 hasil:boolean;
begin
5
clrscr;
6
password:='r4has1a';
7
konf_pass:='rahasia';
8
if password=konf_pass then
9
writeln('Access Granted')
10 else
11 writeln('Warning, Intruder!!!');
12 readln;
13 end.
14
15
Struktur logika IF THEN ELSE belum kita pelajari hingga saat ini. Tetapi anda mungkin
sudah bisa menebak apa maksud kode program diatas.
Saya membuat sebuah variabel password dengan nilai string ‘r4has1a’. Kemudian saya
membandingkan nilai ini dengan variabel konf_pass. Tampilan ‘Access Granted’ hanya
akan ditampilkan jika variabel konf_pass juga berisi string ‘r4has1a’. Selain itu, password
dianggap tidak cocok dan yang akan ditampilkan adalah: ‘Warning, Intruder!!!’.
Operator perbandingan yang kita bahas disini juga merupakan operator wajib yang perlu dipahami.
Dalam bahasa pemrograman lain seperi C, C++, Java, PHP atau JavaScript, operator ini juga selalu
hadir, tapi terdapat sedikit perbedaan.
and Akan menghasilkan TRUE jika kedua operand TRUE TRUE and FALSE, hasilnya: FALS
or Akan menghasilkan TRUE jika salah satu operand TRUE TRUE or FALSE, hasilnya: TRUE
xor Akan menghasilkan TRUE jika kedua operand berbeda TRUE xor FALSE, hasilnya: TRUE
not Akan menghasilkan TRUE jika operand FALSE not TRUE , hasilnya: FALSE
1 program operator_logika;
2 uses crt;
3 var
a,b,hasil:boolean;
4 begin
5 clrscr;
6
7 a:=true;
8 b:=false;
9
10 writeln('a = ',a);
11 writeln('b = ',b);
writeln;
12
13 hasil:= a and b;
14 writeln('a and b :',hasil);
15
16 hasil:= a or b;
17 writeln('a or b :',hasil);
18
hasil:= a xor b;
19 writeln('a xor b :',hasil);
20
21 hasil:= not a;
22 writeln('not a :',hasil);
23
24 hasil:= not b;
25 writeln('not b :',hasil);
26
readln;
27 end.
28
29
30
31
Seperti yang terlihat, hasil dari contoh kode program sesuai dengan penjelasan dari tabel.
Lanjut ke contoh yang lebih ‘membumi’, saya akan menggabungkan operator perbandingan
dengan operator logika:
1 program operator_logika;
uses crt;
2 var
3 hasil:boolean;
4 begin
5 clrscr;
6
7 hasil:= false and false or true;
writeln('false and false or true :',hasil);
8
9 hasil:= true and false or true and false;
10 writeln('true and false or true and false :',hasil);
11
12 hasil:= (5 > 4) and (10 > 9);
13 writeln('(5 > 4) and (10 > 9) :',hasil);
14
hasil:= (15 <= 15) and (15 < 15);
15 writeln('(15 <= 15) and (15 < 15) :',hasil);
16
17 hasil:= ('a' = 'a') or ('a' = 'b') ;
18 writeln('(a = a) or (a = b) :',hasil);
19
20 hasil:= (10 > 7) and ('duniailkom'='duniailkom');
writeln('(10 > 7) and (duniailkom = duniailkom): ',hasil);
21
22 readln;
23 end.
24
25
26
27
Contoh kali ini lebih panjang, mari kita bahas:
Pada baris 8 saya mencari logika dari 3 kondisi: false and false or true. Untuk operasi
seperti ini, pascal akan mulai dari kanan ke kiri, sehingga yang akan dijalankan
adalah: (false and false) or true. Ini menjadi: false or true. Hasilnya akhirnya
adalah true.
Pada baris 11 saya mencari logika dari 4 kondisi: true and false or true and false.
Yang dijalankan adalah sebagai berikut: ((true and false) or true) and false. Silahkan
anda ikuti satu persatu tanda kurung tersebut dan hasil akhirnya adalah false.
Pada baris ke 14, operasinya adalah (5 > 4) and (10 > 9), yang akan diproses
menjadi (true) and (true), hasil akhirnya adalah true.
Pada baris ke 17, operasinya adalah (15 <= 15) and (15 < 15), yang akan diproses
menjadi (true) and (false), hasil akhirnya adalah false.
Pada baris ke 20, operasinya adalah (‘a’ = ‘a’) or (‘a’ = ‘b’) , yang akan diproses
menjadi (true) or (false), hasil akhirnya adalah true.
Pada baris ke 23, operasinya adalah (10 > 7) and (‘duniailkom’=’duniailkom’), yang
akan diproses menjadi (true) and (true), hasil akhirnya adalah true.
Operator logika seperti ini sangat sering kita gunakan sepanjang pembuatan kode program.
Pembuatan percabangan kode program seperti perintah IF THEN dan IF THEN ELSE akan
banyak menggunakan operator logika ini. Nantinya akan kita pelajari dalam tutorial terpisah.
Tutorial Belajar Pascal Part 35: Urutan
Prioritas Operator dalam Bahasa Pascal
19 Sep 16 | Andre | Tutorial Pascal | 3 Comments
Dari sekian banyak operator di dalam bahasa pemrograman Pascal, Pascal memiliki aturan
operator mana yang akan didahulukan, atau dikenal juga dengan urutan prioritas operator.
Dalam tutorial ini akan kita bahas dengan lebih detail.
1
program prioritas_operator;
2
uses crt;
3
var
4
hasil1:integer;
5 hasil2:boolean;
6 begin
7 clrscr;
9 hasil1:= 12 + 6 * 3 - 4;
writeln('hasil1 :',hasil1);
10
11
hasil2:= 12 + 6 > 6 * 4;
12
writeln('hasil2 :',hasil2);
13
14
readln;
15
end.
16
|, !, +, -, or,
Sebagai bahan latihan, bisakah anda menebak hasil dari kode program berikut?
1 program prioritas_operator;
2 uses crt;
3 var
4 hasil:boolean;
5 begin
clrscr;
6
7
9 writeln('hasil :',hasil);
10
readln;
11
end.
12
Error diatas terjadi karena Pascal akan mencoba menjalankan operasi berikut:
Perhatikan bahwa di dalam Pascal operasi lintas tipe data seperti “1 and true” tidak bisa
diproses (error). Ini karena tingkat prioritas operator perkalian dan operator logika and lebih
tinggi daripada yang lain.
Jadi, bagaimana solusinya?
Kita bisa menggunakan tanda kurung “(” dan “)” untuk meningkatkan urutan prioritas
sebuah operasi, jika dari contoh sebelumnya saya ingin menjalankan seluruh operator
aritmatika terlebih dahulu, saya bisa menulisnya seperti berikut ini:
hasil:= (12 + 6 > 6 * 3 - 1) and true;
Ini akan diproses menjadi: (18 > 17) and true, kemudian: true and true, yang hasilnya
adalah true. Berikut contoh penulisan kode program lengkapnya:
1 program prioritas_operator;
2 uses crt;
3 var
4 hasil:boolean;
begin
5
clrscr;
6
7
hasil:= ((12 + 6) > ((6 * 3) - 1)) and true;
8
writeln('hasil :',hasil);
9
10
readln;
11
end.
12
Walaupun bersifat opsional, menambahkan tanda kurung untuk operasi seperti diatas sangat
disarankan, terutama untuk menghindari “salah prediksi” dari urutan operator.
Tutorial kali ini menutup tutorial mengenai operator di dalam pascal. Untuk operator bitwise,
set/himpunan, dan pointer tidak akan saya jelaskan karena penggunaannya sangat jarang.
Tutorial Belajar Pascal Part 36:
Percabangan Kondisi IF THEN dalam
Pascal
21 Sep 16 | Andre | Tutorial Pascal | No Comments
Dalam pembuatan program, ada saatnya kita butuh suatu perintah percabangan, yakni jika
sebuah kondisi terpenuhi, jalankan kode program ini. Jika tidak, jalankan kode program yang
lain.
Di dalam Pascal terdapat beberapa struktur kondisi seperti ini. Kita akan mulai dari yang
paling sederhana, yakni percabangan kondisi IF THEN.
1 IF (kondisi) THEN
2 begin
3 (kode program)
4 end;
Kondisi berperan sebagai penentu dari stuktur percabangan ini. Jika kondisi terpenuhi
(menghasilkan nilai TRUE), kode program akan dijalankan. Jika kondisi tidak terpenuhi
(menghasilkan nilai FALSE), tidak terjadi apa-apa. Kondisi biasanya terdiri dari operasi
perbandingan, misalnya apakah variabel a berisi angka 10, atau variabel password berisi
string ‘rahasia’.
Bagian yang ditandai dengan begin dan end; merupakan “blok” kode program yang akan
dijalankan seandainya kondisi bernilai TRUE. Setelah itu, Pascal akan lanjut mengeksekusi
kode program dibawahnya.
Mari langsung praktek dengan menggunakan contoh kode program.
6 clrscr;
7 angka := 10;
9 begin
Pada awal kode program saya membuat sebuah variabel “angka” dengan nilai 10 (integer).
Kemudian saya memeriksa sebuah kondisi menggunakan perintah if then.
if (angka > 5) artinya saya ingin memeriksa apakah nilai dari variabel “angka” lebih besar
dari 5. Jika iya, kondisi tersebut akan menghasilkan nilai TRUE. Akibatnya, kode
program writeln(‘Variabel “angka” lebih besar dari 5’) akan dijalankan.
Setelah blok kondisi if selesai diproses, Pascal lanjut menjalankan kode program setelah
blok if then, yakni baris writeln(‘Belajar Pascal di Duniailkom’) hingga akhir kode
program yang di tandai dengan end.
Saya bisa menambahkan kode program lain di dalam blok if then, seperti contoh berikut:
1 program struktur_if_then;
2 uses crt;
3 var
4 angka:integer;
5 begin
clrscr;
6
angka:=10;
7
if (angka > 5) then
8
begin
9
writeln('====================================');
10
writeln('Variabel "angka" lebih besar dari 5');
11 writeln('====================================');
12 end;
14 readln;
end.
15
16
Jika anda browsing atau melihat tutorial lain, kebanyakan bagian blok begin dan end; ini
tidak ditulis. Jika seperti ini, perintah yang dijalankan (saat kondisi TRUE) hanya boleh 1
baris saja, seperti contoh berikut:
program struktur_if_then;
1
uses crt;
2
var
3
angka:integer;
4
begin
5
clrscr;
6
angka:=5;
7 if (angka > 5) then
8 writeln('Variabel "angka" lebih besar dari 5');
readln;
10
end.
11
12
Namun sangat sangat disarankan untuk selalu membuat blok begin dan end; pada setiap
kondisi if, karena seperti yang terlihat dari kode program diatas, susah untuk memastikan
apakah baris writeln(‘Belajar Pascal di Duniailkom’) termasuk ke dalam blok if atau tidak,
yang kenyataannya memang tidak termasuk.
Hati-hati untuk menulis penutup blok if then, yakni “end;” (dengan tanda titik koma), bukan “end.”
(dengan tanda titik).
Sebagai contoh yang lebih interaktif, silahkan jalankan kode program berikut:
1
program struktur_if_then;
2
uses crt;
3
var
4
angka:integer;
5 begin
6 clrscr;
8 readln(angka);
begin
10
writeln('Angka yang anda masukkan merupakan bilangan genap');
11
end;
12
readln;
13
end.
14
Kali ini saya membuat program yang meminta input dari pengguna (menggunakan
perintah readln), lalu disimpan kedalam variabel angka.
Variabel angka selanjutnya saya periksa menggunakan kondisi if (angka mod 2 = 0). Anda
masih ingat dengan operator mod? Operator mod akan menghasilkan sisa hasil bagi dari
suatu bilangan.
Dengan menulis if (angka mod 2 = 0) artinya saya memeriksa apakah variabel angka jika
dibagi 2 sisanya 0? Sebagai contoh, 4 mod 2 = 0 (sesuai dengan kondisi). 7 mod 2 = 1 (tidak
sesuai dengan kondisi).
Kondisi if (angka mod 2 = 0) ini sebenarnya digunakan untuk memeriksa apakah sebuah
angka termasuk genap atau tidak. Jika habis dibagi 2 (sisanya 0), artinya angka tersebut
merupakan bilangan genap.
Bagaimana dengan angka ganjil? Misalkan jika diinput sebuah angka, akan lebih baik
hasilnya “Angka yang anda masukkan merupakan bilangan genap” atau “Angka yang anda
masukkan merupakan bilangan ganjil”.
Tutorial Belajar Pascal Part 37:
Percabangan Kondisi IF THEN ELSE
dalam Pascal
23 Sep 16 | Andre | Tutorial Pascal | 10 Comments
Tutorial belajar pascal kali ini merupakan lanjutan dari tutorial sebelumnya. Disini kita akan
membahas tentang kode program untuk membuat percabangan, yakni kondisi IF THEN
ELSE dalam Pascal.
begin
(kode program 1)
end
ELSE
begin
(kode program 2)
end;
Jika kondisi terpenuhi, pascal akan menjalankan (kode program 1), jika tidak yang akan
dijalankan adalah (kode program 2). Mari masuk ke contoh kode program
9 begin
end
11
else
12
begin
13
writeln('Variabel "angka" lebih kecil dari 5');
14
end;
15
readln;
16 end.
17
Saya menggunakan contoh yang mirip seperti yang digunakan pada tutorial tentang IF
THEN.
Pada awal kode program saya membuat variabel angka dan diisi dengan nilai 4 (integer).
Kemudian saya memeriksa sebuah kondisi if (angka > 5), jika hasilnya TRUE yang artinya
isi variabel angka besar dari 5, jalankan writeln(‘Variabel “angka” lebih besar dari 5’).
Tapi jika kondisi if (angka > 5) menghasilkan nilai FALSE, yang akan dijalankan
adalah writeln(‘Variabel “angka” lebih kecil dari 5’).
Satu hal yang harus diperhatikan, penutup block sebelum perintah ELSE tidak boleh ada
titik koma “ ; ” . Yang kita tulis harus end else, bukan end; else.
Jika anda menulis seperti ini, kode program akan error:
2 begin
4 end;
else
5
Kesalahan seperti ini, Fatal: syntax error, “;” expected but “ELSE” found sangat sering
terjadi dalam pembuatan kondisi IF THEN ELSE.
Mari masuk ke contoh yang kedua:
1 program struktur_if_then_else;
uses crt;
2
var
3
angka:integer;
4
begin
5
clrscr;
6
write('Masukkan sebuah angka: ');
7 readln(angka);
8 if (angka mod 2 = 0) then
9 begin
16 end.
17
18
Kembali, ini adalah modifikasi dari kode program yang saya gunakan pada tutorial IF
THEN. Sekarang saya bisa menambahkan 1 blok ELSE ke dalam program “tebak angka”.
Jika isi dari variabel angka habis dibagi 2, yakni hasil dari kondisi if (angka mod 2 = 0),
jalankan perintah writeln(‘Angka yang anda masukkan merupakan bilangan genap’).
Selain itu, pasti angka ganjil, sehingga yang akan dijalankan adalah writeln(‘Angka yang
anda masukkan merupakan bilangan ganjil’).
Dengan strukur IF THEN ELSE, kita bisa membuat percabangan kode program tergantung
apakah sebuah kondisi bisa dipenuhi atau tidak.
Untuk program yang lebih rumit, kita bisa mengkombinasikan berbagai struktur IF THEN
ELSE. Sebagai contoh, bagaimana jika saya ingin memeriksa apakah sebuah angka
merupakan angka genap dan kurang dari 5?
Tutorial Belajar Pascal Part 38:
Percabangan Kondisi IF Bersarang dalam
Pascal
26 Sep 16 | Andre | Tutorial Pascal | 15 Comments
Dalam tutorial belajar pascal kali ini kita akan membahas penerapan lanjutan dari struktur IF
THEN ELSE, yakni membuat percabangan IF bersarang, atau dikenal juga sebagai nested
IF.
1 IF (kondisi 1) THEN
2 begin
3 (kode program 1)
IF (kondisi 1.1) THEN
4 begin
5 (kode program 1.1)
6 IF (kondisi 1.1.1) THEN
7 begin
8 (kode program 1.1.1)
end;
9 end;
10 end
11 ELSE
12 begin
13 (kode program 2)
14 IF (kondisi 2.1) THEN
begin
15 (kode program 2.1)
16 end;
17 end;
18
19
20
Kali ini saya membuat struktur IF di dalam IF di dalam IF (2 level nested IF). Untuk kode
program yang panjang seperti ini, anda harus hati-hati menentukan kode program mana yang
masuk ke dalam blok IF.
Penulisan indenting (menjorokkan kode program beberapa spasi di awal) juga akan
membantu kita membedakan kode program ini masuk IF yang ini, dan kode program itu
masuk ke IF yang itu.
Kemampuan logika juga sangat berperan dalam membuat kondisi yang kompleks seperti ini.
1 program struktur_if_then_else_nested;
uses crt;
2 var
3 angka:integer;
4 begin
5 clrscr;
write('Masukkan sebuah angka: ');
6
readln(angka);
7 if (angka mod 2 = 0) then
8 begin
9 write('Angka yang anda masukkan merupakan bilangan genap ');
10 if (angka > 10) then
begin
11 writeln('dan besar dari 10');
12 end
13 else
14 begin
15 writeln('dan kecil dari 10');
end;
16 end
17 else
18 begin
19 write('Angka yang anda masukkan merupakan bilangan ganjil ');
if (angka > 10) then
20 begin
21 writeln('dan besar dari 10');
22 end
23 else
begin
24 writeln('dan kecil dari 10');
25 end;
26 end;
27 readln;
28 end.
29
30
31
32
33
34
Silahkan pelajari sebentar kode program diatas. Jika anda sudah mengikuti seluruh tutorial
pascal di duniailkom, saya yakin bisa membaca maksud kode program ini (walaupun agak
panjang).
Kemampuan logika juga akan berperan. Sebagai contoh, saya tidak perlu memeriksa apakah
angka tersebut kecil dari 10, atau apakah angka itu tidak habis dibagi 2. Kondisi ini cukup
dibuat menggunakan ELSE. Jika sebuah angka tidak lebih besar dari 10, pastinya angka itu
kecil dari 10 (tidak perlu diperiksa). Jika angka tidak habis dibagi 2, berarti angka tersebut
ganjil.
Saya juga menggunakan perintah write dan writeln secara bergantian, agar hasil akhir teks
menjadi 1 baris.
Silahkan anda input berbagai angka, dan test apakah kode program tersebut sudah benar atau
ada yang kurang.
Alternatif Penggunaan Nested IF
Dalam beberapa situasi, kita bisa mengubah nested IF menjadi IF “biasa” dengan bantuan
operator logika AND.
Kode program yang saya buat sebelumnya digunakan untuk membuat hasil untuk 4
kemungkinan:
1
2
3 program struktur_if_then_else_nested;
4 uses crt;
5 var
6 angka:integer;
7 begin
clrscr;
8 write('Masukkan sebuah angka: ');
9 readln(angka);
10 if (angka mod 2 = 0) and (angka > 10) then
11 begin
12 writeln('Angka yang anda masukkan merupakan bilangan genap dan besar dari 10
end
13 else
14 if (angka mod 2 = 0) and (angka < 10) then
15 begin
16 writeln('Angka yang anda masukkan merupakan bilangan genap dan kecil dari 10
end
17 else
18 if (angka mod 2 <> 0) and (angka > 10) then
19 begin
20 writeln('Angka yang anda masukkan merupakan bilangan ganjil dan besar dari 1
21 end
else
22 if (angka mod 2 <> 0) and (angka < 10) then
23 begin
24 writeln('Angka yang anda masukkan merupakan bilangan ganjil dan kecil dari 1
25 end;
readln;
26 end.
27
28
29
Yup, kali ini tanpa nested IF dan hasil yang didapat sama persis dengan kode program kita
sebelumnya. Bagi kebanyakan orang, kode ini juga lebih mudah dibaca, karena kita langsung
bisa melihat kondisi apa saja yang akan diperiksa.
Namun dari sudut pandang performa, nested IF lebih efisien daripada ini. Dalam situasi
terburuk, variabel angka hanya diperiksa sebanyak 2 kali jika menggunakan nested IF.
Misalkan saya menginput angka:= 7, pertama kali akan diperiksa kondisi: if (angka mod 2 =
0)? Tidak, program langsung menjalankan bagian ELSE, dan masuk ke kondisi kedua: if
(angka > 10)? Tidak, jalankan ELSE.
Sedangkan yang tanpa nested IF, variabel angka akan diperiksa lebih dari 4 kali. Pertama if
(angka mod 2 = 0)? Tidak. Program lanjut ke bagian ELSE IF kedua: if (angka mod 2 =
0)? Juga tidak, lanjut ke ELSE IF ketiga: if (angka mod 2 <> 0)? Betul. Kali ini program
akan masuk ke kondisi (angka > 10)? Tidak. Sehingga akan dijalankan ELSE terakhir: if
(angka mod 2 <> 0) and (angka < 10)?Benar.
Untuk kode program yang sederhana seperti diatas, efeknya tidak akan terasa (karena
dieksekusi dengan sangat cepat). Beberapa programmer juga tidak keberatan mengorbankan
sedikit performa agar kode program mudah dibaca daripada menggunakan nested IF.
Kesalahan seperti ini disebut sebagai syntax error. Meskipun sering terjadi, error seperti ini
gampang ditemukan. Compiler Pascal (aplikasi yang menerjemahkan kode program yang
kita ketik), akan langsung menampilkan pesan error ini sebagai syntax error.
Jenis error yang kedua adalah kesalahan logika (logic error). Berbeda dengan syntax
error, logic error sangat susah ditemukan. Error jenis ini tidak akan “diprotes” oleh compiler
pascal, karena penulisan kode programnya memang sudah benar. Kesalahan ini disebabkan
dari programmernya sendiri yang kurang hati-hati.
Sebagai contoh, 2 kode program yang saya tulis diatas mengandung kesalahan logika yang
cukup fatal. Dapatkah anda menemukannya? Kode programnya sendiri memang tidak
mengandung syntax error, soalnya kalau ada, program tentu tidak akan bisa jalan.
Masih belum ketemu? Bagaimana jika saya gunakan angka 10 sebagai input program?
Yup, kode program yang saya tulis hanya bisa membedakan angka yang kurang dari 10, dan
angka yang lebih dari 10. Tetapi tidak untuk angka 10 itu sendiri.
Untuk contoh yang nested IF, hasilnya adalah: Angka yang anda masukkan merupakan
bilangan genap dan kecil dari 10. Sedangkan untuk contoh kode program yang menggunakan
operator AND. Tidak akan tampil hasil apa-apa.
Ini terjadi karena kode program tersebut “tidak sadar” bahwa ada 1 lagi logika kondisi,
yakni jika angka tersebut adalah 10. Artinya, seharusnya ada 5 kemungkinan:
1. Angka genap dan besar dari 10
2. Angka genap dan kecil dari 10
3. Angka ganjil dan besar dari 10
4. Angka ganjil dan kecil dari 10
5. Angka genap dan sama dengan 10
Sebagai solusi dari masalah ini, anda bisa menambahkan 1 lagi kondisi if untuk memeriksa if
(angka = 10). Kode programnya tentu semakin kompleks, tapi bagus sebagai sarana latihan.
Silahkan anda modifikasi kode diatas, dan test apakah anda bisa memodifikasi kode
programnya untuk memproses angka 10.
Dalam tutorial ini kita telah membahas tentang struktur IF bersarang atau dikenal juga
sebagai nested IF. Selain itu kita telah melihat salah satu contoh kesalahan logika yang bisa
saja terjadi pada aplikasi yang sedang anda rancang.
Selain menggunakan struktur IF THEN ELSE, di dalam Pascal juga tersedia percabangan
kode program menggunakan kondisi CASE.
Tutorial Belajar Pascal Part 39: Struktur
Percabangan CASE dalam Pascal
10 Oct 16 | Andre | Tutorial Pascal | 2 Comments
Melanjutkan tutorial belajar pascal di Duniailkom, kali ini kita akan membahas
tentang struktur percabangan CASE dalam bahasa pemrograman Pascal.
(kode program 1)
(kode program 2)
(kode program 3)
CASE (expression) OF
end;
Expression adalah ‘sesuatu’ yang akan di periksa nilainya. Jika nilai dari expression ini
sama dengan kondisi 1, maka yang dijalankan adalah (kode program 1), jika sesuai dengan
kondisi 2, maka yang akan dijalankan adalah (kode program 2), dst.
Penjelasan ini akan lebih mudah jika menggunakan contoh kode program.
1 program struktur_if_then_else;
2 uses crt;
3 var
4 bulan: integer;
begin
5
clrscr;
6
write('Silahkan input angka untuk bulan (1-12): ');
7
readln(bulan);
8
9
if (bulan = 1) then
10
writeln('Januari')
11 else if (bulan = 2) then
12 writeln('Februari')
14 writeln('Maret')
writeln('April')
16
else if (bulan = 5) then
17
writeln('Mei')
18
else if (bulan = 6) then
19
writeln('Juni')
20
else if (bulan = 7) then
21 writeln('Juli')
23 writeln('Agustus')
writeln('September')
25
26 else if (bulan = 10) then
27 writeln('Oktober')
32
readln;
33
end.
34
35
36
Kode program diatas lumayan panjang. Namun jika anda sudah memahami struktur logika IF
THEN ELSE, sebenarnya cukup sederhana.
Di awal kode program, saya mendefenisikan sebuah variabel bulan dengan tipe data integer.
Artinya variabel bulan hanya bisa diisi dengan angka bulat, seperti 1, 2, 7, dst. Kemudian
saya meminta user mengisi variabel ini, yakni dengan perintah:
write('Silahkan input angka untuk bulan (1-12): ');
readln(bulan);
Sekarang, apapun angka yang diinput oleh user akan disimpan ke dalam variabel bulan.
Saya bisa mengecek nilai variabel angka menggunakan struktur IF THEN ELSE, dimana if
(bulan = 1) maka jalankan writeln(‘Januari’). Jika variabel bulan bukan berisi angka 1,
lanjut ke kondisi berikutnya, yakni else if (bulan = 2) then writeln(‘Februari’), demikian
seterusnya hingga Desember.
Disini saya tidak menggunakan blok program begin dan end; untuk setiap kondisi if, semata-
mata agar kode programnya menjadi lebih singkat. Penulisan yang disarankan adalah seperti
ini:
1 if (bulan = 1) then
2 begin
3 writeln('Januari')
4 end
Jika ditulis tanpa blok ini, kita tidak boleh menempatkan tanda titik koma pada baris sebelum
perintah ELSE. Sebagai contoh, kode program berikut akan menghasilkan error:
if (bulan = 1) then
else if (bulan = 2)
Karena tanda titik koma pada writeln(‘Januari’); tidak boleh ditulis, jadi harus ditulis seperti
ini:
if (bulan = 1) then
else if (bulan = 2)
1
program struktur_case;
2
uses crt;
3
var
4
bulan: integer;
5 begin
6 clrscr;
8 readln(bulan);
10 case (bulan) of
1 : writeln('Januari');
11
2 : writeln('Februari');
12
3 : writeln('Maret');
13
4 : writeln('April');
14
5 : writeln('Mei');
15
6 : writeln('Juni');
16 7 : writeln('Juli');
17 8 : writeln('Agustus');
18 9 : writeln('September');
19 10 : writeln('Oktober');
11 : writeln('November');
20
12 : writeln('Desember');
21
end;
22
23
readln;
24
end.
25
26
Pada 8 baris pertama kode program, sama persis dengan sebelumnya. Dimana saya membuat
variabel bulan, kemudian meminta inputan dari pengguna.
Dibaris ke 10, terdapat perintah case (bulan) of, inilah awal dari blok CASE. Perhatikan di
baris ke 23 terdapat perintah end; yang menandakan akhir dari blok CASE.
Perintah case (bulan) of artinya saya ingin memeriksa apakah nilai dari dari
variabel bulan sesuai dengan beberapa kondisi. Kondisi ini ditulis sepanjang blok CASE,
dengan format:
1 kondisi1 : kode program 1;
4 dst...
Karena saya ingin memeriksa nilai bulan dari 1 – 12, maka penulisannya sebagai berikut:
1
1 : writeln('Januari');
2
2 : writeln('Februari');
3
3 : writeln('Maret');
4 4 : writeln('April');
5 5 : writeln('Mei');
6 6 : writeln('Juni');
7 7 : writeln('Juli');
8 8 : writeln('Agustus');
9 : writeln('September');
9
10 : writeln('Oktober');
10
11 : writeln('November');
11
12 : writeln('Desember');
12
Jika nilai variabel bulan berisi angka 9, maka jalankan perintah writeln(‘September’), jika
nilai variabel bulan adalah 12, maka jalankan perintah writeln(‘Desember’).
Ketika dijalankan, kode program CASE ini sama persis seperti contoh IF THEN ELSE
sebelumnya.
Dalam tutorial kali ini kita telah mempelajari pengertian serta contoh penggunaan struktur
CASE di dalam bahasa pemrograman PASCAL. Namun struktur CASE ini sendiri masih
memiliki beberapa fitur tambahan, seperti CASE ELSE, atau memeriksa beberapa kondisi
sekaligus.
Tutorial Belajar Pascal Part 40: Struktur
Percabangan CASE ELSE dalam Pascal
15 Oct 16 | Andre | Tutorial Pascal | 11 Comments
Dalam tutorial sebelumnya, kita telah membahas cara penulisan struktur percabangan CASE
dalam bahasa Pascal. Selain itu, masih terdapat fitur tambahan di dalam CASE, seperti CASE
ELSE, menjalankan 1 perintah untuk banyak CASE, maupun menjalankan beberapa perintah
dalam 1 kondisi CASE .
Inilah yang akan kita bahas dalam tutorial PASCAL di Duniailkom kali ini, yakni materi
lanjutan tentang pembuatan struktur CASE dalam bahasa Pascal.
2 uses crt;
3 var
4 grade: string;
begin
5
clrscr;
6
write('Silahkan input grade anda (A-E): ');
7
readln(grade);
8
9
case (grade) of
10
'A' : writeln('Sangat Memuaskan');
11 'B' : writeln('Memuaskan');
15 end;
16
17 readln;
18 end.
19
Kali ini saya membuat kode program yang meminta inputan berupa huruf A – E, yang
disimpan ke dalam variabel grade. Jika diiput ‘A’, maka akan tampil teks ‘Sangat
Memuaskan’, jika diinput ‘B’, akan tampil teks ‘Memuaskan’, demikian hingga grade E.
Contoh kali ini kurang lebih sama seperti contoh dalam tutorial sebelumnya. Tapi, bagaimana
jika seseorang menginput huruf F? atau X? atau Z? Huruf-huruf ini tidak ada di dalam
kondisi yang kita periksa.
Untuk situasi seperti ini kita bisa menggunakan stuktur CASE ELSE. Langsung saja ke
dalam contoh kode programnya:
1 program struktur_case;
uses crt;
2
var
3
grade: string;
4
begin
5
clrscr;
6
write('Silahkan input grade anda (A-E): ');
7
readln(grade);
8
9 case (grade) of
19 readln;
20 end.
21
22
Perhatikan tambahan bagian ELSE. Artinya, jika kelima kondisi tidak cocok (yang diinput
selain dari huruf A – E), maka tampilkan perintah:
1 writeln('Maaf, format yang anda masukkan salah');
Dengan demikian, jika ada yang iseng menginput huruf lain, akan tampil penjelasan seperti
diatas. Jika tidak ditambahkan, kode program kita hanya menampilkan layar kosong (blank).
Menjalankan Kode Program Untuk Lebih dari 1
Kondisi CASE
Fitur lain yang tersedia didalam kondisi CASE adalah menjalankan kode program yang
sama untuk lebih dari 1 kondisi. Jika anda perhatikan, contoh program grade sebelumnya
menampilkan teks ‘Kurang Baik’ untuk kondisi C dan D. Ini bisa kita satukan menjadi
seperti berikut ini:
1
2 program struktur_case;
uses crt;
3
var
4
grade: string;
5
begin
6
clrscr;
7
write('Silahkan input grade anda (A-E): ');
8 readln(grade);
10 case (grade) of
12 'B' : writeln('Memuaskan');
19 readln;
20 end.
21
Dibaris ke 13, saya menulis ‘C’,’D’ : writeln(‘Kurang Baik’). Ini artinya jika
variabel grade berisi huruf C atau D, tampilkan teks yang sama: ‘Kurang Baik’. Fitur
seperti ini bisa digunakan untuk mempersingat penulisan kode program.
Menjalankan Banyak Kode Program untuk 1 Kondisi
CASE
Kali ini kita akan membahas kebalikan dari contoh diatas, yakni bagaimana cara menjalankan
banyak kode program untuk 1 kondisi CASE. Caranya mirip seperti tutorial IF THEN ELSE,
yakni dengan blok begin dan end; untuk setiap kode program kondisi.
Berikut contoh penggunaannya:
1 program struktur_case;
2 uses crt;
var
3
grade: string;
4
begin
5
clrscr;
6
write('Silahkan input grade anda (A-E): ');
7
readln(grade);
8
9 case (grade) of
10 'A' :
11 begin
12 writeln('Sangat Memuaskan');
13 writeln('Pertahankan!');
end;
14
'B' :
15
begin
16
writeln('Memuaskan');
17
writeln('Tingkatkan lagi!');
18
end;
19 'C','D' :
20 begin
21 writeln('Kurang Baik');
22 writeln('Agar Lebih banyak belajar!');
23 end;
'E' :
24
begin
25
writeln('Maaf, anda tidak lolos');
26
writeln('Selama ini ngapain saja bro...?');
27
end
28
else
29 writeln('Maaf, format yang anda masukkan salah');
31 end;
32
33 readln;
end.
34
35
36
37
Kode program diatas merupakan modifikasi dari kode kita sebelumnya. Disini dalam setiap
kondisi saya menjalankan 2 baris perintah writeln. Tentu saja tidak dibatasi dengan 2 baris
saja, bisa 3, 4 atau lebih. Dengan syarat, harus berada diantara blok begin dan end;.
Batasan dari struktur CASE
Struktur CASE menawarkan penulisan yang lebih singkat dan efisien dibandingkan struktur
IF THEN, namun kondisi yang bisa dipakai hanya sederhana seperti yang saya contohkan,
misalkan apakah sebuah variabel bernilai angka atau string tertentu.
Untuk kondisi yang lebih rumit seperti perbandingan lebih besar ” > ” atau lebih kecil ” <“,
atau perbandingan yang melibatkan lebih dari 1 kondisi, kita tidak bisa menggunakan CASE.
Kode program untuk menentukan apakah sebuah angka genap atau ganjil, tidak bisa
dikonversi ke dalam CASE.
Dalam pemrograman yang “sebenarnya”, kita juga lebih sering menggunakan IF daripada
CASE. Tapi untuk situasi yang melibatkan banyak perulangan sederhana, struktur CASE
lebih rapi dan singkat daripada IF.
Tutorial tentang CASE ELSE kali ini menutup tutorial tentang struktur logika di dalam
bahasa pemrograman Pascal.
Tutorial Belajar Pascal Part 41:
Perulangan FOR DO dalam Pascal
21 Oct 16 | Andre | Tutorial Pascal | 4 Comments
Selain struktur percabangan program seperti IF THEN, IF THEN ELSE dan CASE, struktur
program lain yang wajib kita ketahui adalah looping, atau perulangan, atau disebut juga
dengan iterasi.
Di dalam Pascal setidaknya terdapat 3 jenis perulangan, yakni FOR DO, WHILE DO,
dan REPEAT UNTIL. Kita mulai dengan membahas Perulangan FOR DO dalam bahasa
pemrograman Pascal.
begin
end;
variabel_counter adalah variabel yang berfungsi sebagai counter, atau penghitung di dalam
perulangan. Variabel ini otomatis menaik dari nilai_awal hingga nilai_akhir. Dalam setiap
kenaikan, blok kode program yang berada di dalam begin dan end; akan
dijalankan. variabel_counter ini bisa digunakan sepanjang perulangan (jika diperlukan).
Mari langsung masuk ke contoh kode program.
3 var
i: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 1000 do
8
begin
9
writeln('Hello World');
10
end;
11
12 readln;
13 end.
14
Di bagian var, saya membuat sebuah variabel i dengan tipe data integer. Variabel ini saya
siapkan sebagai variabel counter.
Di dalam bahasa pemrograman komputer, variabel i, j, dan k sering digunakan sebagai variabel
counter. Anda akan sering melihat huruf-huruf ini dalam setiap perulangan, tidak hanya dalam bahasa
Pascal saja.
Untuk membuat perulangan sebanyak 1000 kali, saya menggunakan perintah for i := 1 to
1000 do. Ini bisa dibaca dengan “Untuk variabel i, jalankan perulangan mulai dari 1 hingga
1000”.
Apa yang akan diulang? Adalah blok program yang diawali perintah begin, dan diakhiri
perintah end;. Di dalam blok ini saya membuat sebuah perintah: writeln(‘Hello World’).
Dengan demikian, pascal akan menjalankan 1000 kali baris writeln(‘Hello World’). Mari
kita coba:
Karena keterbatasan ukuran layar, kita tidak akan bisa menghitung jumlah “Hello
World” ini. Tapi kita bisa memanfaatkan variabel counter i. Saya akan ubah kode
programnya menjadi seperti berikut:
1
program for_do_loop;
2
uses crt;
3
var
4 i: integer;
5 begin
6 clrscr;
8 for i := 1 to 1000 do
9 begin
12
readln;
13
end.
14
Disini, saya menambahkan variabel counter i ke dalam blok perulangan. Kode writeln(‘Hello
World ke – ‘,i), artinya saya ingin menampilkan Hello World – 1, Hello World – 2, Hello
World – 3, hingga Hello World – 1000.
Jika komputer anda cukup lambat (eh), ketika program dijalankan akan terlihat teks Hello
Worldmenaik secara perlahan dari 1 hingga 1000.
Mari masuk ke contoh selanjutnya. Kali ini saya ingin membuat kode program yang
merupakan daftar perkalian 7, yakni 7 x 1 = 7, 7 x 2 = 14, 7 x 3 = 21, dst hingga 7 x 10 = 70.
Disini kita harus menggunakan variabel counter i agar setiap perkalian naik dari 1 hingga 10.
Berikut kode program yang saya gunakan:
1
program for_do_loop;
2
uses crt;
3
var
4 i: integer;
5 begin
6 clrscr;
8 for i := 1 to 10 do
9 begin
12
readln;
13
end.
14
Ini sebenarnya modifikasi dari kode program perulangan Hello World. Saya merangkai
tampilan daftar perkalian menggunakan perintah writeln(‘7 x ‘,i,’ = ‘,7 * i). Jika anda
mengikuti tutorial belajar pascal duniailkom dari awal, ini adalah penyambungan teks dengan
variabel. Tanda koma digunakan untuk memisahkan mana bagian teks, dan mana variabel
Pascal.
Sebagai contoh terakhir, mari kita coba modifikasi kode program diatas agar lebih interaktif.
Kali ini saya ingin membuat daftar perkalian tapi angka perkaliannya diinput oleh pengguna.
Misalnya diinput angka 9, tampilkan daftar perkalian 9 x 1, 9 x 2, hingga 9 x 10. Jika
diinput 14, tampilkan perkalian 14 x 1, 14 x 2, hingga 14 x 10.
Sebagai latihan, silahkan anda coba buat sendiri.
1 program for_do_loop;
2 uses crt;
var
3
i,angka: integer;
4
begin
5
clrscr;
6
writeln('========================');
7
writeln('Program Daftar Perkalian');
8
writeln('========================');
9 writeln;
10
12 readln(angka);
13
14 writeln;
15 for i := 1 to 10 do
16 begin
19
readln;
20
end.
21
22
Disini saya menggunakan 2 buah variabel: i dan angka. Variabel angka digunakan untuk
menampung inputan, sedangkan variabel i sebagai variabel counter.
Selain tambahan kode readln(angka), kode program diatas mirip seperti sebelumnya. Tentu
saja di dalam blok perulangan saya harus membuat baris writeln( i ,’ x ‘, angka ,’ = ‘, i *
angka) agar variabel angka di proses sebagai bilangan pengali.
Perulangan Dengan Angka Negatif untuk FOR DO
Pascal
Dalam contoh sebelumnya, saya menggunakan angka positif untuk perulangan. Selain itu,
kita juga bisa menggunakan nilai negatif, selama nilai awal harus lebih besar daripada nilai
akhir:
1
program for_do_loop;
2
uses crt;
3
var
4 i: integer;
5 begin
6 clrscr;
9 begin
12
readln;
13
end.
14
Perulangan Mundur untuk FOR DO Pascal
Bisa menggunakan angka negatif, kenapa kita tidak mencoba hitung mundur? Yakni dari
bilangan besar ke kecil. Berikut contoh kode programnya:
1
program for_do_loop;
2
uses crt;
3
var
4 i: integer;
5 begin
6 clrscr;
8 for i := 10 to 0 do
9 begin
12
readln;
13
end.
14
Eh, kenapa layarnya kosong? Yup, di dalam PASCAL kita tidak bisa melakukan hitung
mundur dengan perulangan FOR DO, tapi harus menggunakan perulangan FOR DONWTO
DO.
Tutorial Belajar Pascal Part 42:
Perulangan FOR DOWNTO dalam Pascal
22 Oct 16 | Andre | Tutorial Pascal | 12 Comments
Tutorial kali ini merupakan lanjutan dari perulangan FOR DO yang saya bahas sebelumnya.
Disini kita akan mempelajari cara penggunaan perulangan FOR DOWNTO dalam bahasa
pemrograman Pascal.
begin
end;
Nyaris tidak berbeda dengan format perulangan FOR DO, hanya saja kali ini kita
menggunakan keyword DOWNTO sebagai pengganti TO. Mari kita lihat contoh kode
programnya.
2 uses crt;
3 var
4 i: integer;
5 begin
clrscr;
6
7
8 for i := 10 downto 0 do
9 begin
end;
11
12
readln;
13
end.
14
Disini variabel counter i akan menurun dari 10 ke 0, sesuai dengan perintah for i :=
10 downto 0 do.
Menggunakan contoh kode program perkalian dari tutorial sebelumnya, saya bisa
mengubahnya sebagai berikut:
1 program for_downto_loop;
uses crt;
2
var
3
i: integer;
4
begin
5
clrscr;
6
7
for i := 10 downto 1 do
8
begin
9 writeln('Perkalian 7 * ', i ,' adalah = ', 7 * i);
10 end;
11
12 readln;
13 end.
14
Untuk contoh yang lebih interaktif, saya ingin membuat lirik lagu ayak ayam dengan
perulangan FOR DOWNTO, yakni menampilkan string “Anak ayam turun 10, pergi 1
tinggal 9”, kemudian dilanjutkan dengan string “Anak ayam turun 9, pergi 1 tinggal 8”,
hingga “Anak ayam turun 1, pergi 1 tinggal 0”. Jumlah anak ayam awal harus diinput oleh
pengguna.
Kode programnya kurang lebih mirip seperti contoh program perkalian interaktif dalam
tutorial FOR DO. Hanya saja selain menggunaan FOR DOWNTO, anda perlu memikirkan
bagaimana baris “Anak ayam turun 9, pergi 1 tinggal 8” dirangkai. Silahkan buka
aplikasi Free PASCAL, dan coba soal latihan ini.
Baik, berikut contoh kode program yang saya gunakan:
1 program for_downto_loop;
2 uses crt;
var
3
anak_ayam,i: integer;
4
begin
5
clrscr;
6
7
writeln('==============');
8
writeln('Lagu Anak Ayam');
9 writeln('==============');
10 writeln;
11
13 readln(anak_ayam);
writeln;
14
15
for i := anak_ayam downto 1 do
16
begin
17
writeln('Anak ayam turun ',i,' pergi 1, tinggal ',i-1);
18
end;
19
20
readln;
21 end.
22
23
Saya membuat 2 buah variabel: i sebagai variabel counter, dan anak_ayam sebagai variabel
penampung inputan untuk perintah readln(anak_ayam).
Perhatikan baris writeln(‘Anak ayam turun ‘,i,’ pergi 1, tinggal ‘,i-1); inilah yang akan
menampilkan teks lagu anak ayam yang terus menurun hingga “Anak ayam turun 1, pergi 1
tinggal 0”.
Disini saya membuat perulangan dengan for i := anak_ayam downto 1 do. Saya tidak
membuat for i := anak_ayam downto 0 do, karena di looping nanti nilai i akan dikurangi
lagi. Jika saya melakukan perulangan hingga 0, lirik lagu terakhir akan menjadi “Anak ayam
turun 0, pergi 1 tinggal -1”. Sangat tidak logis ada anak ayam dengan nilai negatif.
Sama seperti FOR TO, perulangan FOR DOWNTO juga bisa digunakan untuk nilai negatif.
Tentu saja dengan catatan nilai awal harus lebih besar daripada nilai akhir.
Dalam tutorial ini dan tutorial sebelumnya kita telah mempelajari struktur perulangan FOR
DO, serta struktur perulangan FOR DOWNTO di dalam bahasa pemrograman PASCAL.
Tutorial Belajar Pascal Part 43:
Perulangan WHILE DO dalam Pascal
26 Oct 16 | Andre | Tutorial Pascal | 20 Comments
Melanjutkan tutorial tentang perulangan atau looping dalam bahasa pemrograman Pascal, kita
akan masuk ke perulangan WHILE DO. Disini akan dibahas cara penulisan serta cara
penggunaan perulangan WHILE DO dalam Pascal.
1 WHILE (condition) DO
2 begin
end;
5
Kunci dari perulangan WHILE DO ada di condition dan kode program untuk mengubah
condition. Condition bisa dikatakan sebagai syarat agar perulangan bisa dijalankan. Selama
syarat ini terpenuhi (bernilai TRUE), perulangan akan terus dijalankan. Jika syarat ini tidak
terpenuhi (bernilai FALSE), perulangan tidak akan berjalan.
Mari kita lihat contoh kode programnya.
3 var
i: integer;
4
begin
5
clrscr;
6
i:= 0;
7
8
while i < 10 do
9
begin
10 writeln('Hello World');
11 i:= i + 1;
12 end;
13
14 readln;
end.
15
16
Pada awal program, saya membuat variabel i yang berfungsi sebagai variabel counter.
Sebelum perulangan, saya memberikan nilai 0 untuk i. Setelah itu kita masuk ke
perulangan WHILE DO.
Baris program while i < 10 do adalah awal dari perulangan. Inilah kondisi atau syarat yang
harus dipenuhi supaya perulangan bisa diproses. Ketika kode program jalan pertama kali,
nilai variabel i adalah 0, artinya kondisi i < 10 menghasilkan nilai TRUE. Karena tentu saja 0
kurang dari 10.
Karena syarat di penuhi, blok begin hingga end; segera di eksekusi. Baris pertama
adalah writeln(‘Hello World’). Ini digunakan untuk menampilkan teks ‘Hello World’. Tidak
ada masalah.
Baris berikutnya saya membuat i:= i + 1. Bagian ini dikenal juga sebagai increment, artinya
saya ingin menambah nilai variabel counter i sebanyak 1 angka. Ini dilakukan supaya bisa
mengubah kondisi i < 10 yang terdapat di awal perulangan. Jika ini tidak ditulis, perulangan
tidak akan pernah berhenti (infinity loop).
Sampai disini, kode program akan kembali ke awal dan mengecek apakah i < 10? Ingat,
variabel i sekarang sudah bernilai 1. Oke, 1 < 10 = benar (TRUE), kembali
jalankan writeln(‘Hello World’), yang diikuti dengan i:= i + 1. Karena 1 + 1 = 2, varibel i
sekarang bernilai 2.
Kode program kembali ke awal dan mengecek apakah i < 10? Sekarang nilai i adalah 2, dan 2
masih kurang dari 10, 2 < 10 = benar (TRUE), sekali lagi kode blok perulangan akan
dijalankan.
Proses seperti ini terus berlangsung sampai kondisi i < 10 menghasilkan FALSE. Kapan
kondisi ini terjadi? Yakni ketika variabel i = 10. 10 < 10 adalah FALSE. Artinya, perulangan
WHILE DO akan dijalankan sebanyak 10 kali, dimana dalam setiap perulangan, nilai i akan
menaik mulai dari 0, 1, 2, 3, 4, 5, 6, 7, 8, hingga 9.
Agar konsep perulangan ini bisa lebih paham, silahkan anda bayangkan (kalau perlu ditulis),
bagaimana nilai variabel counter i bisa naik dari 1 sampai 9, dan pada setiap kenaikan
perulangan akan menampilkan teks ‘Hello World’.
Jika kode program diatas masih kurang paham, mari masuk ke contoh kedua:
1
program while_do;
2
uses crt;
3
var
4
i: integer;
5 begin
6 clrscr;
7 i:= 0;
9 while i < 10 do
10 begin
Kondisi perulangan WHILE DO yang saya pakai sama persis seperti sebelumnya. Hanya
saja kali ini perintah yang dijalankan pada setiap perulangan adalah writeln(‘Variabel i
sekarang bernilai: ‘,i). Ini akan membantu kita melihat nilai variabel counter i yang terus
bertambah 1 selama perulangan dijalankan.
1 program while_do;
2 uses crt;
var
3
i: integer;
4
begin
5
clrscr;
6
i:= 5;
7
8
while i <= 10 do
9
begin
10 writeln('Variabel i sekarang bernilai: ',i);
11 i:= i + 1;
12 end;
13 readln;
14 end.
15
Kuncinya adalah bagaimana menentukan kondisi awal variabel i, dan kondisi akhir dari
perulangan. Dengan membuat i:= 5, dan while i <= 10 do, artinya nilai i akan mulai dari 5,
6, 7, 8, 9, dan 10.
Tapi saya juga bisa menggunakan kode program berikut:
1
program while_do;
2
uses crt;
3
var
4
i: integer;
5 begin
6 clrscr;
7 i:= 5;
9 while i < 11 do
10 begin
1
program while_do;
2
uses crt;
3
var
4
i: integer;
5 begin
6 clrscr;
7 i:= 5;
9 while i < 11 do
begin
10
writeln('Variabel i sekarang bernilai: ',i);
11
end;
12
readln;
13
end.
14
Jika anda menjalankan kode program diatas, akan terjadi Infinity Loop. Ini karena kondisi
while i <= 10 do akan selalu TRUE. Di dalam perulangan saya tidak membuat ‘sesuatu’
yang bisa mengubah nilai variabel i (untuk membuat syarat i <= 10 menjadi FALSE).
Infinity Loop biasanya terjadi karena kesalahan logika dari programmer, terutama untuk
perulangan WHILE DO dan REPEAT UNTIL. Untuk menghentikan infinity loop, anda bisa
menekan kombinasi tombol CRTL + C, atau menutup paksa Free Pascal.
6 clrscr;
7 i:= 100;
9 while i >= 0 do
10 begin
Disini saya memulai variabel i dari 100. Pengecekan kondisi while i >= 0 do artinya,
perulangan akan dijalankan selama nilai i besar dari 100.
Bagaimana agar kondisi ini nantinya bisa bernilai FALSE? Saya menggunakan i:= i – 1,
sehingga dalam setiap perulangan, nilai i selalu berkurang 1 angka, dari 100, ke 99, ke 98, dst
hingga berhenti saat i = 0, yakni ketika syarat i >= 0 menghasilkan FALSE.
1
program while_do;
2
uses crt;
3
var
4
i: integer;
5
begin
6 clrscr;
7 i:= 3;
10
11 while i <= 30 do
begin
12
write(i,' ');
13
i:= i + 3;
14
end;
15
readln;
16
end.
17
Perhatikan bahwa variabel i mulai dari 3, dan perubahannya menggunakan i:= i + 3. Artinya
variabel i akan ‘lompat’ 3 angka setiap perulangan. Berikut hasilnya:
Sampai disini saya sarankan anda mencoba2 berbagai kombinasi perulangan lain, misalnya
membuat perulangan yang lompat setiap 7 angka, atau perulangan yang mundur 4 angka,
misalnya dari 100, ke 96, ke 92, ke 88, dst.
Dalam tutorial belajar pascal kali ini kita telah membahas perulangan WHILE DO. Di dalam
pascal masih ada 1 lagi struktur perulangan, yakni REPEAT UNTIL. Apa bedanya
perulangan WHILE DO dengan REPEAT UNTIL?
Tutorial Belajar Pascal Part 44:
Perulangan REPEAT UNTIL dalam
Pascal
01 Nov 16 | Andre | Tutorial Pascal | 11 Comments
Perulangan (looping) terakhir yang akan kita bahas adalah perulangan REPEAT UNTIL.
Inilah yang akan kita praktekkan dalam tutorial bahasa pemrograman PASCAL kali ini.
begin
end;
UNTIL (condition)
Karena condition dicek di akhir, setidaknya isi perulangan akan dijalankan minimal 1 kali,
meskipun condition tidak dipenuhi. Inilah perbedaan mendasar dari REPEAT UNTIL
dengan perulangan lain seperti FOR DO dan WHILE DO.
Mari kita lihat contoh kode programnya.
7 i:= 0;
9 repeat
10 begin
writeln('Hello World');
11
i:= i + 1;
12
end;
13
until i = 10;
14
readln;
15
end.
16
Terlihat sangat mirip dengan WHILE DO, bedanya variabel counter i akan di cek di akhir
perulangan.
Mari kita tampilkan nilai variabel i dalam setiap iterasi:
1 program repeat_until;
2 uses crt;
3 var
4 i: integer;
begin
5
clrscr;
6
i:= 0;
7
8
repeat
9
begin
10
writeln('Variabel i sekarang bernilai: ',i);
11 i:= i + 1;
12 end;
13 until i = 10;
14 readln;
end.
15
16
Kembali, jika anda sudah paham konsep perulangan WHILE DO, tidak akan sulit memahani
perulangan REPEAT UNTIL.
Perbedaan mendasar, bagaimana jika nilai variabel counter ini sudah tidak bisa dipenuhi saat
perulangan di jalankan? Mari kita coba:
1 program repeat_until;
2 uses crt;
3 var
4 i: integer;
begin
5
clrscr;
6
i:= 10000;
7
8
repeat
9
begin
10
writeln('Variabel i sekarang bernilai: ',i);
11 i:= i + 1;
12 end;
14 readln;
end.
15
16
Perhatikan di awal kode program, saya mengisi variabel counter i dengan nilai 1000. Di akhir
looping REPEAT UNTIL, saya membuat kondisi until i > 10. Artinya, kondisi ini sudah
tidak memenuhi. 1000 tentu lebih besar dari 10, sehingga i > 10 akan menghasilkan
nilai FALSE.
Namun inilah keunikan perulangan REPEAT UNTIL. Karena kondisi diperiksa di akhir
perulangan, isi perulangan itu bisa berjalan minimal 1 kali. Berikut hasil kode program
tersebut:
Sebagai contoh terakhir, saya ingin membuat deret angka kelipatan 5 menggunakan
perulangan REPEAT UNTIL. Berikut kode programnya:
1 program repeat_until;
2 uses crt;
3 var
i: integer;
4
begin
5
clrscr;
6
i:= 5;
7
8
writeln('Berikut deret untuk kelipatan 5: ');
9
10
repeat
11 begin
12 write(i,' ');
13 i:= i + 5;
14 end;
18
Kunci dari pembuatan deret ini ada di variabel counter. Saya menggunakan perintah i:= i +
5dalam perulangan. Artinya, variabel i ditambahkan 5 dalam setiap iterasi. Hasil akhir berupa
deret dari 5, 10, 15, dst hingga 100.
Sebagai latihan, bisakah anda membuat deret dengan kenaikan 7? Silahkan buat dalam 3 jenis
looping yang sudah kita pelajari sejauh ini: FOR DO, WHILE DO, dan REPEAT UNTIL.
Tutorial Belajar Pascal Part 45:
Perulangan Bersarang (Nested Loop)
dalam Pascal (1)
03 Nov 16 | Andre | Tutorial Pascal | 2 Comments
Jika pembahasan tentang perulangan FOR DO, WHILE DO dan REPEAT UNTIL sudah
cukup rumit, maka materi kali ini akan membuat anda semakin pusing, hehe…
Dalam tutorial belajar bahasa pemrograman Pascal di Duniailkom kali ini kita akan
membahas perulangan bersarang atau nested loop.
Karena pembahasan tentang nested loop ini cukup panjang, saya akan pecah menjadi 2 artikel.
begin
begin
end;
end;
Materi tentang nested loop ini memang cukup rumit, karena melibatkan 2 kali perulangan.
Maka tidak heran jika banyak tugas sekolah / kampus / kuliah yang berkaitan dengan nested
loop.
Soal yang hampir selalu keluar adalah membuat segitiga bintang, yang menggunakan prinsip
nested loop. Agar lebih paham, mari kita masuk ke contoh kode program.
1
program nested_loop;
2
uses crt;
3
var
4 i: integer;
5 begin
6 clrscr;
8 for i := 1 to 5 do
9 begin
writeln('*');
10
end;
11
12
readln;
13
end.
14
Tidak ada yang baru disini. Saya membuat perulangan FOR DO menaik sebanyak 5 kali dari
angka 1 ke 5. Disetiap perulangan ini saya menampilkan sebuah karakter bintang. Hasilnya
terlihat 5 bintang ditampilkan ke bawah. Ini karena saya menggunakan perintah writeln.
Bagaimana jika saya ganti writeln menjadi write? Dapatkan anda menebak hasilnya?
1
program nested_loop;
2
uses crt;
3
var
4 i: integer;
5 begin
6 clrscr;
8 for i := 1 to 5 do
9 begin
write('*');
10
end;
11
12
readln;
13
end.
14
Yup, sekarang bintang ini berjejer dari kiri ke kanan dalam 1 baris. Jumlah bintangnya ada 5
buah karena saya memang menjalankan 5 kali perulangan (perintah for i := 1 to 5 do).
Pemahaman tentang perbedaan writeln dan write di dalam perulangan sangat penting untuk
bisa memahami konsep nested loop yang kita pelajari.
Baik saya akan membuat sebuah kode program untuk nested loop. Bisakah anda menebak
bagaimana hasil akhirnya?
1
program nested_loop;
2
uses crt;
3
var
4
i,j: integer;
5
begin
6 clrscr;
8 for i := 1 to 5 do
9 begin
10
11 for j := 1 to 5 do
12 begin
write('#');
13
end;
14
15
writeln('*');
16
end;
17
18
readln;
19
end.
20
Di awal program saya mendefenisikan 2 buah variabel, yakni i dan j. Kedua variabel ini
berfungsi sebagai variabel counter. Variabel i untuk perulangan terluar, dan variabel j untuk
perulangan terdalam.
Silahkan anda pelajari sejenak kode program diatas. Kalau perlu corat coret di kertas
bagaimana setiap perulangan di jalankan.
Ketika perulangan i dijalankan pertama kali, program akan lanjut ke perulangan j. Di
perulangan jini saya membuat 5 kali perulangan untuk perintah write(‘#’). Artinya, di layar
akan tampil tanda #sebanyak 5 kali. Karena saya menggunakan write, maka tanda pagar akan
berjejer dalam 1 baris.
Setelah perulangan j selesai dijalankan sebanyak 5 kali, berikutnya terdapat
perintah writeln(‘*’). Ini akan menampilkan 1 karakter bintang dan pindah baris. Artinya di
layar akan tampil #####*. Lima buah tanda pagar berasal dari perulangan j, dan satu tanda
bintang berasal dari perulangan i.
Kode program akan kembali menjalankan perulangan i kedua (ingat, saya membuat for i := 1
to 5 do, artinya perulangan i akan dijalankan sebanyak 5 kali). Di perulangan kedua ini akan
dijalankan kode program yang kurang lebih sama seperti sebelumnya, dan akan menampilkan
tanda #####*.
Ini terus dilakukan sebanyak 5 kali. Hasil akhirnya adalah sebagai berikut:
Jika anda kurang memahami kenapa hasilnya bisa seperti ini, kembali silahkan baca dengan
perlahan penjelasan saya sebelumnya.
Anda juga bisa ubah kode program tersebut, misalnya diganti dengan karakter lain, atau
menambah total perulangan, kemudian analisa bagaimana hasilnya. Pemahaman ini sangat
diperlukan untuk mengerti bagaimana konsep nested loop.
Tutorial tentang nested loop ini akan berlanjut, dimana kita akan menggunakan variabel
counter i dan j di dalam perulangan bersarang.
Tutorial Belajar Pascal Part 46:
Perulangan Bersarang (Nested Loop)
dalam Pascal (2)
06 Nov 16 | Andre | Tutorial Pascal | No Comments
Tutorial kali ini merupakan lanjutan dari pembahasan tentang nested loop dalam bahasa
pemrograman PASCAL. Kali ini kita akan coba mengakses variabel counter dari dalam
perulangan nested loop pascal.
2 uses crt;
3 var
i,j: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 5 do
8
begin
9
10
for j := 1 to 5 do
11
begin
12 write(i*j);
13 write(' ');
14 end;
15
16 writeln;
17 end;
18
19 readln;
end.
20
21
Agar lebih paham, silahkan anda pelajari sejenak apa yang dilakukan dari kode program
diatas. Disini saya membuat nested loop dengan variabel counter i dan j. Kemudian di dalam
perulangan j saya menulis write(i*j); dan write(‘ ‘);.
Saat perulangan i dijalankan pertama kali (i = 1), kode program akan langsung masuk ke
perulangan j.
Ketika berada ke dalam perulangan j, nilai i = 1, dan j = 1. Kemudian jalankan
perintah write(i*j);dan write(‘ ‘);, hasilnya adalah 1 * 1 = 1, lalu sebuah spasi. Dilayar akan
tampil angka 1 dan sebuah spasi.
Selanjutnya variabel counter j akan naik menjadi 2. Kembali
dijalankan write(i*j); dan write(‘ ‘);. Hasilnya adalah 1 * 2 = 2, dikuti sebuah spasi. Dilayar
akan tampil angka 2 dan sebuah spasi.
Begitu seterusnya hingga perulangan j selesai dan di layar akan tampil 1 2 3 4 5. Kode
program akan keluar dari perulangan j dan lanjut ke perintah writeln;. Ini bisa diartikan
sebagai instruksi agar tampilan pindah ke baris baru.
Kita masih ada di dalam perulangan i, dan variabel counter i akan naik menjadi 2, kemudian
masuk kembali ke dalam perulangan j. Disini akan dijalankan kode program yang sama,
yakni write(i*j); dan write(‘ ‘);. Karena i saat ini bernilai 2, hasil akhir seluruh
perulangan j (sebanyak 5 kali) adalah: 2 4 6 8 10.
Perulangan seperti ini akan dijalankan sebanyak 5 kali, dan hasil akhirnya adalah sebagai
berikut:
Jika anda masih kurang paham kenapa hasilnya bisa seperti ini, silahkan pelajari kembali
penjelasan diatas. Kalau perlu buat catatan apa yang terjadi untuk setiap perulangan.
Sebagai tambahan, perintah write(i*j); dan write(‘ ‘) bisa disingkat menjadi 1 kali
pemanggilan, menjadi write(i*j,’ ‘). Seperti kode program berikut:
1 program nested_loop;
2 uses crt;
3 var
i,j: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 5 do
8
begin
9
10
for j := 1 to 5 do
11 begin
12 write(i*j,' ');
13 end;
14
15 writeln;
end;
16
17
readln;
18
end.
19
20
2 program nested_loop;
uses crt;
3
var
4
i,j: integer;
5
begin
6
clrscr;
7
i := 1;
8
9 while i <= 5 do
10 begin
11 j := 1;
12
13 while j <= 5 do
14 begin
18
writeln;
19
i := i + 1;
20
end;
21
22 readln;
23 end.
24
Dari hasil yang tampil tidak terdapat perbedaan dengan contoh dari FOR DO sebelumnya.
Tapi dari kode program tampak lebih ‘njelimet’. Silahkan anda pelajari dan bandingkan
dengan contoh yang menggunakan FOR DO.
Seperti yang saya tulis dalam tutorial sebelumnya, nested loop memang cukup rumit dan
melibatkan alur logika yang kompleks. Tugas-tugas kuliah sering menjadikan nested
loop sebagai penguji logika dan pemahaman algoritma. Yang paling terkenal adalah
membuat segitiga bintang, piramida bintang, dengan berbagai macam bentuk.
Pembahasan tentang segitiga bintang, piramida, deret, dll saya rencanakan akan dibahas di
tutorial khusus tentang studi kasus bahasa pemrograman Pascal.
Tutorial Belajar Pascal Part 47: Fungsi
Perintah BREAK Dalam Perulangan
Pascal
08 Nov 16 | Andre | Tutorial Pascal | No Comments
Dalam lanjutan tutorial belajar bahasa pemrograman Pascal di duniailkom kali ini kita akan
membahas fungsi dari perintah BREAK. Perintah BREAK sendiri masih berhubungan
dengan materi tentang perulangan pascal.
1
program penggunaan_break;
2 uses crt;
3 var
4 i: integer;
5 begin
6 clrscr;
8 for i := 1 to 10 do
begin
9
writeln('Hello Indonesia ',i);
10
11 if (i = 5) then
12 break;
end;
13
14
readln;
15
end.
16
Disini saya membuat sebuah perulangan FOR DO, yakni menampilkan string ‘Hello
Indonesia 1’, ‘Hello Indonesia 2’, dst hingga ‘Hello Indonesia 10’.
Akan tetapi, di dalam perulangan ini terdapat perintah if (i = 5) then break. Artinya, saat
variabel counter i mencapai nilai 5, kondisi (i = 5) akan bernilai true. Dengan demikian,
perulangan akan berhenti di posisi i = 5:
Yang mesti diperhitungkan, adalah kapan kita menjalankan kondisi break. Dari kode
program dibawah ini, bisakah anda menemukan sesuatu yang salah?
1 program penggunaan_break;
2 uses crt;
var
3
i: integer;
4
begin
5
clrscr;
6
7
for i := 100 downto 10 do
8
begin
9 writeln(i ,' * 3 = ',i*3);
10 if (i = 5) then
11 break;
12 end;
13
14 readln;
end.
15
16
Saya membuat sebuah perulangan mundur, yakni dari variabel counter i = 100 hingga 10.
Dalam setiap perulangan, tampilkan nilai perkalian 3, seperti 100 * 3 = 300, 99 * 3 = 297,
dst hingga 10 * 3 = 30.
Di dalam perulangan terdapat 1 kondisi break: if (i = 5) then break. Perintah ini tidak akan
pernah dijalankan karena secara logika variabel counter i tidak akan pernah bernilai 5. Ini
karena perulangan itu sendiri akan berhenti duluan, yakni saat i bernilai 10.
Bahasan lain yang cukup menarik adalah, posisi peletakan perintah break bisa
mempengaruhi hasil akhir. Contohnya kode program berikut:
1 program penggunaan_break;
2 uses crt;
3 var
i: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 10 do
8
begin
9
writeln(i ,' * 5 = ',i*5);
10 if (i = 7) then
11 break;
12 end;
13
14 readln;
15 end.
16
Saya ingin menampilkan perkalian 5 untuk variabel counter i, mulai dari 1 hingga 10. Di
dalam perulangan terdapat kondisi if (i = 7) then break. Artinya pada saat variabel
counter i bernilai 7, perulangan akan berhenti.
Perhatikan bahwa saya menulis perintah writeln(i ,’ * 5 = ‘,i*5) sebelum break. Bagaimana
jika dibalik?
program penggunaan_break;
1
uses crt;
2
var
3
i: integer;
4 begin
5 clrscr;
7 for i := 1 to 10 do
8 begin
9 if (i = 7) then
break;
10
writeln(i ,' * 5 = ',i*5);
11
end;
12
13
readln;
14
end.
15
16
Kode program ini sama persis seperti sebelumnya. Hanya saja saya membalik posisi letak
kondisi if (i = 7) then break, menjadi sebelum perintah writeln(i ,’ * 5 = ‘,i*5).
Hasilnya, perulangan kita hanya tampil sampai 6 * 5 = 30, tidak sampai ke 7. Padahal kondisi
break baru bernilai true pada saat i = 7.
Perbedaan ini terjadi karena pada contoh kedua, break sudah dijalankan sebelum pascal
sampai ke baris writeln(i ,’ * 5 = ‘,i*5). Akibatnya hasil akhir berhenti pada 6 * 5 = 30,
bukan 7 * 5 = 35.
uses crt;
2
var
3
i: integer;
4
begin
5
clrscr;
6
i:= 0;
7
8
while i < 10 do
9 begin
12 if (i = 6) then
break;
13
end;
14
readln;
15
end.
16
17
Tidak ada perbedaan mendasar. Ketika variabel counter i sampai ke 6, perintah if (i = 6) then
break, akan bernilai true. Akibatnya perulangan WHILE DO akan berhenti di i = 6.
Perintah break yang kita bahas kali ini sering digunakan untuk kasus pencarian di dalam
array. Misalnya terdapat 100 element di array siswa. Kode program untuk mencari 1 nama
siswa akan menggunakan perulangan dengan perintah break. Jika sudah ketemu, maka kita
tidak perlu lagi melanjutkan perulangan.
Tutorial Belajar Pascal Part 48: Fungsi
Perintah CONTINUE Dalam Perulangan
Pascal
09 Nov 16 | Andre | Tutorial Pascal | 17 Comments
Perintah continue yang akan kita bahas dalam tutorial belajar bahasa pemrograman pascal
kali ini mirip seperti perintah break dari tutorial sebelumnya, yakni sama-sama menghentikan
perulangan, namun dengan sedikit perbedaan.
uses crt;
2
var
3
i: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 10 do
8
begin
9 if (i = 5) then
10 continue;
11
12 writeln('Hello Indonesia ',i);
13 end;
14
readln;
15
end.
16
17
uses crt;
2
var
3
i: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 10 do
8
begin
9 writeln('Hello Indonesia ',i);
10 if (i = 5) then
11 continue;
12 end;
readln;
13
end.
14
15
8 while i < 10 do
9 begin
10
if (i = 6) then
11
begin
12
i:= i + 1;
13
continue;
14
end;
15
16
writeln('Variabel i sekarang bernilai: ',i);
17 i:= i + 1;
18 end;
19 readln;
20 end.
21
22
if (i = 6) then
1
begin
2
i:= i + 1;
3
continue;
4 end;
Tutorial tentang fungsi perintah continue kali ini menutup seri tutorial pascal tentang Struktur
Kondisi dan Perulangan dalam bahasa pemrograman Pascal.
Studi Kasus, Latihan dan Contoh Kode Program
Pascal
Bagian ini dikhususkan untuk tutorial lepas yang membahas studi kasus, latihan dan contoh
kode program bahasa pemrograman Pascal. Beberapa artikel merupakan jawaban dari
pertanyaan rekan-rekan pengunjung duniailkom seputar Pascal.
Dalam tutorial belajar pascal di duniailkom kali ini kita akan membahas cara membuat deret
menggunakan bahasa pemrograman pascal.
Jika anda sudah mengikuti seluruh tutorial pascal di duniailkom mulai dari part 1 hingga
selesai, saya sudah beberapa kali menggunakan contoh pembuatan kode program deret.
Disini kita akan ulang kembali agar semakin paham.
Sebagai contoh pertama, saya akan merancang kode program untuk membuat deret menaik
dengan kelipatan 9:
program kode_program_deret;
1
uses crt;
2
var
3
i: integer;
4
begin
5
clrscr;
6
7 for i := 1 to 15 do
8 begin
9 writeln(i*9);
end;
10
11
readln;
12
end.
13
14
Disini saya menggunakan perulangan FOR DO untuk membuat deret. Rumus dari deret itu
sendiri ada di dalam perulangan. Untuk menampilkan deret kelipatan 9, caranya dengan
menulis writeln(i*9).
Bagaimana jika angkanya ingin ditampilkan ke samping? Saya tinggal mengganti
perintah writelndengan write:
program kode_program_deret;
1
uses crt;
2
var
3
i: integer;
4
begin
5
clrscr;
6
7 for i := 1 to 15 do
8 begin
end;
10
11
readln;
12
end.
13
14
Selain menampilkan angka dengan kelipatan 9, kita juga harus menambahkan 1 spasi di sisi
kanan agar tampilannya lebih rapi, sehingga perintahnya menjadi: write(i*9, ‘ ‘).
Untuk deret yang lebih kompleks, kita hanya perlu “memikirkan” rumus yang ada, misalnya
seperti kode berikut:
1 program kode_program_deret;
uses crt;
2
var
3
i: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 15 do
8
begin
9 write((i*9) - 3, ' ');
10 end;
11
12 readln;
13 end.
14
2 uses crt;
var
3
i: integer;
4
begin
5
clrscr;
6
i:= 1;
7
8
while i <= 15 do
9
begin
10 write((i*9), ' ');
11 i:= i + 1;
12 end;
13
14 readln;
15 end.
16
Tentu saja selain menampilkan deret, kita tidak lupa menaikkan nilai variabel counter i.
7 i:= 1;
9 repeat
10 begin
15
readln;
16
end.
17
Khusus untuk perulangan dengan while do dan repeat until, kita juga harus perhatikan
kondisi awal dan akhir perulangan. Sebelum block perulangan saya mendefenisikan
variabel i dengan i:= 1. Karena jika tidak, pascal akan memulai deret dari angka 0. Selain itu
untuk akhir perulangan juga menggunakan kondisi until i >= 15, bukan until i > 15 (semoga
anda bisa memahami apa perbedaannya).
Apa yang saya contohkan dalam tutorial ini merupakan versi sederhana dari deret dalam
bahasa pemrograman pascal. Sekali lagi, kunci dari deret ini ada di rumus matematisnya.
Untuk perhitungan yang rumit, mungkin juga memerlukan kondisi tambahan lain seperti if
else, atau bahkan nested loop (perulangan di dalam perulangan).
Tutorial Belajar Pascal: Cara Membuat
Segitiga Bintang Bahasa Pemrograman
Pascal
13 Nov 16 | Andre | Tutorial Pascal | 14 Comments
Membuat segitiga bintang sudah menjadi hal wajib dalam belajar algoritma. Jika anda pernah
mengikuti mata kuliah algoritma dan pemrograman, hampir bisa dipastikan juga pernah
dibuat pusing oleh kode program ini.
Dalam tutorial belajar pascal di duniailkom kali ini kita akan mempelajarinya dengan lebih
rinci. Kita akan membahas cara membuat segitiga bintang menggunakan bahasa
pemrograman Pascal.
Tugas kita adalah merancang kode program untuk tampilan seperti itu.
Mungkin anda bertanya, untuk apa kita membuat kode program ini? Apa gunanya?
Kode program bintang-bintang seperti diatas memang tidak ada peran apapun dalam aplikasi
“dunia nyata”. Ini lebih kepada melatih logika berfikir. Logika berfikir inilah skill paling
penting yang harus dimiliki oleh (calon) programmer.
1 writeln('*');
2 writeln('**');
3 writeln('***');
4 writeln('****');
writeln('*****');
5
Tentu saja hasilnya akan sama. Tapi disini kita akan menggunakan perulangan. Lebih
tepatnya perulangan bersarang (nested loop).
Dengan menggunakan perulangan, jumlah bintang tersebut bisa diatur dari variabel.
Misalnya, saya ingin membuat 100 baris bintang, pastinya akan repot jika membuat satu
persatu seperti contoh diatas.
Hal pertama yang akan kita buat adalah sebuah perulangan dengan 5 bintang kebawah,
seperti kode program berikut ini:
1 program kode_program_segitiga_bintang;
2 uses crt;
var
3
i: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 5 do
8
begin
9
writeln('*');
10 end;
11
12 readln;
13 end.
14
Terlihat, sebuah perulangan bintang sudah tampil. Berikutnya bagaimana cara membuat
bintang ke samping? Kita akan membuat 1 perulangan j di dalam perulangan i (nested loop).
Berikut kode programnya:
1 program kode_program_segitiga_bintang;
2 uses crt;
3 var
i,j: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 5 do
8
begin
9
10
for j := 1 to 5 do
11
begin
12
write('*');
13 end;
14
15 writeln('*');
16 end;
17
18 readln;
19 end.
20
Dalam kode program diatas, perulangan j akan dijalankan sebanyak 5 kali untuk setiap
perulangan i.
Sekarang, bagaimana caranya agar pada perulangan i pertama, perulangan j hanya
dijalankan 1 kali. Ketika masuk ke perulangan i kedua, perulangan j akan dijalankan 2 kali.
Saat perulangan i ketiga, perulangan j akan dijalankan 3 kali, dst.
Dari paragraf saya diatas, kita sudah bisa melihat pola yang harus ditulis. Kuncinya ada di
variabel j. Bagaimana cara agar perulangan j bisa menjadi dinamis mengikuti jumlah
perulangan ke – i? Caranya, dengan menjadikan nilai variabel i sebagai patokan akhir
perulangan j.
Berikut kode program yang saya maksud:
1 program kode_program_segitiga_bintang;
2 uses crt;
var
3
i,j: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 5 do
8
begin
9
10
for j := 1 to i do
11 begin
12 write('*');
13 end;
14
15 writeln('*');
16 end;
17
readln;
18
end.
19
20
Perhatikan bagian for j := 1 to i do. Inilah yang bisa membuat perulangan j menjadi dinamis
dan menaik dalam setiap perulangan i.
Baik, mari kita jalankan:
Tunggu dulu, kenapa ada dua bintang di baris pertama? Bintang pertama berasal dari
perulangan i, yakni kode writeln(‘*’). Untuk memperbaikinya, kita cukup menghapus
string (‘*’) karena tidak diperlukan lagi.
Namun perintah writeln; tetap dibutuhkan agar bintang bisa pindah ke baris baru:
program kode_program_segitiga_bintang;
1
uses crt;
2
var
3
i,j: integer;
4
begin
5
clrscr;
6
7
for i := 1 to 5 do
8 begin
9
10 for j := 1 to i do
11 begin
12 write('*');
end;
13
14
writeln;
15
end;
16
17
readln;
18
end.
19
20
Done! Kode program kita untuk membuat segitiga bintang sudah selesai. Kunci dari proses
pembuatan kode program ini ada di logika dan cara berfikir kita untuk menyelesaikan
masalah.
Sebagai latihan, saya tantang anda untuk membuat segitiga bintang yang sama, namun dalam
posisi terbalik. Seperti tampilan berikut:
Silahkan anda luangkan waktu beberapa saat dan latihan bagaimana cara membuatnya.
1
program kode_program_segitiga_bintang;
2
uses crt;
3
var
4
i,j: integer;
5 begin
6 clrscr;
8 for i := 1 to 5 do
9 begin
10
11 for j := 1 to (6-i) do
12 begin
13 write('*');
end;
14
15
writeln;
16
end;
17
18
readln;
19
end.
20
Hanya perlu tambahan 2 karakter, tepatnya di bagian for j := 1 to (6-i) do. Inilah yang
membuat perulangan terdalam (j) akan menurun dari 5 bintang, 4 bintang, 3 bintang, 2
bintang dan 1 bintang.
Dengan mengutak-atik variabel i dan j, kita bisa membuat berbagai bentuk segitiga, misalnya
bagamana jika kedua segitiga ini disatukan (menjadi bentuk setengah belah ketupat). Atau
anda bisa juga menambahkan perintah readln agar jumlah baris segitiga bisa diinput dari
user.
Selamat berkreasi dan silahkan asah logika pemrograman dengan program segitiga pascal ini.
Belajar Free Pascal
Bersama
HARI SARYONO, ST
Tampilan Free Pascal dibuat semirip mungkin dengan tampilan Turbo Pascal, yaitu terdiri dari
Menu Utama , Jendela Edit dan Baris bawah.
01 MENU FILE
Bahasan Berikutnya
Pelajaran seterusnya
Kembali Ke Daftar Isi