Sabtu, 15 Maret 2014

Pascal - Mengenal Procedure dan Function (Langkah 5)

Pada artikel Pascal - Pemrograman Mudah Untuk Pemula pernah disinggung mengenai prosedur dan fungsi. Pada artikel itu juga dijelaskan sedikit pemahaman tentang prosedur dan fungsi. Masih ingat? Waktu itu saya katakan bahwa fungsi di Pascal mirip seperti fungsi di Matematika. Jadi yang kurang jago Matematika gak akan ngerti fungsi ya? Tentu saja bisa. Hanya sepintas mirip saja dengan fungsi di Matematika. Tapi, ya berbeda. 

Lalu, Apa itu fungsi dan prosedur? Fungsi dan prosedur adalah kumpulan perintah yang perlu dideklarasikan sekali, dan kemudian dapat digunakan berulang-ulang di program utama tanpa perlu menulis ulang perintah-perintahnya. Got it? Nanti kamu akan mencobanya. 

Dulu, waktu pertama kali kenal fungsi, saya bertanya-tanya begini, Lalu, buat apa ada fungsi kalau perintah-perintah dalam fungsi sebenarnya bisa dituliskan di dalam program utama? 

Kalau untuk sekarang, memang belum terasa manfaatnya. Tapi, suatu saat kamu membuat program besar atau aplikasi besar dimana pasti akan ada kumpulan perintah dengan tugas/fungsi tertentu yang berulang-ulang. Tentu saja tidak efektif jika kumpulan perintah yang sama kita tulis ulang, padahal fungsi atau tugas kumpulan itu sama saja, hanya berbeda posisi. 

Manfaat lainnya dari fungsi adalah menyusun program secara terstruktur. Saat kamu membuat program sampai berbaris-baris kode. Terkadang untuk membaca kembali apa sudah kamu tulis terasa sulit dan membutuhkan waktu. Misalnya saja kamu mau mencari kode di baris berapa yang mengatur percabangan ini atau itu, karena kamu mau merubahnya. Nah, dari banyak baris kode itu kamu harus mencarinya. Supaya lebih efisien, ubah program itu menjadi lebih terstruktur. Bagian yang mengatur pengecekan string, perulangan yang bercabang-cabang pula, masing-masing dapat kamu uraikan dengan membuat fungsi.

Jadi, kesimpulan dari manfaat fungsi itu adalah 2 kata yang di-bold dan berwarna merah pada 2 paragraf diatas. Fungsi juga menjadi alasan kenapa Pascal dikatakan terstruktur. 

Kok, daritadi Fungsi mulu. Prosedur itu apa?

Karena memang yang paling utama dan umum pada bahasa pemrograman adalah fungsi. Bedanya adalah, setelah menjalankan perintah-perintah di dalam fungsi akan ada pengembalian nilai. Mungkin masih kurang dimengerti kalau belum sering latihan. Prosedur sama dengan fungsi hanya saja tidak ada pengembalian nilai. Seteah kamu mencoba nanti, kamu akan melihat perbedaannya. 

Sekedar info, pada bahasa pemrograman lain, tidak ada namanya prosedur. Pada bahasa lain, prosedur itu sama saja dengan fungsi yang mengembalikan nilai kosong atau 0.

Nah, saatnya latihan tiba. Kita akan membuat program sederhana, yaitu program penghitung luas dan keliling bangun datar. Buat program baru bernama geometri.pas. Tulis kode dibawah ini. Tulis lho.... Bukan copy-paste! Semakin sering kamu menulis, semakin kamu mengerti dan ahli. 

uses wincrt;

var
panjang, lebar : integer;

procedure intro;
begin
writeln; writeln;
writeln('Hai, aku Pascal!');
writeln('Aku butuh bantuanmu.');
writeln('Aku sedang membuat kandang burung.');
writeln('Aku butuh papan segiempat');
writeln('Jika kamu punya. Beritahu aku.');
end;

procedure input;
begin
write('Berapa panjang papannya (satuan meter)? '); readln(panjang);
write('Berapa lebar papannya (satuan meter)? '); readln(lebar);
end;

function luas (a, b : integer) : integer;
begin
luas := a * b;
end;

function keliling : integer;
begin
keliling := 2 * (panjang + lebar);
end;

BEGIN
intro;
writeln;
writeln('Tentang papan persegi milikmu.....');
input;
writeln;
writeln('Hmm... kalau aku hitung-hitung.');
writeln('Luas papanmu adalah ',luas(panjang, lebar),' meter persegi.');
writeln('Dan keliling papanmu adalah ',keliling,' meter.');
writeln('Terima kasih. Aku membutuhkannya.');
readln;
END.

Sudah dicoba? Kalau gagal, periksa kembali tulisan mu. Coba lihat artikel Kenalan dengan Pascal - Input dan Output tentang kemungkinan kesalahan yang terjadi pada penulisan program Pascal. Sudah lihat bedanya prosedur dan fungsi? 

Mari kita rinci hal-hal baru pada program diatas.

  • Dari BEGIN ke END adalah program utama. Seperti variabel, sebelum digunakan prosedur dan fungsi harus dideklarasikan apa-apa saja perintahnya. Pendeklarasian terjadi sebelum program utama dan sesudah pendeklarasian variabel. 
  • Masing-masing fungsi dan prosedur bisa diberi nama. Nama itu berguna untuk memanggil fungsi/prosedur pada program utama. Coba lihat pada fungsi luas dan keliling. Kamu bisa lihat nama dari fungsi itu diberikan nilai, seperti luas := a * b dan keliling := 2 * (panjang + lebar). Itulah bagian dimana fungsi mengembalikan nilai nantinya. 
  • Fungsi itu mirip seperti variabel. Variabel hanya bisa dimasukan nilai, tapi fungsi bisa menjalankan perintah-peritah tertentu dan kemudian memiliki nilai. Oleh karena itu, pada nama fungsi, disertai juga tipe data, seperti pada function luas (a, b : integer) : integer. Lihat integer yang di bold berwarna merah, itu adalah penentuan tipe data dari fungsi luas. 
  • Bedakan dengan prosedur yang tidak mengembalikan nilai apa-apa. Prosedur hanya menjalankan kumpulan-kumpulan perintah.
  • Coba kamu perhatikan fungsi luas dan keliling. Ada perbedaan? Saya sengaja membuat perbedaan itu supaya kamu dapat mengetahui variasi menulis fungsi. Pada fungsi luas, terdapat yang disebut parameter. Lihat, function luas (a, b : integer) : integer. Bagian berwarna merah disebut parameter. Pengertian mudahnya, parameter adalah pengambilan nilai. Coba lihat saat fungsi luas dipanggil, luas(panjang, lebar). Nah, sudah bisa menebak? Nilai a akan sama dengan nilai panjang, dan nilai b akan sama dengan nilai lebar. Seandainya kamu ganti seperti ini, luas(10, 12). Nilai a akan sama dengan 10 dan nilai b akan sama dengan 12. Got it?
  • Kenapa fungsi keliling tidak menggunakan parameter? Manfaat menggunakan parameter, nilai asli variabel yang berhubungan tidak akan berganti nilai oleh karena menjalankan fungsi. Pada fungsi luas, variabel yang berhubungan adalah variabel panjang dan lebar. Terkadang, pada fungsi tertentu, nilai variabel itu perlu diubah-ubah, padahal kita masih butuh nilai aslinya. Oleh karena itu, variabel itu digantikan dengan variabel dalam parameter dengan mengambil nilai dari variabel panjang dan lebar. Tapi, jika tidak masalah menggunakan variabel aslinya, ya tidak perlu ada parameter. 
  • Terakhir, mengenai pemanggilan fungsi/prosedur. Memanggil fungsi/prosedur hanya tinggal menuliskan nama fungsi/prosedur itu. Oh iya, kamu bisa lho memanggil fungsi untuk mengisi nilai variabel, seperti ini: nilai := fungsi(3, 4); Variabel nilai nanti akan bernilai hasil dari pengembalian nilai fungsi
