Anda di halaman 1dari 20

BAB I STRUKTUR PROGRAM PASCAL, TIPE DATA, VARIABEL, DAN KONSTANTA I.

Teori Struktur program Pascal terdiri dari tiga bagian (Gambar 1.1), yaitu : 1. Judul Program. Judul program sifatnya optional dan tidak signifikan di dalam program. Jika ditulis dapat digunakan untuk memberi nama program dan daftar dari parameter tentang komunikasi program dengan lingkungannya yang sifatnya sebagai dokumentasi saja. Judul program bila ditulis harus terletak pada awal dari program dan diakhiri dengan titik koma. Contoh :
program CONTOH;(* Judul Program *) begin writeln (Hello World) ; end.

2. Bagian Deklarasi. Bagian deklarasi digunakan bila didalam program menggunakan pengenal (identifier) yang dapat berupa label, konstanta, tipe, variable, prosedur dan fungsi. Perlu diingat, penulisan identifier dalam bahasa pascal tidak mengenal huruf besar atau kecil, jadi variabel nilai, NILAI, Nilai, dianggap sama. a. Deklarasi Konstanta 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. Contoh : program contoh_konstanta;
const potongan = 0.2; gaji = 25000; namaperusahaan = 'PT ABC'; begin writeln ( 'Potongan =',potongan); writeln ( 'Gaji =',gaji); writeln ( 'Nama =',namaperusahaan); end.

b. Deklarasi Variabel

Variabel adalah identifier yang berisi data yang dapat diubah-ubah nilainya didalam program. Menggunakan kata cadangan Var sebagai judul didalam bagian deklarasi variable dan diikuti oleh satu atau lebih identifier yang dipisahkan koma, diikuti dengan titik dua dan tipe dari datanya diakhiri dengan titik koma. Adapun type variable yang disediakan pada Bahasa Pascal yaitu: 1

- Integer Type variable yang beguna untuk pengolahan data yang bulat, type ini masih terbagi atas berberapa menurut jangkauan data dan ukurannya :
Type Shortint Integer Longint Byte Word Jangkauan -128..127 -32768..32767 -2147483648..2147483647 0..255 0..65535 Ukuran 8 bit 16 bit 32 bit 8 bit 16 bit

- Char Type variabel yang berguna untuk pengolahan character ASCII, type character ini penulisannya ditandai dengan dua buah petik tunggal seperti : 'A', '3', '*'. - String Berbeda dengan tipe data char, tipe data string dapat menampung hingga 256 karakter. Untuk penulisan tipe data string digunakan dua buah petik tunggal, seperti hello. - Boolean Type variabel yang berguna untuk pengolahan hal yang hanya mempunyai dua ketentuan yaitu benar (TRUE) dan salah (FALSE) saja. - Real Type variable yang beguna untuk pengolahan data yang tidak bulat. Contoh : Program contoh_variable;
var alas,tinggi : integer; luas : real; begin alas := 5; tinggi :=10; writeln('Luas Segitiga'); writeln('Alas : ',alas); writeln('Tinggi : ', tinggi); luas :=(alas*tinggi)/2; writeln('Luas : ',luas); readln;

- Deklarasi Tipe Pascal menyediakan beberapa macam tipe data, yaitu : Tipe data sederhana, terdiri dari : - tipe data standar : integer, real, char, string, Boolean. - Tipe data didefinisikan pemakai : enumerated atau scalar, subrange. Tipe data terstruktur : array, record, file, set. Tipe data penunjuk: pointer. 2

