Download - Modul Pascal 2pg
-
7/27/2019 Modul Pascal 2pg
1/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
1
PEMROGRAMAN PASCAL
Daftar Isi
BAHASA KOMPUTER ..................................................................................................................................... 2BAHASA PEMROGRAMAN PASCAL. .................................................................................................. 3
DEKLARASI VARIABEL DAN PENGENAL............................................................................................... 7BARIS KOMENTAR ................................................................................................................................. 8
DEKLARASI VARIABEL .......................................................................................................................... 8DEKLARASI KONSTANTA ..................................................................................................................... 9NAMA PENGENAL (VARIABEL) ............................................................................................................ 9STATEMEN MAJEMUK........................................................................................................................... 9MEMILIH PIRANTI/LIBRARY ................................................................................................................ 10
ARITMATIKA .............................................................................................................................................. 11A. OPERASI ARITMATIKA ................................................................................................................... 11B. PENULISAN UNGKAPAN ARITMATIKA ........................................................................................ 12 C. URUTAN OPERASI .......................................................................................................................... 12D. FUNGSI-FUNGSI STANDAR OPERASI A RITMATIKA ................................................................ 12
TIPE DATA BOOLEAN .............................................................................................................................. 13STATEMEN MASUKAN DAN KELUARAN ............................................................................................. 14
STATEMEN KELUARAN WRITE DAN WRITELN.............................................................................. 14UNGKAPAN LITERAL ........................................................................................................................... 14STATEMEN MASUKAN READ DAN READLN ................................................................................... 15
PEMILIHAN PROSES ............................................................................................................................... 18IF... THEN ............................................................................................................................................... 18STATEMEN CASE ................................................................................................................................. 21GOTO (Percabangan Non Kondisi) ...................................................................................................... 22 PROSES BERULANG (LOOPING) .......................................................................................................... 23STATEMEN WHILE ... DO .................................................................................................................... 23 STATEMEN REPEAT ... UNTIL............................................................................................................ 24STATEMEN FOR ... DO ........................................................................................................................ 25LARIK (ARRAY) DIMENSI SATU ......................................................................................................... 27 LARIK DIMENSI BANYAK..................................................................................................................... 30
OPERASI STRING..................................................................................................................................... 32PENYELEKSIAN STRING..................................................................................................................... 32PROSEDUR STANDAR OPERASI STRING ...................................................................................... 32 FUNGSI STANDAR OPERASI STRING .............................................................................................. 34
PROSEDUR ............................................................................................................................................... 36FUNGSI (FUNCTION) ............................................................................................................................... 38RECORD..................................................................................................................................................... 38
DEKLARASI RECORD .......................................................................................................................... 39MENGGUNAKAN TIPE DATA RECORD ............................................................................................ 39
FILE ............................................................................................................................................................. 43MENDEKLARASIKAN FILE .................................................................................................................. 43OPERASI PADA FILE............................................................................................................................ 44FILE (BERKAS) TEXT ........................................................................................................................... 48FILE TIDAK BERTIPE ........................................................................................................................... 51
POINTER DAN STRUKTUR DATA DINAMIK......................................................................................... 52VARIABEL POINTER ............................................................................................................................ 52VARIABEL DINAMIK ............................................................................................................................. 53STRUKTUR DATA DINAMIK (LINK LIST)........................................................................................... 53
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
2
BAHASA KOMPUTER
Agar manusia dapat berkomunikasi dengan komputer maka dibutuhkan suatu bahasa komunikasiyaitu bahasa komputer. Dengan bahasa ini komputer dapat memahami dan mengerti perintah-perintah yang kita berikan kepadanya.
Sebenarnya, komputer tidak mengerti perintah-perintah yang kita tulis menggunakan bahasa tertentu.Namun di dalam komputer tersebut terdapat penterjemah bahasa yang kita gunakan menjadi bahasayang dimengerti oleh komputer yaitu compi leratau interpreter, keduanya merupakan suatu program.
Perbedaannya antara keduanya adalah sebagai berikut: Compilermenerjemahkan kode sumber menjadi objek bahasa mesin dalam bentuk file objek,
kemudian di-link dengan pustaka-pustaka lain yang berhubungan dengan kode sumber agardapat dijalankan pada setiap sistem operasi
Interpretermenerjemahkan kode sumber per baris demi baris dan langsung di eksekusi tanpamenjadikannya dalam bentuk file objek
Jenis bahasa pemrograman komputer dibagi menjadi dua bagian yaitu bahasa tingkat rendah (yangagak sulit dimengerti bagi orang awam) dan bahasa tingkat tinggi (yang dapat di mengerti oleh
manusia).
Bahasa Pemrograman Tingkat Rendah
Bahasa ini dibagi menjadi dua macam, yaitu Bahasa Mesin dan Bahasa Rakitan. Dalam BahasaMesin semua perintah disandikan dengan deretan-deretan bit (binary digit) yang hanya mempunyainilai digit 1 atau 0. Sedangkan dalam Bahasa Rakitan, perintah-perintah tersebut bisa digantikandengan kode sandi yang bisa dipahami oleh manusia yaitu mnemoniccode, Setiap mikroprosesor,
mempunyai mnemonic code yang berlainan.
Bahasa Pemrograman Tingkat Tinggi
Bahasa pemrograman ini merupakan bahasa komputer yang mudah dipahami karena menggunakanbahasa percakapaan manusia sehari-hari. Diantaranya adalah.
Ada Diambil dari nama Augusta Ada Bryton, bangsawan dari Loveland, puteri LordByron; bahasa ini dikembangkan sekitar tahun 1974 dan 1980 untuk DepartemenPertahanan Amerika Serikat.
ALGOL ALGOrithmic Language (Bahasa Algoritma)APL A Programming LanguageBASIC Beginners All Purpose Symbolic Intsruction Code. Bahasa ini dikembangkan oleh
John Kemeny dan Thomas Kutrz, digunakan untuk memberi kuliah mahasiswa diDartmouth College tentang bagaimana menggunakan komputer.
C Dikembangkan oleh Bell Laboratories pada tahun 1970, bahasa ini sangatpowerfull dan sering digunakan untuk membuat program Sistem Operasi contohnyaMS-DOS, LINUX, UNIX serta program aplikasi DBASE, AUTOCAD dan game-game yang banyak kita jumpai. Ada yang mengatakan bahasa ini merupakan
bahasa tingkat menengah karena sintaks bahasanya mirip bahasa tingkat tinggidan kemampuanya bahasa tingkat rendah.
COBOL Common Business-Oriented Language. Bahasa ini dikembangkan di DepartemenPertahanan Amerika Serikat pada tahun 1960
FORTRAN Formula Translation, dikembangkan sekitar tahun 1956.LISP List ProcessorPascal Diambil dari nama seorang sarjana Perancis Blaise Pascal. Pertama kali
dikembangkan oleh Niklauss Wirth, seorang ahli ilmu komputer dari Swiss, padatahun 1970.
PL/I Programing Langugae I, dikembangkan oleh IBM pada tahun 1964PROLOG Programming Logig, bahasa yang digunakan untuk menyusun Expert SystemRPG Report Program GeneratorSNOBOL String Oriented Symbolic Language
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
2/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
3
BAHASA PEMROGRAMAN PASCAL.
Program adalah kumpulan instruksi atau perintah yang disusun sehingga mempunyai urutan logikayang benar untuk menyelesaikan suatu persoalan. Program penerjemah atau compileruntuk BahasaPascal banyak contohnya, diantaranya Turbo Pascal (Borland), Microsoft Pascal dan lain sebagainya.Yang akan kita gunakan untuk mempelajari Bahasa Pascal adalah Turbo Pascal.
Ada beberapa aturan dalam penulisan program Pascal, berbeda sekali dengan aturan pada BASIC.Pascal merupakan bahasa pemrograman yang t erstruktur, maksudnya jika suatu proses telah sampai
pada suatu titik tertentu, maka proses selanjutnya tidak boleh melompati lagi ke baris sebelumnya,kecuali untuk proses berulang. Sehingga hindari pemakaian GOTO sebanyak mungkin.
Struktur bahasa Pascal dapat anda lihat dibawah ini:
PROGRAM nama_program; { nama program, boleh ada atau boleh tidakada }USES .. ( deklarasi library/pustaka fungsi }LABEL . { deklarasi label }CONST . { deklarasi konstanta }TYPE. { deklarasi tipe data }VAR { deklarasi variabel }PROCEDURE satu;PROCEDURE dua;FUNCTION tambah;BEGIN { awal program utama }
.
.< Statemen-statemen dari program nama_program>
.
.END. { akhir program utama }
Contoh:
PROGRAM contoh;USES crt;VAR
nama: STRING;
BEGIN
clrscr;write('Ketik nama Anda : ');readln(nama);writeln('Selamat '+nama+', anda kini akan belajar PASCAL...!');
END.
Ketik nama Anda : PengkiSelamat Pengki, anda kini akan belajar PASCAL!
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
4
TIPE DATA
Dalam Pascal, semua variabel yang akan digunakan harus ditentukan tipe datanya. Tipe data tersebutada yang sudah ditentukan oleh Pascal dan ada yang ditentukan oleh kita sendiri. Untuk menentukantipe yang kita buat sendiri digunakan sintaks (type):
BU: TYPE variabelnya = tipe;
DenganVariabelnya : nama variabel yang menyatakan tipe data.Tipe : tipe data yang berlaku dalam Pascal.
Tipe data dalam Turbo Pascal bisa digambarkan sebagai berikut:
Tipe Sederhana (tipe data skalar)
Tipe sederhana terbagi menjadi dua, yaitu tipe ordinal dan tipe real.
1. Tipe OrdinalSemua tipe sederhana dalam Pascal disebut tipe ordinal kecuali tipe Real. Tujuh tipe ordinalstandar yaitu integer, shortint, longint, byte, word, boolean dan char. Dan ada dua tipe ordinalyang bisa didefinisikan sendiri oleh kita, yaitu tipe sub range dan enumerated.
TipeSederhana
Tipe Data
Tipe String
Tipe Terstruktur
Tipe Pointer
Tipe Ordinal
Tipe Real
Integer
Boolean
Char
Subrange
Enumerate
Larik (Array)
Rekaman (Record)
Himpunan (Set)
Berkas (File)
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
3/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
5
a. Tipe Integer
Adalah tipe data yang nilainya tidak mempunyai titik desimal. Ada 5 tipe data yang termasukkelompok ini, yaitu shortint, integer, longint, byte dan word.Batas nilai tipe integer
Tipe Batas Nilai Format
SHORTINT -128 .. 127 Signed 8-bit ( 1 byte)
INTEGER -32768 .. 32767 Signed 16-bit (2 byte)
LONGINT -2147483648 .. 2147483647 Signed 32 bit (4 byte)BYTE 0 .. 255 Unsigned 8-bit (1 byte)
WORD 0 .. 65535 Unsigned 16-bit (2 byte)
Operator-operator pada data tipe integer:
Operator Ar t i
+ Penjumlahan
- Pengurangan
* Perkalian
DIV Pembagian
MOD Modulus (sisa pembagian)
b. Tipe BooleanTipe ini hanya mempunyai dua nilai yaitu TRUE atau FALSE, tipe ini biasanya digunakanuntuk operasi logika dengan ungkapan AND, OR atau NOT.
c. Tipe Char
Char digunakan untuk mendefinisikan tipe data yang nilainya merupakan sebuah karakteryang telah tersaji dalam tabel ASCII. Dalam program nilai konstanta karakter diapit oleh tandapetik ( ) , misal: A, 2.
d. Tipe EnumeratedDisebut tipe enumerated (terbilang) karena semua nilai disebut satu persatu, contoh:
TYPE hari = {MINGGU, SENIN, SELASA, RABU, KAMIS, JUMAT, SABTU, MINGGU};
e. Tipe Sub RangeMerupakan pemberian batas nilai yang mungkin untuk suatu variabel dari ti pe data yang telahdidefinisikan. Sebagai contoh, jangkauan yang mungkin dari nilai ujian adalah dari 0 sampai100,
TYPE nilai = 0..100;
2. Tipe Real
Konstanta tipe real adalah bilangan yang mempunyai titik desimal. Bilangan real bisa dinyatakandalam bentuk eksponensial. Dalam pemakaiannya pangkat dari bilangan dasar 10 (yangdigunakan untuk menunjukkan eksponensial) dinyatakan dengan notasi E.
contoh:
0.00017543 (1.7543x10-4
) adalah 1.7543E-4
ada 5 macam tipe real, yaitu real, single, double, extended dan comp.
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
6
Batasan nilai tipe real.
Tipe Batas Nilai Digit signifikan Ukuran
REAL 2.9 x 10-39 .. 1.7 x 1038 11 12 6 byte
SINGLE 1.5 x 10-45 .. 3.4 x 10 7 8 4 byte
DOUBLE 5.0 x 10- 4
.. 1.7 x 10 15 16 8 byte
EXTENDED 3.4 x 10-4
.. 1.1 x 104
19 20 10 byte
COMP -2 + 1 .. 2 - 1 19 - 20 8 byte
Operator pada tipe Real
Operator Arti
+ Penjumlahan
- Pengurangan
* Perkalian
/ Pembagian
Contoh:29.5 /5.0 = 5.829 div 5 = 5 (* terjadi pemotongan nilai desimal *)
3. Tipe String
Data yang bertipe string adalah data yang berisisi sederetan karakter yang banyaknya karakterbisa berubah-ubah sesuai kebutuhan, yaitu dari 1 sampai 255 karakter.
Contoh:
Nama : STRING[60]; {variabel nama menampung karakter max. 60 karakter }Nama : STRING; {variabel nama menampung karakter max. 255 karakter}
4. Tipe TerstrukturTerdapat 4 tipe data terstruktur, yaitu larik (array), rekaman (record), himpunan dan file (berkas).
a. Tipe Array (Larik)Array atau larik adalah tipe terstruktur yang mempunyai komonen dalam jumlah yang tetapdan setiap komponen mempunyai tipe data yang sama. Posisi masing-masing komponendalam array dinyatakan sebagi nomor index. Contoh:
satu dimensi
TYPE tipe_saya : ARRAY [1..200] OF INTEGER;{ menampung bil. Integer max. 200 }.
VARVar_baru : tipe_saya;
Atau
VARVar_baru : ARRAY [1..200] OF INTEGER;
dua dimensi atau lebih
VARVar_baru : ARRAY[1..200,1..200] OF REAL;
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
4/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
7
b. Tipe Rekaman (Record)
Definisi Record hampir sama dengan Array, tetapi yang membedakan antara keduanyaadalah kalau Array semua komponennya bertipe data yang sama sedangkan Record setiapkomponennya bisa bertipe data yang beda-beda. Contoh:
TYPE my_rec = RECORDNama : STRING[90];Npm : STRING[8];
Nilai : REAL;END;
VARData_nya : my_rec;
c. Tipe HimpunanHimpunan (set) adalah kumpulan obyek yang mempunyai tipe data yang sama dan urutanpenulisannya tidak diperhatikan. Setiap obyek d alam suatu himpunan disebut dengan anggotaatau elemen himpunan. Contoh:
TYPE irama = (JAZZ, POP, ROCK ,DANGDUT, SKA);Musik = SET OF irama;
VARJenis_musik : Musik;
d. Tipe File (Berkas)File (Berkas) adalah kumpulan sejumlah komponen yang bertipe data sama, yang jumlahnyatidak tertentu, dan biasanya tersimpan dalam suatu media penyimpan luar.
e. PointerTipe data pointer merupakan tipe data yang berbeda dengan yang lainnya. Semua tipe datayang lainnya bersifat STATIS sedangkan tipe Pointer bersifat DINAMIS. Tipe ini merupakantipe data untuk suatu variabel, dimana isi variabel ini berupa alamat variabel lain, dalam artianvariabel pointer adalah variabel yang menunjuk nilai atau alamat variabel lainnya.
DEKLARA SI VARIABEL DAN PENGENAL
Struktur program dalam Pascal dikelompokkan menajadi Judul Pr ogram, bagian deklarasi dan bagianterproses. Contoh:
PROGRAM FIBONACCI;
(* Bagian Deklarasi Pustaka/Library *)USES crt;{ Bagian Deklarasi Variabel }
VARawal, akhir, simpan : INTEGER;
{ Bagian Terproses }
BEGIN
clrscr;writeln('Deret Fibonacci');writeln('---------------');writeln;awal:=0;akhir:=1;write(awal,' ');
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
8
WHILE akhir
-
7/27/2019 Modul Pascal 2pg
5/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
9
5. Suatu tipe data dapat digunakan berulang kali dalam deklarasi VAR.
VARa,b,c : REAL;
atau
VARa : REAL;b : REAL;c : REAL;
DEKLARASI KONSTANTA
Dalam Pascal konstanta dibagi menjadi dua macam, yaitu konstanta tak bertipe dan konstanta bertipe.
1. Konstanta Tidak BertipeKonstanta tak bertipe adalah suatu konstanta yang nilainya tertentu dan tipenya tidak secara jelasdisebutkan. Contoh:
CONST faktor = 1.1;
2. Konstanta BertipeKonstanta bertipe adalah suatu konstanta yang selain ditunjukkan nilainya juga dinyatakan tipedatanya. Konstanta bertipe sesungguhnya adalah variabel dengan nilai yang tetap, maka tidakbisa saling dipertukarkan dengan konstanta biasa (konstanta tak bertipe). Contoh:
CONST awal : INTEGER = 1;
akhir : INTEGER = 100;TYPE vektor = ARRAY [awal..akhir] OF REAL ( Salah }
CONST awal = 1;akhir = 100;
TYPE vektor = ARRAY [awal..akhir] OF REAL ( Benar }
NAMA PENGENAL (VARIABEL )
1. Nama Pengenal harus diawali dengan huruf.2. Karakter kedua dan selanjutnya bisa berupa kombinasi angka dengan huruf, tidak boleh ada
tanda baca lain dan spasi. Beberapa kompiler bisa menerima tanda garis bawah ( _ ). Huruf bisaditulis menggunakan huruf besar atau huruf kecil.
3. Cacah karakter dalam pengenal bisa sembarang, tetapi dalam beberapa versi semua karaktersetelah karakter ke-8 diabaikan.
4. Beberapa kata yang disebut keyword sudah ditentukan artinya dan tidak bisa digunakan sebagainama variabel. Contoh AND, ARRAY, WHILE, THEN dll.
STATEMEN MAJEMUK
Beberapa statemen yang harus dikerjakan berturutan dalam sebuah lokasi hanya boleh ditempati olehsatu statemen. Statemen yang demikian biasa disebut sebagai statemen tunggal. Jika ada beberapastatemen yang berturutan yang juga harus diletakkan dalam lokasi tunggal diletakkannya di antarapengenal BEGIN dan END yang disebut dengan statemen MAJEMUK. Contoh:
Writeln(awal); { satu statement }WHILE akhir
-
7/27/2019 Modul Pascal 2pg
6/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
11
hasil:=angka1 - angka2writeln('A - B = ',hasil:5:3);
hasil:=angka1 x angka2;writeln('A x B = ',hasil:3:6);
hasil:=angka1 / angka2;writeln('A / B = ',hasil:2:3);
END;
ARITMATIKA
A. OPERASI ARITMATIKA
Dalam ungkapan operasi Aritmatika terdapat dua komponen yang terlibat langsung, yaitu Operatordan Operand. Operator adalah suatu simbol yang digunakan untuk menyatakan suatu operasi;Operand adalah besaran yang terlibat dalam suatu operasi, yang bisa berupa konstanta, variabel,pengenal dan lain-lain.
Tabel Operator
Operasi OperandInteger
OperandReal
Penjumlahan + +
Pengurangan - -
Perkalian * *
Pembagian Div atau / /
Modulus (sisa pembagian) mod
Untuk operand bertipe Integer hasil pembagian menggunakan operator / akan memberikan hasilbertipe Real.
Dalam pembentukan ungkapan aritmatika perlu memperhatikan beberapa hal:1. Semua operasi harus dinyatakan secara eksplisit.
Contoh yang Benar:A + B A / BA * B A * (B / C)K div L 5.0 * AK mod L (2.0 * X 4.0 * B) / (A + 3.0 * Y * Y)
Contoh yang Salah:
5.0 A kurang operator diantara 5.0 dan A(A)(B) diperlukan operator antara (A) dan (B)
2. Dua operator atau lebih tidak boleh saling berdampingan.Contoh:
A *-B seharusnya A*(-B)--A seharusnya (-A)
3. Nilai integer dapat diberikan ke variabel Real, tetapi tidak untuk sebaliknya.Var
A : Real;L : Integer;
A := L; benarL := A; salah
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
12
4. Operand-operand yang mempunyai tipe berbeda dapat menggunakan operator +, -, * dan /; hasildari operasi aritmatika menggunakan operand yang berbeda adalah nilai yang bertipe Real.Contoh:Var A : Integer;
X : Real;
X := X + 1 benar, tetapi sebaiknya dihindari.A := A + 1.0 salah, hasil perhitungan memberikan hasil bertipe
Real yang tidak bisa diberikan ke variabel bertipeinteger.
A := A + A / 3 * 3 Salah, pembagian menggunaka operator / selalumemberikan hasil bertipe Real. Hasilnya tidak bisadiberikan pada variabel bertipe integer
B. PENULISAN UNGKAPAN ARITMATIKA
Dalam menulis program terutama ungkapan Aritmatika harus ditulis menjadi 1 baris, jika t erlihat ruwet,bisa dipecah menjadi beberapa baris. Contoh:
Dalam pemrograman ditulis:X := (-B+sqrt(B*B-4.0*A*C))/(2.0*A); (* sqrt = akar kwadrat darisuatu variabel *)
Bisa dipecah menjadi:P := B *B 4.0 *A * C;Q := 2.0 * A;X := (-B+ sqrt(P)) / Q;
C. URUTAN OPERASI
Operator Prioritas
* / div mod Lebih tinggi (dikerjakan dulu)
+ - Lebih rendah (dikerjakan kemudian)
Contoh:
Ungkapan A B / C, berarti
D. FUNGSI-FUNGSI STANDAR OPERASI ARITMATIKA
Fungsi Argumen Hasil Keterangan
Abs (x) Integer Integer Mengambil harga mutlak dari X
Real Real
Arctan (x) Integer/real Real Menghitung arctangent X
Cos ( x) Integer/real Real Menghitung cosinus x
Exp (x) Integer/real Real Menghitung pangkat dengan bilangan pokok bil.Natural (e) dengan pangkat x
Ln (x) Integer/real Real Menghitung logaritma dengan bilangan pokokbil. Natural (e) dari x
Sin (x) Integer/real Real Menghitung sinus x
a
acbbx
2
42
=
C
BA
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
7/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
13
Sqrt (x) Integer/real Real Menghitung akat kuadrat dari x
Trunc (x) Real Integer Memotong nilai x
Round (x) Real Integer Membulatkan nilai x
Sqr (x) Integer Integer Menghitung kuadrat (pangkat dua) dari x
Real Real
Contoh:Trunc(19.8) menghasilkan 19Trunc(19.0001) menghasilkan 19
Round(19.8) menghasilkan 20 (pembulatan ke atas)Round(19.0001) menghasilkan 19 (pembulatan ke bawah)
TIPE DATA BOOLEAN
Ungkapan boolean adalah sembarang ungkapan yang selalu bernilai True atau False. Ungkapan-ungkapan yang dibentuk menggunakan operator pembanding, ( < , =, > ,) merupakan salahsatu ungkapan boolean.
1. Operator NotOperator Not digunakan untuk mengingkari nilai suatu st atemen boolean.
2. Operator AndOperator and digunakan untuk mentest kondisi yang memerlukan lebih dari 1 syarat dimanasemua syarat harus dipenuhi.
3. Operator Or
Jika pada operator And suatu kondisi akan bernilai True jika dan hanya jika semua syaratyang diberikan dipenuhi, maka operator Or jika salah satu dari syarat yang diberikan dipenuhi,maka kondisi yang ditest akan bernilai True.
Tabel Kebenaran
A B A AND B A OR B NOT A NOT B
False False False False True True
False True False True True False
True False False True False True
True True True True False False
Contoh Program:
Uses crt;Var
Nama_siswa : string[30];Npm : string[8];
Nilai_mid, nilai_final : integer;Nilai : integer;Hasil : Char;
BeginClrscr;Write(Input Nama Mahasiswa : );readln(Nama_siswa);Write(Input Npm : );readln(npm);Write(Nilai Mid Test : );readln(Nilai_mid);Write(Nilai Final Test : );readln(Nilai_final);Nilai := (Nilai_mid + Nilai_final) div 2;{ DIV : pembagian data integer }If Nilai > 80 Then
Hasil := AElse If (Nilai 60) Then
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
14
Hasil := BElse If (Nilai 40) Then
Hasil := CElse If (Nilai 20) Then
Hasil := DElse
Hasil := E;Writeln;writeln(Hasil akhir ,Nama_siswa, adalah ,hasil);
End.
Input Nama Mahasiswa : PengkiInput Npm : 66709878Nilai Mid Test : 40Nilai Final Test : 30
Hasil akhir Pengki adalah D
STATEMEN MASUKAN DAN KELUARA N
STATEMEN KELUARAN WRITE DAN WRITELN
Statemen Write dan Writeln dapat berisi sembarang argumen. Penggunaan kedua statemen iniadalah:
Write digunakan untuk mencetak beberapa argumen pada baris yang sama.
Writeln yang tidak diikuti argumen hanya akan mencetak satu baris kosong. Writeln yang diikuti argumen akan mencetak nilai argumen tersebut dan berpindah kebaris berikutnya.
BU:Write/Writeln (berkas,ungkapan1,ungkapan2,)
Dengan
Berkas : nama berkas keluaran. Parameter ini bersifat optional, jika tidak diisi maka keluarannyaadalah standar yaitu layar monitor.Ungkapan1, ungkapan2 : bisa berupa variabel, string, literal atau sembarang ungkapan.
Contoh:Write ( Cetak kalimat );{ string harus diapit di antara tanda petik }Writeln ( Hasil keluaran : ,Hasil , ,A,B);Writeln (A,B+C,4+5);Writeln; { cetak satu baris kosong }
UNGKAPAN LITERAL
Ungkapan ini digunakan jika mencetak dengan cacah kolom yang telah ditentukan dan akan dicetakRata Kanan. Contoh:
Writeln(NILAI:10); {menyediakan 10 kolom, dan nilai dicetak rata kanan }
N I L A I
B:=56; { B adalah variabel bertipe integer }
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
8/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
15
Writeln (B:5);
5 6
X:=78.95842 { X adalah variabel bertipe Real }Writeln(X:10:2) { Menyediakan 10 kolom diantaranya 3 kolom untuk desimaldan titik }
7 8 . 9 6
Untuk Mencetak ke printer, cukup dengan menambahkan lst, pada argumen berkas dan tambahkanunit printer pada USES.
USES printer;Begin
Writeln(lst,Kalimat ini akan dicetak ke printer!);End.
STATEMEN MASUKAN READ DAN READLN
Statemen Read tidak memperhatikan batas baris, rinci data (yang tersedia) akan selalu dibaca tidaktergantung apakah mereka ada di baris yang sama atau tidak. Statemen Readln memulai pembacaandata pada posisi baris saat itu dan meneruskan ke awal baris baru setelah pembacaan selesai. Keduastatemen ini beranggapan bahwa data masukan terdiri dari aliran rinci data yang kontinyu (continue).
BU:Read/Readln(var1,[var2, ... ]);
Di mana variabel-variabel yang akan dibaca harus bertipe ordinal (integer, Real, char atau string).Contoh:
Read (X ,Y ,Z); { X,Y,Z bertipe Real)
Data yang diinput :67.8 88.9 55.7 67.9 45.8
maka nilai yang diterima ketiga variabel tersebut adalah: X=67.8 Y=88.9 Z=55.7
Data untuk variabel-variabel tersebut dapat diketikan pada satu baris dimulai dari nomor kolomsembarang dengan setiap nilai dipisahkan oleh paling sedikit satu spasi.
Jika menggunakan statemen Read ada beberapa hal yang perlu diingat bahwa: Nilai-nilai variabel harus disusun dengan urutan yang sesuai dengan susunan variabel dalam
statemen Read.
Jika variabel yang dibaca bertipe integer atau real data yang ada di baris berikutnya akan terus
dibaca selama masih ada variabel variabel yang akan menerima nilai, Nilai-nilai yang dibacakan harus berada dalam satu baris; tidak boleh disambung ke baris lain. Variabel dari tipe yang berbeda (integer, real, char atau string, kecuali boolean) dapat dibaca
dengan urutan sembarang.
Variabel dalam read dan nilai yang bersesuaian harus mempunyai tipe data yang sama.
Penggunaan statemen Readln sangat mirip dengan statemen Read dengan perbedaanya adalahbahwa setelah semua nilai pada satu baris dibaca, cursor akan diset pada posisi baris berikutnya.Maka statemen:
Readln (X,Y,Z); ekivalen dengan Read(X,Y,Z);Writeln;
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
16
Contoh:Readln(A,B,C);Read(D);
Nilai yang diberikan:12.43 145.65 65.986 432.14 322.34 56.3
maka nilai-nilai variabel diperoleh adalah:A = 12.43 B = 145.65 C = 65.986 D = 78.43
Kasus 1:Seorang nasabah meminjam uang di bank sebanyak Rp 5 juta untuk jangka waktu 3 tahun, dengantingkat bunga 2% per tahun. Berapa jumlah pelunasan yang harus dibayarkan jika pembayarandilakukan sebanyak 2 kali ?Formulasi:
Fn : jumlah yang dibayarkanP : jumlah sekarangi : tingkat bunga per tahunn : jumlah tahunm : frekuensi pembayaran bunga dalam setahun
Contoh Program:
{ *************************************** Contoh program Model Bunga Majemuk ***************************************}
USES crt;
FUNCTION Pangkat(base : Real; p:integer):Real;VAR
i:INTEGER;n:REAL;
BEGINn := base;FOR i:=1 TO p-1 DOn := n * base;
Pangkat:=n;END;
VARP,F,i : Real;n,m : Integer;
BEGINclrscr;
writeln('PENGEMBALIAN UANG PINJAMAN BANK');writeln('-------------------------------');write('Jumlah uang pinjaman sekarang : ');readln(P);write('Jangka pembayaran (x tahun) : ');readln(n);write('Tingkat bunga per tahun (%) : ');readln(i);write('Pembayaran dilakukan berapa kali ? : ');readln(m);
{ proses penghitungan bunga majemuk }
i:= i / 100.0;F:= P * Pangkat(1+i/m,n*m);writeln;writeln('Pelunasan setelah ',n,' tahun sejumlah Rp ',trunc(F):10);
END.
mn
nm
iPF
+= 1
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
9/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
17
PENGEMBALIAN UANG PINJAMAN BANK-------------------------------Jumlah uang pinjaman sekarang : 5000000Jangka pembayaran (x tahun) : 3Tingkat bunga per tahun (%) : 2Pembayaran dilakukan berapa kali ? : 2
Pelunasan setelah 3 tahun sejumlah Rp 5307600
Kasus 2:Penduduk suatu kota berjumlah 1200000 jiwa pada tahun 2003, tingkat pertumbuhannya 6% pertahun. Hitunglah jumlah penduduk kota tersebut pada tahun 2010 !Formulasi:
P1 : Jumlah pada tahun pertamaPt : Jumlah Pada tahun ke-t
Di mana : R = 1 + r r : Persentase pertumbuhan per tahunt : Indeks waktu (tahun)
Contoh Program:
{ ********************************************** Contoh program Model pertumbuhan penduduk **********************************************}
USES crt;
FUNCTION Pangkat(base : Real; p:integer):Real;
VARi:INTEGER;n:REAL;
BEGINn := base;FOR i:=1 TO p-1 DOn := n * base;
Pangkat:=N;END;
VARp1,rr,R,Pt : Real;th1,th2,t : Integer;
BEGINclrscr;writeln('JUMLAH PERTUMBUHAN PENDUDUK');writeln('----------------------------');write('Tahun Pertama : ');readln(th1);write('Jumlah Penduduk Th. Pertama : ');readln(p1);
write('Tahun Terakhir Pertumbuhan : ');readln(th2);write('Presentase Pertumbuhan/thn : ');readln(rr);
{proses penghitungan}rr:=rr / 100.0;R :=1 + rr;t :=(th2-th1)+1;Pt:=p1*Pangkat(R,t-1);writeln;writeln('Jumlah Penduduk pada tahun ',th2,' sebanyak ',trunc(Pt),'
jiwa.');END.
1
1
= tt
RPP
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
18
JUMLAH PERTUMBUHAN PENDUDUK----------------------------Tahun Pertama : 2003Jumlah Penduduk Th. Pertama : 1200000Tahun Terakhir Pertumbuhan : 2010Presentase Pertumbuhan/thn : 6
Jumlah Penduduk pada tahun 2010 sebanyak 1804356 jiwa.
PEMILIHAN PROSES
Dalam pemrograman terstruktur ada 3 macam proses ekekusi statemen, yaitu:1. Proses eksekusi secara berurutan (sequential),2. Proses pemilihan (selection) dan3. Proses berulang
Proses eksekusi secara berurutan dimulai dari statemen paling awal sampai kepada statemen palingakhir secara berurutan. Terkadang ada kalanya proses eksekusi harus dilompatkan ke suatu statemenyang berada jauh di bawah, atau diperlukan adanya proses berulang. Karenanya digunakan statemenkendali.Statemen kendali adalah statemen yang digunakan untuk mengubah urutan eksekusi program daripola eksekusi normal (secara berurutan) ke pola yang lain ( secara tidak berurut), yaitu statemenpemilihan proses dan proses berulang.Statemen pemilihan proses dalam Pascal ada dua buah statemen, yaitu if... then... dan case. Variasibentuk if...then diantaranya adalah pilihan tunggal, pilihan ganda dan pilihan jamak.
Operator Pembanding.
Simbol Arti
= Sama dengan
Tidak sama dengan
> Lebih besar dari
>= Lebih besar atau sama dengan
< Lebih kecil dari
-
7/27/2019 Modul Pascal 2pg
10/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
19
Masukkan sembarang angka = -78
Nilai Mutlak dari 78 = 78
Pilihan GandaYakni memilih salah satu d ari 2 pilihan yang disediakan. Bentuk umum:
If kondisi Then
Statemen1Else
Statemen2;
Contoh:
USES crt;VAR
Pertama, kedua, hasil : Real;Begin
Clrscr;Write(Input angka pertama : ); Readln(Pertama);Write(Input angka kedua : ); Readln(Kedua);Writeln;If kedua 0 ThenBegin
x1:=(-B + sqrt(D)) / (2.0*A);x2:=(-B - sqrt(D)) / (2.0*A);writeln('Nilai Diskriminan = ',D:1:3);writeln('Akar x1 = ',x1:1:3);writeln('Akar x2 = ',x2:1:3);
EndElse If D = 0 ThenBegin
x1:=-B/(2.0*A);
writeln('Nilai Diskriminan = 0');writeln('Dua akar yang sama = ',x1:1:3);EndElseBegin
x1:=-B/(2.0*A);x1i:= - sqrt(abs(D))/(2.0*A);writeln('Nilai Diskriminan = ',D:1:3);writeln('Dua Akar Imajiner :');writeln('Akar x1 = ',x1:1:3,' + ',abs(x1i):1:3,'i');writeln('Akar x2 = ',x1:1:3,' - ',abs(x1i):1:3,'i');
EndEnd
End.
02 =++ CBxAx 0=+CBx
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
11/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
21
MENGHITUNG AKAR PERSAMAAN KUADRAT---------------------------------Ax^2 + Bx + Cx = 0
Koefisien A = 1Koefisien B = 2Koefisien C = -8
Nilai Diskriminan = 36.000
Akar x1 = 2.000Akar x2 = -4.000
STATEMEN CASE
Sejumlah statemen if dalam pilihan jamak terlihat agak membingungkan terutama bagi pemula,beberapa pemilihan proses untuk sejumlah pilihan jawaban bisa dilakukan dengan statemen Case.Bentuk umum:Caseungkapanof
Label 1 : statemen 1;Label 2 : statemen 2;......Label n : statemen n;
EndDengan:
1. Ungkapan yang mengikuti kata case dapat berupa sembarang ungkapan yang memberikanhasil integer, char, boolean atau tipe terbilang.
2. Label, yang masing-masing disebut label kasus, adalah konstanta yang mempunyai tipe yangsama dengan ungkapan. Setiap label kasus dapat terdiri dari sejumlah konstanta dipisahkandengan koma. Konstanta tertentu hanya bisa muncul dalam satu label kasus.
3. Antara label kasus dengan statemen yang mengikutiny a dipisahk an dengan tanda baca titikdua (:)
4. Statemen yang mengikuti tanda titik dua dapat berupa statemen tunggal atau majemuk.5. Dalam setiap statemen case bisa terdiri dari sejumlah label kasus diikuti dengan statemen
yang berhubungan.6. Kata end digunakan untuk mengakhiri setiap statemen case dan merupakan bagian dari
statemen case.
Pada saat statemen case dikerjakan, beberapa proses akan terjadi, yaitu: 1. Ungkapan yang mengikuti case akan dihitung.2. Satu dari sejumlah statemen yang ada dalam struktur case akan dipilih berdasarkan nilai
konstanta dalam label kasus yang nilainya sama dengan nilai ungkapan yang telah dihitung.3. Statemen yang dimaksud akan dikerjakan.4. Statemen yang mengikuti end akan dikerjakan.
Contoh Program
Uses crt;Var
Nama_siswa : string[30];Npm : string[8];Nilai_mid, nilai_final : integer;Nilai : integer;Hasil : string[20];
BeginClrscr;Write(Input Nama Mahasiswa : );readln(Nama_siswa);Write(Input Npm : );readln(npm);Write(Nilai Mid Test : );readln(Nilai_mid);
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
22
Write(Nilai Final Test : );readln(Nilai_final);Nilai := (Nilai_mid + Nilai_final) div 2;{ DIV : pembagian data integer }Case Nilai Of
1..20 : hasil := Jelek;21..40 : hasil := Kurang;41..60 : hasil := Cukup;61..80 : hasil := Baik;else hasil := Istimewa; (* 81
-
7/27/2019 Modul Pascal 2pg
12/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
23
writeln('Input anda bukanlah karakter alphabet!');readln;Goto INPUT_LAGI;
end;BERAKHIR:
End.
Ketikan sebuah karakter : tAnda menginput Huruf Kecil!
PROSES BERULA NG (LOOPING)
STATEMEN WHILE ... DO
Statemen ini digunakan bila satu atau lebih statemen akan dieksekusi berulang kali sampai kondisiyang dinyatakan dalam statemen WHILE tidak dipenuhi. Bentuk umumnya:
Whilekondisi doStatemen
DenganKondisi: ungkapan boolean yang digunakan sebagai syarat agar statemen dikerjakan berulang kali.Statemen : statemen tunggal atau st atemen majemuk yang akan diproses ulang.
Contoh:
uses crt;vari,jumlah,nilai:integer;rerata:real;
beginclrscr;writeln('MENGHITUNG HARGA RATA-RATA SEJUMLAH DATA NILAI');writeln('----------------------------------------------');writeln;writeln('Isi Nilai dengan bilangan Positif dan negatif untuk
Selesai..');I:=0;Jumlah:=0;write('Masukan data ke-',I+1,' = ');readln(nilai);while nilai>=0 dobegin
inc(i); { bisa diganti dgn i := i + 1; }inc(jumlah,nilai); { bisa juga dgn jumlah := jumlah +
nilai; }
write('Masukan data ke-',I+1,' = ');readln(nilai);end;rerata := jumlah / i; writeln;writeln('Cacah Data = ',I:5);writeln('Jumlah Data = ',jumlah:5);writeln('Nilai Rata-rata = ',rerata:8:2);
end.
MENGHITUNG HARGA RATA-RATA SEJUMLAH DATA NILAI----------------------------------------------
Isi Nilai dengan bilangan Positif dan negatif untuk Selesai..Masukan data ke-1 = 3
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
24
Masukan data ke-2 = 3Masukan data ke-3 = 4Masukan data ke-4 = 5Masukan data ke-5 = -1
Cacah Data = 4Jumlah Data = 15Nilai Rata-rata = 3.75
STATEMEN REPEAT ... UNTIL
Cara kerja statemen ini merupakan kebalikan dari statemen while. Karena untuk statemen while, testpenghentian looping ada di awal kalang, tetapi untuk repeat ini ada di akhir kalang. Dan dalamstatemen repeat ini proses berulang akan dilaksanakan terus selama kondisi dipenuhi. Bentukumumnya:
RepeatStatemen
Until kondisi
Contoh:
uses cr ;vari,jumlah,nilai:integer;maksimum,minimum:integer;rerata:real;
begin
clrscr;writeln('MENGHITUNG HARGA RATA-RATA,MIN,MAX SEJUMLAH DATA NILAI');writeln('----------------------------------------------');writeln;writeln('Isi Nilai dengan bilangan Positif dan negatif untuk
Selesai..');I:=0;Jumlah:=0;write('Masukan data ke-',I+1,' = ');readln(nilai);if nilai < 0 then
writeln('Tidak ada nilai yang dimasukkan...!')elsebegin
minimum:=nilai;maksimum:=nilai;repeat
if nilaimaksimum then
maksimum:=nilai;
i := i + 1;jumlah := jumlah + nilai;write('Masukan data ke-',I+1,' = ');readln(nilai);
until nilai < 0;rerata := jumlah / i; writeln;writeln;writeln('Cacah Data = ',I:5);writeln('Jumlah Data = ',jumlah:5);writeln('Nilai Rata-rata = ',rerata:8:2);writeln('Nilai Maksimum = ',maksimum:5);writeln('Nilai Minimum = ',minimum:5);
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
13/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
25
enend.
MENGHITUNG HARGA RATA-RATA,MIN,MAX SEJUMLAH DATA NILAI----------------------------------------------
Isi Nilai dengan bilangan Positif dan negatif untuk Selesai..Masukan data ke-1 = 6Masukan data ke-2 = 4Masukan data ke-3 = 5
Masukan data ke-4 = 3Masukan data ke-5 = 7Masukan data ke-6 = 2Masukan data ke-7 = -1
Cacah Data = 6Jumlah Data = 27Nilai Rata-rata = 4.50Nilai Maksimum = 7Nilai Minimum = 2
STATEMEN FOR ... DO
Dalam statemen for pengawalan nilai variabel kendali kalang, penambahan nilai dan test batas nilaiakan dilaksanakan secara otomatis oleh komputer. Contoh:
Jumlah := 0;For bulat := 1 to 25 do
Jumlah := Jumlah + bulat;Writeln(JUMLAH = , jumlah:1);
Dalam program di atas, statemen:
For Bulat := 1 to 25 do
Bisa diartikan sebagai:dimulai dengan nilai variabel bulat = 1, kerjakan statemen yang ditulis setelah kata do. Tambahkan 1pada nilai variabel Bulat pada setiap pengerjaan statemen, dan keluar dari looping jika nilai variabelbulat telah melebihi 25.
BU:For variabel := ungkapan1 to ungkapan2 do
Statemen;
Aturan-aturan penggunaan for:
1. variabel, ungkapan1 dan ungkapan2harus mempunyai tipe sama, dan harus bertipe ordinal.2. Kata to menunjukkan nilai variabel berubah menjadi nilai penerus setiap kali operasi looping
dikerjakan.3. Kata to akan dikerjakan jikai nilai variabel masih lebih kecil atau sama dengan nilai akhir (nilai
ungkapan2).4. Kata downto menunjukkan nilai variabel berubah menjadi nilai pendahulunya setiap kali operasi
looping dikerjakan. Dengan kata lain kata downto harus digunakan jikai nilai awal l ebih besar darinilai akhir.
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
26
5. Kata downto akan dikerjakan jika nilai variabel masih lebih besar atau sama dengan nilaiungkapan2.
Interprestasi statemen-statemen for...do adalah sebagai berikut:
var I : integer;for I:= 1 to 100 do statemen;
statemen akan dikerjakan 100 kali.
var I,L,N : integer;for I:= L to N do statemen;
statemen akan dikerjakan sbanyak (N-L+1) k ali.
var KK : integer;for KK := 25 downto 1 do statemen
statemen akan dikerjakan sebanyak 25 kali dimulai dari KK = 25, 24, 23..., 1.
var Berikut : integer;for berikut := 2.0 to 100 do statemen;
salah, karena nilai awalnya adalah Real.
var Kata : char;for Kata := A to F do statemen
statemen akan dikerjakan 6 kali dimulai K = A, B,...,F.
type Namahari = (SENIN,SELASA,RABU,KAMIS,JUMAT,SABTU,MINGGU);var Hari : Namahari;for Hari:= SELASA to SABTU do statemen;
statemen akan dikerjakan 5 kali.
Contoh Program Menghitung Nilai Faktorial
cr ;VAR
Faktor : Real;Cacah,Bil_Awal,Bil_Akhir,Counter,Baris : Integer;
BEGINclrscr;writeln('TABEL FAKTORIAL');
write('Bilangan Awal = ');readln(Bil_Awal);write('Bilangan Akhir = ');readln(Bil_Akhir);writeln;writeln(' TABEL FAKTORIAL');writeln('-----------------------------------------');writeln(' Bilangan Harga Faktorial');writeln('-----------------------------------------');Baris:=9;
For Cacah:=Bil_Awal to Bil_Akhir doBegin
Faktor:=1;For Counter:= 1 to Cacah do
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
14/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
27
a or:= a or oun er;gotoxy(2,Baris);Write(Cacah:8);gotoxy(20,Baris);Writeln(Faktor:1:1);Baris:=Baris+1;
End;writeln('-----------------------------------------');
END.
TABEL FAKTORIALBilangan Awal = 1
Bilangan Akhir = 12
TABEL FAKTORIAL-----------------------------------------Bilangan Harga Faktorial-----------------------------------------
1 1.02 2.03 6.04 24.05 120.06 720.07 5040.08 40320.09 362880.010 3628800.011 39916800.012 479001600.0
-----------------------------------------
LARIK (ARRAY) DIMENSI SATU
Salah satu tipe data terstruktur yang telah kita pelajari dari modul materi terdahulu adalah array ataudengan istilah lainnya adalah larik. Terminologi dari larik itu sendiri, yaitu:1. Larik adalah deretan rinci data yang mempunyai tipe data sejenis. Untai karakter (string)
merupakan c ontoh array.2. Setiap rinci data disebut dengan komponen atau elemen array.3. Setiap larik (array) bisa dioperasikan menggunakan pemilih elemen array yang disebut index atau
subskrip. Dalam program, index atau subskrip tersebut diletakkan dalam tanda kurung kotak, [ ],setelah nama array yang akan dioperasikan.
Untuk mendeklarasikan variabel array ditentukan dengan:
Var nama : array [index] oftipe;
Dengan Var,array, of : kata kunci yang harus ada.Nama : nama array yang akan dideklaras ikanIndex : batasan index yang akan ada pada array yang akan dideklarasikanTipe : tipe array;
Contoh deklarasi:
VarGaji : array[1..10] of real;Upah : array[-4..8] of real;
Atau
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
28
Const batas=100;Var
Angka : array[1..batas] of integer;
Const batas=1..200;Var
kalimat : array [batas] of char;
Contoh Pengoperasian variabel array:
VarKalimat : array[1..100] of char;Vektor : array[1..25] of real;Jawaban : array[1..10] of real;Nilai : array[1..80] of integer;Frekuensi : array[1..100] of integer;Jumlah, Hasil_kali,selisih : real;Kata,huruf : char;I,j,k,total,hasil : integer;
.
.kata := kalimat[1];selisih := Vektor[1]-Vektor[2];jumlah := jumlah + Vektor[K];hasil_kali := jawaban[J] * jawaban[K] * Vektor[I];kalimat[25] :=P;
Frekuensi[5]:=2 * Vektor[5];
Contoh Program
1. Mencetak deret bilangan PASCAL:
uses cr ;
vari,angka,a,b : integer;bil : array[1..100] of integer;next : array[1..100] of integer;deret,kolom,kol: integer;
Beginclrscr;kolom:=40;write('Masukan Jumlah Deret = ');readln(deret);next[1]:=0;next[2]:=1;next[3]:=0;
kol:=kolom;gotoxy(kol,wherey);writeln(1);
For a:=2 to deret doBegin
kolom:=kolom-2;kol:=kolom;
For b:=1 to 100 do
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
15/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
29
:=nex ;
For b:=1 to a doBegin
angka:=bil[b]+bil[b+1];gotoxy(kol,wherey);
{WHEREY: fungsi untuk mendapatkan koordinat baris kursor yg aktif }write(angka);next[b+1]:=angka;next[b+2]:=0;
kol:=kol+4;End;writeln;
End;End.
Masukan Jumlah Deret = 61
1 11 2 1
1 3 3 11 4 6 4 1
1 5 10 10 5 1
2. Mencetak bilangan PRIMA
ses cr ;const Batas=500;
varprima : array[1..batas] of boolean; { bilangan prima }batas_geser, { batas penggeseran }i,j : integer; { counter / cacah }
BeginClrscr;For i:=1 to Batas do
prima[i]:=true;batas_geser:=trunc(sqrt(batas));i:=2;{ proses penggeseran }While i
-
7/27/2019 Modul Pascal 2pg
16/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
31
Begin
Clrscr;Writeln('PENJUMLAHAN MATRIK');Writeln('------------------');Write('Tentukan ordo Matriks : ');readln(ordo_x,ordo_y);Writeln('Input Matrik :');For y:=1 to ordo_y doBegin
koor_brs:=wherey;
For x:=1 to ordo_x doBegingotoxy(x*5,koor_brs);Read(Mat_A[x,y]);
End;End;
Writeln;Writeln('Input Matrik :');For y:=1 to ordo_y doBegin
koor_brs:=wherey;For x:=1 to ordo_x doBegin
gotoxy(x*5,koor_brs);Read(Mat_B[x,y]);
End;End;Writeln;
Writeln('Hasil Penjumlahan Matrik A + B = ');For y:=1 to ordo_y doBegin
For x:=1 to ordo_x doBegin
Mat_C[x,y]:=Mat_A[x,y]+Mat_B[x,y];Write(Mat_C[x,y]:5);
End;Writeln;
End;End.
PENJUMLAHAN MATRIK------------------Tentukan ordo Matriks : 3 2Input Matrik :
6 -2 -13 4 9
Input Matrik :5 2 1-4 2 7
Hasil Penjumlahan Matrik A + B =11 0 0-1 6 16
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
32
OPERA SI STRING
PENYELEKSIAN STRING
Dua buah string dikatakan sama bila nilai string yang pertama isi dan panjangnya sama dengan nilaikedua. Blank dianggap nilai yang signifikan. Bila dua buah string dibandingkan, maka urutan nilainyaakan digunakan urutan karakter yang sesuai dengan kode ASCII. Jadi karakter A lebih kecil darikarakter B.
Contoh:
uses cr ;varNamaAnda, NamaTeman : string[30];
Beginclrscr;write('Nama Anda : ');Readln(NamaAnda);write('Nama Teman : ');Readln(NamaTeman);if NamaAnda = NamaTeman Then
writeln('Nama Anda sama dengan Nama Teman Anda !');if NamaAnda < NamaTeman Then
writeln('Nama Anda urutannya lebih kecil dari nama teman anda !');if NamaAnda > NamaTeman Then
writeln('Nama Anda urutannya lebih besar dari nama teman anda !');End.
Nama Anda : TukulNama Teman : TessiNama Anda urutannya lebih besar dari nama teman anda !
PROSEDUR STANDAR OPERASI STRING
1. DeleteBentuk umum: Delete(var s:string;index: integer;count:integer);
Prosedur standar ini digunakan untuk membuang (delete) sejumlah karakter (jumlah karakteryang dibuang ditunjukkan oleh nilai count) mulai dari posisi tertentu (ditunjukkan oleh nilai index)dari suatu nilai string (ditunjukkan oleh variabel s). jika posisi index lebih besar dari panjang strings, maka tidak ada karakter yang akan dihapus.
Contoh:
uses cr ;Var
kalimat : string[50];urutan,posisi : integer;panjang_kalimat : integer;
Begin
clrscr;kalimat:='Percobaan';panjang_kalimat:=length(kalimat); {fungsi length: panjang sebuah
karakter}for urutan:=1 to panjang_kalimat doBegin
posisi:=(panjang_kalimat+2)-urutan;delete(kalimat,posisi,1);writeln(kalimat);
end;end.
PercobaanPercobaa
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
17/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
33
PercobaPercobPercoPercPerPeP
2. InsertBentuk Umum : Insert(source:string; var s:string; index:integer);
Digunakan untuk menyisipi (insert) suatu st ring (ditunjukkan oleh nilai string source), ke ni lai stringlainnya (ditunjukkan oleh nilai string s) mulai dari posisi yang ditunjukkan oleh nilai integer index.Bila hasil dari penyisipan menjadi string yang panjangnya lebih dari 255 karakter, maka hanyasampai dengan 255 karakter saja.
Contoh:
uses cr ;var
kalimat : string[100];Begin
kalimat:='GUMA';clrscr;writeln(kalimat);Insert('NADAR',kalimat,3);writeln(kalimat);
End.
GUMAGUNADARMA
3. StrBentuk Umum : Str(x[:width[:decimals]; var s:string);
Digunakan untuk mengubah nilai numerik (ditunjukan oleh nilai x) menjadi nilai string (ditunjukkanoleh variabel string s). nilai x dapat berupa nilai integer atau real. Hasil dari ubahan dapatterformat atau tidak terformat. Bila width atau decimals disebutkan, maka akan dihasilkan nilaistring dengan format panjang tertentu.
Contoh:
uses cr ;var
n1,n2 : integer;s1,s2 : string[10];
beginclrscr;n1:=40;n2:=35;writeln('n1 + n2 = ',n1+n2);str(n1,s1);str(n2,s2);writeln('s1 + s2 = ',s1+s2);str(n1:4,s1);str(n2:4,s2);writeln('s1 + s2 = ',s1+s2);
end.
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
34
n1 + n2 = 75s1 + s2 = 4035s1 + s2 = 40 35
4. ValBentuk Umum : Val(s:string;v ;var code);
Digunakan untuk mengkonversikan suatu nilai string(ditunjukkan oleh nilai s) menjadi nilai numerik(ditunjukkan oleh nilai variabel numerik v). Walaupun s merupakan nilai string, tetapi harus berisiangka atau tanda (+) atau (-), bila tidak berarti salah dan letak kesalahannya ditunjukkan oleh nilaivariabel code. Nilai variabel code akan b ernilai nol bila ti dak mengandung kesalahan.
Contoh:
varNilaiString : string[10];NilaiReal : Real;PosisiSalah : integer;
Beginclrscr;NilaiString:='123.45';val(NilaiString,NilaiReal,PosisiSalah);writeln('Nilai String : ',NilaiString);writeln('Nilai Real : ',NilaiReal);writeln('Posisi Salah : ',PosisiSalah);
End.
Nilai String : 123.45Nilai Real : 1.2345000000E+02Posisi Salah : 0
Jika NilaiString=123.A5
Nilai String : 123.A5Nilai Real : 0.0000000000E+00Posisi Salah : 5
FUNGSI STANDAR OPERASI STRING
1. CopyBentuk Umum : Copy(s:string; index:integer;count:integer):string;
Fungsi ini digunakan untuk menyalin(copy) sejumlah karakter yang disalin ditunjukkan oleh nilaicount mulai dari posisi yang ditunjukkan oleh index dari nilai string yang ditunjukkan oleh s.
Contoh:
varkalimat : string[100];hasil : string[100];
Beginkalimat:='ABCDEFGHIJKLMNOPQRSTUVWXYZ';writeln(kalimat);hasil:=Copy(kalimat,4,6);
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
18/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
35
wr e n as ;writeln(Copy(kalimat,9,1));
End.
ABCDEFGHIJKLMNOPQRSTUVWXYZDEFGHII
2. ConcatBentuk Umum : Concat(s1[,s2,...,sn]:string):string;
Digunakan untuk menggabungkan beberapa string yang ditunjukkan oleh variabel s(n).
Contoh:
ConstNama = Pascal;Dll = dan keluarga;
BeginWriteln(concat(Bahasa ,Nama, untuk Anda ,Dll);
End.
Bahasa Pascal untuk Anda dan keluarga
3. PosBentuk Umum : Pos(substr:string; s:string):byte;Digunakan untuk mencari posisi letak dari suatu string (ditunjukkan oleh substr) yang ada didalam nilai string yang lain (ditunjukkan oleh s). nilai yang dihasilkan adalah berupa nilai byteyang menunjukkan letaknya. Bila bernilai nol berarti nilai string yang dicari tidak ada.
Contoh:
consAlfabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';kar1 = 'FGHI';kar2 = 'F';kar3 = 'JUGA';kar4 = 'PQRST';
Beginwriteln(Alfabet);writeln;writeln(kar1,' ada di posisi ke ',Pos(kar1,Alfabet));writeln(kar2,' ada di posisi ke ',Pos(kar2,Alfabet));
writeln(kar3,' ada di posisi ke ',Pos(kar3,Alfabet));writeln(kar4,' ada di posisi ke ',Pos(kar4,Alfabet));
End.
ABCDEFGHIJKLMNOPQRSTUVWXYZ
FGHI ada di posisi ke 6F ada di posisi ke 6JUGA ada di posisi ke 0PQRST ada di posisi ke 16
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
36
4. Length
Bentuk Umum : Length(s:string):integer;
Digunakan untuk menghitung panjang atau jumlah karakter yang ada di nilai string yangditunjukkan oleh s. hasil dari fungsi ini adalah nilai numerik integer positif.
Contoh:
VarNamaAnda : String[50];Begin
Write(Nama Anda : );Readln(NamaAnda);Writeln(Panjang nama anda adalah ,Length(NamaAnda), karakter.);
End.
Nama Anda : TukulPanjang nama anda adalah 5 karakter.
PROSEDUR
Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai subprogram(program bagian). Prosedur diawali dengan kata reserved(cadangan) proceduredi dalam bagian
deklarasi. Prosedur dipanggil dan digunakan di dalam blok program yang lainnya denganmenyebutkan judul prosedurnya.
Prosedur banyak digunakan pada program terstruktur, karena:
Merupakan penerapan konsep program modular, yaitu memecah-mecah program yang rumitmenjadi program-program bagian yang lebih sederhana dalam bentuk prosedur-prosedur.
Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalamprosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
Contoh:
Procedure Garis;Begin
Writeln(------------);End;
BeginGaris;Writeln(Turbo Pascal);Garis;
End.
------------Turbo Pascal------------
Nilai di dalam suatu modul program Pascal sifatnya lokal, artinya hanya dapat digunakan padamodul yang bersangkutan saja, tidak dapat digunakan pada modul lainnya. Sebaliknya, agardapat digunakan oleh seluruh modul maka variabel harus dideklarasikan secara global, yaitudideklarasikan diluar modul program.
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
19/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
37
Contoh program yang salah:
Procedure Proses;Var
X,Y : real; { x dan y adalah variabel lokal untuk modulproses }Begin
Write(Nilai x : );readln(X);Y:=x*x;
End;
BeginProses;Writeln(Nilai y : ,Y:2:1);{ salah, karena variabel Y belum dideklarasikan untuk modul utama}
End.
Contoh program yang benar tetapi bernilai salah
VarY : real;
Procedure Proses;Var
X,Y : real; { x dan y adalah variabel lokal untuk modulproses }Begin
Write(Nilai x : );readln(X);Y:=x*x;
End;
BeginProses;Writeln(Nilai y : ,Y);
End.
Nilai x : 5Nilai y : 0.0{ Y bernilai 0, karena Y yang dicetak adalah variabel Y milik modul
utama}
Prosedur dapat dibuat dengan menggunakan parameter-parameter variabel, baik dalam bentuknilai atau referensi (acuan).
Procedure Hitung(A,B:integer; Var C:integer);{A dan B adalah parameter nilai dan C adalah parameter acuan}Begin
C:=A + B;Writeln(Hasil A + B = ,C);
End;
VarY: Integer;
BeginHitung(5,7,Y);Writeln(Hasil Y + 10 ,Y);
End.
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
38
Hasil A + B = 12Hasil Y + 10 = 22
Prosedur dapat memanggil prosedur lainnya dan dapat pula memanggil dirinya sendiri atau istilahlainnya adalah proses rekursi. Contoh:
Procedure Rekursi(I:integer);
BeginWriteln(proses yang ke-,I);Dec(I);If I>0 Then
Rekursi(I);End;
BeginRekursi(5);
End.
proses yang ke-5proses yang ke-4proses yang ke-3proses yang ke-2proses yang ke-1
OUTPUT:
FUNGSI (FUNCTION)
Blok fungsi hampir sama dengan blok prosedur, hanya saja fungsi dapat mengembalikan nilai dari tipeyang dideklarasikannya. Contoh:
Function Hitung(Var A,B : integer):Integer;Begin
Hitung:=A + B;End;
VarX,Y : Integer;
BeginWrite(Nilai X = ); Readln(X);Write(Nilai Y = ); Readln(Y);Writeln;
Writeln(X, + ,Y, = ,Hitung(X,Y);End.
Nilai X = 2Nilai Y = 9
2 + 9 = 11
RECORD
Record merupakan tipe data terstruktur, yang terdiri dari item data dan masing-masing dapatmempunyai tipe data yang berbeda-beda. Item data itu dinamakan FIELD.
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
20/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
39
DEKLARASI RECORD
Tipe data Record diawali dengan keyword RECORD yang diikuti oleh suatu daftar field dan diakhiridengan keyword END. Contoh:
TYPERec_Langganan = RECORD
KODE : STRING[10];NAMA : STRING[30];ALAMAT : STRING[50];PIUTANG : REAL;
END;
VARPELANGGAN : Rec_Langganan;
Atau mendeklarasikan langsung di bagian deklarasi variabel
VARPELANGGAN : RECORD
KODE : STRING[10];NAMA : STRING[30];ALAMAT : STRING[50];PIUTANG : REAL;
END;
MENGGUNAKAN TIPE DATA RECORD
Tipe data recordnya adalah Rec_Langganan dan variabel yang menggunakan tipe tersebut adalahPELANGGAN, jika ingin memberikan nilai ke salah satu field, contohnya field NAMA maka cara
penulisannya adalah:
PELANGGAN.NAMA := Bla-bla bin bla;
Contoh:ses cr ;type myRec = Record
nama : string[30];npm : string[8];kelas : string[6];nilai_mid : real;nilai_fin : real;nilai_rata : real;
end;
Varmhs : myRec;
Procedure Input;Begin
writeln('Input Data Mahasiswa:');writeln;write('Nama Mahasiswa : ');readln(mhs.nama);write('NPM : ');readln(mhs.npm);write('Kelas : ');readln(mhs.kelas);write('Nilai Mid Test : ');readln(mhs.nilai_mid);write('Nilai Final Test : ');readln(mhs.nilai_fin);
VariabelRecord
VariabelFieldTitik
Penghubung
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
40
n ;
Function Hitung_Nilai_Rata(mid,final:real):real;Var
rasio1,rasio2:real;Begin
rasio1:=mid*(70/100); { 70% dari nilai mid}rasio2:=final*(30/100); { 30% dari nilai final}Hitung_Nilai_Rata:=rasio1+rasio2;
End;
Procedure Proses;Begin
mhs.nilai_rata :=Hitung_Nilai_Rata(mhs.nilai_mid,mhs.nilai_fin);End;
Procedure Cetak;Begin
writeln('Cetak Data Mahasiswa:');writeln;writeln('Nama Mahasiswa : ',mhs.nama);writeln('NPM : ',mhs.npm);writeln('Kelas : ',mhs.kelas);writeln('Nilai Mid Test : ',mhs.nilai_mid:2:2);writeln('Nilai Final Test : ',mhs.nilai_fin:2:2);writeln('Nilai Rata-rata : ',mhs.nilai_rata:2:2);
End;
Begin
clrscr;Input;Proses;writeln;Cetak;
End.
Input Data Mahasiswa:
Nama Mahasiswa : Jhon KeboyNPM : 77704567Kelas : 3KX-20Nilai Mid Test : 56Nilai Final Test : 78
Cetak Data Mahasiswa:
Nama Mahasiswa : Jhon KeboyNPM : 77704567
Kelas : 3KX-20Nilai Mid Test : 56.00Nilai Final Test : 78.00Nilai Rata-rata : 62.60
Penulisan variabel record dapat dipersingkat d engan menggunakan statemen W ITH.
Contoh:
TypeHasil = RECORD
Jari_jari : REAL;
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
21/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
41
Keliling : REALLuas : REAL;
END;
VarLingkaran : Hasil;
BeginWith Lingkaran DoBegin
Write(Jari-jari lingkaran : );Readln(Jari_jari);
Keliling := 2*PI*Jari_jari;Luas := PI*SQR(Jari_Jari);Writeln;Writeln(Keliling Lingkaran = ,Keliling:7:2);Writeln(Luas Lingkaran =,Luas:7:2);
End;End;Jari-jari Lingkaran : 10
Keliling Lingkaran = 62.83Luas Lingkaran = 314.16
OUTPUT:
Contoh Program Record menggunakan Array
ses cr ;Type myRec = Record
nama : string[30];npm : string[8];kelas : string[6];nilai_mid : real;nilai_fin : real;nilai_rata : real;
end;
Varmhs : array[1..100] of myRec;tombol : char;nomor : integer;
Procedure BikinGaris(x,y,max:integer;k:char);var
a : Integer;
Beginfor a:=0 to max-1 dobegin
gotoxy(x+a,y);write(k);
end;writeln;
End;Procedure Input;Begin
Repeatclrscr;inc(nomor);
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
42
wr e n npu a a a as swa yang e: ,nomor ;wr e n;With mhs[nomor] dobegin
write('Nama Mahasiswa : ');readln(nama);write('NPM : ');readln(npm);write('Kelas : ');readln(kelas);write('Nilai Mid Test : ');readln(nilai_mid);write('Nilai Final Test : ');readln(nilai_fin);
end;writeln;
write('Anda Mo Nginput Lagi[Y/T] : ');tombol:=readkey;{ readkey-> fungsi untuk membaca 1 karakter dari keyboard }
Until tombol in ['T','t'];End;
Function Hitung_Nilai_Rata(mid,final:real):real;Var
rasio1,rasio2:real;Begin
rasio1:=mid*(70/100); { 70% dari nilai mid}rasio2:=final*(30/100); { 30% dari nilai final}Hitung_Nilai_Rata:=rasio1+rasio2;
End;
Procedure Proses;Var
i :integer;Begin
for i:=1 to nomor domhs[i].nilai_rata:=Hitung_Nilai_Rata(mhs[i].nilai_mid,mhs[i].nilai_fin);End;
Procedure Cetak;var
i : integer;Begin
clrscr;writeln('Cetak Data Mahasiswa:');writeln;BikinGaris(1,wherey,72,'=');gotoxy(1,wherey);write('NO');gotoxy(6,wherey);write('NPM');gotoxy(16,wherey);write('NAMA');gotoxy(46,wherey);write('KELAS');gotoxy(54,wherey);write('MID');gotoxy(60,wherey);write('FINAL');gotoxy(66,wherey);write('RATA'); writeln; BikinGaris(1,wherey,72,'-
');for i:=1 to nomor doBegin
with mhs[i] dobegin
gotoxy(1,wherey);write(i:3);gotoxy(6,wherey);write(npm);gotoxy(16,wherey);write(nama);gotoxy(46,wherey);write(kelas);gotoxy(54,wherey);write(nilai_mid:2:2);gotoxy(60,wherey);write(nilai_fin:2:2);gotoxy(66,wherey);write(nilai_rata:2:2);writeln;
end;
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
22/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
43
n ;BikinGaris(1,wherey,72,'=');
End;
Beginclrscr;Input;Proses;Cetak;
End.Input Data Mahasiswa yang ke:6
Nama Mahasiswa : Jo'engNPM : 64502453Kelas : 3KY-03Nilai Mid Test : 57Nilai Final Test : 89
Anda Mo Nginput Lagi[Y/T] :
Cetak Data Mahasiswa:
========================================================================NO NPM NAMA KELAS MID FINAL RATA------------------------------------------------------------------------1 45301767 Cecep Sarecep 2KT-13 45.00 89.00 58.20
2 23401897 Didin Ba Didin 2KT-13 56.00 75.00 61.703 44203787 Karlina de Jenggel 3YH-04 56.00 34.00 49.404 33802565 Maman Sukarman 3TK-02 80.00 76.00 78.805 45302456 Urip Rahman 2KT-10 77.00 65.00 73.406 64502453 Jo'eng 3KY-03 57.00 89.00 66.60
========================================================================
FILE
File (Berkas) adalah kumpulan sejumlah komponen yang bertipe data sama, yang jumlah tidaktertentu. Pengertian file atau berkas di analogikan dengan simpanan arsip.
Di dalam Pascal, berkas menyediakan data yang nantinya akan digunakan oleh suatu program.Berkas dapat berupa disk file yaitu media penyimpanan yang berupa cakram magnetis, pita magnetis,kartu plong dan media-media penyimpanan lainnya.
Berkas mempunyai sifat sebagai berkas berurutan (Sequential File), dimana untuk membaca record
ke-10 misalnya, maka pembacaan harus dilakukan dari record 1, 2, 3 dan seterusnya. Atau dapat pulasebagai berkas acak (Random File).
MENDEKLARASIKAN FILE
TYPE Var1 = FILE OF var2;
AtauVAR var1 = FILE OF var2;
Contoh
TYPE
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
44
TIPE_DATA = RECORDNAMA : string[25];ALAMAT : string[50];NO_TELP : string[15];USIA : INTEGER;
END;
VARFile_Data : FILE OF TIPE_DATA;D_Data : Tipe_Data;
OPERASI PADA FILE
1. Statemen ASSIGNStatemen ini digunakan untuk memilih/membuka berkas yang akan dioperasikan sesuai dengantipe berkas yang kita deklarasikan.
ASSIGN(variabel_berkas, nama_berkas);
Contoh:Assign(File_Data,biodata.dat);
2. Statemen CLOSEClose digunakan untuk menutup berkas yang telah dibuka oleh statemen assign. Dan hanyamenyebutkan variabel_berkas nya saja tanpa nama berkas.
Contoh:CLOSE(File_Data);
3. Statemen REWRITEDigunakan untuk membuat berkas baru yang telah dinyatakan dengan variabel berkas. Jikaberkas tersebut sudah ada dalam media penyimpan, maka berkas tersebut akan digantikandengan berkas yang baru.
Contoh:REWRITE(File_Data);
4. Statemen RESETDigunakan untuk mengeset penunjuk komponen kembali ke nomor 0. Contoh:
RESET(File_Data);
5. Statemen WRITEStatemen ini digunakan untuk menuliskan komponen berkas ( data) ke dalam media penyimpan.Dan akan menempatkan komponen baru tersebut di akhir record.
WRITE(variabel_berkas,variabel_komponen_berkas);
Contoh:WRITE(File_Data,D_Data);
6. Statemen READRead digunakan untuk membaca komponen berkas dari dalam media penyimpan. Pembacaandisesuaikan dengan posisi penunjuk komponen, setelah selesai membaca, posisi penunjukkomponen akan ditempatkan ke komponen berkas berikutnya.
READ(variabel_berkas,variabel_komponen_berkas);
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
23/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
45
Contoh:READ(File_Data,D_Data);
7. Statemen SEEKDigunakan untuk menggerakkan penunjuk komponen ke nomor komponen tertentu. Dengannomor awal record adalah 0.
SEEK(variabel_berkas,nomor_record);
Contoh:SEEK(File_Data,3); { diarahkan ke komponen yang ketiga);
8. Fungsi FILEPOSFungsi ini digunakan untuk mengetahui letak penunjuk komponen berada. Dan hasilnya berupabilangan bulat yang menunjukkan posisi penunjuk komponen pada saat itu.
FILEPOS(variabel_berkas);
Contoh:Posisi := FILEPOS(File_Data);
9. Fungsi FILESIZEDigunakan untuk mengetahui ukuran dari suatu berkas. Jika fungsi ini bernilai 0 berarti berkastersebut masih kosong.
FILESIZE(variabel_berkas);
Contoh:Ukuran := FILESIZE(File_Data);
{ ukuran data dalam satuan byte }
10. Fungsi EOFFungsi ini digunakan untuk mengetahui apakah penunjuk komponen berada di akhir berkas (EndOf File = EOF), jika YA maka bernilai TRUE dan jika TIDAK maka bernilai FALSE.
EOF(variabel_berkas);
Contoh:Akhir_File := EOF(File_Data);
11. Statemen FLUSHFlush digunakan untuk mengosongkan penyangga (buffer) dari berkas, dengan demikian akanmemastikan bahwa isi penyangga telah dituliskan dalam media penyimpan setelah statemenWRITE selesai dikerjakan.
FLUSH(variabel_berkas);
Contoh:FLUSH(File_Data);
12. Statemen ERASEErase digunakan untuk menghapus file atau berkas yang telah tertutup atau sedang tidakdigunakan.
ERASE(variabel_berkas);
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
46
Contoh:ERASE(File_Data);
13. Statemen RENAMEDigunakan untuk memberi nama baru pada berkas yang dinyatakan oleh variabel berkas. Danhanya dapat dilakukan pada berkas yang tertutup.
RENAME(variabel_berkas, nama_baru);
Contoh:RENAME(File_Data,baru.dat);
Contoh:
** PROGRAM MEMASUKKAN DATA KE DALAM FILE *** NAMA FILENYA ADALAH mhs.dat ******************************************* }
Uses Crt;
TypeNilai = RecordNama : string[25];Npm : string[8];Nilai_Mid : Real;Nilai_Fin : Real;Nilai_Rata : Real;
End;
VarFile_Nilai : File Of Nilai;Nilai_Mhs : Nilai;i,j : Integer;Lagi : Char;
Function Hitung_Nilai_Rata(mid,final:real):real;Var
rasio1,rasio2 :real;Begin
rasio1:=mid*(70/100); { 70% dari nilai mid}rasio2:=final*(30/100); { 30% dari nilai final}Hitung_Nilai_Rata:=rasio1+rasio2;
End;
BeginAssign(File_Nilai,'Mhs.Dat');Rewrite(File_Nilai);i:=0;Repeat
Inc(i);Clrscr;Writeln('Mengisi data pada File "Mhs.Dat"....');Writeln('------------------------------------');Writeln('Mengisi Data ke-',i:2);Writeln;With Nilai_Mhs DoBegin
Nilai_Rata:=0.0;Write('Nama Mahasiswa : ');Readln(Nama);
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
24/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
47
r e a as swa : ; ea n pm ;Write('Nilai Mid Test : ');Readln(Nilai_Mid);Write('Nilai Final Test : ');Readln(Nilai_Fin);Nilai_Rata:=Hitung_Nilai_Rata(Nilai_Mid,Nilai_Fin);
End;Write(File_Nilai,Nilai_Mhs);Writeln;Write('Akan Mengisi Lagi [a/Idak] : ');Readln(Lagi);
Until Not (Lagi In ['Y','y']);Close(File_Nilai);
End.
Mengisi data pada File "Mhs.Dat"....------------------------------------Mengisi Data ke- 1
Nama Mahasiswa : Yudhi Sumanto AkbarNPM Mahasiswa : 45689778Nilai Mid Test : 56Nilai Final Test : 78
Akan Mengisi Lagi [a/Idak] : Y
Contoh:
** PROGRAM MEMBACA DATA DARI FILE *** NAMA FILENYA ADALAH mhs.dat *
****************************************** }Uses Crt;Const
Garis='---------------------------------------------------------------------';Type
Nilai = RecordNama : string[25];Npm : string[8];Nilai_Mid : Real;Nilai_Fin : Real;Nilai_Rata : Real;
End;
VarFile_Nilai : File Of Nilai;Nilai_Mhs : Nilai;i,j,jumlah_data : Integer;Lagi : Char;
Function Hitung_Nilai_Rata(mid,final:real):real;Var
rasio1,rasio2 :real;Begin
rasio1:=mid*(70/100); { 70% dari nilai mid}rasio2:=final*(30/100); { 30% dari nilai final}Hitung_Nilai_Rata:=rasio1+rasio2;
End;
BeginAssign(File_Nilai,'Mhs.Dat');Reset(File_Nilai);
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
48
um a _ a a:= e ze e_ a ;
Clrscr;Writeln(' ':20,'DAFTAR NILAI UJIAN MAHASISWA');Writeln(' ':20,'----------------------------');Writeln;Writeln(Garis);Write('| No | Nama Mahasiswa | NPM |');Writeln(' MID | FIN | RATA |');Writeln(Garis);For i:=1 To Jumlah_Data DoBegin
Read(File_Nilai,Nilai_Mhs);Gotoxy(1,wherey);Write('| ',i:2,' |');With Nilai_Mhs DoBegin
Gotoxy(8,wherey);Write(Nama);Gotoxy(35,wherey);Write('| ',Npm);Gotoxy(46,wherey);Write('| ',Nilai_Mid:2:1);Gotoxy(54,wherey);Write('| ',Nilai_Fin:2:1);Gotoxy(62,wherey);Write('| ',Nilai_Rata:2:1,' |');
End;Writeln;
End;Writeln(Garis);Close(File_Nilai);
End.
DAFTAR NILAI UJIAN MAHASISWA----------------------------
---------------------------------------------------------------------| No | Nama Mahasiswa | NPM | MID | FIN | RATA |---------------------------------------------------------------------| 1 | Yudhi Sumanto Akbar | 45689778 | 56.0 | 78.0 | 62.6 || 2 | Rani Sianturi | 55198543 | 78.0 | 67.0 | 74.7 || 3 | Verry Van Vasten | 33297888 | 65.0 | 34.0 | 55.7 || 4 | Wisnu | 88895342 | 77.0 | 48.0 | 68.3 || 5 | Eliesah | 22196332 | 76.0 | 89.0 | 79.9 || 6 | Hattahat | 64399542 | 45.0 | 55.0 | 48.0 || 7 | Aim | 66594656 | 63.0 | 72.0 | 65.7 || 8 | Yahya Kopet | 44597556 | 76.0 | 54.0 | 69.4 || 9 | Enik Mugiharto | 22190778 | 56.0 | 33.0 | 49.1 || 10 | Koen-Koen | 33296456 | 86.0 | 32.0 | 69.8 || 11 | A-One | 33196432 | 87.0 | 81.0 | 85.2 || 12 | Djoko | 22187899 | 54.0 | 22.0 | 44.4 || 13 | Yuliar | 21095342 | 55.0 | 56.0 | 55.3 || 14 | Sulis | 21395651 | 88.0 | 52.0 | 77.2 |---------------------------------------------------------------------
FILE (BERKAS) TEXT
Selain yang telah dijelaskan di atas, Pascal menyediakan tipe berkas yang lain, yaitu berkas TEXT,berkas ini berisi deretan karakter. Komponen-komponen pada berkas teks membentuk suatu barisdan setiap baris diakhiri tanda akhir baris ( end-of-line, carriage return, atau line feed). Setiap akhir file(berkas) diakhir dengan tanda akhir berkas (end-of-file, CTRL-Z).
Cara pendeklarasiannya adalah:
TYPE var1 = TEXT;
mailto:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected]:[email protected] -
7/27/2019 Modul Pascal 2pg
25/30
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected],[email protected],[email protected]
49
AtauVAR
Var1 : TEXT;
Operasi-operasi yang digunakan dalam file teks sama dengan operasi-operasi sebelumnya, yaituassign, rewrite, reset, read, eof dan write. Dengan tambahan statemen-statemen di bawah ini:
1. Statemen WRITELNDigunakan untuk menuliskan satu baris data, setelah selesai, penunjuk akan turun ke barisberikutnya.
WRITELN(variabel_berkas,teks);
Contoh:WRITELN(File_text,Setelah kalimat ini di tulis, pointer akan menunjukke bawah);
2. Statemen READLNDigunakan untuk membaca satu baris data, dan penunjuk akan turun ke baris berikutnya.
READLN(variabel_berkas,teks);
Contoh:READLN(File_Text,text_nya);WRITELN(text_nya);
3. Fungsi EOLN
Fungsi ini digunakan untuk mengetes apakah penunjuk ada di akhir suatu baris atau tidak, jika yamaka akan mengembalikan nilai TRUE dan jika tidak akan mengembalikan nilai FALSE.
EOLN(variabel_berkas);
Contoh:Akhir_baris := EOLN(File_Text);
4. Fungsi SEEKEOFKegunaannya sama dengan fungsi EOF, tetapi akan melompati blank dan tab sebelum mengetestanda akhir berkas. Tipe fungsi ini adalah boolean.
Contoh:SEEKEOF(File_Text);
5. Fungsi SEEKEOLNHampir sama dengan fungsi EOLN, tetapi akan melompati blank dan tab sebelum mengetestanda akhir baris. Tipe f ungsi ini adalah boolean.
Contoh:SEEKEOLN(File_Text);
Contoh:
**************************************** PROGRAM MENYIMPAN TEXT KE FILE **** DENGAN NAMA FILENYA "MyText.TXT" ****************************************}
DhrMuiz. 2007. Pemrograman PascalCreated 07 Mei 2007Updated 14 Desember 2008E-mail: [email protected], [email protected], [email protected]
50
Uses Crt;Var
File_Text : Text;d_text : String;
BeginAssign(File_Text,'MyText.txt');Rewrite(File_Text);Clrscr;Writeln('Ketikan beberapa kalimat bebas, dan Ketik "$"+ untuk
selesai !');
Writeln('=====================================================================');
RepeatReadln(d_text);If d_text[1]'$' Then
Writeln(File_Text,d_text);Until d_text[1]='$';Close(File_Text);
End.
Ketikan beberapa kalimat bebas, dan Ketik "$"+ untuk selesai !=====================================================================Ini Hanyalah sebuah Kata-kata..........dan mungkin tak ada maknanya..Namun tiada salahnya untuk diuraikan....karena ini hanyalah ungkapan.....
$
Contoh:
**************************************** PROGRAM MEMBACA TEXT DARI FILE **** DENGAN NAMA FILENYA "MyText.TXT" ****************************************}
Uses Crt;Var
File_Text : Text;d_t