Got it, brother?

Sekarang, kita coba yang lebih menantang. Pada program tadi, fungsi itu dipanggil di program utama. Tapi, bagaimana jika sebuah fungsi memanggil fungsinya sendiri dan terjadi berulang-ulang sampai kondisi tertentu. Terdengar agak rumit ya. Pola fungsi memanggil fungsinya sendiri disebut Rekursi. Mau coba? Yuk, supaya mudah, coba pahami konsepnya dulu. 

Buat program bernama faktorial.pas. Tulis kode berikut:

uses wincrt;

var
angka : integer;

function faktorial (n : integer) : longint;
begin
if n > 1 then
begin
faktorial := n * faktorial(- 1);
end else
faktorial := 1;
end;

BEGIN
write('Masukan angka: '); readln(angka);
writeln('Faktorial ',angka,' = ',faktorial(angka));
readln;
END.

Huh.... Gimana paham? Kamu harus sudah mengerti apa itu percabangan (Pascal - Mengenal Percababangan Operasi IF) dan tentang tipe data (Pascal - Apa itu variabel dan tipe data?). Agak sulit menjelaskannya. Tapi, saya akan coba. Begini alurnya:

  1. Kita memasukan (input) nilai pada variabel angka.
  2. Output writeln memanggil fungsi faktorial dengan memasukan nilai variabel angka sebagai parameter dan akan sama nilainya dengan variabel n
  3. Misal nilai angka adalah 5, maka juga 5. 
  4. Mulai fungsi faktorial(5).
  5. Masuk ke percabangan fungsi faktorial. Program menjalankan cabang yang pertama, karena nilai n adalah 5 dan 5 nilainya lebih dari 1. Kemudian, fungsi faktorial mengembalikan nilai senilai 5 * faktorial(5 - 1). Artinya adalah 5 * faktorial(4)
  6. Fungsi faktorial dipanggil lagi. Kali ini dengan nilai n sama dengan 4. Program menjalankan cabang pertama lagi, karena nilai n masih lebih dari 1. Kemudian, fungsi faktorial mengembalikan nilai lagi senilai 4 * faktorial(4 - 1), yang artinya 4 * faktorial(3).
  7. Begitu seterusnya, fungsi faktorial dipanggil terus dengan nilai parameternya yang semakin berkurang.
  8. Hingga akhirnya pada saat nilai n sama dengan 2, fungsi faktorial akan mengembalikan nilai senilai 2 * faktorial(2 - 1), yang berarti 2 * faktorial(1).
  9. faktorial(1) dipanggil. Kali ini masuk ke cabang 2, karena nilai n tidak lebih dari 1, melainkan sama dengan 1. Kemudian, fungsi faktorial mengembalikan nilai 1.
  10. Apa kesimpulannya? Fungsi ini akan membentuk pola perkalian yang dalam Matematika disebut faktorial. Fungsi faktorial(5), menghasilkan: 5 x 4 x 3 x 2 x 1 = 120
Got it, brother?

Seru ya! Hehehe......
Sampai disini dulu kita latihan. Oh iya, prosedur juga bisa memanggil fungsinya sendiri lho, tapi tanpa pengembalian nilai. Nah lho, gimana tuh? Silahkan sobat bereksperimen sendiri. Maaf, artikel kali ini belum ada final program. Sebagai gantinya, saya akan berikan kamu sebuah fakta, bahwa"
"Rasa ingin tahu adalah kekuatan hebat yang mendorong eksperimen dan yang menghasilkan pengetahuan. Rasa ingin tahu adalah hal penting meraih kesuksesan."

Jumat, 14 Maret 2014

Pascal - Mengenal Percabangan Operasi IF (Langkah 4)

Percabangan adalah istilah umum dalam pemrograman. Kenapa disebut percabangan? Karena memang istilah ini merujuk ke sebuah blok perintah yang memiliki dua kemungkinan atau lebih yang akan terjadi, sehingga blok perintah itu seperti bercabang-cabang. Cabang mana yang akan terjadi, itu diatur oleh sebuah kondisi yang telah ditentukan programmer. Menentukan kondisi akan berkaitan dengan operasi logika dan nilai True atau False.

Sebelum lanjut membahas, pastikan kamu sudah mengenal apa itu variabel dan tipe data dasar, jika belum lihat artikel Pascal - Apa itu variabel dan tipe data? Pastikan kamu juga sudah mempunyai dan tahu cara menggunakan FreePascal atau sejenisnya, jika belum lihat artikel FreePascal - Alat Belajar Pascal. Jangan-jangan kamu belum tahu juga apa itu input dan output, lihat di artikel Kenalan dengan Pascal - Input dan Output.

Percabangan dapat diumpamakan seperti ini:
Pada suatu hari, Budi diminta ibunya untuk pergi ke warung membeli telur dan beberapa barang lain. Ibunya berkata, "Budi, jika di warung ada 5 telur, beli juga 2 botol susu. Jika di warung ada 10 telur atau lebih, beli juga 1 kg gula. Jika di warung hanya ada telur berjumlah kurang dari 5, beli juga sendal jepit." 
Nah, perintah ibu Budi menggambarkan sebuah percabangan. Disitu saya tekankan pada kata "Jika", kemudian yang saya beri warna oranye dan biru. Warna oranye dinamakan kondisi dan warna biru adalah akibat yang terjadi. Penekanan ada pada kata "jika", dan bahasa inggris jika adalah if, nah if ini adalah perintah pada Pascal untuk melakukan percabangan. Pola programnya akan seperti ini:

if (kondisi) then
begin
....... <kumpulan perintah> ........
end else
begin
....... <kumpulan perintah> ........
end;

Kode end else disana bisa juga dihilangkan jika tidak perlu. Sekarang, kita langsung coba membuat programnya. Buat program baru di FreePascal, beri nama testusia.pas

uses wincrt;

var 
usia : integer;

BEGIN
writeln('Hai aku Pascal!');
write('Berapa  usiamu (isi dengan angka)? '); readln(usia);
if (usia < 20) then
begin
writeln(usia,' tahun?'); 
writeln('Itu masih muda.');
end else
begin
writeln(usia,' tahun?'); 
writeln('Itu sudah dewasa.');
end;
readln;
END.

Pada percabangan di program tadi, kondisinya adalah nilai usia. Jika usia kurang dari 20, Pascal akan berkata, "itu masih muda". Jika usia lebih atau sama dengan 20, Pascal akan berkata, "itu sudah dewasa". Pasti kamu dapat memahaminya. 

Tapi, sebenarnya. Program tadi dapat disederhanakan, sehingga tidak perlu bercabang dua. Mau tahu? Lihat programnya.