- Deklarasi Label Jika program menggunakan statement Goto untuk meloncat ke suatu statement yang tertentu, maka dibutuhkan suatu label pada statement yang dituju dan label tersebut harus di deklarasikan terlebih dahulu pada bagian deklarasi. Menggunakan kata cadangan Label diikuti oleh kumpulan identifier label dengan dipisahkan oleh koma dan diakhiri dengan titik koma. 3. Bagian Deskripsi. bagian ini digunakan untuk meletakkan seluruh instruksi program. Instruksi-instruksi yang akan diberikan untuk dikerjakan ditulis di antara begin dan end . Penulisan end diakhiri dengan tanda baca titik ( . ). Yang perlu diperhatikan bahwa setiap instruksi diakhiri dengan tanda baca titik koma ( ; ).
(* JUDUL PROGRAM *) program NAMA_PROGRAM; { Penjelasan mengenai program, yang berisi uraian singkat mengenai apa yang dilakukan oleh program } (* DEKLARASI *) [const] { semua nama tetapan dan harga tetapannya didefinisikan di sini } [type] { semua nama tipe bentukan didefinisikan di sini } [var] { semua nama variable global didefinisikan di sini } { deklarasi prosedur dan fungsi didefinisikan di sini } (* DESKRIPSI *) begin { semua instruksi program dituliskan di sini } end.

Tabel 1.1. Notasi Bahasa Pascal 3

Kelompok 1. Tipe Dasar

Notasi Pascal Boolean Byte Shortint Word Integer Longint Real Double Extended Char String String [N] Record field1 : type; field2 : type; fieldN : type; end; + * / Div Mod < <= > >= = <> Not And Or Xor { komentar } (* komentar *) Const Type True False

Ket. 1 byte 1 byte 2 byte 2 byte 4 byte

2. Operator a. Aritmatika

b. Perbandingan

Penjumlahan Pengurangan Perkalian Pembagian Hasil bagi Sisa bagi Lebih kecil dari Lebih kecil atau sama dengan Lebih besar dari Lebih besar atau sama dengan Sama dengan Tidak sama dengan

c. Logika

3. Komentar 4. Lain-lain

II. Praktikum Percobaan 1 : Salinlah program berikut ini : program percobaan1_1; { program untuk menampilkan data diri } uses Crt; var nama, alamat,hobby : string; { program utama } begin Writeln(' Program Penampil Data Diri '); Writeln(' ******************************** ' ); Write('Masukkan Nama : '); Readln(nama); Write('Masukkan Alamat : '); Readln(alamat); Write('Masukkan Hobby : '); Readln(hobby); Writeln; Writeln('Hallo ',nama,' !!! kamu tinggal di ', alamat, ' dan Hobbymu adalah ',hobby); Readln; end. Kompilasi program tersebut dengan menekan Alt+F9 dan jalankan program tersebut dengan menekan Ctrl+F9, kemudian amati hasilnya bila dimasukkan masukan tertentu. Sekarang simpan program tersebut dengan memilih menu dengan nama Prak1_1.PAS. Kemudian coba lakukan kompilasi ke pengingat bantu. Hasil dari kompilasi ke pengingat bantu ini adalah sebuah berkas bernama Prak1_01.EXE. File lalu pilih Save. Simpan

Percobaan 2 : Salinlah program berikut : Program percobaan2_1; { program untuk Menampilkan Biodata Diri } uses Crt; type str10 = string[10]; const koma=','; var nama1,nama2 : str10; alamat : string; usia ,thn_lhr,thn_skr: Integer; begin Write('Masukkan Nama Depan : '); Readln(nama1); Write('Masukkan Nama Belakang : '); Readln(nama2); Write('Masukkan Alamat : '); Readln(alamat); Write('Masukkan Tahun Lahir : '); Readln(thn_lhr); Write('Masukkan Tahun Sekarang : '); Readln(thn_skr); usia := thn_skr - thn_lhr; Writeln; Writeln('=== BIODATA DIRI ==='); Writeln(nama2,koma,nama1); Writeln(alamat); Writeln(usia,' tahun'); Readln; end.

Latihan ! 1. Buatlah program untuk menghitung luas dan keliling lingkaran, gunakan tipe data konstanta untuk menyimpan nilai Phi. 2. Buatlah program untuk menentukan hasil pengurangan atau penjumlahan dari 2 atau lebih bilangan bulat. 3. Buatlah program untuk menentukan hasil dari pembagian bilangan bulat san sisa pembagian bulat dari 2 bilangan bulat. 4. Buatlah program yang menampilkan data mahasiswa berupa NPM, Nama, Nilai Tugas, Nilai UTS, Nilai UAS dan Total Nilai.

