PERTEMUAN I
PENGANTAR ALGORITMA DAN PEMROGRAMAN Tujuan pembelajaran :
1. Mahasiswa dapat menjelaskan pengertian algoritma
2. Mahasiswa dapat membedakan antara algoritma dengan program
3. Mahasiswa dapat memahami pentingnya algoritma dalam pembuatan program
1.1. Apakah Itu Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.
1.1.1. Definisi Algoritma
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar.
Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus
apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut.
Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.
1.1.2. Beda Algoritma dan Program
Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa:
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan di antaranya:
1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
PERTEMUAN II TIPE DATA
Secara umum, tipe data dalam pemrograman Pascal adalah: 1. Tipe data sederhana
a. Tipe data standard (standard data type)
b. Tipe data didefinisikan pemakai (user defined data type) 2. Tipe data terstruktur
3. Tipe data penunjuk
Tipe data berfungsi membatasi jangkauan data ynag akan dilaksanakan.
TIPE DATA SEDERHANA
Tipe Data Standard – Integer
Tipe integer adalah tipe data yang nilainya bulat. Ada 5 macam tipe integer, yaitu: 1. Shortint dengan jangkauan -128 .. 127
2. Integer dengan jangkauan -32768 .. 32767
3. Longint dengan jangkauan -2147483648 .. 2147483647 4. Byte dengan jangkauan 0 .. 255
5. Word dengan jangkauan 0 .. 65535 Contoh deklarasi:
Var
A, B, C : Integer; D, E, F : Longint;
Operator-operator yang berlaku pada tipe data integer, yaitu : Operator arithmatik : +, - , *, /, div, mod
Operator logic : <, = , > , <= , >= , <> – Real
Real merupakan tipe bilangan pecahan. Bilangan real bisa dinyatakan dalam bentuk eksponensial. Ada 5 macam tipe real, yaitu:
1. Real dengan jangkauan 2,9 x 10-38 .. 1,7 x 1038 2. Single dengan jangkauan 1,5 x 10-45 .. 3,4 x 1038 3. Double dengan jangkauan 5.0 x 10-324 .. 1,7 x 10308 4. Extended dengan jangkauan 3,4 x 10-4932 .. 1,11 x 104932 5. Comp dengan jangkauan -263 + 1 .. 263 - 1
Contoh deklarasi: Var
A, B, C : Real; D, E, F : Double;
Operasi – operasi yang bisa dikerjakan oleh tipe data real adalah:
• Operasi biner, seperti penjumlahan (+), pengurangan (-), perkalian (*), dan pembagian (/)
• Operasi uner. Contoh: -4.25, +1.25 – Boolean
Boolean adalah tipe data yang hanya mempunyai dua kemungkinan, yaitu true dan false. Biasanya tipe data ini digunakan untuk perbandingan.
Var A, B, C : Boolean;
Operator NOT, OR, AND, dan XOR dapat dibentuk secara bersamaan menjadi sebuah ungkapan Boolean yang rumit.
Misal: Var
A,B,C: Boolean; Begin
C := false; B := true;
End.
Menurut anda, berapakah nilai A? – Char
Char adalah semua tombol yang terdapat pada keyboard atau lebih lengkapnya semua karakter yang terdapat pada kode ASCII.
Catatan : Apabila char ingin dijadikan sebagai konstanta maka karakter yang dimasukkan harus diapit dengan tanda kutip satu. Dan apabila karakter itu berupa tanda kutip satu maka harus diapit dengan dua tanda kutip satu.
Beberapa fungsi untuk memanipulasi tipe daa char:
1. Ord(x) dengan x adalah data bertipe char. Fungsi ini digunakan untuk memperoleh nilai urutan dalam kode ASCII yang digunakan untuk melambangkan karakter tersebut. Contoh: Ord('C') adalah 67.
2. Char(x) dengan x adalah data bertipe byte. Fungsi ini adalah kebalikan dari fungsi Ord. Nilai yang diperoleh merupakan karakter ASCII yang dinyatakan dengan urutan ke x. Contoh: Char(67) adalah 'C'.
3. Pred(x) dengan x adalah data bertipe char. Fungsi ini digunakan untuk mengetahui karakter yang mendahului x. Contoh: Pred('h') adalah 'g'.
4. Succ(x) dengan x adalah data bertipe char. Fungsi ini digunakan untuk mengetahui karakter sesudah x. Contoh: Succ('h') adalah 'i'. Jika x tidak mempunyai penerus, maka nilai fungsi ini tidak terdefinisikan.
5. Upcase(x) dengan x adalah data bertipe char. Jika x merupakan huruf kecil maka akan dikembalikan huruf kapitalnya. Contoh: upcase('a') adalah 'A'.
– String
String adalah data yang berisi sederet karakter yang terletak diantara tanda kutip satu. Jika karakter kutip merupakan bagian dari konstanta string, maka ditulis dengan menggunakan dua buah tanda kutip satu berurutan. Nilai data string akan menempati memori sebesar maksimla jumlah karakter yang dapa ditampung
ditambah denga 1 byte (index ke-0) untuk menyimpan panjang string yang sebenarnya. Jika panjang string tidak ditulis, maka panjang string dianggap 255 karakter. Panjang string yang diijinkan antara 1 sampai 255.
Bentuk umum dari deklarasi tipe string adalah:
Var pengenal : string[panjang];
dimana
pengenal : nama variabel
panjang : bilangan bulat yang menunjukkan banyaknya karakter (1 – 255). Untuk tipe data string, operator yang berlaku adalah operator penggabungan (+). Tipe data didefinisikan pemakai (user-defined data type)
– Subrange
Tipe data subrange adalah suatu range yang menunjukkan nilai terkecil dan nilai terbesar yang dapat dipergunakan. Deklarasi tipe data subrange mempunyai bentuk:
Type pengenal = konstanta1 .. konstanta2;
dimana:
pengenal : nama tipe data yang dideklarasikan konstanta1 : batas bawah nilai data
konstanta2 : batas atas nilai data
Kedua konstanta di dalam subrange harus bertipe ordinal yang sama, di mana nilai konstanta pertama lebih kecil atau sama dengan nilai konstanta kedua. Tipe data real tidak dapat digunakan sebagai nilai subrange, karena buka tipe ordinal.
Contoh:
Type tanggal = 1 .. 31; bulan = 1 .. 12;
Tipe data enumerated (skalar) menunjukkan kumpulan dari nilai yang urutannya sudah pasti. Nilai dari tipe yang dideklarasikan ini akan diwakili dengan pengenal – pengenal (identifiers) yang akan menjadi nilai suatu konstanta.
Contoh:
Type
bahasa = (delphi, java, c, pascal, basic); bulan = (maret, april, mei, juni, juli);
Tipe data bulan mempunya 5 elemen dari maret sampai juli. Dari urutannya, maret adalah identifier berupa konstanta bernilai 0 dan juli bernilai 4. Yang perlu diperhatikan dengan tipe data skalar ini adalah tipe data ini sudah berbeda dengan tipe standar yang ada dan pascal tidak mengijinkan operasi dengan tipe data yang berbeda.
Derajat Operator
Anda sudah mengenal beberapa tipe data di dalam Pascal dan operatornya. Di dalamPascal, operator – operator tersebut memiliki derajat atau tingakatan. Adapun kegunaan dari derajat ini adalah Pascal dapat menentukan operator mana yang akan di jalankan terlebih dahulu.
Misal:
x := 4 + 5 * 3. Menurut anda, berapakah nilai dari x? Apakah 27 (hasil dari 9 * 3) atau 19 (hasil dari 4 + 15).
Berikut ini urutan operator berdasarkan derajatnya:
@, not, *, /, div, mod, as, and, shl, shr, +, -, or, xor, :=, <>, <, >, <=, >=, in
Berdasarkan dari urutan operator di atas, maka nilai x pada x := 4 + 5 * 3 adalah 19, karena operator * lebih dulu dikerjakan daripada operator +. Akan tetapi, jika kita ingin agar operator + dikerjakan terlebih dahulu, kita bias meletakkan operasi penjumlahan tersebut di dalam kurung, musalnya: x := (4 + 5) * 3. Di sini nilai x itu adalah 27, karena di dalam Pascal operasi yang di dalam kurung akan dilakukan terlebih dahulu, tidak dipengaruhi oleh derajat operator
PERTEMUAN III
PENGENALAN PROGRAM PASCAL
1.1 Pengenalan Pascal
Pascal adalah bahasa tingkat tinggi yang orientasinya pada segala tujuan, dirancang oleh Prof. Niklaus Wirth dari Technical University di Zurich, Switzerland. Nama pascal diambil sebagai penghargaan terhadap Blaise Pascal, ahli matematik dan philosophi terkenal abad 17 dari Perancis. Beberapa bahasa pemrograman tingkat tinggi lainnya yang ada yaitu BASIC dan DELPHI.
Sedangkan bahasa pemrograman tingkat rendah yaitu bahasa pemrograman yang masihbanyak menggunakan tanda-tanda sehingga bahasa ini cenderung lebih “kotor”. Beberapa bahasa pemrograman tingkat rendah yang sering digunakan adalah C, C++ dan Java.
Mari kita melihat perbedaan antara bahasa Pascal dan C untuk pembanding dalam sintaks yang digunakan:
PASCAL
uses crt; var a : integer; begin
clrscr;
writeln('Masukkan nilai antara 0 sampai 100 : '); readln (a);
if a > 5 then begin
writeln('Nilai a lebih besar dari 5');
writeln('Tekan sembarang tombol untuk keluar'); end ;
else begin
writeln('Nilai a lebih kecil atau sama dengan 5'); writeln('Tekan sembarang tombol untuk keluar'); end; readkey; end. C #include <stdio.h> #include <conio.h> int a;
void main() { clrscr();
printf(“Masukkan nilai antara 0 sampai 100 : “); scanf(“%d”, &a);
if (a > 5) {
printf(“Nilai a lebih besar dari 5\nTekan sembarang tombol untuk keluar”); } else {
printf(“Nilai a lebih kecil atau sama dengan 5\nTekan sembarang tombol untuk keluar”);
} getch(); }
Dua penggalan program di atas akan menghasilkan program yang sama persis yaitu meminta sebuah input berupa angka antara 0 sampai 100. Kemudian sebuah tulisan akan muncul tergantung dari nilai input yang dimasukkan. Dari 2 bahasa tersebut, dapat dilihat bahwa dalam bahasa Pascal lebih sederhana dan lebih banyak menggunakan bahasa manusia. Sedangkan dalam bahasa C, lebih banyak penggunaan simbol.
Turbo Pascal dan C merupakan program compiler. Compiler sendiri berarti program yang menerjemahkan tulisan berupa kode program menjadi bahasa mesin yang dapat dimengerti oleh komputer. Proses yang dilakukan disebut compile atau compiling. Suatu program dapat di-compile dengan menggunakan kombinasi tombol Alt + F9. Sedangkan untuk menjalankan program, tombol yang dapat digunakan adalah Ctrl + F9. Bila selama proses compile terdapat error atau kesalahan dalam penulisan program, maka Turbo Pascal atau C akan memberitahukan letak kesalahan tersebut sehingga pengguna dapat memperbaikinya di halaman editor.
Turbo Pascal merupakan bahasa yang case insensitive yang berarti penulisan dalam huruf kapital maupun huruf kecil tidak dipermasalahkan. Akan tetapi pada C yang case sensitive, maka penulisan huruf kapital atau kecil harus benar-benar diperhatikan.
1.2 Struktur Program Pascal
Struktur dari suatu program pascal terdiri dari sebuah judul program dan suatu blok program atau badan program. Blok program dibagi lagi menjadi dua
bagian, yaitu : bagian deklarasi dan bagian pernyataan. Secara ringkas, struktur suatu program pascal dapat terdiri dari :
1. Judul program 2. Blok program a. Bagian deklarasi - deklarasi label - deklarasi konstanta - deklarasi tipe - deklarasi variable - deklarasi prosedur - deklarasi fungsi b. Bagian pernyataan
Program pascal yang paling sederhana adalah program yang hanya terdiri dari sebuah bagian pernyataan saja.
Bentuk umum : Begin
Statement; End .
1.2 .1. Judul Program
Judul program sifatnya sebagai dokumentasi saja, tidak signifikan terhadap proses program.
Bentuk umumnya :
Program nama program;
1.2 .2. Blok Program
1.2.2.1. Statement keluaran write dan writeln
Fungsinya untuk mencetak hasil pengolahan data (keluaran). Kedua statement ini dapat berisi sembarang argument.
Bentuk umum :
Write (pengenal1, pengenal 2); atau Writeln (pengenal 1, pengenal 2, …); Contoh :
Program satu; Begin
Write (‘ SELAMAT ‘);
Writeln (‘BELAJAR PEMROGRAMAN PASCAL ‘); Write (‘ di Laboratorium STMIK NW Anjani ‘); Readln;
End.
1.2.2.2. Deklarasi konstanta ( Const )
Definisi konstanta diawali dengan kata cadangan Const diikuti oleh kumpulan identifier yang diberi suatu nilai konstanta. Data konstanta nilainya sudah ditentukan dan pasti, tidak dapat dirubah didalam program.
Bentuk umum :
Const identifier1 = nilai 1; identifier 2= nilai 2; Contoh : Program contoh_konstanta; Const Potongan = 0.2 ; Gaji = 25000 ; Namaperusahaan = ‘PT ABC’ ; Begin
Writeln ( ‘Potongan =’, Potongan ) ; Writeln ( ‘Gaji =’, Gaji ) ;
Writeln ( ‘Nama =’, Namaperusahaan) ; End .
1.2.2.3. Deklarasi variabel ( Var )
Variabel adalah identifier yang berisi data yang dapat diubah-ubah nilainya didalam program. Semua perubah/variabel yang akan digunakan dalam program harus didefinisikan terlebih dahulu di awal program.
Bentuk umum :
Var identifier : tipe data ; Contoh :
Program contoh_variabel; Var
Total, Gaji, Tunjangan : real ; Jumlahanak : integer ;
Keterangan : string [25] ; Begin
Gaji : = 500000 ; Jumlahanak : = 3 ;
Tunjangan : = 0.25 * Gaji + Jumlahanak * 30000 ; Total : = Gaji + Tunjangan ;
Keterangan : = ‘Karyawan Teladan’ ; Writeln ( ‘ Gaji bulanan = Rp. ‘ , Gaji ) ; Writeln ( ‘ Tunjangan = Rp. ‘ , Tunjangan ) ; Writeln ( ‘ Total gaji = Rp. ‘ , Total ) ;
Writeln ( ‘ Keterangan = Rp. ‘ , Keterangan ) ; Readln;
1.2.2.4. Statement masukan (Read / Readln )
Read dan readln digunakan untuk membaca data. Statement Read tidak memperhatikan batas baris, rinci data akan selalu tidak tergantung apakah mereka ada di baris yang sama atau tidak. Statement Readln memulai pembacaan data pada posisi baris saat itu dan pergi ke awal baris baru setelah pembacaan selesai.
Bentuk umum :
Read (identifier) ; atau Readln (identifier); Contoh :
Program contoh_variabel; Var
Total, Gaji, Tunjangan : real ; Jumlahanak : integer ;
Keterangan : string [25] ; Begin
Write ( ‘ Masukkan Gaji ‘) ; readln (Gaji );
Write (‘ Masukkan jumlah anak ‘) ; readln (Jumlahanak) ; Tunjangan : = 0.25 * Gaji + Jumlahanak * 30000 ;
Total : = Gaji + Tunjangan ;
Keterangan : = ‘Karyawan Teladan’ ; Writeln ( ‘ Gaji bulanan = Rp. ‘ , Gaji ) ; Writeln ( ‘ Tunjangan = Rp. ‘ , Tunjangan ) ; Writeln ( ‘ Total gaji = Rp. ‘ , Total ) ;
Writeln ( ‘ Keterangan = Rp. ‘ , Keterangan ) ; Readln;
End .
1.2.2.5. Komentar
Komentar adalah bagian dari program yang tidak akan diproses oleh compiler (Free Pascal). Komentar hanya digunakan untuk dokumentasi saja. Cara pemberian komentar
adalah dengan menambahkan // untuk 1 baris atau {…} untuk lebih dari 1 baris. Contoh pemberian komentar:
Program Komentar; Begin
//Ini Adalah Komentar (Pernyataan – pernyataan ini Tidak kan Diproses}
1.2.2.5. Unit
Di dalam Pascal, ada bagian yang disebut sebagai unit. Unit ini menyimpan fungsi dan prosedur standard yang sudah didefinisikan oleh pembuat compiler. Beberapa unit standard yang ada dalam Pascal adalah Crt, System, Graph, Dos, Printer, dan Overlay.
Cara penggunaan unit adalah dengan menambahkan statemen Uses nama_unit; pada bagian Deklarasi.
Misal: Uses Crt;
Beberapa fungsi dan prosedur yang ada dalam unit Crt: 1. Clrscr
Clrscr adalah suatu prosedur untuk membersihkan layer. Contoh: Uses crt;
Begin
Writeln(‘Layar Sudah Bersih’); Readln;
End. 2. Readkey
Readkey adalah fungsi masukan yang hanya akan mengambil satu karakter masukan. Jenis variable yang dapat diinput oleh readkey pun hanya jenis variable karakter.
Contoh: Uses crt; Var A : Char; Begin
Write(‘Tekan karakter apa saja di dalam keyboard’); A := Readkey;
Writeln(‘Karakter yang barusan anda tekan adalah: ’, A); Readln;
End.
3. TextBackground
TextBackground merupakan prosedur untuk mengganti warna background tulitan yang ditampilhan di layar dengan warna yang kita inginkan.
Perintah yang digunakan adalah: Textbackground(warna);
Warna merupakan variable yang bisa diganti dengan nama warna atau nilai warna tersebut:
Warna Konstanta Nilai Warna Konstanta Nilai
Hitam Black 0 Coklat Tua Dark Brown 8
Biru Blue 1 Biru Muda Light Blue 9
Hijau Green Green 2 Hijau Muda Light Green 10
Cyan (Biru Laut)
Cyan 3 Cyan Muda Light Cyan 11
Merah Red 4 Merah Muda Light Red 12
Magenta Magenta 5 Magenta
Muda
Light Magenta
13
Coklat Brown 6 Kuning Yellow 14
Coklat Muda Light Gray 7 Putih White 1 15
Contoh: Uses Crt; Begin
Textbackground(Red);
Writeln(‘Laboratorium Komputer STMIK Syaikh Zainuddin NW Anjani ’); Readln;
End. 4. Textcolor
Textcolor merupakan prosedur yang digunakan untuk mewarnai tulisan. Perintahnya adalah:
Textcolor(warna);
Cara pengisian warna sama dengan Textbackground. Contoh:
Uses crt; Begin
Textbackground(Red); Textcolor(Blue);
Writeln(‘Laboratorium Komputasi FMIPA UGM’); Readln;
End.
Beberapa fungsi dan prosedur untuk operasi Aritmatika:
Sqrt(Value) _ fungsi ini digunakan untuk menghasilkan nilai akar pangkat dua Abs(Value) _ untuk menghasilkan nilai mutlak
Ln(Value) _ untuk mencari nilai logaritma natural Exp(Value) _ untuk mencari nilai eksponennya
Trunc (Value) _ untuk memotong nilai real ke suatu nilai integer
Round(Value) _ untuk membulatkan nilai real ke nilai integer yang terdekat
PENYELEKSIAN KONDISI 1. Pilihan tunggal Bentuk umum : IF kondisi THEN Statement Contoh : Program empat; Var
Total, Gaji, Tunjangan : real ; Jumlahanak : integer; Keterangan : string [25] ; Y : char; Label ulang; Begin Ulang :
Write ( ‘ Masukkan Gaji ‘) ; readln (Gaji );
Write (‘ Masukkan jumlah anak ‘) ; readln (Jumlahanak) ; Tunjangan : = 0.25 * Gaji + Jumlahanak * 30000 ;
Total : = Gaji + Tunjangan ;
Keterangan : = ‘Karyawan Teladan’ ; Writeln ( ‘ Gaji bulanan = Rp. ‘ , Gaji ) ; Writeln ( ‘ Tunjangan = Rp. ‘ , Tunjangan ) ; Writeln ( ‘ Total gaji = Rp. ‘ , Total ) ;
Writeln ( ‘ Keterangan = Rp. ‘ , Keterangan ) ; Writeln;
Write (‘ Mau menghitung lagi [ Y / T]’); Y :=readkey;
IF upcase (y) = ‘Y’ then goto ulang; Readln;
End . 2. Pilihan ganda Bentuk umum : IF kondisi 1 THEN Statement 1 ELSE Statement 2
Contoh program untuk menentukan apakah bilangan yang dimasukkan merupakan bilangan genap atau ganjil.
Program lima; Var
I, Bil : integer; Ket : string; Begin
Write ( ‘ Masukkan bilangan yang akan diuji : ‘); readln ( I); Bil := I mod 2;
IF Bil = 0 then
Ket :=’ Bilangan Genap ‘ ELSE
Ket :=’ Bilangan Ganjil ’; Write (‘ Bilangan : ‘ , I , ‘ adalah ‘, Ket ); Readln ; End. 3. Pilihan majemuk Bentuk umum : IF kondisi 1 THEN Statement 1
ELSE IF kondisi 2 THEN
Statement 2 ElSE
Statement berikutnya
Contoh program untuk menentukan kedudukan parabola dan garis tersebut apakah berpotongan , bersinggungan atau tidak keduanya. Diketahui Y = Ax2 + Bx + C dan garis Y = Mx + N. Diskriminan D = (B – M ) 2 – 4 A ( C – N ). Jika D > 0 maka berpotongan, jika D = 0 maka bersinggungan dan jika D < 0, maka tidak keduanya .
Program enam; Var
A , B , C , D , M , N : real; Ket : String;
Begin
Writeln ( ‘ Data untuk parabola Y= A * x * x + Bx + C ‘); Write ( ‘ Masukkan nilai fungsi kuadrat x : ‘); readln ( A ); Write ( ‘ Masukkan nilai fungsi x : ‘); readln (B ); Write ( ‘ Masukkan nilai konstanta : ‘); readln ( C ); Writeln (‘ Data garis Y = Mx + N ‘);
Write ( ‘ Masukkan nilai fungsi x : ‘); readln ( M ); Write ( ‘ Masukkan nilai konstanta : ‘); readln ( N ); D : = sqr ( B – M) – 4 * A * ( C – N );
IF D > 0 THEN Ket := ‘ berpotongan’
ELSE IF D = 0 THEN Ket := ‘ bersinggungan ‘ ELSE Ket := ‘ tidak keduanya ’;
Writeln ( ‘ Kedudukan parabola dan garis tersebut adalah ‘ , Ket); Readln; End. 4. Statement CASE Bentuk umum : CASE ungkapan OF Label 1 : statement 1; Label 2 : statement 2; Label n : statement n; END; Contoh : Program tujuh ; Var
Ket , Nama : string; Kode : char; Begin
Write ( ‘ Masukkan nama anda :’); readln ( Nama ); Write (‘ Pilih kode jurusan :’); readln ( Kode ) ; Case upcase (kode) OF
‘ A ‘ : Ket :=’ Jurusan Teknik Informatika ‘; ‘ B’ : Ket := ‘ Jurusan Sistem Informasi ‘;
‘ C ’ : Ket := ‘ Jurusan Ilmu Komputer ‘; ‘ D ‘ : Ket := ‘ Jurusan Teknik Komputer ‘; End;
Writeln ( ‘ Nama Anda : ‘, Nama ); Writeln ( ‘ Kode jurusan anda :’, Kode ); Writeln ( ‘ Keterangan :’, Ket ); Readln;
End. Soal Latihan
1. Buatlah program untuk menentukan suatu bilangan yang dimasukkan oleh user, merupakan bilangan genap atau ganjil
2. Buatlah sebuah program untuk menentukan bilangan tahun yang dimasukkan oleh user merupakan bilangan tahun kabisat atau bukan
3. Buatlah sebuah program yang akan meneriman masukan bilangan bulat dari user. Jika bilangan yang dimasukkan 0, maka program akan menampilkan string ‘Minggu’; jika user memasukkan bilangan 1, maka program akan menampilkan string ‘Senin’; dan seterusnya sampai Sabtu; jika user memasukkan bilangan lebih dari 6, maka akan keluar string ‘Hari tidak valid’.
PERULANGAN 1. Statement perulangan For ….. To ... Do
Digunakan untuk mengulang statement atau satu blok statement berulang kali sejumlah yang ditentukan. Perulangan dapat dalam bentuk positif , perulangan negative dan perulangan tersarang.
Bentuk umum :
For variable := awal To akhir Do Statement Contoh : Program delapan; Var I : integer; Begin For I:= 1 to 5 do Begin
Write (‘hallo, selamat belajar praktikum pascal’); End;
Readln; End .
2. Statement perulangan While ……Do
Digunakan untuk melakukan proses perulangan suatu statement atau blok statement terus menerus selama kondisi ungkapan logika pada WHILE masih bernilai benar.
Bentuk umum :
While kondisi Do Statement Contoh : Program sembilan; Var I : integer; Begin I:=1 ; While I <= 5 do Begin
I:=I + 1; End;
Readln; End .
3. Statement perulangan Repeat ……Until
Digunakan untuk mengulang statement – statement atau blok statement sampai kondisi yang diseleksi UNTIL tidak dipenuhi.
Bentuk umum :
Repeat statement Until kondisi Contoh : Program sepuluh; Var I : integer; Begin I:=1 ; Repeat
Write (‘hallo, selamat belajar praktikum pascal’); I:=I + 1;
Until I > 5; Readln; End .
Kapan menggunakan While dan kapan menggunakan Repeat ?
⇒ Gunakan struktur While pada kasus yang mengharuskan kondisi objek terlebih dahulu sebelum objek tersebut dimanipulasi.
⇒ Gunakan struktur Repeat pada kasus yang terlebih dahulu memanipulasi objek , baru kemudian memeriksa kondisi objek tersebut.
Soal Latihan
1. Buatlah program untuk menampilkan kalimat berikut : 1, Praktikum Bahasa Pascal , Jurusan Teknik Informatika
Semeter Genap Tahun Ajaran 2009 /2010
2, Praktikum Bahasa Pascal , Jurusan Teknik Informatika Semeter Genap Tahun Ajaran 2009 /2010
3, Praktikum Bahasa Pascal , Jurusan Teknik Informatika Semeter Genap Tahun Ajaran 2009 /2010
Dst …….
2. Buatlah sebuah program untuk menampilkan semua bilangan ganjil yang kurang dari 100.
* * *
* * * * * *
* * * * * *
* * * *
untuk n = 4 untuk n = 3 untuk n = 2
LARIK ( ARRAY )
Larik adalah tipe terstruktur yang terdiri dari sejumlah komponen yang mempunyai tipe yang sama. Banyaknya komponen dalam suatu larik ditunjukkan oleh suatu indeks. Tiap-tiap komponen larik dapat diakses dengan menunjukkan nilai indeksnya.
Bentuk umum : Var
variable : array [index) of tipe Contoh :
1.
program array1_dimensi; var
jum,i : integer;
nama : array [1..100] of string [20]; nim : array [1..100] of string [10]; almt : array [1..100] of string [30]; begin
writeln('Program Mendata Mahasiswa STMIK SZ NW'); write('Masukkan Jumlah Mahasiswa = '); readln(jum); for i := 1 to jum do
begin
writeln('No',i);
write('Nama Mahasiswa : '); readln(nama[i]); write('Nim Mahasiswa : '); readln(nim[i]); write('Alamat Mahasiswa : '); readln(almt[i]); end;
for i := 1 to jum do begin
writeln('Nama : ',nama[i]); writeln('Nim : ',nim[i]); writeln('Alamat : ',almt[i]); end; end. 2. program array1_dimensi; var jum,i : integer;
nama : array [1..100] of string [20]; nim : array [1..100] of string [10]; almt : array [1..100] of string [30]; begin
writeln('Program Mendata Mahasiswa STMIK BM'); write('Masukkan Jumlah Mahasiswa = '); readln(jum); for i := 1 to jum do
begin
writeln('No',i);
write('Nama Mahasiswa : '); readln(nama[i]); write('Nim Mahasiswa : '); readln(nim[i]); write('Alamat Mahasiswa : '); readln(almt[i]); end;
gotoxy(08,1);writeln('DATA MAHASISWA/I STMIK SZ NW ANJANI'); writeln('---');
writeln('No Nama Nim Alamat ');
writeln('---'); for i := 1 to jum do begin gotoxy(01,4+i); writeln(i); gotoxy(05,4+i); write(nama[i]); gotoxy(26,4+i); write(nim[i]); gotoxy(44,4+i); writeln(almt[i]); end;
writeln('---'); end;
Soal Latihan
Buatlah program untuk menampilkan himpunan C = A ∩ B, dengan ketentuan sebagai berikut :
- Jumlah data A dan B diinputkan lewat keyboard. - Gunakan data bersubskrip.
- Ouputnya himpunan C dengan ketentuan bila data di A sama dengan data di B.
PROCEDURE
Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram . prosedur diawali dengan kata cadangan PROCEDURE. Di dalam bagian deklarasi prosedur dipanggil dan digunakan di dalam blok program yang lainnya dengan menyebutkan judul prosedurnya.
Bentuk umum :
Procedure identifier ( VAR parameter : type); Contoh : membuat garis yang dipesankan dalam prosedur.
Program prosedur; Procedure garis; Begin Writeln ( ‘ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~’); End; Begin Garis; Writeln;
Writeln ( ‘ STMIK SYAIKH ZAINUDDIN NW ANJANI ‘);
Writeln ( ‘ JURUSAN TEKNIK INFORMATIKA /SISTEM INFORMASI ‘) Writeln;
Garis; Readln; End.
Parameter dalam prosedur ada 2 macam ;
1. Parameter lokal , artinya hanya dapat digunakan pada modul atau unit program yang bersangkutan saja , tidak dapat digunakan pada modul atau unit program lainnya.
Bentuk umumnya : Procedure kesatu
Var {deklarasi parameter local} ………
Begin ……… ……… End; {program utama } Begin ……… ……… End.
2. Parameter global , artinya dapat digunakan pada modul atau unit program yang lainnya.
Bentuk umumnya :
Var {deklarasi parameter local} ……… ……… Procedure kesatu Begin ……… ……… End; {program utama } Begin ……… ……… End.
Contoh penggunaan program dengan menggunakan parameter global . Program procedure1;
Var
A, Hasil : real;
Procedure jam_ke_menit; Begin
Write ( ‘ masukkan jam ‘ ); readln (A); Hasil : = a * 60;
Writeln ( A : 5 : 2,’ Jam ada : ‘ , hasil : 8 : 2,’ menit ’); End; { program utama } Begin Jam_ke_menit; Readln; End.
Pengiriman parameter dalam prosedur ada 2 macam ;
1. Pengiriman secara nilai ( by value ) , artinya parameter formal di prosedur akan berisi nilai yang dikirimkan yang kemudian bersifat local di prosedur. Bila nilai
parameter formal di prosedur tersebut berubah, tidak akan mempengaruhi nilai parameter nyata.
Bentuk umumnya :
Procedure identifier (parameter : type );
2. Pengiriman secara acuan ( by reference ), artinya perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai parameter nyata.
Bentuk umumnya :
Procedure identifier ( VAR parameter : type );
Contoh penggunaan prosedur dengan parameter global dan pengiriman secara nilai. Program prosedur2;
Var
x,y, jumlah : integer; {parameter global} Procedure jml (x,y,jumlah:integer); { parameter nilai } Begin
Jumlah:= x + y;
Writeln ( ‘Jumlah pada prosedur : ‘, jumlah); Jumlah:= jumlah + 10;
Writeln( ‘ Jumlah baru pada prosedur : ‘, jumlah ) ; End;
{program utama } Begin
a:=5, b:=1; jumlah := a + b;
writeln ( ‘ Jumlah pada program utama : ‘, jumlah ); jml(a,b,jumlah);
writeln (’ Jumlah baru pada program utama :’,jumlah); readln;
End.
[
Contoh penggunaan prosedur dengan parameter lokal dan pengiriman secara acuan. Program prosedur3;
Procedure tambah (a,b,:integer; var c : integer); { parameter acuan } Begin
c:= a + b; End;
{program utama } Var
x,y, z : integer; {parameter lokal} Begin
x:=2, y:=3; tambah (x,y,z); writeln (‘ X = ‘, x, ‘ Y = ‘ , y, ‘ Z = ‘, z); readln; End. FUNCTION
Fungsi hampir sama dengan prosedur, hanya harus dideklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Tipe tersebut dituliskan pada akhir deklarasi fungsi yang di dahului dengan titik koma.
Bentuk umum :
Function identifier ( daftar parameter) : type;
Sama dengan prosedur , parameter dalam fungsi dapat dikirimkan secara nilai atau secara acuan.
Bentuk umum :
1. Pengiriman secara nilai
Function identifier ( a,b ; integer ): integer; 2. Pengiriman secara acuan
Function identifier (VAR a,b ; integer ): integer; Contoh penggunaan fungsi dengan pengiriman secara nilai.
Program fungsi1; Var
a : real; {parameter global}
function hasil (a : real); { parameter nilai } Begin
Hasil := a * 60; End;
{program utama } Begin
writeln ( ‘ masukkan jam :’ ); readln (a);
writeln (a : 5 : 2,’ jam ada :’, hasil(a): 8 : 2,’ menit ‘); readln;
End.
Contoh penggunaan fungsi dengan pengiriman secara acuan. Program fungsi2;
Var
a,b, jumlah : integer;
function jml ( var x,y,:integer) : integer; Begin Jml := x + y; y:=x ; End; {program utama } Begin a:=5, b:=1;
writeln (‘ Nilai a sebelum masuk ke function = ‘, a); writeln (‘ Nilai b sebelum masuk ke function = ‘, b); writeln ( ‘ Jumlah : ‘ , jml (a,b));
writeln (‘ Nilai a setelah masuk ke function = ‘, a); writeln (‘ Nilai b setelah masuk ke function = ‘, b); readln;
End.
Procedure dan function merupakan sub-program. Procedure tidak
mengembalikan nilai, sedangkan function mengembalikan nilai. Procedure dan function mengandung suatu penggalan program yang dapat dipanggil oleh program utama atau sub-programyang lainnya. Bila anda belum mengerti maksud dari “mengembalikan nilai” maka anda dapat membayangkan bahwa hasil dari function dapat dimasukkan ke dalam suatu variabel atau menghasilkan suatu nilai, sedangkan procedure hanya menjalankan suatu potongan program. Contoh procedure adalah writeln dan clrscr karena kedua procedure tersebut tidak mengembalikan nilai apapun. Sedangkan contoh function adalah “sqrt” yang akan mengembalikan nilai berupa akar kuadrat dari bilangan yang dimasukkan.
Sebagai informasi: “procedure” adalah istilah yang digunakan pada Pascal. Pada bahasa pemrograman yang lainnya, biasa disebut “function yang tidak mengembalikan nilai” atau “void function”.
Soal Latihan
1. Tulislah sebuah prosedur untuk menukar nilai dari dua variable. Sebagai contoh, jika terdapat variable a dan b, setelah pemanggilan prosedur ini, nilai a sama dengan b sama dengan a . Prosedur ini menerima dua parameter bertipe bilangan real.
2. Tulislah fungsi untuk memangkatkan suatu bilangan real dengan bilangan real lainnya.