uses wincrt;

var 
usia : integer;
katakan : string;

BEGIN
writeln('Hai aku Pascal!');
write('Berapa  usiamu (isi dengan angka)? '); readln(usia);
katakan := 'Itu sudah dewasa.';
if (usia < 20) then
katakan := 'Itu masih muda.';
writeln(usia,' tahun?');
writeln(katakan);
readln;
END.

Dalam percabangan disitu, ada satu kalimat yang berbeda, bukan? Yaitu pada saat Pascal mengatakan muda atau dewasa. Kalimat itu masukan sebagai nilai dari variabel string. Sebelum operasi if, isi variabel katakan dengan nilai yang kita sebut default. Nah, jika kondisi pada operasi if menyatakan benar, makan nilai dari variabel katakan akan berubah. Output nantinya akan menampilkan isi dari variabel katakan.

Mungkin kamu bingung, kenapa pada percabangan diatas, tidak diawali begin setelah then? Karena perintahnya hanya satu, tidak berupa kumpulan perintah (lebih dari 1). Perintah di dalam blok perintah if hanya mengganti nilai variabel katakan. Tapi, perlu diingat, jika bercabang dua dan menggunakan else, tetap harus menggunakan pembuka begin, karena else dihitung sebagai satu blok dengan if, sehingga berarti ada lebih dari 1 perintah di dalam blok.

Got it?

Yuk, kita buat yang agak rumit. Kita akan buat program dari kasus Budi dan ibunya tadi. Percabangannya akan bercabang 4. Buat program baru dengan nama budijajan.pas

uses wincrt;

var 
telur : integer;

BEGIN
writeln('Budi ke warung beli telur, tapi.....'); writeln;
writeln('- Kalau ada 3 telur atau kurang, beli juga gula.');
writeln('- Kalau ada 5 telur atau kurang, beli juga obat sakit kepala.');
writeln('- Kalau ada 10 telur atau kurang, beli juga sendal jepit.');
writeln('- Kalau ada lebih dari 10 telur, jangan beli apa-apa lagi.'); writeln;
writeln('Saat Budi di warung.......');
write('Ada berapa telur disana (isi dengan angka)? '); readln(telur);
if (telur <= 3) then
begin
writeln('Budi membeli ',telur,' telur dan gula.');
end else if (telur <= 5) then
begin
writeln('Budi membeli ',telur,' telur dan obat sakit kepala.');
end else if (telur <= 10) then
begin
writeln('Budi membeli ',telur,' telur dan sendal jepit.');
end else
writeln('Budi hanya membeli ',telur,' telur saja.');
readln;
END.

Wow....! Seru ya! Gimana? Berhasil tidak? Teliti lagi ya kalau gagal. Jangan putus asa! Error dalam program itu adalah hal yang sangat biasa dalam ngoding (memprogram). 

Coba kamu lihat cabang terakhir saat Budi hanya membeli telur saja. Disana tidak diawali dengan begin, kenapa? Itu karena tidak ada else lagi setelahnya, jadi pada blok cabang terakhir hanya ada 1 perintah. Oh iya kenapa di cabang terakhir tidak diakhiri end; sebagai penutup operasi if? Itu karena operasi if tidak perlu ditutup dengan end, kecuali dibuka dengan begin. Ingat ya, end hanya berpasangan dengan begin, bukan dengan if dan lain-lain. Ternyata end itu pasangan yang setia ya..... Ha Ha Ha >_<

Satu hal lagi, apakah kamu bingung kenapa saat telur lebih dari 10, tidak perlu menggunakan if dan kondisi lagi? Jawabannya, karena tidak ada kondisi lain lagi jika semua cabang salah, kecuali telur lebih dari 10. Benar bukan?

Mesin Membaca Program dari Atas

Kode dalam program itu selalu dibaca dari atas oleh mesin. Hal ini juga mencerminkan bagaimana mesin membaca percabangan if. Kita ambil contoh program yang barusan kita buat: 

Jika cabang 1 salah, maka cabang 2 akan dicek kondisinya, dan jika benar, maka cabang selanjutnya dan seterusnya tidak akan diperiksa. Cabang terakhir saat budi hanya membeli telur saja tidak menggunakan kondisi lagi, berarti jika semua cabang salah, maka cabang terakhir adalah pilihan terakhir yang pasti akan dijalankan. Tapi, jika pada cabang terakhir diberikan kondisi, maka jika kondisinya tidak memenuhi, tidak akan ada perintah yang dijalankan. Got it?

Ekperimen
Ada suatu eksperimen untuk membuktikan bahwa mesin membaca program dari atas. Coba cabang ketiga pada program Budi, dipindahkan menjadi cabang pertama. Coba jalankan program dan isi nilai telur dengan nilai kurang dari 3 atau kurang dari 5. Pasti cabang 2 dan 3 (setelah dirubah) tidak akan berjalan, hanya cabang 1. 

Sudah cukup ya penjelasannya. Selain membahas percabangan if, nanti kita akan membahas percabangan dengan case. Percabangan yang lebih efektif dari pada if, jika cabangnya banyak. Semoga artikel ini dapat bermanfaat bagi sobat. 

Program Akhir
Biasanya, saya selalu memberikan program akhir disetiap akhir tutorial, untuk kali ini saya harap kamu yang bereksperimen sendiri. Tapi, saya tetap punya tantangan untuk sobat. 

Coba hitung ada berapa kata "Jika" di artikel ini! 
Jawab di komentar!
Hehehe......

Rabu, 12 Maret 2014

Pascal - Perulangan dengan For (Langkah 3)

Artikel kali ini akan membahas tentang perintah perulangan menggunakan salah satu cara yaitu menggunakan perintah "for". Sebelumnya, kita flashback dulu ke artikel sebelumnya, Pascal - Apa itu Variabel dan Tipe Data?

Apa saja yang sudah kita pelajari? Pada artikel sebelumnya, kita sudah mengetahui tipe data standar yang umum dalam dunia pemrograman dan sudah mengetahui bagaimana penggunaannya. Integer, Boolean, dan String merupakan tipe data standar. Masih belum tahu? Yuk lihat lagi di artikel Pascal - Apa itu Variabel dan Tipe Data? 

Back to topic, apa yang dimaksud perulangan? Bagaimana cara menggunakannya?Bisakah kamu menebaknya dan membayangkannya?

Yang dimaksud perulangan adalah kumpulan perintah yang dapat menjalankan fungsinya berulang-ulang. Lalu, kapan berhentinya kalau diulang terus? Blok perintah itu akan berhenti saat mencapai kondisi tertentu atau saat kondisi yang dimaksud tidak sesuai, tergantung dari sintaks yang digunakan. Pada artikel ini akan dibahas tentang perulangan dengan menggunakan sintaks for. Kamu tentu sudah mengenal integer, bukan? Karena kita akan menggunakan variabel tipe integer.

Berikut ini contoh potongan dari program yang menggunakan perulangan for.

for i := 1 to 5 do
begin
writeln('Aku hebat!');
writeln('Aku bisa!');
writeln('Aku suka berkarya!'); writeln;
end;

Nah, kamu bisa melihat bagaimana cara penulisan perulangan for. Program itu akan menghasilkan output dari perintah writeln sebanyak 5 kali.