BAB II PENYELEKSIAN KONDISI I. Teori A. Pernyataan if (if statement) Pada umumnya satu permasalahan yang komplek memerlukan suatu penyelesaian kondisi. Dengan menyeleksi suatu kondisi, maka selanjutnya dapat ditentukan tindakan apa yang harus dilakukan, tergantung pada hasil kondisi penyeleksian. Jadi suatu aksi hanya dikerjakan apabila persyaratan atau kondisi tertentu terpenuhi. Pernyataan pernyataan tersebut. Berikut adalah bentuk-bentuk dari pernyataan if yang sering digunakan : a. Penyeleksian Satu Kasus, dengan menggunakan struktur if-then Pada penyeleksian satu kasus, kondisi akan diseleksi oleh statemen If. Bila kondisi bernilai benar (true), maka aksi sesudah kata then (dapat berupa satu atau lebih aksi) akan diproses. Bila kondisi bernilai salah (false), maka tidak ada aksi yang akan dikerjakan. Statemen endif adalah untuk mempertegas bagian awal dan bagian akhir struktur if - then. If dengan satu pernyataan (statement)
If (kondisi) then aksi ;

if (if statement) akan memeriksa suatu persyaratan dan menentukan

apakah syarat tersebut benar atau salah, kemudian melakukan pekerjaan sesuai dengan nilai

b. Penyeleksian Dua Kasus, menggunakan struktur if-then-else Dalam struktur if-then-else, aksi 1 akan dilaksanakan jika kondisi bernilai benar (true), dan jika kondisi bernilai salah (false) maka aksi 2 yang akan dilaksanakan. Statemen else menyatakan ingkaran (negation) dari kondisi. If dengan dua atau lebih pernyataan (statement)
If (kondisi) then begin aksi1 ; aksi2 ; end;

c. Penyeleksian Tiga Kasus atau Lebih (Penyeleksian Tersarang) Untuk penyeleksian tiga kasus atau lebih juga menggunakan struktur if-thenelse sebagaimana halnya permasalahan dua kasus. If dan else
If (kondisi) then begin aksi1 ; aksi2 ; end; else begin aksi1 ; aksi2 ;

Contoh : Percobaan 1 Program sederhana dengan pernyataan If Berikut contoh program sederhana untuk menghitung luas segitiga dan lingkaran. Yang mana perhitungan luas dua buah bangun tersebut digabung menjadi satu program, dan pemakai dapat memilih masalah mana yang akan dipecahkan. Sebagaimana diketahui untuk menghitung luas segitiga adalah dengan : L=1/2 . a . t Dan luas lingkaran adalah dengan : L = Phi. r. r Untuk lebih jelasnya salin program berikut : program percobaan1_2 ; var alas, tinggi, jejari, luas: Real; pilih: Integer; begin Writeln ('1. Segitiga 2. Lingkaran'); Readln(pilih); 9

if pilih = 1 then begin Readln(alas, tinggi); luas := 1 / 2 * alas * tinggi; Writeln('Luas Segitiga : ', luas); end ; else begin Readln(jejari); luas := pi * Sqr(jejari); Writeln('Luas Segitiga : ', luas); end; Readln; end. Jalankan program tersebut. Pada program tersebut disajikan dua macam pilihan kepada pemakai untuk menghitung luas segitiga atau luas lingkaran. Peubah pilih digunakan untuk pemakai guna menentukan pilihannya. B. Struktur case (case statement) Struktur ini dapat digunakan untuk menganalisa penyeleksian dua kasus atau lebih dan bentuknya adalah lebih sederhana daripada struktur IF-THEN-ELSE yang memiliki bentuk bertingkat-tingkat. case <peubah> of tetapan1: pernyataan1; tetapan2: begin pernyataan1; pernyataan2; end; tetapan3, tetapan4: pernyataan1; tetapan5 .. tetapan8: pernyataan1; else pernyataan1; Contoh : Buatlah program untuk menentukan nilai Luas Segitiga dan Luas Lingkaran dengan menggunakan struktur case. 10

