Modul Pascal 2pg

download Modul Pascal 2pg

of 30

Transcript of 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