Nah, sekarang kita coba program yang aslinya. Sekaligus untuk memantabkan latihan pada artikel sebelum-sebelumnya, kita sambil flashback.

uses wincrt;

var
j, i : integer;
nama, ulang1, ulang2, ulang3 : string;

BEGIN
j := 5;
writeln('Hai aku Pascal!');
write('Siapa namamu? '); readln(nama);
ulang1 := 'Ayo ' + nama + '!';
ulang2 := 'Kamu pasti bisa!';
ulang3 := 'Terus belajar dan berkreasi!';
writeln('Nama yang bagus. Aku akan selalu mendukungmu.'); writeln;
for i := 1 to j do
begin
writeln(ulang1); delay(250);
writeln(ulang2); delay(250);
writeln(ulang3); writeln; delay(500);
end;
writeln('Perulangan for sudah berhenti....... ');
writeln('Silahkan jalankan program dari awal! ^_^');
readln;
END.
------------------------------------------------------------------------------------------------------------------------------
Hasil Output!

Hai aku Pascal!
Siapa namamu? Admin
Nama yang bagus. Aku akan selalu mendukungmu.

Ayo Admin!
Kamu pasti bisa!
Terus belajar dan berkreasi! (Diulangi 5 kali)

Perulangan for sudah berhenti.......
Silahkan jalankan program dari awal! ^_^

Mari kita bedah program diatas.
  • Mengenai pendeklarasian variabel dan memasukan nilai variabel, lihat di artikel Pascal - Apa Itu Variabel dan Tipe Data?
  • Masalah input dan output, sobat bisa lihat di artikel Langkah Pertama Belajar Pascal.
  • Perulangan for membutuhkan variabel sebagai penghitung ke kondisi tertentu. Pada program diatas, variabel penghitungnya adalah variabel i. Kemudian for i := 1 to j berarti variabel i bernilai awal 1 dan akan bertambah 1 terus sampai sama dengan nilai j yang pada program itu bernilai 5. 
  • Dapat disimpulkan dari penjelasan sebelumnya, bahwa angka 1 itu adalah nilai awal variabel yang bisa kamu ubah sendiri. Variabel j adalah nilai akhirnya dan bisa ditentukan sendiri juga dan tidak harus berupa variabel. Setelah ditentukan nilai awal dan akhir variabel i, nilai i akan terus bertambah 1 hingga mencapai nilai akhir. 
Akan lebih baik jika sobat bereksperimen lebih banyak dengan merubah-rubah struktur atau pola atau nilai pada program di atas.

Nah, itu tadi perulangan for dengan nilai i yang bertambah. Perulangan for bisa juga dibuat dengan nilai i yang akan berkurang, misalnya nilai 10 dan nilai akhir 1. Lihat dan coba sendiri program sederhana di bawah.
uses wincrt;

var i : integer;

BEGIN
writeln('Perulangan for dengan nilai i yang naik!');
for i := 1 to 10 do
begin
writeln('i = ',i,'.....'); delay(100);
end;
writeln;
writeln('Perulangan for dengan nilai i yang turun!');
for i := 10 downto 1 do
begin
writeln('i = ',i,'.....'); delay(100);
end;
writeln;
writeln('Bedanya hanya di "to" dan "downto"!');
readln;
END.

Nah, dengan hanya melihat dan mencoba, apalagi bereksperimen, sudah terlihat apa bedanya. Saya rasa tidak perlu dijelaskan lagi. 

Kita sampai pada akhir dari artikel tentang perulangan for dan seperti biasa, saya punya hadiah program buat sobat. Silahkan dipelajari dan dipraktekan sendiri.

uses wincrt;

var
x, y : integer;

BEGIN
writeln('MAGIC!'); writeln;
for y := 1 to 20 do
begin
for x := 1 to y do
write('*');
delay(100);
writeln;
end;
writeln;
for y:= 20 downto 1 do
begin
for x := y downto 1 do
write('*');
delay(100);
writeln;
end;
writeln('----- YOU MADE IT! ----');
readln;
END.

Pascal - Apa itu Variabel dan Tipe Data? (Langkah 2)

Masih ingat pelajaran pertama kita tentang Pascal. Kita belajar input dan output dan tentang aturan-aturan dasar menulis program di Pascal. Mulai dari perintah yang dasar sekali, yaitu writeln dan readln, kemudian bagaimana mengawali blok perintah dan mengakhirinya. Apa itu blok perintah? Apa itu writeln dan readln? Memangnya bagaimana cara mengawali dan mengakhiri blok perintah? Kalau sobat masih mempertanyakannya, Let's go kita flashback ke posting Hai Pascal - Langkah Pertama Belajar Pemrograman (Pascal).

Sekarang, kita akan lanjut ke langkah kedua belajar Pascal. Kalau sobat sebelumnya melihat posting Hai Pascal - Langkah Pertama Belajar Pemrograman (Pascal) dan Pascal - Pemrograman Mudah Untuk Pemula, sudah disinggung sedikit tentang tipe data dan variabel. Sekarang kamu akan segera memahami tipe-tipe data dasar pada Pascal dan variabel.

Sebelumnya, apa itu variabel? Yang disebut variabel adalah sesuatu yang dapat menyimpan nilai. Variabel dibedakan berdasarkan beberapa tipe data. Ingat! Variabel adalah yang menyimpan nilai dan nilainya itu bisa diubah-ubah. Untuk membedakan masing-masing variabel dalam progarm, variabel itu bisa sobat beri nama sendiri. Misalnya sebagai contoh, kamu membuat variabel bertipe integer dengan nama number.

Kali ini, kita akan mengenal 3 tipe data yang sangat umum dan dasar dan ada di setiap bahasa pemrograman.

  1. Integer, variabel yang bertipe integer akan menyimpan nilai berupa angka. Misal seperti contoh tadi, kamu membuat variabel integer bernama number. Kamu dapat memasukan angka berapa saja ke dalam variabel itu. Caranya? Setelah ini akan diberikan contoh. Hanya saja, kamu tidak bisa memasukan nilai berupa huruf atau kalimat, hanya angka atau operasi aritmatika.
  2. Boolean, variabel bertipe booelan akan menyimpan nilai berupa TRUE atau FALSE, atau dalam bahasa, benar atau salah. Apa kamu pernah belajar "Logika Matematika" di SMA? Jika integer terkait dengan aritmatika atau perhitungan atau angka, boolean terkait dengan logika tentang benar atau salah. Maksudnya? Setelah ini! Ingat! Nilai yang dimasukan ke dalam variabel bertipe boolean tidak boleh berupa angka atau huruf atau kalimat, kecuali True/False atau operasi logika
  3. String, pengertian dari tipe variabel ini lebih mudah. Variabel tipe string dapat menyimpan nilai berupa huruf atau kalimat, bahkan angka pun boleh. Kamu menuliskan True atau False ke dalam variabel ini pun boleh. Tetapi, nilai di dalam variabel ini tidak bisa melakukan operasi logika atau aritmatika. Jadi, gunakan dengan tepat. 
Sebelum variabel dapat dapat dimasukan nilai dan digunakan. Variabel harus dipanggil terlebih dahulu. Pemanggilan variabel ini kita kenal dengan istilah pendeklarasian variabel.

Apa saja yang dilakukan saat pendeklarasian variabel? 