program percobaan2_2; var alas, tinggi, r, luas: Real; pilih: Integer; begin Writeln('1. Segitiga 2. Lingkaran'); Readln(pilih); case pilih of 1: begin Readln(alas, tinggi); luas := 1 / 2 * alas * tinggi; Writeln('Luas Segitiga : ', luas); End; 2: begin Readln(r); luas := pi * Sqr(r); Writeln('Luas Segitiga : ', luas); end; end; Readln; end. Dari bentuk-bentuk struktur kendali yang telah dijelaskan di atas dapat terjadi dimana struktur kendali tertentu berada pada struktur kendali yang lain, yang dikenal dengan struktur kendali bersarang. Misalnya didalam pernyataan if terdapat pernyataan if lagi atau dalam pernyataan case terdapat pernyataan if dan seterusnya. Untuk lebih jelasnya salin program berikut : program percobaan3_2; var nama, alamat: string; npm: string[8]; keterangan: string[2]; grade, pilih: Char; 11

nilai: Integer; begin Writeln('1. Memasukkan data mahasiswa 2. Keluar'); Write('Pilihan Anda : '); Readln(pilih); case pilih of '1': begin Write('Masukkan Nama Anda : '); Readln(nama); Write('Masukkan NPM Anda : '); Readln(npm); Write('Masukkan Alamat Anda : '); Readln(alamat); Write('Masukkan Nilai Anda : '); Readln(nilai); {menentukan program studi} if (copy(npm, 3, 2)='11') then keterangan := 'S1' else if (copy(npm, 3, 2)='31') then keterangan := 'D3'; {menentukan grade} if (nilai >= 80) then grade := 'A' else if (nilai >= 70) then grade := 'B' else if (nilai >= 60) then grade := 'C' else grade := 'D'; Writeln('Data mahasiswa yang diinputkan'); Writeln('Nama : ',nama); Writeln('NPM : ',npm); 12

Writeln('Program Studi : ',keterangan); Writeln('Alamat : ',alamat); Writeln('Nilai : ',nilai); Writeln('Grade : ',grade); end; '2': begin Writeln('Anda mengakhiri program !'); Exit; end; else begin Writeln('Pilihan Anda salah !'); Exit; end; end; Readln; end. II. Praktikum Latihan 1. 1. Buatlah program untuk menentukan bilangan terbesar dari tiga buah bilangan bulat yang dimasukkan melalui piranti masukan. (Asumsi: ketiga bilangan adalah bilangan yang berbeda). Contoh keluaran yang diinginkan; Masukkan bilangan pertama : 4 Masukkan bilangan kedua : 2 Masukkan bilangan ketiga : 7 Bilangan yang terbesar adalah : 7 2. Buatlah program konversi dari nilai angka menjadi nama hari. (Asumsi: 1=Senin, 2=Selasa, 3=Rabu, 4=Kamis, 5=Jumat, 6=Sabtu, 7=Minggu) Contoh keluaran yang diinginkan: Masukkan Angka yang menunjukkan hari : 1 13

Hari yang anda pilih : Senin Latihan 2. Ubah program percobaan3_2, tambahkan sehingga : 1. Nilai yang diinputkan ada tiga macam yaitu : nilai Tugas, nilai UTS dan Nilai UAS. 2. Perhitungan grade didapatkan dari nilai akhir dengan perhitungan : Nilai akhir = (2 * nilai UAS + nilai Tugas + nilai UTS) / 4 3. Data mahasiswa yang ditampilkan dalam huruf besar, meskipun dalam pengisian awal menggunakan huruf kecil. 4. Tampilkan juga apakah mahasiswa tersebut LULUS atau TIDAK LULUS dengan ketentuan jika grade dari mahasiswa "D" maka ia TIDAK LULUS selain itu maka ia LULUS. 5. Buatlah program untuk menentukan apakah nilai yang diinputkan bilangan genap atau ganjil. 6. Buatlah program kalkulator sederhana dengan memberikan pilihan bagi pengguna. Operasi-operasinya meliputi : penjumlahan, pengurangan, perkalian, pembagian, sisa hasil bagi dan pangkat.

