PENGENALAN BAHASA PEMROGRAMAN PASCAL
SEJARAH SINGKAT
Pascal merupakan bahasa pemrograman yang umum digunakan sebagai pengantar dalam mempelajari algoritma dan pemrograman. Pascal merupakan bahasa mesin tingkat tinggi yang relatif mudah dipelajari karena lebih dekat dengan bahasa manusia, contoh begin, end, write dan read. Pascal diambil dari nama ahli matematika, Blaise Pascal , yang dikembangkan oleh Niklaus Wirth pada tahun 1970. Pascal dirancang untuk keperluan akademik dan cukup populer hingga tahun 1990an.
Salah satu aplikasi yang yang saat ini masih mendukung bahasa pascal adalah freepascal. Freepascal bersifat gratis dan dapat diinstal pada komputer modern tanpa menggunakan emulator atau program tambahan. Pascal memang tidak populer saat ini, akan tetapi masih banyak digunakan sebagai bahasa pengantar pada algoritma dan pemrograman. PENGENALAN IDE FREE PASCAL
Setelah instalasi freepascal berhasil, umumnya freepascal terinstal pada folder ’ C:\FPC\2.6.4’ (silahkan buka menggunakan file explorer). Berikut gambar IDE free pascal:
Buatlah folder baru (nama anda) dalam folder diatas. Folder ini akan dijadikan folder kerja freepascal anda. contoh seperti gambar berikut:
PROGRAM PERTAMA
Untuk memberikan kesan pertama, mari kita buat sebuah program baru pada freepascal. Ikuti langkah berikut: 1. Buat file baru
Untuk membuat sebuah file, terdapat pada menu file -> new. contoh sebagai berikut:
Berikutnya, ketik-kan kode program sebagai berikut:
Perhatikan beberapa hal berikut:’
a. Sebuah program diawali dengan keyword ’program’.
d. Kode bersifat case-insensitive (perhatikan Writeln dan writeln).
2. Menyimpan file
Penyimpanan file dapat dilakukan pad menu file->simpan. Contoh tampilan sebagai berikut:
Perhatikan tempat penyimpanan file tersebut (pen merah). Untuk dapat berpindah folder keatas klik double tanda ’..\’ (warna hitam). sampai pada folder yang sudah anda buat sebelumnya (nama anda). Nama file isikan pada bagian atas (warna biru). Klik OK untuk menyimpan. Anda dapat periksa hasil penyimpanan file tersebut pada file explorer anda.
3. Men-compile
Meng-compile adalah sebuh proses pembuata program yang siap dieksekusi. Compile dapat dilakukan pada menu Compile->Compile atau shortcut alt+F9. Jika compile berhasil , akan ada informasi seperti berikut yang menyatakan program ada berhasil di-compile. Jika terjadi kesalahan mohon cek kembali syntac yang sudah ada buat.
Setelah file berhasil di-compile, terdapat file2 baru pada folder kerja anda. Seperti gambar berikut:
Jika hello.exe (type application) dijalankan maka program dapat berjalan serpeti berikut:
untuk menutup aplikasi tersebut tekan ENTER . 4. Menjalan kode langsung dari IDE
Untuk menjalan kan program langsung dari IDE dapat menggunakan menu Run->Run atau CTRL+F9. Perintah ini melakukan compile dan execute melalui IDE freepascal. Hasil perintah tersebut sebagai berikut :
Untuk menutup aplikasi, tekan ENTER. CATATAN:
Ada dapat membuat program melalui text editor lainnya, seperti Notepad++. Untuk menguji dan mendapatkan hasil program, tetap harus membuka terlebih dahulu pada IDE freepascal.
DISKUSIKAN
1. Apakah ekstensi File kode program untuk pascal ??? 2. Apakah fungsi perintah write dan readln diatas???
5. Umumnya terdapat banyak kesalahan2 baik secara syntax maupun logika dalam membuat sebuah program. Coba hilangkan tanda ’;’ pada salah satu statement, atau hilangkan tanda petiknya, atau kata ’begin’ ganti ’mulai’, atau kata ’end’ tanpa tanda ’.’ , apa yang ada temui pada hasil compile???
6. Pada langkah 5, dapatkah anda menemukan informasi kesalahan tersebut. Jelaskan??? 7. Buatlah program tentang algoritma pada tugas anda sebelumnya???
STRUKTUR PROGRAM, TIPE DATA, KONSTANTA, VARIABEL DAN OPERATOR STRUKTUR PROGRAM
Perhatikan contoh program di bawah ini:
(sumber : http://www.duniailkom.com)
PASCAL merupakan bahasa program yang deklaratif dan terstruktur. Deklaratif berarti beberapa bagian harus dideklarasikan terlebih dahulu, seperti uses, type, var, const, function dan procedure . Bagian deklarasi dimulai dari setelah statement program dan sebelum statement begin. Main program terdapat pada bagian setelah statement begin dan sebelum statement end. Terstruktur berarti harus mengikuti kaidah penulisan kode.
TIPE DATA
PASCAL merupakan bahasa pemrograman yang sangat strict terhadap pemakaian tipe data. Apabila tipe data yang digunakan tidak sama, maka PASCAL akan komplain dengan tipe data tersebut. Jenis tipe data yang digunakan akan berpengaruh pada jangkauan dan jumlah memory yang akan digunakan pada komputer. Berikut berbagai macam tipe data yang digunakan pada PASCAL.
Bagian ini menjelaskan pemakaian operator dalam sebuah ekspresi kode. Terdapat 2 kategori yaitu : operand dan operator. Operand adalah nilai yang akan dioperasikan sedangkan operator adalah operasi yang dilakukan pada operand. Berikut beberapa operator yang terdapat pada PASCAL.
Operator Assignment
Operato r
Penjelasan Contoh
:= Pemberian nilai (Assignment) a := “belajar PASCAL” Operator Aritmatika
Operator Penjelasan Contoh
+ Penambahan 2 + 3 = 5
– Pengurangan 5 – 2 = 3
* Perkalian 2 * 3 = 6
/ Pembagian (real/pecahan) 14 / 4 = 3.5 div Pembagian (integer/angka bulat) 14 div 4 = 3
mod Sisa hasil bagi 14 mod 4 = 2
Operator String
Operato
r Penjelasan Contoh
+ Pengambungan (concatenate ) “belajar” + “PASCAL”
Operator Perbandingan / Relasional
Operator Penjelasan Contoh
= Sama dengan 5 = 5 -> True
<> Tidak sama dengan 5 <> 5 -> False
> Lebih besar 5 > 6 -> False
< Lebih kecil 5 < 6 -> True
>= Lebih besar atau sama dengan 5 >= 3 -> True <= Lebih kecil atau sama dengan 5 <= 5 -> True Operator Logika / Boolean
Operator Penjelasan Contoh
and Logika AND TRUE and FALSE, hasilnya: FALSE or Logika OR TRUE or FALSE, hasilnya: TRUE xor Logika XOR TRUE xor FALSE, hasilnya: TRUE not Logika Negasi not TRUE , hasilnya: FALSE
Operator Bitwise
Operato
r Penjelasan Contoh
not Bitwise NOT not 1100, hasilnya: 0011
and Bitwise AND 1100 and 0101, hasilnya: 0100 or Bitwise OR 1100 and 0101, hasilnya: 1101 xor Bitwise exclusive OR 1100 xor 0101, hasilnya: 1001 shl Bitwise shift left 0100 shl 1, hasilnya: 1000 shr Bitwise shift right 0100 shr 1, hasilnya: 0010 << Bitwise shift left 0100 << 1, hasilnya: 1000 >> Bitwise shift right 0100 >> 1, hasilnya: 0010 Operator Set / Himpunan
Operator Action
+ Union
– Selisih (Difference) * Irisan (Intersection)
>< Selisih simetri (Symmetric difference) <= Beranggotakan (Contains)
include Menambahkan element baru exclude Mengeluarkan element baru
in Cek apakah ada di dalam himpunan Operator Address (Pointer)
Operat or
Penjelasan Contoh
@ Menampilkan alamat memory sebuah variabel
@nama_varia bel
^ Menampilkan nilai variabel dari alamat
INPUT/OUTPUT
Untuk output dari hasil menggunakan perintah write atau writeln dengan parameter variabel atau nilai yang akan ditampilakan. Untuk input dari user dapat menggunakan perintah readln dengan parameter sebuah variable agar nilai input dari user dapat disimpan. Perintah ini dapat membuat program yang anda buat menjadi interaktif. Perhatikan potongan kode program berikut.
DISKUSI
Silahkan menanyakan hal terkait pada materi ini ???? TUGAS
Buatlah program sederhana yang interaktif untuk menghitung Keliling dan Luas sebuah bangun datar Ellips serta tuliskan hasilnya dalam bentuk laporan.
SELEKSI DAN PERULANGAN
Dalam pembuatan program, umumnya tidak saja menggunakan alur sequential (berurutan). Terdapat beberapa algoritma yang mengharuskan menggunaan alur seleksi (pemilihan) dan perulangan. Pada pertemuan ini akan dibahas kedua macam alur program ALUR SELEKSI
a. IF-THEN dan IF-THEN-ELSE
Struktur IF_THEN PASCAL sebagai berikut:
Kondisi merupakan keadaan yang akan evaluasi. Kondisi harus bertipe data Boolean (true/false). Apabila kondisi menghasilkan benar, maka kode program setelah THEN akan dijalankan. Untuk IF-THEN-ELSE, apabila kondisi menghasilkan salah, maka kode program setelah ELSE akan dijalankan. Perhatikan, perintah sebelum ELSE tidak ditutup dengan tanda ‘;’. Umumnya terjadinya banyak kesalahan logika pada penggunaan perintah ini, untuk itu gunakan indentasi dalam mempermudah.
CONTOH KASUS : menentukan bilangan ganjil/genap
CONTOH KASUS SELEKSI MAJEMUK: menentukan sebuah penilaian sah atau tidak
CONTOH KASUS SELEKSI BERSARANG: menentukan bilangan apakah ganjil/genap serta >/< 10
b. CASE dan CASE-ELSE
Dalam kondisi tertentu IF-THEN-ELSE tidak efisien untuk digunakan. Struktur program CASE PASCAL sebagai berikut:
Penggunaan CASE-ELSE menggunakan expression sebagai bagian yang akan dievaluasi. Expression merupakan variable dengan tipe data skalar. Pemakaian CASE-ELSE cukup
ramping, tetapi hanya untuk pemakaian sederhana. Expression dan kondisi yang digunakan terbatas pada tipe data scalar saja. Pemakaian yang lebih kompleks, lebih baik menggunakan struktur IF-THEN-ELSE
CONTOH KASUS: menentukan nama bulan
ALUR PERULANGAN
a. FOR-TO-DO / FOR-DOWNTO-DO
Alur perulangan menggunakan FOR-TO-DO / FOR-DOWNTO-DO digunakan apabila terdapat kepastian tentang banyak perulangan yang harus dilakukan. FOR-TO-DO digunakan untuk perulangan dengan nilai counter menaik (ascending), sedangkan FOR-DOWNTO-DO
digunakan untuk perulangan dengan nilai counter menurun (descending). Berikut syntax pemakaian FOR-TO-DO / FOR-DOWNTO-DO.
CONTOH KASUS: menampilkan perkalian 1-10 pada sebuah bilangan
CONTOH KASUS: menyanyikan lagu anak ayam
b. WHILE-DO
keadaan benar/true. Didalam kode program perulangannya mengharuskan terdapat sebuah kode program yang dapat memenuhi/merubah kondisi untuk menghentikan perulangan. Jika hal ini tidak terdapat dalam bagian perulangan, maka komputer akan menjalan
terus-menerus sampai komputer tidak dapat lagi bekerja (KOMPUTER HANG). Berikut struktur program WHILE-DO.
CONTOH KASUS: membuat deret matematika kelipatan 3
c. REPEAT-UNTIL
Alur perulangan REPEAT-UNTIL mirip dengan WHILE-DO. Perbedaan keduanya terdapat pada tempat evaluasi kondisi/syarat perulangan. REPEAT-UNTIL melakukan perulangan sampai kondisi bernilai benar/true. Berikut struktur program REPEAT-UNTIL.
CONTOH KASUS: membuat sebuah deret matematika
BREAK/CONTINUE
CONTOH KASUS: menghentikan sampai perkalian 7 pada perkalian bilangan 5.
CONTOH KASUS: melanjutkan/melompati perulangan ‘Hello Indonesia’ pada langkah ke-5
DISKUSI
1. Kapan penggunaan CASE yang baik?
2. Dapatkah CASE pada penyeleksian data bertipe string? 3. Apakah perbedaan WHILE-DO dan REPEAT-UNTIL??
TUGAS
Buatlah laporan tentang penyelesaian permasalahan algoritma berikut:
1. Terdapat data saluran TV sebagai berikut: 1) TVRI, 2) RCTI 3)SCTV, 4)ANTV, 5) INDOSIAR, dan 6) METROTV. Buat program yang memilih saluran dan menampilkan nama saluran TV. 2. Data lapisan udara berdasarkan ketinggiannya:
0 ≤ tinggi < 10 km : Troposfer 10 ≤ tinggi < 40 km : Stratosfer 40 ≤ tinggi < 70 km : Mesosfer 70 ≤ tinggi < 400 km : Termosfer tinggi ≥ 400 km : Eksosfer
buat program masukkan ketinggian serta nama lapisan udaranya?
3. Keterangan macam segitiga berdasarkan panjang masing-masing sisi segitiga? 4. Menampilkan 20 buah bilangan genap pertama?
5. Menghitung deret berikut
Prosedur seperti sebuah program kecil dan sering disebut sebagai sub-program.
Contoh 1. a. tanpa prosedur b. dengan prosedur beberapa hal yang dapat dicatat dalam kedua contoh yaitu:
1. Ukuran program 2. Kerapian
3. Pengulangan kode 4. Efisiensi debug
Prosedur dapat pula menerima sebuah parameter. Jika dilihat pada contoh pertama bagian (b), terdapat perulangan GotoXY(x,y). perulangan tersebut dapat dieliminasi menggunakan
parameter pada prosedur. Parameter dalam procedur dideklarasikan dalam tanda kurung dan setiap parameter dipisahkan dengan tanda ‘;’. Variable parameter yang digunakan dalam procedure hanya dapat diakses di dalam procedure itu sendiri. Perhatikan contoh berikut
FUNCTION
Tipe sub-program berikutnya adalah function. Perbedaan utama dengan prosedur adalah bahwa function selalu mengembalikan sebuah nilai. Sebuah function dideklarasikan mirip dengan prosedur, serta pula dapat mempunyai parameter. Tipe data pengembalian sebuah function berada diakhir deklarasi. Berikut contoh program menggunakan function.
DISKUSI
Silahkan menanyakan hal terkait pada materi ini ????
ARRAY , RECORD DAN POINTER
Tipe data sederhana, seperti : integer, float, char, string dan Boolean, sudah cukup dalam menyelesaikan berbagai macam algoritma. Akan tetapi, banyaknya data yang akan terlibat didalam penyelesaian algoritma, menjadikan tipe data sederhana tidak efektif. Hal ini dapat diatasi dengan menggunakan tipe data bentukan.
ARRAY
Tipe data Array sering muncul pada berbagai macam algoritma. Array merupakan sekumpulan data yang sejenis. Komponen Array dibedakan menjadi dua, yaitu element dan index. Element merupakan isi data/anggota array, sedangkan index merupakan urutan dari element. Berikut contoh struktur program array :
Pada program diatas, program membuat array dengan tipe integer sebanyak 10 element dengan index dimulai dari 0 sampai 9. Index dalam array dimulai dari 0 bukan 1. Tidak harus semua element dalam array terisi, serta tidak pula harus berurutan dalam pengisisian elemen. Perhatikan index array yang digunakan. Apabila mengakses atau pun mengisi element pada index yang tidak terdapat dalam array, maka terjadi error range check.
Untuk mengakses elemen dari array 2/3 dimensi, menggunakan index yang dipisahkan dengan ‘,’; contoh nilai[1,2,1].
Pada kedua contoh macam array yang digunakan adalah Fixed Array (tetap). Array dapat dibuat dinamis dalam program. Berikut contoh array dinamis.
Dalam menentukan jumlah elemen array menggunakan setlength. Setelah variable array di-set panjangnya, array kemudian dapat diakses seperti fixed array .
RECORD
Record merupakan sekumpulan data yang berlainan jenis. Record adalah sebuah varibel yang mempaketkan variable-variable lainnya. Konsep record mirip dengan konsep objek
meskipun pemrograman objek tersendiri dalam pascal. Berikut contoh penggunaan record
POINTER
Pointer merupakan tipe data alamat memory. Tipe data ini cukup rumit bagi kebanyakan programmer pemula. Memory Komputer dapat dibayangkan sebagai lemari besar yang terdapat banyak laci lemari yang diberi nomor laci. Nomor laci lemari ini yang disebut sebagai pointer. Pada pendeklarasian sebuah variable, maka komputer akan membuatkan alamat memori untuk ditempati oleh variable tersebut. Berikut contoh penggunaan Pointer
Pointer umumnya digunakan pada pemakaian struktur data yang komplek dan cukup rumit. Akan tetapi, Penggunaan pointer akan mengefektifkan pemakaian memory serta lebih dinamis pada komputer dibanding tipe data lainnya.
DISKUSI
1. Tipe data string sepertinya merupakan jenis array ?
2. Dimana letak kedinamisan array dinamis bila masih menggunakan setlength?
TUGAS