Pertama-tama, dahului dengan menulis var. Kemudian, tuliskan nama-nama variabel yang akan digunakan dengan koma sebagai pemisah masing-masing variabel. Lalu, definisikan tipe data variabel itu, apakah string, boolean, integer, dan lain-lain. Jangan lupa setelah mendefinisikan tipe datanya, akhiri dengan tanda titik koma (;).

Bagaimana cara memasukan nilai ke variabel?

Pemasukan nilai variabel tidak bisa disatukan dengan pendeklarasian variabel. Untuk memasukan nilai variabel, ketikan nama variabel, lalu tanda titik dua dan sama dengan (:=), baru tuliskan nilai yang ingin dimasukan, pastikan nilainya sesuai dengan tipe data. Sering terjadi kesalahan dalam memasukan nilai ini, dimana yang seharusnya menggunakan tanda titik dua dan sama dengan (:=), hanya ditulis tanda sama dengan (=). Tanda sama dengan (=) hanya digunakan dalam operasi logika.

Coba lihat kode program dibawah ini dan perhatikan bagaimana cara pendeklarasian, memasukan nilai, dan menampilkan nilai variabel.

uses wincrt;

// Pendeklarasian Variabel. WAJIB!
var
x, y, z : integer;
b, s, t : boolean;
a, h, c : string;

BEGIN
// Memasukan nilai variabel bertipe integer.
x := 5;
y := + 2;
z := + y;
// Memasukan nilai variabel bertipe booelan.
b := true;
s := z = y;
t := z >= y;
//Memasukan nilai variabel bertipe string.
a := 'Aku string a.';
h := 'Aku string h.';
c := + ' ' + h + ' Kami adalah variabel string.';
// Menampilkan nilai variabel;
writeln('x = ',x);
writeln('y = ',y);
writeln('x + y = ',z); writeln
writeln('Boolean b bernilai ',b);
writeln('Apakah z sama dengan y? ',s);
writeln('Apakah z lebih dari atau sama dengan y? ',t); writeln;
writeln('String a berkata, ',a);
writeln('String b berkata, ',h);
writeln('Mereka berdua berkata, ',c);
readln;
END.
------------------------------------------------------------------------------------------------------------------------------
Hasil Output:

x = 5
y = 7
z = 12

Boolean b bernilai TRUE
Apakah z sama dengan y? FALSE
Apakah z lebih dari atau sama dengan y? TRUE

String a berkata, Aku string a.
String h berkata, Aku string h.
Mereka berdua berkata, Aku string a. Aku string h. Kami adalah variabel string.

Supaya lebih membiasakan diri, kamu boleh menulis program diatas dan mencobanya sendiri. Lebih baik lagi jika kamu bereksperimen sendiri dengan mengganti nilai-nilainya dan mencoba-coba.

Saya akan menjelaskan beberapa hal yang baru dari program diatas. Jika sobat merasa ada yang sesuatu yang belum dijelaskan, mungkin saya sudah menjelaskan di artikel sebelum-sebelumnya. Lihat Kenalan dengan Pascal - Input dan Output dan FreePascal -Alat Belajar Pascal.

Sobat dapat mempelajari sendiri dengan melihat program diatas bagaimana cara mendeklarasikan variabel. Oh iya, mungkin sobat melihat ada beberapa baris dengan tulisan warna coklat dan diawali 2 garis miring. Itu disebut komentar. Kamu bisa menambahkan komentar di setiap program yang kamu buat dan komentar itu tidak akan mengganggu output atau eksekusi program.

Lalu apa gunanya komentar? Terkadang, jika program yang kita buat sudah panjang dan agak sulit untuk dimengerti bahkan oleh kita sendiri, sehingga akan membutuhkan waktu untuk mencari baris kode saat kita sedang mencarinya. Nah, dengan menambahkan komentar akan memudahkan kamu untuk menandai bagian-bagian penting dalam program.

Kamu ingat, untuk memasukan nilai bisa dengan mengoperasikan perhitungan dan contohnya pada program diatas y := x + 5 dan z := x + y. Nilai y adalah nilai x ditambah 5 dan nilai z adalah nilai x ditambah nilai y.

Memasukan nilai dalam variabel boolean bisa juga dengan operasi logika seperti pada s := z = y dan t := z >= y, maksudnya adalah nilai s akan benar jika z sama dengan y (akan salah bila tidak sama), dan nilai t akan benar jika z lebih dari atau sama dengan nilai y (akan salah bila tidak). Nilai z dan y disini adalah variabel integer yang tadi sudah dimasukan nilainya.

Kemudian, pada variabel string. Jangan salah sangka dengan tanda tambah pada pendeklarasian nilai variabel c. Tanda tambah pada string bukan berarti penjumlahan, melainkan penggabungan string. Sekalipun, ada variabel bertipe string a dan b. Kemudian, kamu memasukan a = 3 dan b = 4. Lalu kamu mendeklarasikan variabel c (tipe string) = a + b. Hasilnya output bukan 7, melainkan 34.

Saya rasa mengenai menampilkan output variabel dengan writenln tidak perlu dijelaskan lagi. Kamu bisa lihat di artikel Pascal - Langkah Pertama Belajar Pemrograman (Pascal).

Tambahan...

Tipe data integer hanya dapat menampung angka yang tidak lebih besar dari 32767 dan tidak lebih kecil dari -32768. Sehingga, jika kamu harus menggunakan variabel yang nilainya lebih, kamu bisa menggunakan Longint. Sehingga, saat mendeklarasikan akan seperti ini:

var 
x, y, z : Longint;

Ada lagi yang disebut Shortint, Byte yang berhubungan dengan integer. Tipe data lain selain yang terkait integer ada char,  real, double dan yang akan lebih menantang kamu akan belajar tentang array. Semua itu akan dibahas di lain artikel.

Seperti biasa, saya akan memberi hadiah di setiap akhir latihan. Ayo coba supaya kamu lebih terbiasa dengan program. Mungkin ada perintah dan operasi yang belum kamu mengerti, tapi jika belum paham tidak apa-apa, karena program dibawah ditujukan juga untuk memperkenalkan latihan selanjutnya. Ingat! Ditulis ya, jangan copy-paste!

uses wincrt;

// Deklarasi Variabel
var
x, y, z : integer;
benar : boolean;
hip, hore : string;

BEGIN
// Memasukan Nilai Variabel
hip := 'Hip!';
hore := 'Hore!';
x := 3;
z := 0;

// Mulai operasi tanpa henti (Tekan Ctrl + C jika ingin stop)
while true do
begin

// Perulangan dengan for
for y := 1 to x do
begin
z := z + 1;
benar := y = x;

// Mengecek kondisi variabel boolean benar
// Jika benar
if benar then                                  
begin
z := 0;
writeln(hore);
delay(1000); writeln;
// Jika salah
end else
begin
writeln(hip);
delay(250);
// Penutup End...... Saya harap kamu tahu masing-masing pasangan end-nya dengan begin
end;
end;
end;
END.

Minggu, 09 Maret 2014

FreePascal - Alat Belajar Pascal