14

BAB III STRUKTUR PENGULANGAN (LOOP STATEMENT) I. Teori Terdapat dua model struktur pengulangan, yaitu: 1. Struktur Pengulangan Tanpa Kondisi (unconditional looping). Di dalam struktur ini, instruksi-instruksi di Struktur FOR. 2. Struktur Pengulangan Dengan Kondisi (conditional looping). Di dalam struktur ini, jumlah pengulangan tidak diketahui sebelum eksekusi program. Yang dapat ditentukan hanya kondisi berhenti pengulangan, artinya instruksi-instruksi di dalam badan pengulangan diulangi sampai kondisi berhenti terpenuhi. Contoh: Struktur WHILE dan Struktur REPEAT. Macam-macam struktur pengulangan : a. Struktur FOR Struktur pengulangan FOR digunakan untuk mengulang statemen atau satu blok statemen berulang kali. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah sudah jumlah pengulangan diperlukan sebuah variabel pencacah (counter). Variabel ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan. Jika cacah pengulangan sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti. Pada struktur FOR, pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter. Tipe riil tidak dapat digunakan sebagai pencacah. Aksi adalah satu atau lebih instruksi yang diulang. Bentuk struktur FOR ada dua macam: Menaik (ascending) Pada struktur FOR menaik, nilai_awal harus lebih kecil atau sama dengan nilai_akhir. Jika nilai_awal lebih besar dari nilai_akhir, maka badan pengulangan tidak dimasuki. Pada awalnya, pencacah diinisialisasikan dengan nilai_awal. Nilai pencacah secara otomatis bertambah satu setiap kali aksi pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir. Jumlah pengulangan yang 15 dalam badan pengulangan diulangi sejumlah kali yang dispesifikasikan (jumlah pengulangan sudah diketahui sebelum eksekusi). Contoh:

terjadi = nilai_akhir nilai_awal + 1. Struktur Bahasa Pascal untuk pengulangan FOR menaik. for pencacah := nilai_awal to nilai_akhir do aksi

Menurun (descending) Pada struktur FOR menurun, nilai_akhir harus lebih besar atau sama dengan nilai_awal. Jika nilai_akhir lebih kecil dari nilai_awal, maka badan pengulangan tidak dimasuki. Pada awalnya, pencacah diinisialisasikan dengan nilai_akhir. Nilai pencacah secara otomatis berkurang satu setiap kali aksi diulangi, sampai akhirnya nilai pencacah sama dengan nilai_awal. Jumlah pengulangan yang terjadi = nilai_akhir menurun. for pencacah := nilai_akhir downto nilai_awal do aksi nilai_awal + 1. Struktur Bahasa Pascal untuk pengulangan FOR

b. Struktur WHILE Pada struktur WHILE, aksi (atau runtunan aksi) akan dilaksanakan berulang kali selama kondisi bernilai true. Jika kondisi bernilai false, badan pengulangan tidak akan dilaksanakan, yang berarti pengulangan selesai. Yang harus diperhatikan adalah pengulangan harus berhenti. Pengulangan yang tidak pernah berhenti menandakan bahwa logika pemrograman tersebut salah. Pengulangan berhenti apabila kondisi bernilai false. Agar kondisi suatu saat bernilai false, maka di dalam badan pengulangan harus ada instruksi yang mengubah nilai variabel kondisi. While kondisi do aksi c. Struktur REPEAT Struktur ini mendasarkan pengulangan pada kondisi boolean. Aksi di dalam badan pengulangan diulang sampai kondisi boolean bernilai true. Dengan kata lain, jika kondisi boolean masih false, pengulangan masih terus dilakukan. Karena proses pengulangan suatu saat harus berhenti, maka di dalam badan pengulangan harus ada aksi yang mengubah nilai variabel kondisi. Struktur REPEAT mempunyai makna yang sama dengan WHILE, dan dalam beberapa masalah kedua struktur tersebut komplemen satu sama lain. Repeat aksi Until kondisi 16