Sudah tahu apa itu Pascal? Yap, Pascal adalah salah satu bahasa pemrograman. Lebih detail tentang Pascal, lihat di Pascal - Pemrograman Mudah Untuk Pemula. Posting kali ini lebih fokus untuk membahas apa-apa saja yang akan digunakan dan bagaimana menggunakannya untuk mulai menapak ke dunia pemrograman Pascal. Setelah melihat posting ini, silahkan sobat lihat di posting Hai Pascal - Langkah Pertama Belajar Pascal. Disitu sobat akan diarahkan mulai darimana belajar Pascal ataupun baru mulai mengenal bahasa pemrograman dengan cara dan bahasa yang mudah sekali dimengerti

Apa? Bisa juga untuk yang awam pemrograman? Ya, tentu saja. Pascal diciptakan dengan tujuan untuk mengenalkan konsep pemrograman kepada yang masih awam. 

Let's back to topic! 

Bagaimana seseorang dapat belajar cara memburu tanpa tahu apa alat yang akan dia gunakan untuk memburu hewan? Oleh karena itu, sebelum memulai Pascal kita harus mengetahui dulu apa yang akan kita gunakan. Supaya komputer dapat mengerti apa yang kita tulis dengan bahasa Pascal, komputer butuh sebuah penterjemah yang disebut compiler. Seperti seorang tukang kayu menggunakan kapak, dalam hal ini kapaknya adalah compiler. Merek kapak berbeda-beda, begitu juga dengan compiler diterbitkan oleh kelompok yang berbeda-beda. Untuk semua tutorial Pascal di blog ini, kita akan menggunakan versi compiler Pascal bernama FreePascal.


Dimana saya bisa dapat FreePascal?

Di toko buku terdekat. Upss! Bukan, silahkan sobat download Free di link ini: (Hanya 41,2 MB)
FreePascal ini berlaku untuk semua platform, baik itu Mac, Linux, atau Windows. Versi untuk 32-bit dan 64-bit juga sama.

Link Download FreePascal

Setelah download, jalankan installer Pascal-nya. Install-nya mudah, saya rasa tidak perlu diuraikan cara meng-install FreePascal. Simpan FreePascal dimana saja anda suka, tapi jangan sampai terkena sinar matahari secara langsung *loh. 

Menyimpan dan Mendokumentasi Hasil Membuat Program Pascal
Langkah selanjutnya. Cari dan masuk ke folder tempat menyimpan FPC (FreePascal). Kemudian masuk ke folder bin, disitu ada 1 folder lagi, masuk saja. Di dalam folder itu, buat folder baru, beri nama "Program Pascal" (atau apa saja terserah anda). Folder itu berfungsi untuk menyimpan program-program hasil latihan pemrograman Pascal dan program-program hasil eksperimen sobat. Gunanya apa membuat folder baru? Supaya folder bin tidak berantakan dan kamu bisa dengan mudah mencari program yang pernah kamu buat.

Membuat Program Baru dan Menyimpannya
Untuk membuat program baru. Klik menu File, lalu New. Supaya nantinya program baru bisa dijalankan, lebih baik langsung di-save/disimpan dan diberi nama. Untuk menyimpan file, klik menu File, lalu Save atau tekan F2 supaya lebih instan. Di kotak Save, klik folder "Program Pascal", lalu OK. Beri nama program, lalu OK. 

Menjalankan Program
Untuk menjalankan program. Klik menu Run, lalu Run atau lebih instan tekan tombol Ctrl dan F9. Bagaimana cara exit secara manual saat program sedang berjalan (running)? Tekan tombol Ctrl dan C. Kamu dapat melihat output (keluaran/tampilan di layar) hasil menjalankan program sebelumya tanpa menjalankan ulang program dengan cara klik menu Debug, lalu klik Output atau bisa juga User screen (Alt + F5). 

Copy, Paste, Undo, dan Redo
Perintah itu tidak bisa dijalankan dengan menekan tombol shortcut seperti biasanya. Misal Copy biasanya Ctrl dan C, pada FreePascal yang berlaku adalah Ctrl dan Insert. Paste, tombol Shift dan Insert. Sedangkan, Undo dan Redo tidak memiliki shortcut, hanya bisa digunakan lewat menu edit.

Begitulah hal-hal dasar yang perlu diketahui tentang penggunaan FreePascal. Jika mau meng-uninstall, masuk saja folder FPC, lalu jalankan unins000.exe. Silahkan belajar Pascal dan selamat menikmati dunia pemrograman!

Bagaimana kita tahu jika program error? Dan mengatasinya?
Terjadi kesalahan dalam menulis program adalah hal yang biasa. Kode yang error bukan hal jarang bagi programmer. Pada FPC, kita dapat mengetahui bahwa ada kesalahan pada baris-baris kode yang kita buat dari pesan error compiler yang otomatis muncul saat sobat mencoba menjalankan (Run) program yang sudah dibuat.
Contoh Error pada FreePascal
Letak Error pada FreePascal

Pada contoh program diatas. Kenapa pada pesan error, kesalahan diidentifikasi ada pada baris ke-9, karakter ke-1, padahal error disebabkan kurangnya titik koma sebagai penutup perintah pada baris ke-8, karakter ke-28? Itu karena kesalahan penulisan pada baris ke-8, karakter ke-28 mempengaruhi baris selanjutnya, sehingga perintah writeln di baris ke-9 dianggap sebagai perintah yang tidak sesuai aturan. Pada program diatas, cara mengatasi error hanya tinggal menambahkan titik koma diakhir baris ke-8.

Dengan adanya pesan error pada FPC dengan disertasi baris kode mana yang salah sangat memudahkan kita menggunakan FPC. Sekalipun sudah banyak sekali baris kode yang kita buat, kesalahan dapat dengan mudah diperbaiki dengan mengetahui dimana letak kesalahannya.

Baiklah sobat. Alat dan cara menggunakannya sudah tahu. Sekarang tinggal praktek di lapangan. Yuk, lihat posting selanjutnya.



Kenalan dengan Pascal - Input dan Output

Disinilah kita memulainya. Sudah dijelaskan pada posting Pascal - Pemrograman Untuk Pemula bahwa Pascal bisa membantu sobat untuk belajar konsep pemrograman. Bisa dibilang Pascal merupakan langkah awal untuk memasuki dunia pemrograman, walaupun untuk belajar pemrograman tidak harus melalui Pascal, tapi Pascal akan memudahkan sobat. Pascal adalah langkah awal belajar pemrograman dan posting ini adalah langkah awal belajar Pascal :)

LOL
Apakah pemrograman masih asing bagi sobat? Melihat beberapa baris kode saja sudah aneh rasanya. Tepat sekali sobat datang ke blog ini. Blog ini bisa mengubah pola pikir sobat tentang pemrograman. Let's start it! 

Tutorial Pascal disini menggunakan FreePascal. Saya anggap anda sudah menginstall FreePascal di komputer anda. Jika belum, silahkan lihat artikel FreePascal - Alat Belajar Pascal.

Sebelumnya, di artikel ini kamu harus sudah mengetahui apa itu input dan output. Kedua istilah itu sangatlah umum di dunia komputer. Input adalah proses pemasukan nilai atau data. Pengertian mudahnya, saat terjadi proses input nanti, kamu dapat mengetikan sesuatu di layar hitam. Output adalah proses penampilan nilai atau data. Saat proses output terjadi, di layar hitam akan tampil hasil-hasil proses dari perintah-perintah dalam program.

Tapi, output itu akan tampil, jika kamu memerintahkannya untuk tampil dan proses input akan terjadi jika kamu memerintahkannya juga. Kamu adalah pengatur segalanya disini..... Ha Ha Ha. Untuk memerintahkan proses output, gunakan perintah write atau writeln. Apa bedanya? Nanti kamu akan tahu. Kemudian, untuk memerintahkan proses input, gunakan perintah readln. Saat proses input berlangsung, program tidak akan memproses perintah selanjutnya, sebelum kamu menekan enter. Tapi, tulis dulu apa yang mau di-input,  kosong juga tidak apa-apa sih.

Kita akan langsung membuat sebuah program. Asik kan? Baru belajar, sudah bikin program. Kita mulai dari yang paling mudah. Coba buat program baru di Pascal dan save dengan nama hai.pas. Masih belum tahu cara membuat program baru di FreePascal, lihat posting saya selanjutnya. Lalu, isikan kode berikut ini. Ingat, usahakan menulis sendiri kodenya, jangan mengcopy-paste, untuk kebaikan anda dan tidak ada untung/ruginya untuk saya.

Program  hai.pas
uses wincrt;

BEGIN
writeln('Hai yang disana!');
writeln('Namaku Pascal');
writeln;
writeln('Bolehkah aku tahu namamu?');
readln;
END.

Coba jalankan program itu. Tentunya sobat sudah tahu cara menjalankannya. Jika tidak, lihat tutorial FreePascal - Alat Belajar Pascal. Outputnya (keluaran) seharusnya sama dengan output dalam kotak diatas, kecuali jika sobat mengubah tulisan yang berwarna biru.

Jika programnya gagal dan muncul pesan error, jangan berkecil hati dulu. Ada beberapa kemungkinan kesalahan dalam memprogram, dalam hal ini khususnya Pascal. Dalam program ini kemungkinannya adalah:
  1. Kurang teliti menambahkan tanda titik koma (;) setiap akhir perintah.
  2. Kurang teliti menambahkan tanda petik satu (') setiap awal dan akhir penulisan output writeln.
  3. Ingat untuk penutup blok perintah yaitu END menggunakan tanpa titik (.) diakhir, bukan menggunakan titik koma (;). 
  4. Kurang satu huruf saja dalam menuliskan perintah.
  5. ........... Tambahkan keluhan lain di kotak komentar...............
Supaya lebih memahami, saya akan menjelaskan satu per satu perintah dari baris kode diatas:

  1. uses wincrt; perintah ini harus selalu ada setiap kali membuat program di Pascal. WAJIB ada!
  2. BEGIN selalu digunakan untuk memulai blok perintah. Tidak perlu diakhiri dengan titik koma. Haruskah ditulis dengan huruf besar semua? Tidak. Tapi, untuk memulai blok perintah utama, saya sarankan menggunakan huruf besar semua, supaya mudah membedakan begin blok perintah lain dengan BEGIN blok perintah utama. Apalagi itu blok perintah utama dan blok perintah lain? Blok perintah itu apa? Kamu sebenarnya sudah mengerti, nanti baru kamu menyadarinya :)
  3. END selalu digunakan untuk mengakhiri blok perintah. Selalu diakhiri dengan titik koma, kecuali END untuk mengakhiri blog perintah utama diakhiri dengan tanda titik.
  4. writeln('Tulisan Apa saja'); adalah perintah untuk memunculkan output (keluaran). Selalu menggunakan tanda kurung untuk membuka blok output, sedangkan tanda petik satu untuk menghasilkan output dari apa yang kamu tulis. 
  5. Kamu lihat ada perintah writeln yang tidak didampingi tanda kurung atau output. Fungsinya akan sama seperti kamu menggunakan tombol "Enter" saat menulis. Jadi, sengaja diselipkan supaya ada sela diantara output "Namaku......" dengan "Bolehkah.....".
  6. Ada writeln, ada lagi readln. Bedanya mudah saja. writeln adalah perintah untuk menghasilkan output atau keluaran yang nanti akan ditampilkan, sedangkan readln adalah perintah untuk meng-input atau memasukan nilai. Kamu akan lebih mengerti nanti. Pada program itu, memang tidak perlu memasukan nilai apa-apa, jadi kenapa pakai readln? Hanya supaya kamu bisa melihat output-nya saat program berjalan. Coba saja kamu hapus!
Penjelasan diatas saya rasa sudah cukup terperinci. Kamu boleh bereksperimen dengan menghapus salah satu baris kode itu dan melihat apa yang terjadi.

Ayo kita lanjutkan! Pada program yang tadi kamu menggunakan perintah readln. Tapi, baru sekedarnya memahami fungsi readln. Sekarang kita akan lanjutkan lagi. Di program ini juga kita akan berkenalan dengan salah satu jenis tipe data, yaitu String. Pascal juga akan mengajak kita berkenalan, lho..... Check it out!

Program hai2.pas
uses wincrt;

var 
nama, usia  : string;

BEGIN
writeln('Hai yang disana!');
writeln('Namaku Pascal');
writeln;
write('Bolehkah aku tahu namamu? '); readln(nama);
writeln('Hai, ',nama);
writeln('Nama yang bagus.');
writeln;
write('Boleh aku tahu usiamu? '); readln(usia);
writeln('Hmm..... Jadi, usiamu ',usia);
writeln('Usia mu masih cukup muda.');
writeln('Kalau usiaku sudah tua sekali.');
writeln('Jangan sia-siakan usiamu nak!');
writeln('BERKARYALAH!');
END.

Apa program diatas sulit dipahami? Tidaklah pasti. Tetap perhatikan kemungkinan kesalahan yang terjadi, jangan pernah frustasi jika program mu tidak berjalan dengan baik. Kesalahan atau error itu adalah hal yang sangat-sangat wajar bagi programmer. Pastinya beberapa perintah kamu sudah tahu fungsinya, saya akan menjelaskan beberapa saja.
  1. Blok perintah diantara uses wincrt; dan BEGIN berfungsi untuk mendeklarasikan tipe data atau yang disebut variabel. Apa itu mendeklarasikan variabel? Gampangnya, mendeklarasikan variabel itu seperti memanggil variabel supaya siap kita gunakan dalam program kita. Jadi, variabel itu WAJIB dipanggil dulu sebelum digunakan. Kamu bisa lihat sendiri cara pendeklarasiannya. nama dan usia adalah contoh variabel bertipe string. Lihat artikel Pascal - Apa itu variabel dan tipe data?
  2. Ada yang berbeda di program ini, yaitu penggunaan write tanpa "ln". Bedanya dengan writeln, perintah write tidak otomatis berganti baris. Kamu bisa coba dengan merubah-rubah perintah write  dan writeln di program tadi.
  3. Sekarang perintah readln berisi variabel. Apa yang kamu tulis nanti akan masuk ke dalam variabel yang berada di dalam kurung readln dan variabel itu bisa digunakan untuk perintah selanjutnya.
  4. Ada lagi yang berbeda, yaitu di dalam perintah writeln terdapat variabel. Itu memang bisa dilakukan agar yang tampil di layar output nanti berupa nilai dari variabel itu. Kamu bisa lihat di contoh output. INGAT! Yang bukan variabel di dalam perintah writeln harus berada di dalam tanda petik satu. Dan INGAT juga untuk memisahkannya dengan tanda koma. Kamu juga bisa membuat seperti ini lho:

    writeln('Namaku adalah ',nama,' dan usiaku sudah ',usia).