Contoh : 1. Balik Kalimat program Percobaan1_3; var I, Panjang: Integer; Kata, Balik: string; begin Writeln('Balik Kalimat'); Writeln('============='); Write('Masukkan kalimat : '); Readln(Kata); Panjang := Length(Kata); Balik := ''; for I := Panjang downto 1 do Balik := Balik + Kata[I]; Writeln('Hasil pembalikannya : ', Balik); Readln; end. 2. Berikut contoh program untuk menampilkan bilangan genap dari 2 sampai dengan 100. program percobaan2_3; var i: Integer; begin Writeln('Bilangan genap'); i := 1; repeat Inc(i); if i mod 2 = 0 then Write(i:4); until (i=100); Readln; end. 17

3. Sama halnya dengan struktur kendali yang telah dibahas sebelumnya, pada struktur perulangan dapat terjadi kasus dimana di dalam struktur perulangan tertentu terdapat struktur perulangan yang lain dan seterusnya. Program berikut akan menerapkan struktur perulangan dengan menggunakan while. program percobaan3_3; var i, j: Integer; M: Char; begin Write('Masukkan sembarang karakter : '); Readln(M); i := 1; while i <= 10 do begin j := 1; while j <= i do begin Write(M); Inc(j); end; Writeln; Inc(i); end; Readln; end. 4. Faktorial dan pemangakatan program percobaan4_3; uses Crt; var Hasil: Real; I, pilih, A, X, N: Integer; Status: Boolean; 18

begin Repeat Clrscr; Writeln('1. Pemangkatan 2. Faktorial 3. Keluar'); Write('Masukkan Pilihan Anda : '); Readln(pilih); case pilih of 1 : begin Write('Masukkan Sembarang angka : '); Readln(X); Write('Akan dipangkatkan berapa : '); Readln(A); Hasil := 1; for I := 1 to A do Hasil := X * Hasil; Writeln('Jadi ', X,' dipangkatkan ', A,' : ', Hasil:5); Status := False; end; 2 : begin Write('Masukkan Sembarang angka : '); Readln(N); if N <= 1 then Hasil := 1 else begin Hasil := 1; for I := 2 to N do Hasil := Hasil * I; end; Writeln('Jadi factorial ', N,' (', N,'!) : ', Hasil:5); Status := False; end; 3 : Status := True; else begin Writeln('Pilihan Anda salah !'); 19

Status := True; end; end; Readln; until Status; end. II. Praktikum Latihan. 1. Buatlah program untuk menampilkan deret bilangan ganjil antara 0 s/d 100 ! 2. Buatlah program untuk menampilkan deret bilangan 1, 5, 9, 13, ... (berhenti jika melebihi 300)! 3. Buatlah algoritma untuk menampilkan deret bilangan 1, 1, 2, 1, 2, 3, ... (berhenti jika sama dengan batas nilai tertentu yang dimasukkan melalui piranti masukan)! Contoh keluaran: Masukan batas nilai: 4 Deret Keluaran: 1, 1, 2, 1, 2, 3, 1, 2, 3, 4 4. Buat program untuk menampilkan angka sebagai berikut : 1 22 333 4444 55555 5. Buat program untuk menghitung gaji pegawai dengan ketentuan sebagai berikut : Terdapat dua buah golongan yaitu : A dengan gaji pokok 500000 dan B dengan gaji pokok 1000000 Pegawai akan mendapatkan tunjangan jika sudah menikah sebesar 10% dari gaji pokok. Untuk status tidak menikah, janda, dan duda tunjangan = 0. Jika pemakai memasukkan inputan baik itu untuk status dan golongan tidak sesuai dengan yang diminta maka ulang terus sampai yang diinputkan benar. Tampilkan nama, alamat, status, gaji pokok dan total gajinya.

20

Anda mungkin juga menyukai