Hmm.... Jadi, apa yang sudah kita pelajari? 

Pada posting kali ini kita sudah belajar tentang penggunaan perintah write, writeln, dan readln. Kita juga mempelajari struktur dasar pemrograman Pascal seperti penempatan begin dan end serta pendeklarasian variabel. Kita juga sudah menyinggung sedikit tentang variabel, tapi untuk lebih lanjutnya lihat di artikel Pascal - Apa itu variabel dan tipe data?.

Sobat harus tahu bahwa pendeklarasian variabel pada Pascal juga berlaku pada beberapa bahasa pemrograman lain, salah satunya bahasa C dan C++, namun berbeda sintaks.

Penggunaan pembuka dan penutup blok perintah pada Pascal, yaitu begin dan end juga berlaku pada banyak bahasa pemrograman lain. Hanya saja lebih singkat, seperti bahasa C++, pembuka blok perintah hanya menggunakan tanda kurung kurawal buka  ({) dan penutupnya tanda kurung kurawal tutup (}). Tag dalam HTML juga menggambarkan pembuka dan penutup blok perintah.

Saya harap dengan penjelasan yang terperinci sobat dapat memahami pelajaran pertama kita tentang Pascal. Mohon dimaafkan bila ada kekurangan dan saya harap sobat mau memberikan kritik dan saran, maupun pertanyaan.

Saya punya beberapa baris kode penutup posting ini untuk lebih memperlancar pemahaman sobat dan lebih membiasakan diri sobat dengan pemrograman. Walau terlihat lebih panjang, itu baik untuk membiasakan sobat. Ayo coba dan jangan mengcopy-paste!

Program hai_final.pas
uses wincrt;

var
namatanggalbulanhobi, cita2  : string;
tahun1, tahun2 : integer;

BEGIN
writeln('Hai yang disana!');
writeln('Namaku Pascal');
writeln;
writeln('Aku ingin tahu lebih banyak tentang dirimu.');
writeln('Beritahu aku beberapa hal:');
writeln;
write('Nama: '); readln(nama);
write('Tanggal lahir: '); readln(tanggal);
write('Bulan lahir: '); readln(bulan);
write('Tahun lahir: '); readln(tahun1);
write('Hobi: '); readln(hobi);
write('Cita-cita: '); readln(cita2);
writeln;
writeln('Terima kasih atas informasinya.');
write('Ngomong-ngomong, sekarang tahun berapa ya? '); readln(tahun2);
writeln('Terima kasih.');
writeln;
writeln('Aku akan mengulangi data tentang dirimu.');
writeln; delay(2000);
writeln('Nama kamu ',nama);
writeln('Kau lahir tanggal ',tanggal,'-',bulan,'-',tahun1);
writeln('Usiamu sekarang adalah ',tahun2 - tahun1);
writeln('Kamu suka ',hobi);
writeln('Terakhir, kau ingin menjadi ',cita2);
writeln;
writeln('Tetap semangat belajar ya!');
readln;
END.

About Codex-Mania Blog

Kenapa Blog Codex-Mania?
Banyak blog tentang pemrograman komputer bertebaran di dunia maya. Tapi kenapa blog Codex-Mania lahir sebagai blog baru bertemakan pemrograman komputer juga? Padahal, situs-situs lainnya pun telah memuat artikel seputar bahasa pemrograman lebih dulu dan sekarang lebih banyak memuat artikel. Penulis memiliki hobi dalam bidang ini dan Penulis mempunyai sebuah visi untuk menjadikan blog Codex-Mania sebagai sebuah Center Tutorial Bahasa Pemrograman. Walaupun, jumlah artikel saat ini masih jauh sekali dari apa yang dibayangkan, tapi sebuah gedung tinggi pun tidak akan jadi dalam 1 hari itu juga. Blog ini sedang dalam proses perkembangan.

codex is work in progress


Pengetahuan penulis akan dunia pemrograman tidak setinggi pengetahuan para profesor atau akademisi. Tapi, penulis memiliki passion untuk terus belajar, berkreasi, dan juga berbagi di bidang pemrograman. Pengetahuan penulis akan dunia pemrograman akan berkembang bersama dengan blog ini. Seiring berjalannya waktu, blog ini akan memuat lebih banyak artikel tutorial tentang beragam bahasa pemrograman yang bermanfaat dan berguna.

Tujuan Blog Codex-Mania?
Penulis berusaha untuk memuat artikel yang sangat mudah dimengerti. Setiap artikel dikemas semenarik mungkin dan tidak monoton. Setiap artikel tentunya disertai contoh-contoh program dan juga penjelasan rinci tentang program yang baru saja dibuat. Disini kita tidak belajar secara formal, tapi secara santai dan menyenangkan. Sehingga bukan hanya orang yang ahli saja yang dapat membacanya, orang awam sekalipun yang sama sekali belum pernah menyelami dunia pemrograman komputer dapat langsung berenang bebas bagaikan perenang ahli di dalam lautan biner.

Tujuan blog ini adalah menjadi wadah bagi para pemula maupun yang sudah ahli di bidang komputer dan siapapun yang ingin belajar mengenai komputer. Yang pemula dapat menyerap ilmu dari blog ini, sedangkan yang sudah ahli yang kebetulan lewat di blog ini dapat mengoreksi tulisan di blog ini dan berbagi ilmunya.

Kemajuan Dunia TI Indonesia
Penulis berharap blog Codex-Mania dapat menjadi referensi bagi benih-benih developer software Indonesia. Penulis meyakini bahwa ilmu bukanlah untuk dipelajari, tetapi untuk digunakan. Setelah belajar dan menguasai, berkreasi adalah langkah selanjutnya. Mulai berkreasi dari hal yang sangat kecil, itu tidak masalah, asalkan terus berkembang. Jika sobat perhatikan orang-orang sukses terutama yang sukses membangun usaha di bidang Teknologi Informasi, mereka membangun kesuksesan mereka dari hal yang sederhana dan terkadang mereka sendiri tidak menyangka akan sesukses itu mereka.

Kenapa penulis membuat blog Codex-Mania ini dengan tujuan seperti itu? Penulis bercita-cita untuk memajukan dunia TI Nusantara. Karena penulis selalu memperhatikan kemajuan dunia TI di Indonesia kalah jauh sekali dengan negara-negara maju. Memang mungkin tidak seharusnya negara berkembang disandingkan dengan negara maju, namun dengan begitu bisa menjadi tolak ukur kita dalam melihat seberapa jauh ketertinggalan negara ini. Jika penulis perhatikan, developer-developer di bidang TI di Indonesia memang sudah mulai bermunculan, tapi sayap garuda masih belum dipandang sepenuhnya oleh dunia, bahkan oleh negaranya sendiri.

Finally......
Begitulah sepintas tentang blog ini. Penulis memahami masih banyak kekurangan dari blog ini, oleh karena itu penulis sangat mengharapkan kritik dan saran dari pengunjung blog Codex-Mania demi perbaikan kualitas blog ini. Hanya dengan kritik dan saran sobat, SELAMAT untuk sobat, karena sobat telah ikut mengambil bagian dalam pengembangan dunia TI di Indonesia. Sobat yang merasa masih sangat pemula, jangan khawatir, saya juga begitu (dulu). Tapi, hal yang terpenting adalah:

Keep Spirit