SlideShare ist ein Scribd-Unternehmen logo
1 von 45
1
MODUL PEMROGRAMAN DASAR
                 PASCAL




         DIGUNAKAN UNTUK MATERI KULIAH DAN PRAKTIKUM
                       Untuk Kalangan Sendiri
                      Tahun Ajaran 2010/2011




                      Oleh : I Ketut Adi Purnata

                   Pengenalan Algoritma
              dan Struktur Dasar Bahasa Pascal



A. Sejarah Bahasa Pascal
                                  2
Bahasa Pascal di desain pertama kali oleh Prof. Niklaus Wirth, Dari Polytechnic of
Zurich Swiss, pada tahun 1971. pascal di ciptakan sebagai penyederhanaan dari dari
bahasa slgol yang sudah ada sejak tahun 1960. Pada saat itu juga sudah ada bahasa
FORTRAN, C, Assembler dan COBOL.
       Perbedaan mendasar dari pascal adalah digunakanya urutan tertentu
pemrograman yang berdasar atas konsep type data yang kuat, memerlukan deklarasi
variabel terlebih dahulu dan kendali program yang terstruktur. Bahsa ini di desain
sebagai alat bantu pengajaran bagi siswa di kelas / mata kuliah pemrograman (di
Polytechnic of Zurich,Swees).
       Turbo Pascal (TP) adalah sebuah program compiler Pascal dari Borland
International yang dikeluarkan pada tahun 1983, yang merupakan implementasi
dar”Pascal User Manual and Report” [Jensen & Wirth]. TP merupakan bahasa
pemrograman yang sangat populer pada komputer-komputer ber-platform PC. TP
mengenalkan konsep IDE (Integrated Development Environment), sebuah tampilan /
lingkungan dimana programer dapat dengan mudah mengedit kode (dalam editor teks
yang kompatible dengan wordstar), menjalankan compiler, melihat kesalahan (bila ada
kesa;ahan penulisan kode program) dan dapat ’meloncat’ ke baris dimana kesalahan itu
ada. Pada saat itu, untuk memperbaiki kesalahan, seorang programmer harus keluar
dari editor, kembali ke DOS, menjalankan compiler, menuliskan kesalahan, membuka
kembali editor dst, namun sekarang kita dapat menggunakan versi for windows dimana
pengeditan lebih mudah dilakukan, misalnya TPW 1.5



B. Defenisi Algoritma

ALGORITMA adalah suatu urutan langkah-langkah (Steps) Yang disusun secara logis
untuk menyelesaikan masalah dengan menggunakan komputer.
Dengan kriteria sebagai berikut :
   1. Setiap langkah/Step harus jelas dan pasti (Definite)
   2. Diperbolehkan tanpa ada input tetapi minimal harus ada 1 output.
   3. Jumlah langkah harus berhingga atau dengan kata lain harus ada stopping
      criteria.
   4. Ditulis dengan format yang mudah dipahami sehingga tidak menimbulkan arti
      ganda.
   5. Logika yang benar dan terstruktur dan semua operasi terdefensi dengan jelas.




Penyajian Suatu Algoritma :

       Algoritma dapat disajikan dengan dua cara :

   1. Secara Tulisan

                                           3
-   Struktur Bahasa / Diskripsi
                 -   Pseudocode (kode semu)

  2. Tehnk Gambar (Flowchart)
           Simbol-simbol dalm Flowchart (Bagan Alir)


                                        Terminator / Proses (awal / akhir)


                                        Input /Output


                                        Proses


                                        Titik keputusan




                                        Sambungan dalam satu halaman


                                        Sambungan ke lain halaman


                                        Arah arus




C. Aturan Dalam Bahasa Pascal

  1. Nama File
     Karena Pascal dibuat untuk digunakan dilingkungan DOS atau dilingkungan
     Windows (TPW 1.5), maka biasakn menggunakan aturan penamaan file di DOS.
     Jumlah karakter nama file adalah 8 karakter (8.3). Program yang dibuat dengan
     pascal mempunyai ekstensi .PAS. (unit / uilitas : .TPU, .BGI, .CHR).

     Tidak diperbolehkan :
     1. awalan angka (misalnya : 1st_prog.pas)
     2. mengandung karakter tidak lazim, misalnya : * , ! # ^ dst.
     3. Mengandung spasi misalnya : Prog ku.pas




                                         4
2. Komentar
       Komentar di Pascal ditulis dengan tanda :
       (* ....Komentar....*) atau {....Komentar....}
       Apapun yang ditulis di dalam tanda ini tidak akan dikerjakan oleh kompiler,
       kecuali bila diikuti oleh tanda $, Misalnya { $ X+ } yang menunjukan simbol
       direktif tertentu. Direktif digunakn agar compiler menggunakn kemampuan
       tertentu dari prosesor.

   3. Huruf Besar
       Pascal tidak membedakan huruf besar atau kecil dalm penulisan perintah,
       misalnya : sin(x), Sin(x), SIN(x). Kecuali penggunaan kata register, semata-
       mata untuk kompatibalitas dengan bahasa C. Untuk kemudahan (dan kerapian),
       penulisan variabel lebih baik diawali dengan huruf besar.
       Misalnya : JumlahAkhir, Jumlah, Jumlah_Awal




D. Struktur Program Pascal

       Skema dari program Pascal adalah sebagai berikut :

ALGORITMA                            BAHASA PASCAL
Algoritma nama_algoritma             1. Program nama_algoritma;
 {kepala algoritma, berisi           {program latiahan;}
penjelasan}                          2. Bagian Deklarasi
                                     Label (nama_labelnya);
Deklarasi                            Var(nama_variabelnya);
 { Berisi variabel yang telibat }    Const(nama = nilai konstanya);
                                     Procedure(Nama_prosedurnya);
Deskripsi                            Fuction (nama_fungsinya);
 { Berisi detail dari algoritma }    3. Bagian Pernyataan
                                     Begin
                                     < <ernyataan – pernyataan >
                                     End.



Keterangan Struktur Program


1. Judul program (opsional)
   Format : {judul program} atau program_nama program;

2. Deklarasi program :
   Var              {Variabel program}
   Const            {Constanta program}
   Label            {Label}
   Funct            {Function}
   Procedure        {Prosedur program}




                                           5
Catatan :
            Deklarasi program bersifat opsional khusus, artinya jika di perlukan maka
harus ada dalam program dan apabila tidak diperlukan maka boleh tidak dicantumkan.
Deklarasi program termasuk Identifier (pengenal), yaitu kata-kata yang diciptakan oleh
pemrogram untuk mengidentifikasi sesuatu.

Syarat Identifier :
   a) Harus diawali oleh alphabet
   b) Huruf besar / kecil yang digunakan dianggap sama
   c) Penyusun dari sebuah identifier tidak boleh berupa : tanda baca, tanda relasi,
      symbol arithmatik, karakter khusus atau reserved word.
   d) Tidak boleh dipisahkan dengan spasi, apabila hendak dipisahkan maka harus
      menggunakan tanda UnderScore ( _ )
   e) Panjang identifier tidak dibatasi tetapi sebaiknya digunakan se-efektif mungkin.


3.   Program Utama
     Diawali dengan Begin dan diakhiri dengan End.

Kata-kata yang Tidak Boleh digunakan sebagai nama variabel

AND                ASM              ARRAY             BEGIN
Case             CONST              CONSTRUCTOR       DESTRUCTUR
DIV              DO                 DOWNTO            ELSE
END              EXPORTS            FILE              FOR
FUNCTION         GOTO               IF                IMPLEMENTATION
IN               INHERITED          INLINE            INTERFACE
LABEL            LIBRARY            MOD               NIL
NOT              OBJECT             OF                OR
PACKED           POCEDURE           PROGRAM           RECORD
REPEAT           SET                SHL               SHR
STRING           THEN               TO                TYPE
UNIT             UNTIL              USES              VAR
WHILE            WITH               XOR               PI




Perintah Dasar / Sederhana Pascal

      Write(‘Text / Tulisan ‘,Variabel);
        Perintah untuk menampilkan atau cetak dilayar monitor tanpa pindah baris
      Writeln(‘Text / Tulisan ‘,Variabel);
       Perintah untuk menampilkan / cetak dilayar monitor lalu pindah baris bawah
      Read(Variabel);
       Perintah utuk menginput / mengisi data tanpa pindah baris
      Readln(Variabel);
       Perintah untuk menginput / mengisi data lalu pindah baris


                                              6
Contoh :

Listing Programnya
Program tulis;
Uses Crt;
Begin
        Clrscr;
        Writeln(’Saya’);
        Write(’Belajar’);
        Writeln(’Turbo’);
        Write(‘Pascal’);
        Write(‘Versi 7.1’);
        Readln;
End.

Tekan ctrl F9 untuk eksekusi program
Hasilnya :
Saya
Belajar Turbo
Pascal Versi 7.1


Identifier / Pengenal Data
Digunakan untuk penamaan elemen-elemen deklarasi seperti label, Constanta, Type,
Variabel, Procedure, Function.

Syarat Identifier
    Diawali huruf
    Tidak boleh ada spasi / blank
    Tidak boleh menggunkan reserved word
    Tidak boleh menggunakn symbol khusus,kecuali underscore (tanda bawah)
    Panjang maximal 63 charakter

       Contoh :
              Luas_Segi_Tiga
              LuasSegiTiga
              LuasS3
              LS3




                                         7
Tipe Data Dalam Turbo Pascal

       Tipe data berfungsi membatasi jangkauan data yang akan dilaksanakan.
Macam-macam tipe data :
a) Tipe data standard, terdiri atas :
       - Ordinal (Tipe data yang mempunyai urutan pasti / tidak mengandung decimal)
       - Non-Ordinal
b) Tipe data terstruktur
c) Tipe data pointer




Tipe Data Standard
      I. Type Ordinal
          Tipe data yang mempunyai urutan pasti, dan masdih terbagi menjadi :

       a) Type Integer (tipe data yang tidak mempunyai unsur desimal)

Type                    Jangkauan                     Ukura
Sortint                 -128....127                   8 bit
Integer                 -32768....32767               16 bit
Longint                 -                             32 bit
                        2147483648....2147483647
Byte                    0....255                      8   bit
Word                    0....65535                    16 bit


Operator-operator yang berlaku padatipe data integer, yaitu :
      - Operator arithmatika : +, -, *, /, div, mod
      - Operator logic         : <, =, >, <=, >=, <>
Catatan : semua tipe integer adalah tipe ordinal.

       b) Tipe Char (Karakter)
           Tipe data tunggal yang berhubungan dengan tombol-tombol di keyboard.
           Char adalah semua tombol yang terdapat pada keyboard atau lebih
           lengkapnya semua karakter yang terdapat pada kode ASCII.
           Catatan :
                    Apabila Char ingin dijadikan sebagai konstanta maka karakter yang
           dimasukan harus diapit dengan tanda kutip satu. Dan apabila karakter itu
           berupa tanda kutip satu maka harus diapit dengan dua tanda kutip satu.


                                           8
Misalnya : ’A’

      c) Tipe Boolean
           Mempunyai nilai benar / salah. Operator yang penghubung untuk tipe boolean
           adalah : =, <>, >, <, >=, <=
           Boolean akan menghasilkan false jika nilai = 0 dan akan menghasilkan true
           jika nilai = 1.




      II. Real (Tipe data yang mengandung unsur desimal)
           Tipe real dibagi menjadi 4 macam yaitu   :
      -    Real ( 6 byte )
      -    Single ( 4 byte )
      -    Extended ( 10 byte )
      -    Double ( 8 byte )



Type                 Jangkauan                 Ketelitian Digit
Real                 2.9e-39..1.7e38           11 – 12 digit
Single               1.5e-45..3.4e38           7 – 8 digit
Double               5.0e-324..1.7e308         15 – 16 digit
Extended             3.4e-4932..1.1e4932       19 – 20 digit


      III. String (adalah kumpulan type data yang berbentuk karakter)
           Tipe data string digunakan untuk menampung nilai dalam bentuk huruf,
           dimana batas maximal adalah sebanyak 255 karakter.

           Contoh :
           Var nama : String [25] ;

           Untuk pengolahan Type Variabel di atas, disediakan berbagai jenis operator
           diantaranya :




Operator           Kegunaan
+                  Penambahan
-                  Pengurangan
*                  Perkalian
/                  Pembagian Real Type
Div                Hasil Bagi Integer
Mod                Sisa Bagi   Integer
:=                 Menyatakan Nilai
=                  Sama Dengan
< , <=             Kurang dari sama dengan
                                           9
> , >=              Lebih dari sama dengan
<>                  Tidak sama dengan




          Berhubungan dengan
          Benar / Salah




Deklarasi Variabel
         Adalah eleman data yang belum memiliki nilai dan nilainya dapat berubah ubah,
         kecuali kita sengaja memberikan nilai awalnya.

Contoh :
USES CRT;
VAR Nama : String[25];
      Nilai : Integer;
Begin
       Write(’Nama Siswa :’);Readln(Nama);
       Write(’Nilai Ujian :’);Readln(Nilai);
End.

Ctrl F9 lalu isi datanya

Deklarasi Konstanta
         Adalah suatu elemen data yang sudah ada nilainya dan nilainya tetap.

Contoh :
USES CRT;
CONST    Namasis = ’BUDI’;
         IPK     = 3.35;

                                             10
Mutu     = ‘A’;
Begin
        Clrscr;
        Write(‘Nama Siswa :’,Namasis);
        Write(‘Nilai IPK  :’,IPK);
        Write(‘Mutu Ujian :’,Mutu);
End.

Ctrl F9
Nama Siswa : BUDI
Nilai IPK  : 3.350000E+0
Mutu Ujian : A




        Operasi Kondisional, String dan Struktur Kontrol


Selain operasi-operasi standard yang sudah kita bahas pada modul sebelumnya, operasi-
operasi tambahan untuk menyelesaikan permasalahan dalam pascal, di antaranya :

   1. Operasi Aritmatika

           Adalah operasi yang digunakan untuk menyelesaikan perhitungan-perhitungan
        matematika, operasi yang bisa anda gunakan di dalam pascal diantaranya :

Fungsi            Argumen          Hasil            Keterangan
Sqr(x)            Integer/Real     Integer/Real     Menghitung kuadrat dari x
Sqrt(x)           Integer/Real     Integer/Real     Menghitung akar kuadrat dari x
Trunc(x)          Real             Integer          Memotong nilai x
Round(x)          Real             Integer          Membulatkan nilai x

Contoh :
                                         11
Trunc(19.8)             Menghasilkan    19
       Trunc(19.0001)          Menghasilkan    19
       Round(19.8)             Menghasilkan    20 (pembulatan ke atas)
       Round(19.0001)          Menghasilkan    19 (pembulatan Ke bawah)

   2. Operasi Kondisional (Pembandingan)
          Adalah opersai yang digunakan untuk menyelesaikan masalah-masalah yang
       berhubungan dengan pengambilan keputusan (benar/salah) dari satu atau lebih
       kondisi (pernyataan), penggunaan Operator Kondisional biasanya disertai dengan
       membandingkan dua atau lebih nilai.

       Semua hasil dari Operator Kondisional, akan menghasilkan nilai dengan tipedata
       Boolean, artinya akan menghasilkan nilai Benar / Salah ( True or False ).

       Operator Pembanding yang bisa anda guinakan diantaranya            :

Operator       Keterangan        Operator         Keterangan
     =         Sama dengan           <=           Kurang dari sama dengan
     <         Kurang dari           >=           Lebih dari sama dengan
     >         Lebih Dari            <>           Tidak sama dengan

Adapun nilai-nilai yang bisa dibandingkan bisa berupa :
      - Angka dengan Angka               ( 14 < 10 ) bernilai False
      - Huruf dengan Huruf               (’A’ = ’B’) bernilai False
      - Variabel dengan Angka            (Umur < 17), Jika Umur :=10; bernilai True
      - Variabel dengan Huruf            (Nama =’Adi’),Jika Nama :=’Eko’; bernilai True
      - Variabel dengan Variabel         ( p <> L ), Jika P :=13; L :=10; bernilai True

Catatan : Variabel adalah tempat untuk menampung sebuah nilai
         (Nilai yang bisa berubah-ubah)


       Apabila terdapat lebih dari satu kondisi, maka anda bisa mencari hasil kebenaran
atau kesimpulan dari kondisi-kondisi yang ada dengan Operato Kondisional,
diantaranya :

   A. NOT ( Bukan )
             Operasi ini digunakn untuk mengingkari suatu pernyataan Boolean
             ( Kondisi )
             Contoh :
                       NOT ( 14 < 10 ), maka akan bernilai True
   B. AND ( Jika salah satu salah akan bernilai salah )
             Operasi ini akan menentukan kesimpulan dari kondisi-kondisi yang ada
             dengan kriteria Nilai hanya akan Bernilai True apabila semua kondisi
             bernilai True.
             Contoh :
                      ( 14 < 10 ) AND ( 20 < 100 ), maka bernilai True
                      ( 5 < 17 ) AND ( 14 <= 14 ), maka bernilai True
   C. OR ( Jika salah satu benar akan bernilai benar )
             Operasi ini akan menentukan kesimpulan dari kondisi-kondisi yang ada
             dengan kriteria nilai yang akan bernilai True apabila ada salah satu saja
             kondisi yang bernilai Benar ( True ), sehingga hanya kondisi (pernyataan)
                                          12
yang semuanya bernilai False yang akan menghasilkan nilai/kesimpulan
          yang salah.
          Contoh :
                  ( 14 < 10 ) OR ( 5 < 20 ), maka bernilai True
                  ( 10 > 20 ) OR ( 3 > 2 ), maka bernilai True


3. Operasi String (Kumpulan Karakter)
   Adapun Operasi – operasi yang bisa digunakan untuk memanipulasi nilai string
   (Huruf), adalah sebagai berikut :

   a. DELETE ( Var S : String, Index : Integer, Count : Integer );

      Digunakan untuk menghapus sejumlah karakter dari sebuah nilai String.
      Keterangan :
      - Var S : String, adalah variabel tempat nilai string disimpan.
      - Index : Integer, adalah dimulai dari posisi ke....
      - Count         : Integer, adalah sebanyak berapa karakter yang akan
         dihapus.

      Contoh :
                 Var S : String ;
                 S := ’DATUK’ ;                 Maka akan Menghasilkan : DAK
                 Delete ( S, 3, 2 ) ;




   b. INSERT ( Source : String. Var S : Integer, Index :Integer ) ;

      Digunakan untuk menambahkan sejumlah karakter dari sebuah nilai String.
      Keterangan :
      - Source : String, adalah sejumlah karakter (Huruf) yang akan
         ditambahkan

      Contoh :
                 Var S : String ;
                 S := ’DATUK’                   Maka akan Menghasilkan : DA!!!TUK
                 Insert ( ’!!!’ , S, 3 )



   c. COPY ( S : String, Index : Integer, Count : Integer ) ;

      Perintah ini digunakan untuk menyalin (Copy) sejumlah karakter dari sebuah
      nilai String.

      Contoh :

                 Var S, Hasil : String ;
                 S := ’DATUK’ ;                       Maka akan Menghasilkan : ATU
                 Hasil := COPY ( S, 2, 3 ) ;


                                           13
d. CONCAT ( S_ke1 [, S_ke2, ... , S_ke-n] : String);

   Digunakan untuk menggabungkan beberapa String yang di tunjukan oleh
   variabel S(n).

   Contoh :

               Const
                   Nama : String = ’PASCAL’ ;
                   Dll : String = ’dan keluarga’ ;
               Var
                   Hasil : String ;

               Begin
                       Hasil := CONCAT (’Bahasa’,Nama,’untuk anda’,Dll);
                       Write (Hasil);
               End.

               OUTPUT :
                           Bahasa Pascal untuk anda dan keluarga




e. POS (Var Substring : String , S : String) ;          Menghasilkan angka
   (Byte)

   Digunakan untuk mencari posisi letak dari suatu string (ditunjukan oleh
   substring)
   Yang ada didalam nilai String yang lain (ditunjukan oleh s). Nilai yang
   dihasilkan adalah berupa nilai byte yang menuinjukan letaknya. Bila bernilai
   nol berarti nilai string yang di cari tidak ada.




   Contoh :

       Const
               S : String =’ABCDEFGHIJKLMNOPQRSTUVWXYZ’ ;
       Var
               Substring : String ;
                                      14
Posisi       : Byte ;
      Begin
              Substring : = ’ I ’ ;
              Posisi : = POS (Substring , S) ;
              Write (’ Huruf ’,Substring,’berada pada karakter ke –’, posisi) ;

      End.

      OUTPUT :
                    Huruf I Berada pada karakter ke – 9



f. LENGTH (S : String) ;                         Menghasilkan angka (Integer)

   Digunakan untuk menghitung panjang atau jumlah karakter yang ada di nilai
   String yang ditunjukan oleh S. Hasil dari fungsi ini adalah nilai numerik
   ineteger positif.

   Contoh :
              Var
                       NamaAnda : String[50] ;
                       Pangkar  : Integer ;
              Begin
                Write (’Nama Anda : ’) ; Readln(NamaAnda);
                Pangkar : = Length(NamaAnda);
                Writeln(’Panjang nama anda adalah ’, Pangkar ,’ Karakter,’) ;
              End.

              OUTPUT : Nama Anda : TUKUL
                       Panjang nama anda adalah 5 karakter.




                         STRUKTUR CONTROL


                                      15
Istilah control didalam pascal adalah perintah untuk mengontrol jalanya program,
sehingga dimungkinkan dalam sebuah program akan melakukan proses yang tidak
berurutan antara baris pertama dengan baris selanjutnya, atau program akan
mengabaikan perintah pada baris-baris kode tertentu sesuai kontrol yang diberikan.
Adapun macam-macam kontrol didalam pascal yakni :
Kontrol Percabangan (Switching and Branching) dan Kontrol Perulangan (Looping).

Kontrol Percabangan dan Penyelesaianya
        Adalah perintah yang digunakan untuk menentukan /memilih blok statement
        yang mana yang akan dikerjakan, dan mengabaikan blok statement tertentu.
        Perintah yang bisa digunakan adalah:


1 . IF Stateman

      IF, artinya JIKA, Adapun Bentuk dari penggunaan IF adalah secara :

          a. IF Tunggal

             Adalah IF yang hanya mempunyai satu pilihan, yakni {Blockstatement}.
             Akan dieksekusi/dikerjakan apabila kondisi Bernilai Benar (True),
             sehingga apabila Kondisi salah (False), maka akan langsung
             mengeksekusi/mengerjakan perintah pada baris selanjutnya. Bentuk
             Strukturnya :

                    IF (Kondisi ) Then { Blok Statement } ;

                    Contoh Praktek 1 :

                           Const
                                   A : Integer = 10;
                                   B : Integer = 250;
                           Begin
                                   IF (A < B) Then Writein [` A Lebih kecil dari B `];
                                   Write[` Belajar Struktur Percabangan`];
                           End.

                    ? Outputnya (Harapdiisi sendiri) adalah :
                      Jawab :
                              A Lebih kecil dari B
                              Belajar Struktur Percabangan

                    ? Jika A = 35, dan B = 24, maka Outputnya :
                      Jawab :
                               Belajar Struktur Percabangan




                                          16
b. IF Majemuk dan Bersarang ( NESTED IF )

  Adalah IF yang Mempunyai {Blok Statement Benar} Yang akan
  dikerjakan apabila Kondisi Benar Kemudian Mengabaikan {Blok
  Statement Salah}, dan sebaliknya.

  Apabila Terdapat Lebih dari satu Baris Blok Statemetn, maka hendaknya
  menggunakan pemisah BEGIN dan END; (end dengan titik koma).

  Bentuk Penggambaran Flowchart nya adalah :

                                                 If ( umur < 17 )      Ya




                                                           Tidak

  Fungsi Begin dan End adlah Untuk membatasi langkah program apabila
  terdapat lebih dari 1 perintah/statement.
  Adapun Struktur penulisannya :

  IF ( Kondisi _ke_1 ) Then
     Begin
            { Blok Statement Benar Kondisi ke – 1 };
            IF ( Kondisi_Ke_2 }; Then
                Begin
                    { Blok Statement Benar Kondisi Ke – 2 } ;
                    { Blok Statement Benar Kondisi Ke – 2 } ;
                End        Awas : TIDAK BOLEH ADA TITIK KOMA SEBELUM ELSE
           ELSE
                Begin
                    { Blok Statement Benar Kondisi Ke – 2 } ;
                    { Blok Statement Benar Kondisi Ke – 2 } ;
                End ;
               { ini juga Blok Statement Benar Kondisi Ke – 1 };
    End Awas : TIDAK BOLEH ADA TITIK KOMA SEBELUM ELSE
  ELSE
    Begin
         { Blok Statement Benar Kondisi Ke – 1 } ;
         { Blok Statement Benar Kondisi Ke – 1 } ;
    End;




                               17
Struktur Kontrol, Readkey dan Goto Label


Statement Case...Of...
       Adalah struktur kontrol yang biasanya digunakn untuk menentukan satu pilihan
dari daftar pilihan yang banyak. Kelebihan dari penggunakan kontrol adalah kita tidak
perlu membuat sebuah kondisi seperti halnya yang kita lakukan pada saat
menggunakan kontrol If Then Else.

           Syntax :
                 CASE < selector > OF
                      < case – label 1 > : < perintah >

                         < case – label 2 > : < perintah >

                  ELSE    Bila dibutuhkan fungsinya sama dengn ELSE pada If
                         < case – label X > : < perintah >
                  END;

           Ingat !!!........ : Case...Of tidak mebutuhkan BEGIN tetapi memerlukan END ;


Struktur Case – Of mempunyai ungkapan logika yang disebut dengan selector atau
nilai /isi variabel yang dibacanya dan sejumlah perintah yang diawali dengan suatu case
label yang mempunyai tipe yang sama dengan selector. Perintah yang mempunyai case
label yang bernilai sama dengan nilai selector akan diproses sedangkan perintah lain-nya
tidak. Bila nilai selector diluar nilai-nilai yang ada pada case label maka struktur Case –
Of tidak dijalankan atau keperintah ELSE-nya.
Daftar case label dapat berupa sebuah konstanta, atau range dari konstanta yang bukan
bertipe real. Tipe variabelnya dapat berupa Integer atau Character.

Contoh jangkauan dari case label yang diberikan :
1       :   nilai Integer 1
1,2,3,4      :    nilai Integer 1,2,3,4
1..5        :     nilai Integer 1,2,3,4,5
’A’         :     nilai karakter A
’A’,’B’     :     nilai karakter A,B
’A’..’D’    :     nilai karakter A,B,C,D
’*’         :     nilai karakter *




                                             18
Contoh penggunaan Case – Of :
Var
      Nilai : Char;
      Grade : String [12];
Begin
      Write (’ Nilai Huruf yang didapat ? ’) ;
      Readln(Nilai) ;
      Case Nilai Of
              ’A’ : Grade := ’ Sangat Baik ’ ;
              ’B’ : Grade := ’ Baik ’ ;
              ’C’ : Grade := ’ Cukup ’ ;
              ’D’ : Grade := ’ Kurang ’ ;
              ’E’ : Grade := ’ Gagal ’ ;
      End;
      Write (’ Grade yang kamu dapat = ’,Grade) ;
      Readln ;
End.

Output dari program ini :
      Nilai huruf yang didapat ?   C   Input yang dimasukan
      Cukup

Pada contoh diatas yang dimaksud dengan SELECTOR adalah variabel NILAI dan CASE
LABEL adalah index A,B,...,E.

TAMBAHAN SYNTAK :

   1. GOTO LABEL
      Dugunakan untuk mengalihkan langkah eksekusi program kepad label yang
      dituju.
      Bentuk Umum : GOTO label Statement

      Contoh :
            Program Lat_GOTO ;
            Uses Crt ;
            Label Berpindah,Selesai ;
            Begin
                   Clrscr ;
                   Writeln (’ Bahasa ’) ;
                   Goto Berpindah ;
                   Writeln (’ Basic ’) ;
               Berpindah :
                   Writeln (’ Pascal ’) ;
                   Goto Selesai ;
                                            19
Writeln (’ Cobol ’) ;
          Selesai :
              Readln ;
        End.




2. READKEY
  Readkey digunakan untuk memasukan satu karakter kedalam sebuah variabel
  tanpa menampilkan berapa nilai yang diberikan di layar.

  Contoh :

  Program Lat_Readkey ;
  Uses Crt ;
  Label keluar ;
  Var
         Pilihan : Char ;
  Begin
         Clrscr ;
         Write (’ masukan Pilihan : ’) ;
         Pilihan := Readkey ;
         Case (pilihan) Of
              ’a’ : Write (’ anda memilih menu MAKANAN pada daftar PAKET A ’) ;
              ’b’ : Write (’ anda memilih menu MAKANAN pada daftar PAKET B ’) ;
         Else
               Begin
                  Writeln (’ tidak ada daftar untuk menu tersebut ’) ;
                  Writeln (’ terima kasih sudah mencoba program ini ’) ;
                  Goto keluar ;
               End ;
         End ;
         Write(’terima kasih telah makan di restouran kami ’) ;
       Keluar ;
         Readln ;
  End.




                                      20
Kontrol Perulangan dengan FOR . . TO . . DO

KONTROL PERULANGAN

       Adalah perintah yang digunakan untuk menyelesaikan masalah-masalah yang
       membutuhkan perulangan (Looping) dalam setiap mengeksekusi perintah-
       perintah logika yang berada pada rentang yang terhingga (ada batasnya).

       Penggunaan kontrol perulangan bertujuan untuk meng-efisien-kan pembuatan
program, sehingga programer tidak perlu menuliskan langkah-langkah program yang
sifatnya bisa diulang, cukup disederhanakan bentuk penulisanya dengan menggunakan
kontrol perulangan.

Gambaran :
     Writeln (’ ADI ’) ;                 Bentuk ini bisa diulang, cukup menuliskan
     Writeln (’ ADI ’) ;                 satu perintah saja, lalu di ulang sebanyak
     Writeln (’ ADI ’) ;                 tiga kali.

Macam – Macam Bentuk Syntax Looping

       Adapun perintah perulangan yang bisa kita gunakan sesuai dengan konsep dan
fungsinya adalah sebagai berikut :

   1. FOR

       Adalah perintah perulangan yang digunakan apabila jumlah atau banyaknya
       perulangan yang akan dilakukan sudah diketahui, artinya perulangan menitik
       beratkan pada berapa kali perulangan akan dilakukan.

       Strukturnya adalah :

              FOR [Variabel_Kontrol] := [Index_Awal] TO/Downto [Index_Akhir] DO
              Begin
                    {Blok statement yang akan diulang}
              End;

       Keterangan :
                                         21
Variabel_Kontrol     : Variabel bertipe ordinal sebagai penampung perulangan
      ke-...
      Index_Awal           :   Nilai/Variabel bertipe ordinal dimulainya perulangan
      Index_Akhir          :   Nilai/Variabel bertipe ordinal berakhirnya perulangan
      TO                   :   Secara Ascending (dari nilai Kecil ke nilai Besar)
      Downto               :   Secara Descending (dari nilai Besar ke nilai Kecil)




Contoh :
      Program Perulangan ;                               Di ulang sebanyak tiga kali
Outputnya :

ADI
ADI
ADI
      Uses Crt ;
      Var
            Ulang : Integer ;
      Begin
            For Ulang := 1 To 3        Do
            Begin
                   Writeln(’ADI’) ;
            End;
      End.


Outputnya :

5
4
3
2
1
Anda juga bisa menggunakan Opsi DOWNTO untuk mengulang secara Descending (dari
besar ke kecil), dan juga bisa memanfaatkan nilai yang ada pada Variabel_Kontrol sesuai
dengan kebutuhan anda.
Contoh :
         For Bilangan := 5 Downto 1 Do
         Begin
               Writeln(Bilangan) ;
         End ;




                                            22
FOR TO DO Bertingkat / Majemuk

        Adalah penggunaan perintah For To Do yang lebih dari satu bagian perulangan,
        cara ini biasanya digunakan dalam memproses perulangan secara baris dan
        kolom.

        Baris : dari atas ke bawah
        Kolom : dari kiri ke kanan

Catatan : struktur perulangan For To Do yang berada di bagian lebih dalam akan
diselesikan terlebih dahulu sebelum melanjutkan menyelesaikan bagian For To Do yang
lebih luar.




Contoh Program

    1. Jika masukan baris dari keyboard = 5, maka :

*
*   *
*   **
*   ***
*   ****

Cara berfikir : .................???

Program Bintang ;
Uses winCrt ;
Var
baris, kolom : Integer ;
Jmlh : Integer ;
Begin
        Clrscr;
        Write (' Masukan Jumlah Baris : ') ; Readln (Jmlh) ;
        For Baris := 1 to Jmlh Do

                                           23
Begin
               For kolom := jmlh-baris to jmlh-1 do
               Begin
                     Write(' * ') ;
               End;
           Writeln;
        End;
        Readln ;
End.




    2. Jika masukan baris dari keyboard = 5, maka :

*   ****
*   ***
*   **
*   *
*

Cara berfikir : .................???

Program Bintang ;
Uses winCrt ;
Var
baris, kolom : Integer ;
Jmlh : Integer ;
Begin
        Clrscr;
        Write (' Masukan Jumlah Baris : ') ; Readln (Jmlh) ;
        For Baris := 1 to Jmlh Do
                                           24
Begin
               For kolom := baris to jmlh do
               Begin
                     Write(' * ') ;
               End;
           Writeln;
        End;
        Readln ;
End.




       Kontrol Perulangan While . . Do dan Repeat . .Until


Statemen While . . Do (Selama . . .lakukan)

       While artinya selama , statemen ini digunakan bila satu atau lebih statemen akan
dieksekusi berulang kali sampai kondisi yang dinyatakan dalam statemen WHILE tidak
dipenuhi (FALSE).

Konsep :
   1. Perulangan dititik beratkan kepada Selama apa perulangan akan dilakukan
   2. Selama kondisi bernilai Benar, maka Kerjakan / Ulangi perintah didalam blok
      perulanganya.

   Bentuk umumnya :
    While (kondisi) do
                                          25
Begin
                 Blok statement atau perintah yang diulang ;
      End;

    Keterangan
    Kondisi : ungkapan boolean (kondisi) yang digunakan sebagai syarat agar
             statemen dikerjakan berulang kali.
    Statemen : satemen tunggal atau statemen majemuk yang akan diproses ulang.

    Adapun hal-hal yang digunakan dalam while :
    Increment : adalah penambahan satu
    Decrement : adalah perulangan satu

    Inc (bilangan) ;                          Bilangan := bilangan + 1 ;
    Inc (jumlah,bilangan) ;                   Jumlah := Jumlah + Bilangan ;
    Dec (bilangan,2) ;                        Bilangan := Bilangan – 2 ;
Ini adalah pemberian nilai awal karena variable bilangan akan dikondisikan dalam while, dengan kata lain,
supaya ada nilainya


    Contoh :

    Program Selama ;
    Uses crt ;
    Var
Di dalam while terdapat kondisi, terletak di awal, artinya selama kondisi ini bernilai benar, maka perulangan
akan terus dilakukan, jadi perulangan akan berhenti apabila kondisinya sudah bernilai salah.
          Bilangan Integer ;
    Begin
        Clrscr
        Bilangan := 0 ;

          While (bilangan < 10 ) do
          Begin
                Write(bilangan) ;
Ini adalah perintah yang harus anda buat agar perulangan mempunyai batas, sengaja harus anda buat dan
tentukan sehingga memungkinkan anda tidak terjebak di dalam perulangan yang tiada hentinya
              Bilangan := Bilangan + 1 ;
        End ;
        Readln ;
    End.




          Statemen Repeat . . Until (Ulangi . . . Sampai)
       Cara kerja statemen ini merupakan kebalikan dari statemen while. Karena untuk
statemen while, test penghentian looping (kondisi) ada di awal, tetapi untuk repeat ini
ada di akhir. Dan dalam statemen repeat ini proses berulang akan dilaksanakan terus
selama kondisi dipenuhi.

Konsep       : Kerjakan/Ulangi perintah dalam blok perulangannya, sampai kondisi bernilai
               Benar.

                                                      26
Konsep       : Perintah perulangan Mionimal sekali dikerjakan, karena kondosi terdapat di
               akhir.

    Bentuk umumnya            :

    Repeat
    Begin
              Blok Statement atau peintah yang diulang
    End ;
    Until (kondisi) ;

Ini adalah pemberian nilai awal, karena variabel bilangan akan di kondisikan di akhir, dengan kata lain, supaya
ada nilainya.
    Contoh :

    Program Selama ;
    Uses Crt ;
    Var
        Bilangan : Integer ;
Ini adalah perintah yang harus anda buat agar perulangan mempunyai batas, sengaja harus anda buat dan
tentukan sehingga memungkinkan anda tidak terjebak didalam perulangan yang tiada hentinya
    Begin
       Clrscr ;

         Bilangan := 0 ;

         Repeat
         Begin
                  Write(Bilangan) ;
                  Bilangan := Bilangan + 1 ;
         End;
         Until (Bilangan > 10) ;
Ini adalah kondisi, terletak di akhir, dan disertai titik koma


       Readln ;
    End.




                        ARRAY atau Variabel ber – Index
Wacana :

                                                        27
Misal kita ingin menampilkan 3 buah bilangan yang dimasukkan dari keyboard oleh user,
selama ini menggunakan cara seperti dibawah ini :
Output :

Masukan Bilangan Ke – 1 : 25
Masukan Bilangan Ke – 2 : 700
Masukan Bilangan Ke – 3 : 1245
-------------------------------------------------
Bilangan Ke - 1 = 25
Bilangan Ke - 2 = 700
Bilangan Ke - 3 = 1245

Program tampilan_bilangan ;
Uses Crt ;
Var
         Bil_satu : integer ;
         Bil_dua : integer ;
         Bil_tiga : integer ;
Begin
         Clrscr ;
         Write(’Masukan Bilangan Ke – 1 : ’) ; readln(Bil_Satu) ;
         Write(’Masukan Bilangan Ke – 2 : ’) ; readln(Bil_Dua) ;
         Write(’Masukan Bilangan Ke – 3 : ’) ; readln(Bil_Tiga) ;
         Write(’----------------------------------------------------’);
         Write(’Bilangan Ke – 1 = ’,Bil_Satu) ;
         Write(’Bilangan Ke – 2 = ’,Bil_Dua) ;
         Write(’Bilangan Ke – 3 = ’,Bil_Tiga) ;
         Readln ;
End.


Meskipun outputnya benar, namun cara diatas mempunyai bebarapa kelemahan :
   1. Bagaimana jika bilanganya diatas 100 ? pasti capek nulisnya ☺
   2. Kita harus memakai dan mendeklarasikan banyak variabel.
   3. Kalaupun dipecahkan dengan perulangan FOR TO DO, pasti bilangan-bilangan
      yang di-input-kan tidak bisa ditampilkan, karena kita pasti hanya akan
      menggunakan satu variabel saja.

Pemecahan/ Solusi dari ketidak efektifan untuk penanganan kasus diatas adalah dengan
menggunakan bantuan Variabel Ber-Index (ARRAY).

ARRAY adalah sebuah Variabel (yang fungsinya untuk menampung sebuah nilai),
        namun mempunyai kemmpuan untuk menyimpan beberapa nilai yang ber –
        tipe data sama dengan sekaligus kedalam elemen-elemen variabelnya yang
        diwakili oleh Index of Array.

Pendeklarasian Array :
   1. Ditulis dalam Blok Deklarasi Variabel
   2. Membuat nama Variabel Array
   3. Menentukan Jangkauan Index (berapa kotak mau dibuat)
   4. Menentukan Tipe-Data dari nilai yang akan dimasukan kedalam Array

Bentuk umum Pendeklarasian Array                   :

         Var       nama       : Array [Index] of              Tipe-Data

Dengan
                                                           28
Var, array, of    :    kata kunci yang harus ada.
Nama              :    nama array yang akan dideklarasikan.
Index             :    batasan index yang akan ada pada array yang akan dideklarasikan misal :[1..3] dan [1..1000]
Tipe              :    tipe data array




Misal       :
Var
      Bilangan : Array [1 . . 3] Of               Integer ;
Nama Variabel

            Bilangan
25

       1
Nilai yang disimpan dalam Array
700

        2
1245

        3



Index, dimulai dari Index Ke - 1




                                                         29
Memberikan nilai kedalam Array

Ada beberapa cara dalm memberikan nilai kedalam array, yakni secara langsung dengan
menggunakan operator penugasan ( :=), atau dengan menggunakan bantuan Perintah
Perulangan.
   1. Dengan Menggunakan Operator Penugasan
       Contoh :
Output :

5 + 10 = 15
5 + 7 = 12
10 + 7 = 17
      Program tambah ;
      Uses Crt ;
      Var
               Bilangan : Array [1..3] of Integer ;
               Jumlah : Array [1..3] of Integer ;
      Begin
               Clrscr ;
               Bilangan [1] := 5 ;
               Bilangan [2] := 10 ;
               Bilangan [3] := 7 ;
               Jumlah [1] := bilangan[1] + bilangan[2] ;
               Jumlah [2] := bilangan[1] + bilangan[2] ;
               Jumlah [3] := bilangan[2] + bilangan[3] ;
               Writeln(’---------------------------------------------’) ;
               Writeln(bilangan[1],’+’, bilangan[2],’=’,jumlah[1]) ;
               Writeln(bilangan[1],’+’, bilangan[3],’=’,jumlah[2]) ;
               Writeln(bilangan[2],’+’, bilangan[3],’=’,jumlah[3]) ;
               Writeln(’---------------------------------------------’) ;
               Readln ;
      End.




                                                        30
2. Dengan Menggunakan Perintah Perulangan
       Contoh :
Output :

Masukan bilangan ke-1 : 5
Masukan bilangan ke-1 : 10
Masukan bilangan ke-1 : 7

Bilangan ke-1 = 5
Bilangan ke-1 = 10
Bilangan ke-1 = 7
        Program Tambah ;
        Uses Crt ;
        Var
                 Bilangan : Array [1..30] of integer ;
                 I , j : integer ;
        Begin
                 Clrscr ;
                 Writeln(’----------------------------------------’);
                 For i:=1 To 3 Do
                 Begin
                   Write(’masukan bilangan ke-’,i,’ : ’); readln(bilangan[i]) ;
                 End;
                 Writeln(’----------------------------------------’);
                 For j:=1 To 3 Do
                 Begin
                   Writeln(’bilangan ke-’,i,’ = ’, bilangan[j]) ;
                 End;
                 Readln ;
        End.




ARRAY      DUA DIMENSI

Adalah Array yang digunakan dalam pemrosesan data/ nilai secara baris dan kolom.
Artinya Index-index yang ada adalah mewakili letak koordinat baris dan kolom.
Jadi anda bisa menggunkana bantuan FOR BERTINGKAT untuk bisa memasukan nilai-
nilai nya
Kedalam Array.

Contoh Kasus :




                                                       31
NILAI
 NAMA PESERTA                                                                           RATA-RATA
                     TUGAS                QUIZ           UTS          UAS
    SAPUTRA          40                   45             65           55               51.25
     ASTUTI          65                   90             70           95               80.00
    HENDRA           75                   80             60           65               70.00



Untuk memasukan nilai ke dalam Array-nya, kita harus analisa terlebih dahulu,
sehingga :

   1. Variabel NAMA, merupakan Array 1 Dimensi bertipe-data STRING, Sehingga :

      ’SAPUTRA’            Nama[1] ;                    cara : GOTOXY(1,3) ; Readln(NAMA[1]) ;
      ’ASTUTI’             Nama[2] ;                    cara : GOTOXY(1,4) ; Readln(NAMA[2]) ;
      ’HENDRA’             Nama[3] ;                    cara : GOTOXY(1,5) ; Readln(NAMA[3]) ;

   2. Variabel NILAI, merupakan Array 2 Dimensi bertipe-data INTEGER, Sehingga :

      40          NILAI   [1,1]   ;              cara    :   GOTOXY(20,3)   ;   READLN(NILAI[1,1])   ;
      45          NILAI   [1,2]   ;              cara    :   GOTOXY(30,3)   ;   READLN(NILAI[1,2])   ;
      65          NILAI   [1,3]   ;              cara    :   GOTOXY(40,3)   ;   READLN(NILAI[1,3])   ;
      55          NILAI   [1,4]   ;              cara    :   GOTOXY(50,3)   ;   READLN(NILAI[1,4])   ;
      65          NILAI   [2,1]   ;              cara    :   GOTOXY(20,4)   ;   READLN(NILAI[2,1])   ;
      90          NILAI   [2,2]   ;              cara    :   GOTOXY(30,4)   ;   READLN(NILAI[2,2])   ;
      :                               :
      :                               :
      60          NILAI [3,4] ;                  cara : GOTOXY(50,5) ; READLN(NILAI[3,4]) ;

   3. Variabel RATA, merupkan Array 1 Dimensi bertipe-data REAL, Namun anda harus
      menghitung beberapa jumlah nilai-nilainya, kemudian dibagi dengan 4,
      sehingga:

      RATA[1]:=(40+45+65+55)/4;                     Cara : GOTOXY(60,3) ; WRITE(RATA[1]:0:2);
      RATA[1]:=(65+90+70+95)/4;                     Cara : GOTOXY(60,4) ; WRITE(RATA[2]:0:2);
      RATA[1]:=(75+80+60+65)/4;                     Cara : GOTOXY(60,5) ; WRITE(RATA[3]:0:2);




      Jadi Listing Perulangan yang bisa digunakan :


      VAR
                  NAMA                              : ARRAY [1..3] OF STRING ;
                  RATA                              : ARRAY [1..3] OF REAL ;
                  NILAI                             : ARRAY [1..3,1..4] OF INTEGER ;
                                                        32
BARIS, KOLOM, JUMLAH : INTEGER ;
         RATA1                : REAL ;

FOR BARIS := 1 TO 3 DO
BEGIN
        Gotoxy(1,BARIS+2) ; Readln(NAMA[BARIS]);
        Jumlah := 0;
        FOR KOLOM := 1 TO 4 Do
        Begin
             Case KOLOM OF
                   1 : Begin
                         Gotoxy(20,BARIS+2);
                         Readln(NILAI[BARIS,KOLOM]);
                       End;
                   2 : Begin
                         Gotoxy(30,BARIS+2);
                         Readln(NILAI[BARIS,KOLOM]);
                       End;
                   3 : Begin
                         Gotoxy(40,BARIS+2);
                         Readln(NILAI[BARIS,KOLOM]);
                       End;
                   5 : Begin
                         Gotoxy(50,BARIS+2);
                         Readln(NILAI[BARIS,KOLOM]);
                       End;
             End;
             Jumlah := Jumlah + NILAI[BARIS,KOLOM];
        End;
        RATA[BARIS] := Jumlah / 4 ;
        Gotoxy(60,Baris+2) ; Write(RATA[BARIS],:0:2);
END;




               PEMROGRAMAN MODULAR

                                33
PROCEDURE dan FUNCTION

                                PEMROGRAMAN MODULAR

       Catatan ini akan membahas mengenai ” Pemrograman Modular” . dimana
pemrograman modular ini merupakan salah satu kemudahan yang diberikan oleh Turbo
Pascal terhadap programmer, karena disini programmer dapat membagi program yang
sedang dibuatnya kedalam modul-modul program tertentu. Sehingga dapat menghindari
penulisan teks program yang sama berkali-kali dan dapat juga memudahkan dalam
melakukan pelacakan kesalahan dalam program yang sedang dibuatnya.
Ada 2 jenis pemrograman modular yang dibahas yaitu :
       1. PROCEDURE (Prosedur)
       2. FUNCTION (Fungsi)

PROCEDURE

Deklarasi :
               Procedure nama procedure (daftar parameter) ;
                     {Deklarasi}
                     Begin
                           ..........
                           ..........
                     End ;

Pemanggilan Procedure :
        Suatu procedure bukan merupakan program yang berdiri sendiri sehingga tidak
dapat dieksekusi secara langsung. Untuk itu suatu procedure memerlukan sebuah akses
pada program utama / modul lain yang berfungsi sebagai pemanggil. Sedangkan cara
pemanggilanya adalah dengan : menuliskan nama procedurenya berikut parameternya
(jika ada).

Hal-hal yang berhubungan dengan Procedure :
       Ada beberapa hal yang berhubungan dengan penulisan sebuah procedure
program yaitu :
   1. Variabel Global dan Variabel
       Variabel Global adalah variabel yang dapat dikenali diseluruh bagian program,
       biasanya variabel ini merupakan variabel yang dideklarasikan pada deklarasi
       program umum.
       Variabel Lokal adalah variabel yang dikenal pada lingkup yang lebih sempit dari
       pada variabel global.

   2. Parameter
         Ada 2 Parameter yang berlaku dalam sebuah Procedure yaitu :
         a. Parameter Formal
              Yaitu Parameter yang dideklarasikan mengikuti pendeklarasian program
utama.
         b. Parameter Aktual
            Yaitu Parameter yang dituliskan mengikuti pemanggilan Procedure.




                                           34
Aturan antara parameter formal dan parameter aktual :
   1) Banyaknya parameter aktual harus sama dengan banyaknya paremeter formal
   2) Tiap-tiap parameter aktual harus bertipe sama dengan parameter formal yang
      bersesuaian
   3) Tiap-tiap parameter aktual harus diekspresikan yang sesuai dengan parameter
      formal

Pengiriman Parameter :
      a. Pengiriman parameter secara nilai (by Value)
         - Tiap-tiap parameter dalam procedure utama akan berisi nilai yang dikirim
            oleh parameter aktual dan bersifat lokal procedure.
         - Pengirima nilai parameter secara by value merupakan pengiriman searah,
            artinya hanya dari parameter aktual ke parameter formal.
         - Perubahan parameter formal tidak mempengaruhi terhadap nilai
            parameter aktual.

Contoh :

Program_by_value ;
Uses Crt;

Procedure Hitung(A,B,C : Integer) ;
      Begin
        B:= A ;
        C:= A+B ;
        Writeln(’nilai A = ’,A,’ | nilai B = ’,B,’ | nilaiC = ’,C) ;
      End;
     {---------------------------------------------------------}
     {Berikut Program Utamanya}

Var X,Y,Z : Integer ;
Begin
       Clrscr ;
       Write(’masukan nilai x : ’) ; Readln(x) ;
       Write(’masukan nilai Y : ’) ; Readln(y) ;
       Write(’masukan nilai Z : ’) ; Readln(z) ;
       Writeln ;
       Hitung (x,y,z) ; {Perintah memberikan nilai ke procedure}
       Writeln ;
       Writeln (’nilai x =’,X,’ | nilai y =’,Y,’ | nilai z =’,Z) ;
       Readln ;
End.
Keterangan :
       Misalkan dimasukan nilai dari x=5, y=7 dan z=15 maka nilai ini akan dikirim ke
parameter formal pada procedure yaitu A,B,C sehingga nilai awal A=5, B=7 dan C=15.
Setelah melalui proses maka hasil outputnya adalah bahwa nilai X=5, Y=7 dan Z=15.
Sebab apapun yang diproses pada procedure tidak akan mempengaruhinilai dari
parameter aktual X,Y,Z.
       b. Pengiriman parameter secara acuan (by Reference)


                                                 35
-   Merupakan pengiriman dua arah yaitu dari parameter aktual ke parameter
              formal dan dari parameter formal ke parameter aktual sebagai hasil
              output dari procedure.
          -   Perubahan nilai pada parameter formalmempengaruhi pada parameter
              aktual.
          -   Dicirikan dengan penggunaan deklarasi VAR, pada parameter procedure-
              nya.

Contoh :
Procedure Hitung (Var :A,B,C : Integer) ;
Begin
      B:=A ;
      C:=A+B ;
      Writeln(A,B,C) ;
End ;
Var X,Y,Z : integer ;
Begin
      Readln(X) ; Readln(Y) ; Readln(Z) ;
      Hitung(X,Y,Z) ;
      Writeln(X,Y,Z) ;
      Readln;
End.

Keterangan :
       Misalkan dimasukan nilai X=5, Y=8 dan Z=15 maka nilai ini akan dikirim ke
parameter formal pada procedure yaitu A,B,C sehingga nilai awal A=5,B=8 dan C=15.
Setelah melalui proses maka hasil outputnya adalah bahwa nilai X=A=5, Y=b=5 dan
Z=C=10. Sebab apapun yang diproses pada procedure akan mempengaruhi nilai dari
parameter aktual X,Y,Z.




FUNCTION

   A. Pengenalan Function

       Function dalam pascal sebenarnya tidak berbeda seperti fungsi dalam matemtika,
       seperti F(X) = X+1
       F nama Fungsi
       (X) parameter yang diberikan
       X+1 proses yang dilakukan terhadap parameter
       Hasil dari fungsi f(X) adalah f(x) yang nilainya telah berubah sesuai dengan nilai
parameter x yang diberikan, maka dalam PASCAL, function sering disebut memiliki sifat
mengembalikan nilai.
Function tidak berbeda jauh dengan procedure, kunci perbedaanya adalah function
mengembalikan suatu nilai sedangkan procedure tidak. Sifat pengembalian nilai suatu
function disebabkan karena hasil dari pelaksanaan suatu function disimpan dalam suatu
variabel dalam function itu dimana nama variabel tersebut sama dengan nama function-
nya.

   B. SYNTAX


                                            36
Sebelum function digunakan, terlebih dahulu harus dideklarasikan (diberitahukan
pada program bahwa terdapat function yang akan digunakan oleh program utama)
beserta proses yang akan dijalankan oleh program tersebut.
       Deklarasi Function dilakukan sebelum program utama (sebelum begin...end.)

       Function nama_fungsi (parameter : tipe_data) : tipe_data ;
       Begin
              .... ;
              {Penjabaran}
              ... ;
              Nama_fungsi := ....
       End ;

       Parameter : nilai yang diberikan kepada fungsi, seperti x dalam fungsi f diatas.
                   Suatu fungsi mungkin tidak memerlukan parameter.
       Tipe_data : Character, numerik (integer,real,dll),string,dll.
       Contoh :

       Program Fungsi_numerik ;
       Uses crt ;
       Function f(x : real):real ;
       Begin
            F:= x+1 ;
       End ;
       Begin
            Writeln(’Fungsi f(x) untuk x = 2 bernilai ’,f(2)) ;
       End.


       Program Fungsi_String ;
       Uses crt ;
       Var kata : string ;
       Function f(x:string) : String ;
       Var i :byte ;
       Begin
             For i:=1 to lenght(x) do x[i] := upcase(x[i]) ;
             F := x ;
       End ;
       Begin
             Write(’kata yang ingin dimasukan : ’) ; readln(kata) ;
             Writeln(’kata setelah dikapitalisasi : ’,f(kata)) ;
       End.



   C. Jenis-jenis variabel yang digunakan dalam function

Ada dua jenis variabel yang digunakan oleh function, yaitu : Variabel Global dan Variabel
Lokal.

Variabel Global   variabel yang dideklarasikan dari awal program dan berlaku secara
                   umum. Variabel ini (dan nilai yang dikandungnya) dapat digunakan
                   baik oleh program utama maupun Sub-program seperti function dan
                   procedure.

                                             37
Variabel Lokal  variabel yang dideklarasikan dalam sub-program seperti function dan
                 procedure. Variabel ini hanya dapat digunakan oleh sub program itu
                 sendiri. Jika dalam sub-program terdapat kesamaan nama antara
                 variabel lokal dan variabel global, nilai variabel yang digunakan
                 adalah nilai variabel lokal.
Saran : gunakan variabel global seminimal mungkin dan gunakan variabel lokal
         seoptimal mungkin.




Contoh :

       Program Jenis_variabel ;

       Uses crt ;

       Var i : integer ; {deklarasi ” i ” sebagai variabel global}

       Function hitung : integer ; {deklarasi function tanpa parameter}
       Var temp : integer ; {deklarasi ” temp ” sebagai variabel lokal}
       Begin
          Temp:=2 * i ; {proses variabel global ” i ” dan variabel lokal ” temp ”}
          Hitung:=temp ; {funcftion mengembalikan nilai}
       End;

       Function hitung2(a:integer):integer; {deklarasi function berparameter}
       Begin
          Hitung2:=2 * a ; {cara lain penulisan, tidak memerlukan variabel lokal}
       End;

       {Program Utama}
       Begin
          Write(’masukan nilai i : ’) ;readln(i) ;
          Writeln(’hasil fungsi hitung : ’,hitung) ;
          Writeln(’hasil fungsi hitung2 : ’,hitung2(i)) ;
          {hasil sama}
       End;




                                             38
RECORD dan Type Data Buatan

RECORD

       Record memiliki kemiripan dengan Array, tetapi data-data yang disimpan dalam
sebuah record tidak harus memiliki tipe variabel yang sama. Jadi dalam suatu sebuah
record bisa saja ada data bertipe string, data bertipe real, dan bertipe integer secara
bersamaan.
Data atau variabel yang berada didalam record dinamakan field dari record yang
bersangkutan. Sebagai ilustrasi, sebuah mobil memiliki informasi seperti produsennya,
merknya, warnanya, tipenya, hargany, jenisnya dan kapasitas mesinya. Maka, mobil
tersebut dapat disebut sebagai sebuah record dan informasi pada mobil itu (produsen,
merk, warna dan sebagainya) sebagai field.


Contoh Record                   Contoh Field

Mahasiswa                       NRP, Nama, Angkatan, Kelas, IPK
Karyawan                        Nama, golongan, jabatan, gaji
Penjualan                       Periode, item, harga, cara pembayaran
Phonebook                       Nama, alamat, no tlp rumah, hp, e-mail
Mp3                             Artist, title, album, year, genre
                                No pelanggan, item yang dipinjam,
Movie-Rental
                                tanggal pinjam, tanggal kembali, biaya


                                           39
Syntax Record

       Type Recname = Record
                         Field1 : type ;
                         Field2 : type ;
                           :
                           :
                         Fieldx : type ;
                      End;

Recname : nama yang digunakan untuk mengidentifikasi record. Pemanggilan record
dilakukan dengan menggunakan nama ini.

Field1, field2,....fieldx : nama-nama fields yang menjadi elemen dari record ini,
pemanggilan field dilakukan dengan menggunakan nama record dan nama fieldnya,
seperti recname.field1

Type : tipe data untuk field yang bersangkutan, misalnya field1 bertipe data byte, field2
       bertipe String.

Contoh Pendeklarasian record

         TYPE mobil = RECORD
               Prod, merk, warna : STRING[10] ;
               Tipe : STRING [5] ;
               Harga : LONGINT ;
         End ;
         Var
               Mob : ARRAY [1..25] of mobil ;
        Kegunaan statement with adalah mempersingkat penulisan record. Dengan
menggunakan statement with, pemanggilan record cukup dilakukan dengan menuliskan
field-nya saja, tidak perlu ditulis lengkap bersama dengan nama record-nya.

OPERASI Input – Output Record & penggunaan With

PROGRAM InOuRec ;
TYPE mobil = RECORD
      Prod, merk, warna : STRING ;
      Tipe : STRING [5] ;
      Harga : LINGINT ;
    End;
VAR
    Mob : ARRAY [1..25] of Mobil ;
Begin
{contoh input}
      Mob[1].prod:=”Toyota” ;
      Mob[1].merk:=”New Camry” ;
      Mob[1].warna:=”Coal Black” ;
      Mob[1].tipe:=”G M/T” ;
      Mob[1].harga:=42000000 ;
{penggunaan statement with}
      WITH mob[2] Do
      Begin
             Prod:=”Honda” ;
                                           40
Merk:=”New Accord” ;
              Warna:=”Snow White” ;
              Tipe:=”C A/T” ;
              Harga:=450000000 ;
      End ;
{Sama artinya dengan
      Mob[2].prod:=” Honda” ;
      Mob[2].Merk:=”New Accord” ;
      Mob[2].Warna:=”Snow White” ;
      Mob[2].Tipe:=”C A/T” ;
      Mob[2].Harga:=450000000 ; }
{Contoh Output}
      For a:=1 to 2 Do
      Begin
             White mob[a] Do
             Begin
                    Writeln(prod) ;
                    Writeln(merk) ;
                    Writeln(warna) ;
                    Writeln(tipe) ;
                    Writeln(harga) ;
             End ;
      End ;




Contoh Program Sederhana Menggunakan Record

Program Record_Mhs ;
TYPE Rmhs = Record
   Nrp : integer ;
   nama : String[15] ;
   ipk : real ;
   kelas : char ;
end ;

Var
  Amhs : Array [1..100] of Rmhs ;
  a,k : integer ;

Procedure input ;
begin
   a:= a+1 ;
   Write('Nrp (3 digit terakhir) : ') ; readln(Amhs[a].nrp) ;
   Write('Nama : ') ; readln(Amhs[a].nama) ;
   Write('IPK : ') ; readln(Amhs[a].ipk) ;


                                             41
end;

Procedure Output ;
Var b:integer ;
begin
   {penentuan kelas mahasiswa berdasrkan nrp !}
   For b:=1 to a do
   begin
      if Amhs[b].nrp < 51 then Amhs[b].kelas:='A'
      else if Amhs[b].nrp > 100 then Amhs[b].kelas:='C'
          Else Amhs[b].kelas:='B' ;

     Writeln('Kelas : ',Amhs[b].kelas) ;
     Writeln('Nrp : ',Amhs[b].nrp) ;
     Writeln('Nama : ',Amhs[b].nama) ;
     Writeln('IPK : ',Amhs[b].ipk:5:2) ;
  end;
end;

Begin
  Repeat
       Writeln('1. Input data mahasiswa - nrp,nama,ipk') ;
       Writeln('2. Output data mahasiswa - kelas,nrp,nama,ipk') ;
       Writeln('3. Exit') ;
       Readln (k) ;
       case k of
              1 : Input ;
              2 : Output ;
       End ;
  Until K > 2 ;
End.




              Pemrograman Database Text dalam Pascal
FILE (BERKAS)

File (Berkas) adalah kumpulan sejumlah komponen yang bertipe data sama, yang
jemlahnya tidak tertentu.
Pengertian file atau berkas dianalogikan dengan simpanan arsip.

Di dalam Pascal, berkas menyediakan data yang nantinya akan digunakan oleh suatu
program. Berkas dapat berupa diskfile yaitu media penyimpanan yang berupa cakram
magnetis, pita megnetis, kartu plong dan media-media penyimpanan lainya.

Berkas mempunyai sifat sebagai berkas berurutan (Sequential File), pembacaan datanya
dari baris satu ke baris berikutnya.

MENDEKLARASIKAN FILE

                                           42
TYPE Var1 = FILE OF var2 ;              Contoh :
Atau
VAR Var1 = FILE OF var2 ;               TYPE
                                                Tipe_Data = RECORD
                                                 Nama : String[25] ;
                                                 Alamat : String[30] ;
                                                 No_tlp : String[15] ;
                                                 Usia : Integer ;
                                                End ;
                                          VAR
                                                File_Data : File of Tipe_Data ;
                                                D_Data : Tipe_Data ;
OPERASI PADA FILE

   1. Statemen ASSIGN
      Statemen ini digunakan untuk memilih/membuka berkas yang akan dioprasikan
      sesuai dengan tipe berkas yang kita deklarasikan.

      ASSIgn (Variabel_berkas, nama_berkas) ;
      Contoh : Assign (File_Data,’biodata.dat’) ;

   2. Statemen CLOSE
      Close digunakan untuk menutup berkas yang telah dibuka oleh statemen assign.
      Dan hanya menyebutkan variabel_berkas-nya saja tanpa nama berkas.

      Contoh : Close (File_Data) ;

   3. Statemen REWRITE
      Digunakan untuk membuat berkas baru yang telah dinyatakan dengan variabel
      berkas. Jika berkas tersebut sudah ada dalam media penyimpanan, maka berkas
      tersebut akan digantikan dengan berkas yang baru.

      Contoh : Rewrite(File_Data) ;

   4. Statemen RESET
      Digunakan untuk mengeset penunjuk komponen kembali ke nomor 0.

      Contoh : Reset (File_Data) ;



   5. Satatemen WRITE
      Statemen ini digunakan untuk menuliskan komponen berkas (data) kedalam
      media penyimpanan. Dan akan menempatkan komponen baru tersebut diakhir
      record.

      WRITE(variabel_berkas, variabel_komponen_berkas) ;

      Contoh : Write(File_Data,D_data) ;

   6. Statemen READ

                                         43
Read digunakan untuk membaca komponen berkas dari dalam media
   penyimpanan. Pembacaan disesuaikan dengan posisi penunjuk komponen,
   setelah selesai membaca, posisi penunjuk komponen akan ditempatkan ke
   komponen berkas berikutnya.

   READ(Variabel_berkas, variabel_komponen_berkas) ;

   Contoh : Read(File_Data,D_data) ;

7. Statemen SEEK
   Digunakan untuk menggerakan penunjuk komponen ke nomor komponen
   tertentu. Dengan nomor awal record adalah 0.

   SEEK(Variabel_berkas,nomor_record) ;

   Contoh : Seek (File_data,3) ; {diarahkan kekomponen yang ketiga}

8. Fungsi FILEPOS
   Fungsi ini digunakan untuk mengetahui letak penunjuk komponen berbeda. Dan
   hasilnya berupa bilangan bulat yang menunjukan posisi penunjuk komponen pada
   saat itu.

   FILEPOS(variabel_berkas) ;

   Contoh : Filepos(File_data) ;

9. Fungsi FILESIZE
   Digunakan untuk mengetahui ukuran dari suatu berkas. Jika fungsi ini bernilai 0
   berarti berkas tersebut masih kosong.

   FILESIZE (variabel_berkas) ;

   Contoh : Ukuran := Filesize(File_data) ; {ukuran dalam satuan byte}

10. Fungsi EOF
   Fungsi ini digunakan untuk mengetahui apakah penunjuk komponen berada
   diakhir bekas (End Of File = EOF), Jika Ya maka bernilai TRUE dan jika TIDAK
   maka bernilai FALSE.

   EOF(variabel_berkas) ;

   Contoh : Akhir_file := EOF(file_data) ;




11. Statemen FLUSH
   Flush digunakan untuk mengosongkan penyangga(buffer) dari berkas, dengan
   demikian akan memastikan bahwa isi penyangga telah ditusikan dalam media
   penyimpan setelah statemen WRITE selesai dikerjakan.

                                       44
FLUSH(variabel_berkas) ;

   Contoh : FLUSH(file_data) ;

12. Statemen ERASE
   Erase digunakan untuk menghapus file atau berkas yang telah tertutup atau
   sedang tidak digunakan.

   ERASE(variabel_berkas) ;

   Contoh : ERASE(file_data) ;

13. Statemen RENAME
   Digunakan untuk memberi nama baru pada berkas yang dinyatakan oleh variabel
   berkas. Dan hanya dapat dilakukan pada berkas yang tertutup.

   RENAME(variabel_berkas,nama_baru) ;

   Contoh : RENAME(file_data,’baru.dat’) ;




                                     45

Weitere ähnliche Inhalte

Was ist angesagt?

Resume praktikum
Resume praktikumResume praktikum
Resume praktikumNuRul Emi
 
Laporan hasil praktikum modul i pengenalan pascal
Laporan hasil praktikum modul i pengenalan pascalLaporan hasil praktikum modul i pengenalan pascal
Laporan hasil praktikum modul i pengenalan pascalMeycelino A. T
 
Laporan Praktikum Algoritma Pemrograman Modul I
Laporan Praktikum Algoritma Pemrograman Modul ILaporan Praktikum Algoritma Pemrograman Modul I
Laporan Praktikum Algoritma Pemrograman Modul IShofura Kamal
 
Materi dasar-pascal
Materi dasar-pascalMateri dasar-pascal
Materi dasar-pascalFaisal Amir
 
Laporan Algoritma dan Pemrograman Modul 1
Laporan Algoritma dan Pemrograman Modul 1Laporan Algoritma dan Pemrograman Modul 1
Laporan Algoritma dan Pemrograman Modul 1Tatalazy
 
Laporan praktikum modul ii & iii
Laporan praktikum modul ii & iiiLaporan praktikum modul ii & iii
Laporan praktikum modul ii & iiiDevi Apriansyah
 
Konsep dasar bahasa__pascal_ok-libre
Konsep dasar bahasa__pascal_ok-libreKonsep dasar bahasa__pascal_ok-libre
Konsep dasar bahasa__pascal_ok-libreBoelepe Icheks
 
2 konsep dasar pascal
2   konsep dasar pascal2   konsep dasar pascal
2 konsep dasar pascalachieasik89
 
Laporan Praktikum Algoritma
Laporan Praktikum AlgoritmaLaporan Praktikum Algoritma
Laporan Praktikum AlgoritmaEnvaPya
 
1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascalsuhendi Harun
 
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)Azka Mutia
 
Pascal tutorialtpascal701
Pascal tutorialtpascal701Pascal tutorialtpascal701
Pascal tutorialtpascal701Alvin Setiawan
 
Algoritma dan pemrograman - Disusun oleh Fitri Ratna Dewi
Algoritma dan pemrograman - Disusun oleh Fitri Ratna DewiAlgoritma dan pemrograman - Disusun oleh Fitri Ratna Dewi
Algoritma dan pemrograman - Disusun oleh Fitri Ratna DewiFitri Ratna Dewi
 
PASCAL ( MODUL 2)
PASCAL ( MODUL 2)PASCAL ( MODUL 2)
PASCAL ( MODUL 2)Hardini_HD
 

Was ist angesagt? (19)

Resume praktikum
Resume praktikumResume praktikum
Resume praktikum
 
Pertemuan 2
Pertemuan 2Pertemuan 2
Pertemuan 2
 
Laporan hasil praktikum modul i pengenalan pascal
Laporan hasil praktikum modul i pengenalan pascalLaporan hasil praktikum modul i pengenalan pascal
Laporan hasil praktikum modul i pengenalan pascal
 
Laporan Praktikum Algoritma Pemrograman Modul I
Laporan Praktikum Algoritma Pemrograman Modul ILaporan Praktikum Algoritma Pemrograman Modul I
Laporan Praktikum Algoritma Pemrograman Modul I
 
Materi dasar-pascal
Materi dasar-pascalMateri dasar-pascal
Materi dasar-pascal
 
Makalah
MakalahMakalah
Makalah
 
Modul 2
Modul 2Modul 2
Modul 2
 
Laporan Algoritma dan Pemrograman Modul 1
Laporan Algoritma dan Pemrograman Modul 1Laporan Algoritma dan Pemrograman Modul 1
Laporan Algoritma dan Pemrograman Modul 1
 
Laporan praktikum modul ii & iii
Laporan praktikum modul ii & iiiLaporan praktikum modul ii & iii
Laporan praktikum modul ii & iii
 
Konsep dasar bahasa__pascal_ok-libre
Konsep dasar bahasa__pascal_ok-libreKonsep dasar bahasa__pascal_ok-libre
Konsep dasar bahasa__pascal_ok-libre
 
Modul ii
Modul iiModul ii
Modul ii
 
Pseudopascal 2009
Pseudopascal 2009Pseudopascal 2009
Pseudopascal 2009
 
2 konsep dasar pascal
2   konsep dasar pascal2   konsep dasar pascal
2 konsep dasar pascal
 
Laporan Praktikum Algoritma
Laporan Praktikum AlgoritmaLaporan Praktikum Algoritma
Laporan Praktikum Algoritma
 
1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal1. konsep dasar pemrograman pascal
1. konsep dasar pemrograman pascal
 
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
Laporan hasil praktikum Alpro I Modul 1 (Pengenalan Pascal)
 
Pascal tutorialtpascal701
Pascal tutorialtpascal701Pascal tutorialtpascal701
Pascal tutorialtpascal701
 
Algoritma dan pemrograman - Disusun oleh Fitri Ratna Dewi
Algoritma dan pemrograman - Disusun oleh Fitri Ratna DewiAlgoritma dan pemrograman - Disusun oleh Fitri Ratna Dewi
Algoritma dan pemrograman - Disusun oleh Fitri Ratna Dewi
 
PASCAL ( MODUL 2)
PASCAL ( MODUL 2)PASCAL ( MODUL 2)
PASCAL ( MODUL 2)
 

Andere mochten auch

Pascal 4-aturan-penulisan-pascal
Pascal 4-aturan-penulisan-pascalPascal 4-aturan-penulisan-pascal
Pascal 4-aturan-penulisan-pascaladealfarisi
 
Perulangan While do, For to do, dan Repeat Until dalam Pascal
Perulangan While do, For to do, dan Repeat Until dalam PascalPerulangan While do, For to do, dan Repeat Until dalam Pascal
Perulangan While do, For to do, dan Repeat Until dalam PascalTeknik Informatika UII
 
Algoritma pemrogmraman
Algoritma pemrogmramanAlgoritma pemrogmraman
Algoritma pemrogmramannoval riansyah
 
alpro Chapter02
alpro Chapter02alpro Chapter02
alpro Chapter02Dermawan12
 
03 algoritma flowchart
03 algoritma flowchart03 algoritma flowchart
03 algoritma flowchartArif Rahman
 
Flowchart Diagram Templates by Creately
Flowchart Diagram Templates by CreatelyFlowchart Diagram Templates by Creately
Flowchart Diagram Templates by CreatelyCreately
 
Introduction to flowchart
Introduction to flowchartIntroduction to flowchart
Introduction to flowchartJordan Delacruz
 

Andere mochten auch (13)

Materi 6. perulangan
Materi 6. perulanganMateri 6. perulangan
Materi 6. perulangan
 
Pascal 4-aturan-penulisan-pascal
Pascal 4-aturan-penulisan-pascalPascal 4-aturan-penulisan-pascal
Pascal 4-aturan-penulisan-pascal
 
Program Pascal
Program PascalProgram Pascal
Program Pascal
 
Topik 8 Perulangan
Topik 8 PerulanganTopik 8 Perulangan
Topik 8 Perulangan
 
6 lanjutan perulangan
6 lanjutan perulangan6 lanjutan perulangan
6 lanjutan perulangan
 
Perulangan While do, For to do, dan Repeat Until dalam Pascal
Perulangan While do, For to do, dan Repeat Until dalam PascalPerulangan While do, For to do, dan Repeat Until dalam Pascal
Perulangan While do, For to do, dan Repeat Until dalam Pascal
 
Algoritma pemrogmraman
Algoritma pemrogmramanAlgoritma pemrogmraman
Algoritma pemrogmraman
 
alpro Chapter02
alpro Chapter02alpro Chapter02
alpro Chapter02
 
Flowcharts
FlowchartsFlowcharts
Flowcharts
 
03 algoritma flowchart
03 algoritma flowchart03 algoritma flowchart
03 algoritma flowchart
 
Writing algorithms
Writing algorithmsWriting algorithms
Writing algorithms
 
Flowchart Diagram Templates by Creately
Flowchart Diagram Templates by CreatelyFlowchart Diagram Templates by Creately
Flowchart Diagram Templates by Creately
 
Introduction to flowchart
Introduction to flowchartIntroduction to flowchart
Introduction to flowchart
 

Ähnlich wie Pascal buku

Tugas mu'thi modul pascal
Tugas mu'thi modul pascalTugas mu'thi modul pascal
Tugas mu'thi modul pascalMu'thi Cinsayf
 
PASCAL ( MODUL 2)
PASCAL ( MODUL 2)PASCAL ( MODUL 2)
PASCAL ( MODUL 2)Hardini_HD
 
Konsep dasar pemrograman pascal materi i
Konsep dasar pemrograman pascal materi iKonsep dasar pemrograman pascal materi i
Konsep dasar pemrograman pascal materi ilaztorino
 
Bahasa pemrograman pascal
Bahasa pemrograman pascalBahasa pemrograman pascal
Bahasa pemrograman pascalFandi Rahmat
 
Bahasa pemrograman pascal
Bahasa pemrograman pascalBahasa pemrograman pascal
Bahasa pemrograman pascalFandi Rahmat
 
Pemograman Pascal (pertemuan 1) tanggal 9 januari 2023.pptx
Pemograman Pascal (pertemuan 1) tanggal 9 januari 2023.pptxPemograman Pascal (pertemuan 1) tanggal 9 januari 2023.pptx
Pemograman Pascal (pertemuan 1) tanggal 9 januari 2023.pptxNaeniPaccing
 
Part 24 Perintah Record with
Part 24 Perintah Record withPart 24 Perintah Record with
Part 24 Perintah Record withSyaiful Ahdan
 
bahasa pemrograman turbo pascal-pertemuan-1
bahasa pemrograman turbo pascal-pertemuan-1bahasa pemrograman turbo pascal-pertemuan-1
bahasa pemrograman turbo pascal-pertemuan-1taufikhidayat607720
 
Modul Praktikum Algoritma dan Pemrograman
Modul Praktikum Algoritma dan PemrogramanModul Praktikum Algoritma dan Pemrograman
Modul Praktikum Algoritma dan PemrogramanIrwien Andriyanto
 
Penjelasan Tentang Module Algo
Penjelasan Tentang Module AlgoPenjelasan Tentang Module Algo
Penjelasan Tentang Module AlgoAPK BARU
 
Bahasa pemrograman pascal
Bahasa pemrograman pascalBahasa pemrograman pascal
Bahasa pemrograman pascalNadya Olivia
 

Ähnlich wie Pascal buku (20)

2 konsep dasar pascal
2   konsep dasar pascal2   konsep dasar pascal
2 konsep dasar pascal
 
Ebook pascal.pdf
Ebook pascal.pdfEbook pascal.pdf
Ebook pascal.pdf
 
Tugas mu'thi modul pascal
Tugas mu'thi modul pascalTugas mu'thi modul pascal
Tugas mu'thi modul pascal
 
PASCAL ( MODUL 2)
PASCAL ( MODUL 2)PASCAL ( MODUL 2)
PASCAL ( MODUL 2)
 
Modul08 a
Modul08 aModul08 a
Modul08 a
 
Konsep dasar pemrograman pascal materi i
Konsep dasar pemrograman pascal materi iKonsep dasar pemrograman pascal materi i
Konsep dasar pemrograman pascal materi i
 
Bahasa pemrograman pascal
Bahasa pemrograman pascalBahasa pemrograman pascal
Bahasa pemrograman pascal
 
Algoritma 02
Algoritma 02Algoritma 02
Algoritma 02
 
Bahasa pemrograman pascal
Bahasa pemrograman pascalBahasa pemrograman pascal
Bahasa pemrograman pascal
 
Pemograman Pascal (pertemuan 1) tanggal 9 januari 2023.pptx
Pemograman Pascal (pertemuan 1) tanggal 9 januari 2023.pptxPemograman Pascal (pertemuan 1) tanggal 9 januari 2023.pptx
Pemograman Pascal (pertemuan 1) tanggal 9 januari 2023.pptx
 
Modul algoritma dan pemograman
Modul algoritma dan pemogramanModul algoritma dan pemograman
Modul algoritma dan pemograman
 
Part 24 Perintah Record with
Part 24 Perintah Record withPart 24 Perintah Record with
Part 24 Perintah Record with
 
bahasa pemrograman turbo pascal-pertemuan-1
bahasa pemrograman turbo pascal-pertemuan-1bahasa pemrograman turbo pascal-pertemuan-1
bahasa pemrograman turbo pascal-pertemuan-1
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
 
Modul praktikum c++
Modul praktikum c++Modul praktikum c++
Modul praktikum c++
 
Algoritma modul
Algoritma modulAlgoritma modul
Algoritma modul
 
Algoritma
AlgoritmaAlgoritma
Algoritma
 
Modul Praktikum Algoritma dan Pemrograman
Modul Praktikum Algoritma dan PemrogramanModul Praktikum Algoritma dan Pemrograman
Modul Praktikum Algoritma dan Pemrograman
 
Penjelasan Tentang Module Algo
Penjelasan Tentang Module AlgoPenjelasan Tentang Module Algo
Penjelasan Tentang Module Algo
 
Bahasa pemrograman pascal
Bahasa pemrograman pascalBahasa pemrograman pascal
Bahasa pemrograman pascal
 

Kürzlich hochgeladen

Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfWidyastutyCoyy
 
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfModul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfKartiniIndasari
 
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...pipinafindraputri1
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxwawan479953
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMIGustiBagusGending
 
Lingkungan bawah airLingkungan bawah air.ppt
Lingkungan bawah airLingkungan bawah air.pptLingkungan bawah airLingkungan bawah air.ppt
Lingkungan bawah airLingkungan bawah air.pptimamshadiqin2
 
Modul Projek - Batik Ecoprint - Fase B.pdf
Modul Projek  - Batik Ecoprint - Fase B.pdfModul Projek  - Batik Ecoprint - Fase B.pdf
Modul Projek - Batik Ecoprint - Fase B.pdfanitanurhidayah51
 
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITAS
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITASMATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITAS
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITASbilqisizzati
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxdeskaputriani1
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikaAtiAnggiSupriyati
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxsukmakarim1998
 
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptxSusanSanti20
 
Aksi Nyata PMM Topik Refleksi Diri (1).pdf
Aksi Nyata PMM Topik Refleksi Diri (1).pdfAksi Nyata PMM Topik Refleksi Diri (1).pdf
Aksi Nyata PMM Topik Refleksi Diri (1).pdfEniNuraeni29
 
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfJarzaniIsmail
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"baimmuhammad71
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxssuser35630b
 
Materi Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptxMateri Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptxSaujiOji
 
Membuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxMembuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxNurindahSetyawati1
 
algoritma dan pemrograman komputer, tugas kelas 10
algoritma dan pemrograman komputer, tugas kelas 10algoritma dan pemrograman komputer, tugas kelas 10
algoritma dan pemrograman komputer, tugas kelas 10maulitaYuliaS
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxJuliBriana2
 

Kürzlich hochgeladen (20)

Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
 
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdfModul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
Modul Ajar Bahasa Inggris - HOME SWEET HOME (Chapter 3) - Fase D.pdf
 
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
Modul 2 - Bagaimana membangun lingkungan belajar yang mendukung transisi PAUD...
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
 
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMMAKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
AKSI NYATA BERBAGI PRAKTIK BAIK MELALUI PMM
 
Lingkungan bawah airLingkungan bawah air.ppt
Lingkungan bawah airLingkungan bawah air.pptLingkungan bawah airLingkungan bawah air.ppt
Lingkungan bawah airLingkungan bawah air.ppt
 
Modul Projek - Batik Ecoprint - Fase B.pdf
Modul Projek  - Batik Ecoprint - Fase B.pdfModul Projek  - Batik Ecoprint - Fase B.pdf
Modul Projek - Batik Ecoprint - Fase B.pdf
 
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITAS
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITASMATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITAS
MATEMATIKA EKONOMI MATERI ANUITAS DAN NILAI ANUITAS
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ikabab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
bab 6 ancaman terhadap negara dalam bingkai bhinneka tunggal ika
 
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptxPEMANASAN GLOBAL - MATERI KELAS X MA.pptx
PEMANASAN GLOBAL - MATERI KELAS X MA.pptx
 
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
7.PPT TENTANG TUGAS Keseimbangan-AD-AS .pptx
 
Aksi Nyata PMM Topik Refleksi Diri (1).pdf
Aksi Nyata PMM Topik Refleksi Diri (1).pdfAksi Nyata PMM Topik Refleksi Diri (1).pdf
Aksi Nyata PMM Topik Refleksi Diri (1).pdf
 
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
 
power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"power point bahasa indonesia "Karya Ilmiah"
power point bahasa indonesia "Karya Ilmiah"
 
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptxBab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
Bab 7 - Perilaku Ekonomi dan Kesejahteraan Sosial.pptx
 
Materi Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptxMateri Sosialisasi US 2024 Sekolah Dasar pptx
Materi Sosialisasi US 2024 Sekolah Dasar pptx
 
Membuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docxMembuat Komik Digital Berisi Kritik Sosial.docx
Membuat Komik Digital Berisi Kritik Sosial.docx
 
algoritma dan pemrograman komputer, tugas kelas 10
algoritma dan pemrograman komputer, tugas kelas 10algoritma dan pemrograman komputer, tugas kelas 10
algoritma dan pemrograman komputer, tugas kelas 10
 
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptxBAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
BAB 5 KERJASAMA DALAM BERBAGAI BIDANG KEHIDUPAN.pptx
 

Pascal buku

  • 1. 1
  • 2. MODUL PEMROGRAMAN DASAR PASCAL DIGUNAKAN UNTUK MATERI KULIAH DAN PRAKTIKUM Untuk Kalangan Sendiri Tahun Ajaran 2010/2011 Oleh : I Ketut Adi Purnata Pengenalan Algoritma dan Struktur Dasar Bahasa Pascal A. Sejarah Bahasa Pascal 2
  • 3. Bahasa Pascal di desain pertama kali oleh Prof. Niklaus Wirth, Dari Polytechnic of Zurich Swiss, pada tahun 1971. pascal di ciptakan sebagai penyederhanaan dari dari bahasa slgol yang sudah ada sejak tahun 1960. Pada saat itu juga sudah ada bahasa FORTRAN, C, Assembler dan COBOL. Perbedaan mendasar dari pascal adalah digunakanya urutan tertentu pemrograman yang berdasar atas konsep type data yang kuat, memerlukan deklarasi variabel terlebih dahulu dan kendali program yang terstruktur. Bahsa ini di desain sebagai alat bantu pengajaran bagi siswa di kelas / mata kuliah pemrograman (di Polytechnic of Zurich,Swees). Turbo Pascal (TP) adalah sebuah program compiler Pascal dari Borland International yang dikeluarkan pada tahun 1983, yang merupakan implementasi dar”Pascal User Manual and Report” [Jensen & Wirth]. TP merupakan bahasa pemrograman yang sangat populer pada komputer-komputer ber-platform PC. TP mengenalkan konsep IDE (Integrated Development Environment), sebuah tampilan / lingkungan dimana programer dapat dengan mudah mengedit kode (dalam editor teks yang kompatible dengan wordstar), menjalankan compiler, melihat kesalahan (bila ada kesa;ahan penulisan kode program) dan dapat ’meloncat’ ke baris dimana kesalahan itu ada. Pada saat itu, untuk memperbaiki kesalahan, seorang programmer harus keluar dari editor, kembali ke DOS, menjalankan compiler, menuliskan kesalahan, membuka kembali editor dst, namun sekarang kita dapat menggunakan versi for windows dimana pengeditan lebih mudah dilakukan, misalnya TPW 1.5 B. Defenisi Algoritma ALGORITMA adalah suatu urutan langkah-langkah (Steps) Yang disusun secara logis untuk menyelesaikan masalah dengan menggunakan komputer. Dengan kriteria sebagai berikut : 1. Setiap langkah/Step harus jelas dan pasti (Definite) 2. Diperbolehkan tanpa ada input tetapi minimal harus ada 1 output. 3. Jumlah langkah harus berhingga atau dengan kata lain harus ada stopping criteria. 4. Ditulis dengan format yang mudah dipahami sehingga tidak menimbulkan arti ganda. 5. Logika yang benar dan terstruktur dan semua operasi terdefensi dengan jelas. Penyajian Suatu Algoritma : Algoritma dapat disajikan dengan dua cara : 1. Secara Tulisan 3
  • 4. - Struktur Bahasa / Diskripsi - Pseudocode (kode semu) 2. Tehnk Gambar (Flowchart) Simbol-simbol dalm Flowchart (Bagan Alir) Terminator / Proses (awal / akhir) Input /Output Proses Titik keputusan Sambungan dalam satu halaman Sambungan ke lain halaman Arah arus C. Aturan Dalam Bahasa Pascal 1. Nama File Karena Pascal dibuat untuk digunakan dilingkungan DOS atau dilingkungan Windows (TPW 1.5), maka biasakn menggunakan aturan penamaan file di DOS. Jumlah karakter nama file adalah 8 karakter (8.3). Program yang dibuat dengan pascal mempunyai ekstensi .PAS. (unit / uilitas : .TPU, .BGI, .CHR). Tidak diperbolehkan : 1. awalan angka (misalnya : 1st_prog.pas) 2. mengandung karakter tidak lazim, misalnya : * , ! # ^ dst. 3. Mengandung spasi misalnya : Prog ku.pas 4
  • 5. 2. Komentar Komentar di Pascal ditulis dengan tanda : (* ....Komentar....*) atau {....Komentar....} Apapun yang ditulis di dalam tanda ini tidak akan dikerjakan oleh kompiler, kecuali bila diikuti oleh tanda $, Misalnya { $ X+ } yang menunjukan simbol direktif tertentu. Direktif digunakn agar compiler menggunakn kemampuan tertentu dari prosesor. 3. Huruf Besar Pascal tidak membedakan huruf besar atau kecil dalm penulisan perintah, misalnya : sin(x), Sin(x), SIN(x). Kecuali penggunaan kata register, semata- mata untuk kompatibalitas dengan bahasa C. Untuk kemudahan (dan kerapian), penulisan variabel lebih baik diawali dengan huruf besar. Misalnya : JumlahAkhir, Jumlah, Jumlah_Awal D. Struktur Program Pascal Skema dari program Pascal adalah sebagai berikut : ALGORITMA BAHASA PASCAL Algoritma nama_algoritma 1. Program nama_algoritma; {kepala algoritma, berisi {program latiahan;} penjelasan} 2. Bagian Deklarasi Label (nama_labelnya); Deklarasi Var(nama_variabelnya); { Berisi variabel yang telibat } Const(nama = nilai konstanya); Procedure(Nama_prosedurnya); Deskripsi Fuction (nama_fungsinya); { Berisi detail dari algoritma } 3. Bagian Pernyataan Begin < <ernyataan – pernyataan > End. Keterangan Struktur Program 1. Judul program (opsional) Format : {judul program} atau program_nama program; 2. Deklarasi program : Var {Variabel program} Const {Constanta program} Label {Label} Funct {Function} Procedure {Prosedur program} 5
  • 6. Catatan : Deklarasi program bersifat opsional khusus, artinya jika di perlukan maka harus ada dalam program dan apabila tidak diperlukan maka boleh tidak dicantumkan. Deklarasi program termasuk Identifier (pengenal), yaitu kata-kata yang diciptakan oleh pemrogram untuk mengidentifikasi sesuatu. Syarat Identifier : a) Harus diawali oleh alphabet b) Huruf besar / kecil yang digunakan dianggap sama c) Penyusun dari sebuah identifier tidak boleh berupa : tanda baca, tanda relasi, symbol arithmatik, karakter khusus atau reserved word. d) Tidak boleh dipisahkan dengan spasi, apabila hendak dipisahkan maka harus menggunakan tanda UnderScore ( _ ) e) Panjang identifier tidak dibatasi tetapi sebaiknya digunakan se-efektif mungkin. 3. Program Utama Diawali dengan Begin dan diakhiri dengan End. Kata-kata yang Tidak Boleh digunakan sebagai nama variabel AND ASM ARRAY BEGIN Case CONST CONSTRUCTOR DESTRUCTUR DIV DO DOWNTO ELSE END EXPORTS FILE FOR FUNCTION GOTO IF IMPLEMENTATION IN INHERITED INLINE INTERFACE LABEL LIBRARY MOD NIL NOT OBJECT OF OR PACKED POCEDURE PROGRAM RECORD REPEAT SET SHL SHR STRING THEN TO TYPE UNIT UNTIL USES VAR WHILE WITH XOR PI Perintah Dasar / Sederhana Pascal  Write(‘Text / Tulisan ‘,Variabel); Perintah untuk menampilkan atau cetak dilayar monitor tanpa pindah baris  Writeln(‘Text / Tulisan ‘,Variabel); Perintah untuk menampilkan / cetak dilayar monitor lalu pindah baris bawah  Read(Variabel); Perintah utuk menginput / mengisi data tanpa pindah baris  Readln(Variabel); Perintah untuk menginput / mengisi data lalu pindah baris 6
  • 7. Contoh : Listing Programnya Program tulis; Uses Crt; Begin Clrscr; Writeln(’Saya’); Write(’Belajar’); Writeln(’Turbo’); Write(‘Pascal’); Write(‘Versi 7.1’); Readln; End. Tekan ctrl F9 untuk eksekusi program Hasilnya : Saya Belajar Turbo Pascal Versi 7.1 Identifier / Pengenal Data Digunakan untuk penamaan elemen-elemen deklarasi seperti label, Constanta, Type, Variabel, Procedure, Function. Syarat Identifier  Diawali huruf  Tidak boleh ada spasi / blank  Tidak boleh menggunkan reserved word  Tidak boleh menggunakn symbol khusus,kecuali underscore (tanda bawah)  Panjang maximal 63 charakter Contoh : Luas_Segi_Tiga LuasSegiTiga LuasS3 LS3 7
  • 8. Tipe Data Dalam Turbo Pascal Tipe data berfungsi membatasi jangkauan data yang akan dilaksanakan. Macam-macam tipe data : a) Tipe data standard, terdiri atas : - Ordinal (Tipe data yang mempunyai urutan pasti / tidak mengandung decimal) - Non-Ordinal b) Tipe data terstruktur c) Tipe data pointer Tipe Data Standard I. Type Ordinal Tipe data yang mempunyai urutan pasti, dan masdih terbagi menjadi : a) Type Integer (tipe data yang tidak mempunyai unsur desimal) Type Jangkauan Ukura Sortint -128....127 8 bit Integer -32768....32767 16 bit Longint - 32 bit 2147483648....2147483647 Byte 0....255 8 bit Word 0....65535 16 bit Operator-operator yang berlaku padatipe data integer, yaitu : - Operator arithmatika : +, -, *, /, div, mod - Operator logic : <, =, >, <=, >=, <> Catatan : semua tipe integer adalah tipe ordinal. b) Tipe Char (Karakter) Tipe data tunggal yang berhubungan dengan tombol-tombol di keyboard. Char adalah semua tombol yang terdapat pada keyboard atau lebih lengkapnya semua karakter yang terdapat pada kode ASCII. Catatan : Apabila Char ingin dijadikan sebagai konstanta maka karakter yang dimasukan harus diapit dengan tanda kutip satu. Dan apabila karakter itu berupa tanda kutip satu maka harus diapit dengan dua tanda kutip satu. 8
  • 9. Misalnya : ’A’ c) Tipe Boolean Mempunyai nilai benar / salah. Operator yang penghubung untuk tipe boolean adalah : =, <>, >, <, >=, <= Boolean akan menghasilkan false jika nilai = 0 dan akan menghasilkan true jika nilai = 1. II. Real (Tipe data yang mengandung unsur desimal) Tipe real dibagi menjadi 4 macam yaitu : - Real ( 6 byte ) - Single ( 4 byte ) - Extended ( 10 byte ) - Double ( 8 byte ) Type Jangkauan Ketelitian Digit Real 2.9e-39..1.7e38 11 – 12 digit Single 1.5e-45..3.4e38 7 – 8 digit Double 5.0e-324..1.7e308 15 – 16 digit Extended 3.4e-4932..1.1e4932 19 – 20 digit III. String (adalah kumpulan type data yang berbentuk karakter) Tipe data string digunakan untuk menampung nilai dalam bentuk huruf, dimana batas maximal adalah sebanyak 255 karakter. Contoh : Var nama : String [25] ; Untuk pengolahan Type Variabel di atas, disediakan berbagai jenis operator diantaranya : Operator Kegunaan + Penambahan - Pengurangan * Perkalian / Pembagian Real Type Div Hasil Bagi Integer Mod Sisa Bagi Integer := Menyatakan Nilai = Sama Dengan < , <= Kurang dari sama dengan 9
  • 10. > , >= Lebih dari sama dengan <> Tidak sama dengan Berhubungan dengan Benar / Salah Deklarasi Variabel Adalah eleman data yang belum memiliki nilai dan nilainya dapat berubah ubah, kecuali kita sengaja memberikan nilai awalnya. Contoh : USES CRT; VAR Nama : String[25]; Nilai : Integer; Begin Write(’Nama Siswa :’);Readln(Nama); Write(’Nilai Ujian :’);Readln(Nilai); End. Ctrl F9 lalu isi datanya Deklarasi Konstanta Adalah suatu elemen data yang sudah ada nilainya dan nilainya tetap. Contoh : USES CRT; CONST Namasis = ’BUDI’; IPK = 3.35; 10
  • 11. Mutu = ‘A’; Begin Clrscr; Write(‘Nama Siswa :’,Namasis); Write(‘Nilai IPK :’,IPK); Write(‘Mutu Ujian :’,Mutu); End. Ctrl F9 Nama Siswa : BUDI Nilai IPK : 3.350000E+0 Mutu Ujian : A Operasi Kondisional, String dan Struktur Kontrol Selain operasi-operasi standard yang sudah kita bahas pada modul sebelumnya, operasi- operasi tambahan untuk menyelesaikan permasalahan dalam pascal, di antaranya : 1. Operasi Aritmatika Adalah operasi yang digunakan untuk menyelesaikan perhitungan-perhitungan matematika, operasi yang bisa anda gunakan di dalam pascal diantaranya : Fungsi Argumen Hasil Keterangan Sqr(x) Integer/Real Integer/Real Menghitung kuadrat dari x Sqrt(x) Integer/Real Integer/Real Menghitung akar kuadrat dari x Trunc(x) Real Integer Memotong nilai x Round(x) Real Integer Membulatkan nilai x Contoh : 11
  • 12. Trunc(19.8) Menghasilkan 19 Trunc(19.0001) Menghasilkan 19 Round(19.8) Menghasilkan 20 (pembulatan ke atas) Round(19.0001) Menghasilkan 19 (pembulatan Ke bawah) 2. Operasi Kondisional (Pembandingan) Adalah opersai yang digunakan untuk menyelesaikan masalah-masalah yang berhubungan dengan pengambilan keputusan (benar/salah) dari satu atau lebih kondisi (pernyataan), penggunaan Operator Kondisional biasanya disertai dengan membandingkan dua atau lebih nilai. Semua hasil dari Operator Kondisional, akan menghasilkan nilai dengan tipedata Boolean, artinya akan menghasilkan nilai Benar / Salah ( True or False ). Operator Pembanding yang bisa anda guinakan diantaranya : Operator Keterangan Operator Keterangan = Sama dengan <= Kurang dari sama dengan < Kurang dari >= Lebih dari sama dengan > Lebih Dari <> Tidak sama dengan Adapun nilai-nilai yang bisa dibandingkan bisa berupa : - Angka dengan Angka ( 14 < 10 ) bernilai False - Huruf dengan Huruf (’A’ = ’B’) bernilai False - Variabel dengan Angka (Umur < 17), Jika Umur :=10; bernilai True - Variabel dengan Huruf (Nama =’Adi’),Jika Nama :=’Eko’; bernilai True - Variabel dengan Variabel ( p <> L ), Jika P :=13; L :=10; bernilai True Catatan : Variabel adalah tempat untuk menampung sebuah nilai (Nilai yang bisa berubah-ubah) Apabila terdapat lebih dari satu kondisi, maka anda bisa mencari hasil kebenaran atau kesimpulan dari kondisi-kondisi yang ada dengan Operato Kondisional, diantaranya : A. NOT ( Bukan ) Operasi ini digunakn untuk mengingkari suatu pernyataan Boolean ( Kondisi ) Contoh : NOT ( 14 < 10 ), maka akan bernilai True B. AND ( Jika salah satu salah akan bernilai salah ) Operasi ini akan menentukan kesimpulan dari kondisi-kondisi yang ada dengan kriteria Nilai hanya akan Bernilai True apabila semua kondisi bernilai True. Contoh : ( 14 < 10 ) AND ( 20 < 100 ), maka bernilai True ( 5 < 17 ) AND ( 14 <= 14 ), maka bernilai True C. OR ( Jika salah satu benar akan bernilai benar ) Operasi ini akan menentukan kesimpulan dari kondisi-kondisi yang ada dengan kriteria nilai yang akan bernilai True apabila ada salah satu saja kondisi yang bernilai Benar ( True ), sehingga hanya kondisi (pernyataan) 12
  • 13. yang semuanya bernilai False yang akan menghasilkan nilai/kesimpulan yang salah. Contoh : ( 14 < 10 ) OR ( 5 < 20 ), maka bernilai True ( 10 > 20 ) OR ( 3 > 2 ), maka bernilai True 3. Operasi String (Kumpulan Karakter) Adapun Operasi – operasi yang bisa digunakan untuk memanipulasi nilai string (Huruf), adalah sebagai berikut : a. DELETE ( Var S : String, Index : Integer, Count : Integer ); Digunakan untuk menghapus sejumlah karakter dari sebuah nilai String. Keterangan : - Var S : String, adalah variabel tempat nilai string disimpan. - Index : Integer, adalah dimulai dari posisi ke.... - Count : Integer, adalah sebanyak berapa karakter yang akan dihapus. Contoh : Var S : String ; S := ’DATUK’ ; Maka akan Menghasilkan : DAK Delete ( S, 3, 2 ) ; b. INSERT ( Source : String. Var S : Integer, Index :Integer ) ; Digunakan untuk menambahkan sejumlah karakter dari sebuah nilai String. Keterangan : - Source : String, adalah sejumlah karakter (Huruf) yang akan ditambahkan Contoh : Var S : String ; S := ’DATUK’ Maka akan Menghasilkan : DA!!!TUK Insert ( ’!!!’ , S, 3 ) c. COPY ( S : String, Index : Integer, Count : Integer ) ; Perintah ini digunakan untuk menyalin (Copy) sejumlah karakter dari sebuah nilai String. Contoh : Var S, Hasil : String ; S := ’DATUK’ ; Maka akan Menghasilkan : ATU Hasil := COPY ( S, 2, 3 ) ; 13
  • 14. d. CONCAT ( S_ke1 [, S_ke2, ... , S_ke-n] : String); Digunakan untuk menggabungkan beberapa String yang di tunjukan oleh variabel S(n). Contoh : Const Nama : String = ’PASCAL’ ; Dll : String = ’dan keluarga’ ; Var Hasil : String ; Begin Hasil := CONCAT (’Bahasa’,Nama,’untuk anda’,Dll); Write (Hasil); End. OUTPUT : Bahasa Pascal untuk anda dan keluarga e. POS (Var Substring : String , S : String) ; Menghasilkan angka (Byte) Digunakan untuk mencari posisi letak dari suatu string (ditunjukan oleh substring) Yang ada didalam nilai String yang lain (ditunjukan oleh s). Nilai yang dihasilkan adalah berupa nilai byte yang menuinjukan letaknya. Bila bernilai nol berarti nilai string yang di cari tidak ada. Contoh : Const S : String =’ABCDEFGHIJKLMNOPQRSTUVWXYZ’ ; Var Substring : String ; 14
  • 15. Posisi : Byte ; Begin Substring : = ’ I ’ ; Posisi : = POS (Substring , S) ; Write (’ Huruf ’,Substring,’berada pada karakter ke –’, posisi) ; End. OUTPUT : Huruf I Berada pada karakter ke – 9 f. LENGTH (S : String) ; Menghasilkan angka (Integer) Digunakan untuk menghitung panjang atau jumlah karakter yang ada di nilai String yang ditunjukan oleh S. Hasil dari fungsi ini adalah nilai numerik ineteger positif. Contoh : Var NamaAnda : String[50] ; Pangkar : Integer ; Begin Write (’Nama Anda : ’) ; Readln(NamaAnda); Pangkar : = Length(NamaAnda); Writeln(’Panjang nama anda adalah ’, Pangkar ,’ Karakter,’) ; End. OUTPUT : Nama Anda : TUKUL Panjang nama anda adalah 5 karakter. STRUKTUR CONTROL 15
  • 16. Istilah control didalam pascal adalah perintah untuk mengontrol jalanya program, sehingga dimungkinkan dalam sebuah program akan melakukan proses yang tidak berurutan antara baris pertama dengan baris selanjutnya, atau program akan mengabaikan perintah pada baris-baris kode tertentu sesuai kontrol yang diberikan. Adapun macam-macam kontrol didalam pascal yakni : Kontrol Percabangan (Switching and Branching) dan Kontrol Perulangan (Looping). Kontrol Percabangan dan Penyelesaianya Adalah perintah yang digunakan untuk menentukan /memilih blok statement yang mana yang akan dikerjakan, dan mengabaikan blok statement tertentu. Perintah yang bisa digunakan adalah: 1 . IF Stateman IF, artinya JIKA, Adapun Bentuk dari penggunaan IF adalah secara : a. IF Tunggal Adalah IF yang hanya mempunyai satu pilihan, yakni {Blockstatement}. Akan dieksekusi/dikerjakan apabila kondisi Bernilai Benar (True), sehingga apabila Kondisi salah (False), maka akan langsung mengeksekusi/mengerjakan perintah pada baris selanjutnya. Bentuk Strukturnya : IF (Kondisi ) Then { Blok Statement } ; Contoh Praktek 1 : Const A : Integer = 10; B : Integer = 250; Begin IF (A < B) Then Writein [` A Lebih kecil dari B `]; Write[` Belajar Struktur Percabangan`]; End. ? Outputnya (Harapdiisi sendiri) adalah : Jawab : A Lebih kecil dari B Belajar Struktur Percabangan ? Jika A = 35, dan B = 24, maka Outputnya : Jawab : Belajar Struktur Percabangan 16
  • 17. b. IF Majemuk dan Bersarang ( NESTED IF ) Adalah IF yang Mempunyai {Blok Statement Benar} Yang akan dikerjakan apabila Kondisi Benar Kemudian Mengabaikan {Blok Statement Salah}, dan sebaliknya. Apabila Terdapat Lebih dari satu Baris Blok Statemetn, maka hendaknya menggunakan pemisah BEGIN dan END; (end dengan titik koma). Bentuk Penggambaran Flowchart nya adalah : If ( umur < 17 ) Ya Tidak Fungsi Begin dan End adlah Untuk membatasi langkah program apabila terdapat lebih dari 1 perintah/statement. Adapun Struktur penulisannya : IF ( Kondisi _ke_1 ) Then Begin { Blok Statement Benar Kondisi ke – 1 }; IF ( Kondisi_Ke_2 }; Then Begin { Blok Statement Benar Kondisi Ke – 2 } ; { Blok Statement Benar Kondisi Ke – 2 } ; End Awas : TIDAK BOLEH ADA TITIK KOMA SEBELUM ELSE ELSE Begin { Blok Statement Benar Kondisi Ke – 2 } ; { Blok Statement Benar Kondisi Ke – 2 } ; End ; { ini juga Blok Statement Benar Kondisi Ke – 1 }; End Awas : TIDAK BOLEH ADA TITIK KOMA SEBELUM ELSE ELSE Begin { Blok Statement Benar Kondisi Ke – 1 } ; { Blok Statement Benar Kondisi Ke – 1 } ; End; 17
  • 18. Struktur Kontrol, Readkey dan Goto Label Statement Case...Of... Adalah struktur kontrol yang biasanya digunakn untuk menentukan satu pilihan dari daftar pilihan yang banyak. Kelebihan dari penggunakan kontrol adalah kita tidak perlu membuat sebuah kondisi seperti halnya yang kita lakukan pada saat menggunakan kontrol If Then Else. Syntax : CASE < selector > OF < case – label 1 > : < perintah > < case – label 2 > : < perintah > ELSE Bila dibutuhkan fungsinya sama dengn ELSE pada If < case – label X > : < perintah > END; Ingat !!!........ : Case...Of tidak mebutuhkan BEGIN tetapi memerlukan END ; Struktur Case – Of mempunyai ungkapan logika yang disebut dengan selector atau nilai /isi variabel yang dibacanya dan sejumlah perintah yang diawali dengan suatu case label yang mempunyai tipe yang sama dengan selector. Perintah yang mempunyai case label yang bernilai sama dengan nilai selector akan diproses sedangkan perintah lain-nya tidak. Bila nilai selector diluar nilai-nilai yang ada pada case label maka struktur Case – Of tidak dijalankan atau keperintah ELSE-nya. Daftar case label dapat berupa sebuah konstanta, atau range dari konstanta yang bukan bertipe real. Tipe variabelnya dapat berupa Integer atau Character. Contoh jangkauan dari case label yang diberikan : 1 : nilai Integer 1 1,2,3,4 : nilai Integer 1,2,3,4 1..5 : nilai Integer 1,2,3,4,5 ’A’ : nilai karakter A ’A’,’B’ : nilai karakter A,B ’A’..’D’ : nilai karakter A,B,C,D ’*’ : nilai karakter * 18
  • 19. Contoh penggunaan Case – Of : Var Nilai : Char; Grade : String [12]; Begin Write (’ Nilai Huruf yang didapat ? ’) ; Readln(Nilai) ; Case Nilai Of ’A’ : Grade := ’ Sangat Baik ’ ; ’B’ : Grade := ’ Baik ’ ; ’C’ : Grade := ’ Cukup ’ ; ’D’ : Grade := ’ Kurang ’ ; ’E’ : Grade := ’ Gagal ’ ; End; Write (’ Grade yang kamu dapat = ’,Grade) ; Readln ; End. Output dari program ini : Nilai huruf yang didapat ? C Input yang dimasukan Cukup Pada contoh diatas yang dimaksud dengan SELECTOR adalah variabel NILAI dan CASE LABEL adalah index A,B,...,E. TAMBAHAN SYNTAK : 1. GOTO LABEL Dugunakan untuk mengalihkan langkah eksekusi program kepad label yang dituju. Bentuk Umum : GOTO label Statement Contoh : Program Lat_GOTO ; Uses Crt ; Label Berpindah,Selesai ; Begin Clrscr ; Writeln (’ Bahasa ’) ; Goto Berpindah ; Writeln (’ Basic ’) ; Berpindah : Writeln (’ Pascal ’) ; Goto Selesai ; 19
  • 20. Writeln (’ Cobol ’) ; Selesai : Readln ; End. 2. READKEY Readkey digunakan untuk memasukan satu karakter kedalam sebuah variabel tanpa menampilkan berapa nilai yang diberikan di layar. Contoh : Program Lat_Readkey ; Uses Crt ; Label keluar ; Var Pilihan : Char ; Begin Clrscr ; Write (’ masukan Pilihan : ’) ; Pilihan := Readkey ; Case (pilihan) Of ’a’ : Write (’ anda memilih menu MAKANAN pada daftar PAKET A ’) ; ’b’ : Write (’ anda memilih menu MAKANAN pada daftar PAKET B ’) ; Else Begin Writeln (’ tidak ada daftar untuk menu tersebut ’) ; Writeln (’ terima kasih sudah mencoba program ini ’) ; Goto keluar ; End ; End ; Write(’terima kasih telah makan di restouran kami ’) ; Keluar ; Readln ; End. 20
  • 21. Kontrol Perulangan dengan FOR . . TO . . DO KONTROL PERULANGAN Adalah perintah yang digunakan untuk menyelesaikan masalah-masalah yang membutuhkan perulangan (Looping) dalam setiap mengeksekusi perintah- perintah logika yang berada pada rentang yang terhingga (ada batasnya). Penggunaan kontrol perulangan bertujuan untuk meng-efisien-kan pembuatan program, sehingga programer tidak perlu menuliskan langkah-langkah program yang sifatnya bisa diulang, cukup disederhanakan bentuk penulisanya dengan menggunakan kontrol perulangan. Gambaran : Writeln (’ ADI ’) ; Bentuk ini bisa diulang, cukup menuliskan Writeln (’ ADI ’) ; satu perintah saja, lalu di ulang sebanyak Writeln (’ ADI ’) ; tiga kali. Macam – Macam Bentuk Syntax Looping Adapun perintah perulangan yang bisa kita gunakan sesuai dengan konsep dan fungsinya adalah sebagai berikut : 1. FOR Adalah perintah perulangan yang digunakan apabila jumlah atau banyaknya perulangan yang akan dilakukan sudah diketahui, artinya perulangan menitik beratkan pada berapa kali perulangan akan dilakukan. Strukturnya adalah : FOR [Variabel_Kontrol] := [Index_Awal] TO/Downto [Index_Akhir] DO Begin {Blok statement yang akan diulang} End; Keterangan : 21
  • 22. Variabel_Kontrol : Variabel bertipe ordinal sebagai penampung perulangan ke-... Index_Awal : Nilai/Variabel bertipe ordinal dimulainya perulangan Index_Akhir : Nilai/Variabel bertipe ordinal berakhirnya perulangan TO : Secara Ascending (dari nilai Kecil ke nilai Besar) Downto : Secara Descending (dari nilai Besar ke nilai Kecil) Contoh : Program Perulangan ; Di ulang sebanyak tiga kali Outputnya : ADI ADI ADI Uses Crt ; Var Ulang : Integer ; Begin For Ulang := 1 To 3 Do Begin Writeln(’ADI’) ; End; End. Outputnya : 5 4 3 2 1 Anda juga bisa menggunakan Opsi DOWNTO untuk mengulang secara Descending (dari besar ke kecil), dan juga bisa memanfaatkan nilai yang ada pada Variabel_Kontrol sesuai dengan kebutuhan anda. Contoh : For Bilangan := 5 Downto 1 Do Begin Writeln(Bilangan) ; End ; 22
  • 23. FOR TO DO Bertingkat / Majemuk Adalah penggunaan perintah For To Do yang lebih dari satu bagian perulangan, cara ini biasanya digunakan dalam memproses perulangan secara baris dan kolom. Baris : dari atas ke bawah Kolom : dari kiri ke kanan Catatan : struktur perulangan For To Do yang berada di bagian lebih dalam akan diselesikan terlebih dahulu sebelum melanjutkan menyelesaikan bagian For To Do yang lebih luar. Contoh Program 1. Jika masukan baris dari keyboard = 5, maka : * * * * ** * *** * **** Cara berfikir : .................??? Program Bintang ; Uses winCrt ; Var baris, kolom : Integer ; Jmlh : Integer ; Begin Clrscr; Write (' Masukan Jumlah Baris : ') ; Readln (Jmlh) ; For Baris := 1 to Jmlh Do 23
  • 24. Begin For kolom := jmlh-baris to jmlh-1 do Begin Write(' * ') ; End; Writeln; End; Readln ; End. 2. Jika masukan baris dari keyboard = 5, maka : * **** * *** * ** * * * Cara berfikir : .................??? Program Bintang ; Uses winCrt ; Var baris, kolom : Integer ; Jmlh : Integer ; Begin Clrscr; Write (' Masukan Jumlah Baris : ') ; Readln (Jmlh) ; For Baris := 1 to Jmlh Do 24
  • 25. Begin For kolom := baris to jmlh do Begin Write(' * ') ; End; Writeln; End; Readln ; End. Kontrol Perulangan While . . Do dan Repeat . .Until Statemen While . . Do (Selama . . .lakukan) While artinya selama , statemen ini digunakan bila satu atau lebih statemen akan dieksekusi berulang kali sampai kondisi yang dinyatakan dalam statemen WHILE tidak dipenuhi (FALSE). Konsep : 1. Perulangan dititik beratkan kepada Selama apa perulangan akan dilakukan 2. Selama kondisi bernilai Benar, maka Kerjakan / Ulangi perintah didalam blok perulanganya. Bentuk umumnya : While (kondisi) do 25
  • 26. Begin Blok statement atau perintah yang diulang ; End; Keterangan Kondisi : ungkapan boolean (kondisi) yang digunakan sebagai syarat agar statemen dikerjakan berulang kali. Statemen : satemen tunggal atau statemen majemuk yang akan diproses ulang. Adapun hal-hal yang digunakan dalam while : Increment : adalah penambahan satu Decrement : adalah perulangan satu Inc (bilangan) ; Bilangan := bilangan + 1 ; Inc (jumlah,bilangan) ; Jumlah := Jumlah + Bilangan ; Dec (bilangan,2) ; Bilangan := Bilangan – 2 ; Ini adalah pemberian nilai awal karena variable bilangan akan dikondisikan dalam while, dengan kata lain, supaya ada nilainya Contoh : Program Selama ; Uses crt ; Var Di dalam while terdapat kondisi, terletak di awal, artinya selama kondisi ini bernilai benar, maka perulangan akan terus dilakukan, jadi perulangan akan berhenti apabila kondisinya sudah bernilai salah. Bilangan Integer ; Begin Clrscr Bilangan := 0 ; While (bilangan < 10 ) do Begin Write(bilangan) ; Ini adalah perintah yang harus anda buat agar perulangan mempunyai batas, sengaja harus anda buat dan tentukan sehingga memungkinkan anda tidak terjebak di dalam perulangan yang tiada hentinya Bilangan := Bilangan + 1 ; End ; Readln ; End. Statemen Repeat . . Until (Ulangi . . . Sampai) Cara kerja statemen ini merupakan kebalikan dari statemen while. Karena untuk statemen while, test penghentian looping (kondisi) ada di awal, tetapi untuk repeat ini ada di akhir. Dan dalam statemen repeat ini proses berulang akan dilaksanakan terus selama kondisi dipenuhi. Konsep : Kerjakan/Ulangi perintah dalam blok perulangannya, sampai kondisi bernilai Benar. 26
  • 27. Konsep : Perintah perulangan Mionimal sekali dikerjakan, karena kondosi terdapat di akhir. Bentuk umumnya : Repeat Begin Blok Statement atau peintah yang diulang End ; Until (kondisi) ; Ini adalah pemberian nilai awal, karena variabel bilangan akan di kondisikan di akhir, dengan kata lain, supaya ada nilainya. Contoh : Program Selama ; Uses Crt ; Var Bilangan : Integer ; Ini adalah perintah yang harus anda buat agar perulangan mempunyai batas, sengaja harus anda buat dan tentukan sehingga memungkinkan anda tidak terjebak didalam perulangan yang tiada hentinya Begin Clrscr ; Bilangan := 0 ; Repeat Begin Write(Bilangan) ; Bilangan := Bilangan + 1 ; End; Until (Bilangan > 10) ; Ini adalah kondisi, terletak di akhir, dan disertai titik koma Readln ; End. ARRAY atau Variabel ber – Index Wacana : 27
  • 28. Misal kita ingin menampilkan 3 buah bilangan yang dimasukkan dari keyboard oleh user, selama ini menggunakan cara seperti dibawah ini : Output : Masukan Bilangan Ke – 1 : 25 Masukan Bilangan Ke – 2 : 700 Masukan Bilangan Ke – 3 : 1245 ------------------------------------------------- Bilangan Ke - 1 = 25 Bilangan Ke - 2 = 700 Bilangan Ke - 3 = 1245 Program tampilan_bilangan ; Uses Crt ; Var Bil_satu : integer ; Bil_dua : integer ; Bil_tiga : integer ; Begin Clrscr ; Write(’Masukan Bilangan Ke – 1 : ’) ; readln(Bil_Satu) ; Write(’Masukan Bilangan Ke – 2 : ’) ; readln(Bil_Dua) ; Write(’Masukan Bilangan Ke – 3 : ’) ; readln(Bil_Tiga) ; Write(’----------------------------------------------------’); Write(’Bilangan Ke – 1 = ’,Bil_Satu) ; Write(’Bilangan Ke – 2 = ’,Bil_Dua) ; Write(’Bilangan Ke – 3 = ’,Bil_Tiga) ; Readln ; End. Meskipun outputnya benar, namun cara diatas mempunyai bebarapa kelemahan : 1. Bagaimana jika bilanganya diatas 100 ? pasti capek nulisnya ☺ 2. Kita harus memakai dan mendeklarasikan banyak variabel. 3. Kalaupun dipecahkan dengan perulangan FOR TO DO, pasti bilangan-bilangan yang di-input-kan tidak bisa ditampilkan, karena kita pasti hanya akan menggunakan satu variabel saja. Pemecahan/ Solusi dari ketidak efektifan untuk penanganan kasus diatas adalah dengan menggunakan bantuan Variabel Ber-Index (ARRAY). ARRAY adalah sebuah Variabel (yang fungsinya untuk menampung sebuah nilai), namun mempunyai kemmpuan untuk menyimpan beberapa nilai yang ber – tipe data sama dengan sekaligus kedalam elemen-elemen variabelnya yang diwakili oleh Index of Array. Pendeklarasian Array : 1. Ditulis dalam Blok Deklarasi Variabel 2. Membuat nama Variabel Array 3. Menentukan Jangkauan Index (berapa kotak mau dibuat) 4. Menentukan Tipe-Data dari nilai yang akan dimasukan kedalam Array Bentuk umum Pendeklarasian Array : Var nama : Array [Index] of Tipe-Data Dengan 28
  • 29. Var, array, of : kata kunci yang harus ada. Nama : nama array yang akan dideklarasikan. Index : batasan index yang akan ada pada array yang akan dideklarasikan misal :[1..3] dan [1..1000] Tipe : tipe data array Misal : Var Bilangan : Array [1 . . 3] Of Integer ; Nama Variabel Bilangan 25 1 Nilai yang disimpan dalam Array 700 2 1245 3 Index, dimulai dari Index Ke - 1 29
  • 30. Memberikan nilai kedalam Array Ada beberapa cara dalm memberikan nilai kedalam array, yakni secara langsung dengan menggunakan operator penugasan ( :=), atau dengan menggunakan bantuan Perintah Perulangan. 1. Dengan Menggunakan Operator Penugasan Contoh : Output : 5 + 10 = 15 5 + 7 = 12 10 + 7 = 17 Program tambah ; Uses Crt ; Var Bilangan : Array [1..3] of Integer ; Jumlah : Array [1..3] of Integer ; Begin Clrscr ; Bilangan [1] := 5 ; Bilangan [2] := 10 ; Bilangan [3] := 7 ; Jumlah [1] := bilangan[1] + bilangan[2] ; Jumlah [2] := bilangan[1] + bilangan[2] ; Jumlah [3] := bilangan[2] + bilangan[3] ; Writeln(’---------------------------------------------’) ; Writeln(bilangan[1],’+’, bilangan[2],’=’,jumlah[1]) ; Writeln(bilangan[1],’+’, bilangan[3],’=’,jumlah[2]) ; Writeln(bilangan[2],’+’, bilangan[3],’=’,jumlah[3]) ; Writeln(’---------------------------------------------’) ; Readln ; End. 30
  • 31. 2. Dengan Menggunakan Perintah Perulangan Contoh : Output : Masukan bilangan ke-1 : 5 Masukan bilangan ke-1 : 10 Masukan bilangan ke-1 : 7 Bilangan ke-1 = 5 Bilangan ke-1 = 10 Bilangan ke-1 = 7 Program Tambah ; Uses Crt ; Var Bilangan : Array [1..30] of integer ; I , j : integer ; Begin Clrscr ; Writeln(’----------------------------------------’); For i:=1 To 3 Do Begin Write(’masukan bilangan ke-’,i,’ : ’); readln(bilangan[i]) ; End; Writeln(’----------------------------------------’); For j:=1 To 3 Do Begin Writeln(’bilangan ke-’,i,’ = ’, bilangan[j]) ; End; Readln ; End. ARRAY DUA DIMENSI Adalah Array yang digunakan dalam pemrosesan data/ nilai secara baris dan kolom. Artinya Index-index yang ada adalah mewakili letak koordinat baris dan kolom. Jadi anda bisa menggunkana bantuan FOR BERTINGKAT untuk bisa memasukan nilai- nilai nya Kedalam Array. Contoh Kasus : 31
  • 32. NILAI NAMA PESERTA RATA-RATA TUGAS QUIZ UTS UAS SAPUTRA 40 45 65 55 51.25 ASTUTI 65 90 70 95 80.00 HENDRA 75 80 60 65 70.00 Untuk memasukan nilai ke dalam Array-nya, kita harus analisa terlebih dahulu, sehingga : 1. Variabel NAMA, merupakan Array 1 Dimensi bertipe-data STRING, Sehingga : ’SAPUTRA’ Nama[1] ; cara : GOTOXY(1,3) ; Readln(NAMA[1]) ; ’ASTUTI’ Nama[2] ; cara : GOTOXY(1,4) ; Readln(NAMA[2]) ; ’HENDRA’ Nama[3] ; cara : GOTOXY(1,5) ; Readln(NAMA[3]) ; 2. Variabel NILAI, merupakan Array 2 Dimensi bertipe-data INTEGER, Sehingga : 40 NILAI [1,1] ; cara : GOTOXY(20,3) ; READLN(NILAI[1,1]) ; 45 NILAI [1,2] ; cara : GOTOXY(30,3) ; READLN(NILAI[1,2]) ; 65 NILAI [1,3] ; cara : GOTOXY(40,3) ; READLN(NILAI[1,3]) ; 55 NILAI [1,4] ; cara : GOTOXY(50,3) ; READLN(NILAI[1,4]) ; 65 NILAI [2,1] ; cara : GOTOXY(20,4) ; READLN(NILAI[2,1]) ; 90 NILAI [2,2] ; cara : GOTOXY(30,4) ; READLN(NILAI[2,2]) ; : : : : 60 NILAI [3,4] ; cara : GOTOXY(50,5) ; READLN(NILAI[3,4]) ; 3. Variabel RATA, merupkan Array 1 Dimensi bertipe-data REAL, Namun anda harus menghitung beberapa jumlah nilai-nilainya, kemudian dibagi dengan 4, sehingga: RATA[1]:=(40+45+65+55)/4; Cara : GOTOXY(60,3) ; WRITE(RATA[1]:0:2); RATA[1]:=(65+90+70+95)/4; Cara : GOTOXY(60,4) ; WRITE(RATA[2]:0:2); RATA[1]:=(75+80+60+65)/4; Cara : GOTOXY(60,5) ; WRITE(RATA[3]:0:2); Jadi Listing Perulangan yang bisa digunakan : VAR NAMA : ARRAY [1..3] OF STRING ; RATA : ARRAY [1..3] OF REAL ; NILAI : ARRAY [1..3,1..4] OF INTEGER ; 32
  • 33. BARIS, KOLOM, JUMLAH : INTEGER ; RATA1 : REAL ; FOR BARIS := 1 TO 3 DO BEGIN Gotoxy(1,BARIS+2) ; Readln(NAMA[BARIS]); Jumlah := 0; FOR KOLOM := 1 TO 4 Do Begin Case KOLOM OF 1 : Begin Gotoxy(20,BARIS+2); Readln(NILAI[BARIS,KOLOM]); End; 2 : Begin Gotoxy(30,BARIS+2); Readln(NILAI[BARIS,KOLOM]); End; 3 : Begin Gotoxy(40,BARIS+2); Readln(NILAI[BARIS,KOLOM]); End; 5 : Begin Gotoxy(50,BARIS+2); Readln(NILAI[BARIS,KOLOM]); End; End; Jumlah := Jumlah + NILAI[BARIS,KOLOM]; End; RATA[BARIS] := Jumlah / 4 ; Gotoxy(60,Baris+2) ; Write(RATA[BARIS],:0:2); END; PEMROGRAMAN MODULAR 33
  • 34. PROCEDURE dan FUNCTION PEMROGRAMAN MODULAR Catatan ini akan membahas mengenai ” Pemrograman Modular” . dimana pemrograman modular ini merupakan salah satu kemudahan yang diberikan oleh Turbo Pascal terhadap programmer, karena disini programmer dapat membagi program yang sedang dibuatnya kedalam modul-modul program tertentu. Sehingga dapat menghindari penulisan teks program yang sama berkali-kali dan dapat juga memudahkan dalam melakukan pelacakan kesalahan dalam program yang sedang dibuatnya. Ada 2 jenis pemrograman modular yang dibahas yaitu : 1. PROCEDURE (Prosedur) 2. FUNCTION (Fungsi) PROCEDURE Deklarasi : Procedure nama procedure (daftar parameter) ; {Deklarasi} Begin .......... .......... End ; Pemanggilan Procedure : Suatu procedure bukan merupakan program yang berdiri sendiri sehingga tidak dapat dieksekusi secara langsung. Untuk itu suatu procedure memerlukan sebuah akses pada program utama / modul lain yang berfungsi sebagai pemanggil. Sedangkan cara pemanggilanya adalah dengan : menuliskan nama procedurenya berikut parameternya (jika ada). Hal-hal yang berhubungan dengan Procedure : Ada beberapa hal yang berhubungan dengan penulisan sebuah procedure program yaitu : 1. Variabel Global dan Variabel Variabel Global adalah variabel yang dapat dikenali diseluruh bagian program, biasanya variabel ini merupakan variabel yang dideklarasikan pada deklarasi program umum. Variabel Lokal adalah variabel yang dikenal pada lingkup yang lebih sempit dari pada variabel global. 2. Parameter Ada 2 Parameter yang berlaku dalam sebuah Procedure yaitu : a. Parameter Formal Yaitu Parameter yang dideklarasikan mengikuti pendeklarasian program utama. b. Parameter Aktual Yaitu Parameter yang dituliskan mengikuti pemanggilan Procedure. 34
  • 35. Aturan antara parameter formal dan parameter aktual : 1) Banyaknya parameter aktual harus sama dengan banyaknya paremeter formal 2) Tiap-tiap parameter aktual harus bertipe sama dengan parameter formal yang bersesuaian 3) Tiap-tiap parameter aktual harus diekspresikan yang sesuai dengan parameter formal Pengiriman Parameter : a. Pengiriman parameter secara nilai (by Value) - Tiap-tiap parameter dalam procedure utama akan berisi nilai yang dikirim oleh parameter aktual dan bersifat lokal procedure. - Pengirima nilai parameter secara by value merupakan pengiriman searah, artinya hanya dari parameter aktual ke parameter formal. - Perubahan parameter formal tidak mempengaruhi terhadap nilai parameter aktual. Contoh : Program_by_value ; Uses Crt; Procedure Hitung(A,B,C : Integer) ; Begin B:= A ; C:= A+B ; Writeln(’nilai A = ’,A,’ | nilai B = ’,B,’ | nilaiC = ’,C) ; End; {---------------------------------------------------------} {Berikut Program Utamanya} Var X,Y,Z : Integer ; Begin Clrscr ; Write(’masukan nilai x : ’) ; Readln(x) ; Write(’masukan nilai Y : ’) ; Readln(y) ; Write(’masukan nilai Z : ’) ; Readln(z) ; Writeln ; Hitung (x,y,z) ; {Perintah memberikan nilai ke procedure} Writeln ; Writeln (’nilai x =’,X,’ | nilai y =’,Y,’ | nilai z =’,Z) ; Readln ; End. Keterangan : Misalkan dimasukan nilai dari x=5, y=7 dan z=15 maka nilai ini akan dikirim ke parameter formal pada procedure yaitu A,B,C sehingga nilai awal A=5, B=7 dan C=15. Setelah melalui proses maka hasil outputnya adalah bahwa nilai X=5, Y=7 dan Z=15. Sebab apapun yang diproses pada procedure tidak akan mempengaruhinilai dari parameter aktual X,Y,Z. b. Pengiriman parameter secara acuan (by Reference) 35
  • 36. - Merupakan pengiriman dua arah yaitu dari parameter aktual ke parameter formal dan dari parameter formal ke parameter aktual sebagai hasil output dari procedure. - Perubahan nilai pada parameter formalmempengaruhi pada parameter aktual. - Dicirikan dengan penggunaan deklarasi VAR, pada parameter procedure- nya. Contoh : Procedure Hitung (Var :A,B,C : Integer) ; Begin B:=A ; C:=A+B ; Writeln(A,B,C) ; End ; Var X,Y,Z : integer ; Begin Readln(X) ; Readln(Y) ; Readln(Z) ; Hitung(X,Y,Z) ; Writeln(X,Y,Z) ; Readln; End. Keterangan : Misalkan dimasukan nilai X=5, Y=8 dan Z=15 maka nilai ini akan dikirim ke parameter formal pada procedure yaitu A,B,C sehingga nilai awal A=5,B=8 dan C=15. Setelah melalui proses maka hasil outputnya adalah bahwa nilai X=A=5, Y=b=5 dan Z=C=10. Sebab apapun yang diproses pada procedure akan mempengaruhi nilai dari parameter aktual X,Y,Z. FUNCTION A. Pengenalan Function Function dalam pascal sebenarnya tidak berbeda seperti fungsi dalam matemtika, seperti F(X) = X+1 F nama Fungsi (X) parameter yang diberikan X+1 proses yang dilakukan terhadap parameter Hasil dari fungsi f(X) adalah f(x) yang nilainya telah berubah sesuai dengan nilai parameter x yang diberikan, maka dalam PASCAL, function sering disebut memiliki sifat mengembalikan nilai. Function tidak berbeda jauh dengan procedure, kunci perbedaanya adalah function mengembalikan suatu nilai sedangkan procedure tidak. Sifat pengembalian nilai suatu function disebabkan karena hasil dari pelaksanaan suatu function disimpan dalam suatu variabel dalam function itu dimana nama variabel tersebut sama dengan nama function- nya. B. SYNTAX 36
  • 37. Sebelum function digunakan, terlebih dahulu harus dideklarasikan (diberitahukan pada program bahwa terdapat function yang akan digunakan oleh program utama) beserta proses yang akan dijalankan oleh program tersebut. Deklarasi Function dilakukan sebelum program utama (sebelum begin...end.) Function nama_fungsi (parameter : tipe_data) : tipe_data ; Begin .... ; {Penjabaran} ... ; Nama_fungsi := .... End ; Parameter : nilai yang diberikan kepada fungsi, seperti x dalam fungsi f diatas. Suatu fungsi mungkin tidak memerlukan parameter. Tipe_data : Character, numerik (integer,real,dll),string,dll. Contoh : Program Fungsi_numerik ; Uses crt ; Function f(x : real):real ; Begin F:= x+1 ; End ; Begin Writeln(’Fungsi f(x) untuk x = 2 bernilai ’,f(2)) ; End. Program Fungsi_String ; Uses crt ; Var kata : string ; Function f(x:string) : String ; Var i :byte ; Begin For i:=1 to lenght(x) do x[i] := upcase(x[i]) ; F := x ; End ; Begin Write(’kata yang ingin dimasukan : ’) ; readln(kata) ; Writeln(’kata setelah dikapitalisasi : ’,f(kata)) ; End. C. Jenis-jenis variabel yang digunakan dalam function Ada dua jenis variabel yang digunakan oleh function, yaitu : Variabel Global dan Variabel Lokal. Variabel Global variabel yang dideklarasikan dari awal program dan berlaku secara umum. Variabel ini (dan nilai yang dikandungnya) dapat digunakan baik oleh program utama maupun Sub-program seperti function dan procedure. 37
  • 38. Variabel Lokal variabel yang dideklarasikan dalam sub-program seperti function dan procedure. Variabel ini hanya dapat digunakan oleh sub program itu sendiri. Jika dalam sub-program terdapat kesamaan nama antara variabel lokal dan variabel global, nilai variabel yang digunakan adalah nilai variabel lokal. Saran : gunakan variabel global seminimal mungkin dan gunakan variabel lokal seoptimal mungkin. Contoh : Program Jenis_variabel ; Uses crt ; Var i : integer ; {deklarasi ” i ” sebagai variabel global} Function hitung : integer ; {deklarasi function tanpa parameter} Var temp : integer ; {deklarasi ” temp ” sebagai variabel lokal} Begin Temp:=2 * i ; {proses variabel global ” i ” dan variabel lokal ” temp ”} Hitung:=temp ; {funcftion mengembalikan nilai} End; Function hitung2(a:integer):integer; {deklarasi function berparameter} Begin Hitung2:=2 * a ; {cara lain penulisan, tidak memerlukan variabel lokal} End; {Program Utama} Begin Write(’masukan nilai i : ’) ;readln(i) ; Writeln(’hasil fungsi hitung : ’,hitung) ; Writeln(’hasil fungsi hitung2 : ’,hitung2(i)) ; {hasil sama} End; 38
  • 39. RECORD dan Type Data Buatan RECORD Record memiliki kemiripan dengan Array, tetapi data-data yang disimpan dalam sebuah record tidak harus memiliki tipe variabel yang sama. Jadi dalam suatu sebuah record bisa saja ada data bertipe string, data bertipe real, dan bertipe integer secara bersamaan. Data atau variabel yang berada didalam record dinamakan field dari record yang bersangkutan. Sebagai ilustrasi, sebuah mobil memiliki informasi seperti produsennya, merknya, warnanya, tipenya, hargany, jenisnya dan kapasitas mesinya. Maka, mobil tersebut dapat disebut sebagai sebuah record dan informasi pada mobil itu (produsen, merk, warna dan sebagainya) sebagai field. Contoh Record Contoh Field Mahasiswa NRP, Nama, Angkatan, Kelas, IPK Karyawan Nama, golongan, jabatan, gaji Penjualan Periode, item, harga, cara pembayaran Phonebook Nama, alamat, no tlp rumah, hp, e-mail Mp3 Artist, title, album, year, genre No pelanggan, item yang dipinjam, Movie-Rental tanggal pinjam, tanggal kembali, biaya 39
  • 40. Syntax Record Type Recname = Record Field1 : type ; Field2 : type ; : : Fieldx : type ; End; Recname : nama yang digunakan untuk mengidentifikasi record. Pemanggilan record dilakukan dengan menggunakan nama ini. Field1, field2,....fieldx : nama-nama fields yang menjadi elemen dari record ini, pemanggilan field dilakukan dengan menggunakan nama record dan nama fieldnya, seperti recname.field1 Type : tipe data untuk field yang bersangkutan, misalnya field1 bertipe data byte, field2 bertipe String. Contoh Pendeklarasian record TYPE mobil = RECORD Prod, merk, warna : STRING[10] ; Tipe : STRING [5] ; Harga : LONGINT ; End ; Var Mob : ARRAY [1..25] of mobil ; Kegunaan statement with adalah mempersingkat penulisan record. Dengan menggunakan statement with, pemanggilan record cukup dilakukan dengan menuliskan field-nya saja, tidak perlu ditulis lengkap bersama dengan nama record-nya. OPERASI Input – Output Record & penggunaan With PROGRAM InOuRec ; TYPE mobil = RECORD Prod, merk, warna : STRING ; Tipe : STRING [5] ; Harga : LINGINT ; End; VAR Mob : ARRAY [1..25] of Mobil ; Begin {contoh input} Mob[1].prod:=”Toyota” ; Mob[1].merk:=”New Camry” ; Mob[1].warna:=”Coal Black” ; Mob[1].tipe:=”G M/T” ; Mob[1].harga:=42000000 ; {penggunaan statement with} WITH mob[2] Do Begin Prod:=”Honda” ; 40
  • 41. Merk:=”New Accord” ; Warna:=”Snow White” ; Tipe:=”C A/T” ; Harga:=450000000 ; End ; {Sama artinya dengan Mob[2].prod:=” Honda” ; Mob[2].Merk:=”New Accord” ; Mob[2].Warna:=”Snow White” ; Mob[2].Tipe:=”C A/T” ; Mob[2].Harga:=450000000 ; } {Contoh Output} For a:=1 to 2 Do Begin White mob[a] Do Begin Writeln(prod) ; Writeln(merk) ; Writeln(warna) ; Writeln(tipe) ; Writeln(harga) ; End ; End ; Contoh Program Sederhana Menggunakan Record Program Record_Mhs ; TYPE Rmhs = Record Nrp : integer ; nama : String[15] ; ipk : real ; kelas : char ; end ; Var Amhs : Array [1..100] of Rmhs ; a,k : integer ; Procedure input ; begin a:= a+1 ; Write('Nrp (3 digit terakhir) : ') ; readln(Amhs[a].nrp) ; Write('Nama : ') ; readln(Amhs[a].nama) ; Write('IPK : ') ; readln(Amhs[a].ipk) ; 41
  • 42. end; Procedure Output ; Var b:integer ; begin {penentuan kelas mahasiswa berdasrkan nrp !} For b:=1 to a do begin if Amhs[b].nrp < 51 then Amhs[b].kelas:='A' else if Amhs[b].nrp > 100 then Amhs[b].kelas:='C' Else Amhs[b].kelas:='B' ; Writeln('Kelas : ',Amhs[b].kelas) ; Writeln('Nrp : ',Amhs[b].nrp) ; Writeln('Nama : ',Amhs[b].nama) ; Writeln('IPK : ',Amhs[b].ipk:5:2) ; end; end; Begin Repeat Writeln('1. Input data mahasiswa - nrp,nama,ipk') ; Writeln('2. Output data mahasiswa - kelas,nrp,nama,ipk') ; Writeln('3. Exit') ; Readln (k) ; case k of 1 : Input ; 2 : Output ; End ; Until K > 2 ; End. Pemrograman Database Text dalam Pascal FILE (BERKAS) File (Berkas) adalah kumpulan sejumlah komponen yang bertipe data sama, yang jemlahnya tidak tertentu. Pengertian file atau berkas dianalogikan dengan simpanan arsip. Di dalam Pascal, berkas menyediakan data yang nantinya akan digunakan oleh suatu program. Berkas dapat berupa diskfile yaitu media penyimpanan yang berupa cakram magnetis, pita megnetis, kartu plong dan media-media penyimpanan lainya. Berkas mempunyai sifat sebagai berkas berurutan (Sequential File), pembacaan datanya dari baris satu ke baris berikutnya. MENDEKLARASIKAN FILE 42
  • 43. TYPE Var1 = FILE OF var2 ; Contoh : Atau VAR Var1 = FILE OF var2 ; TYPE Tipe_Data = RECORD Nama : String[25] ; Alamat : String[30] ; No_tlp : String[15] ; Usia : Integer ; End ; VAR File_Data : File of Tipe_Data ; D_Data : Tipe_Data ; OPERASI PADA FILE 1. Statemen ASSIGN Statemen ini digunakan untuk memilih/membuka berkas yang akan dioprasikan sesuai dengan tipe berkas yang kita deklarasikan. ASSIgn (Variabel_berkas, nama_berkas) ; Contoh : Assign (File_Data,’biodata.dat’) ; 2. Statemen CLOSE Close digunakan untuk menutup berkas yang telah dibuka oleh statemen assign. Dan hanya menyebutkan variabel_berkas-nya saja tanpa nama berkas. Contoh : Close (File_Data) ; 3. Statemen REWRITE Digunakan untuk membuat berkas baru yang telah dinyatakan dengan variabel berkas. Jika berkas tersebut sudah ada dalam media penyimpanan, maka berkas tersebut akan digantikan dengan berkas yang baru. Contoh : Rewrite(File_Data) ; 4. Statemen RESET Digunakan untuk mengeset penunjuk komponen kembali ke nomor 0. Contoh : Reset (File_Data) ; 5. Satatemen WRITE Statemen ini digunakan untuk menuliskan komponen berkas (data) kedalam media penyimpanan. Dan akan menempatkan komponen baru tersebut diakhir record. WRITE(variabel_berkas, variabel_komponen_berkas) ; Contoh : Write(File_Data,D_data) ; 6. Statemen READ 43
  • 44. Read digunakan untuk membaca komponen berkas dari dalam media penyimpanan. Pembacaan disesuaikan dengan posisi penunjuk komponen, setelah selesai membaca, posisi penunjuk komponen akan ditempatkan ke komponen berkas berikutnya. READ(Variabel_berkas, variabel_komponen_berkas) ; Contoh : Read(File_Data,D_data) ; 7. Statemen SEEK Digunakan untuk menggerakan penunjuk komponen ke nomor komponen tertentu. Dengan nomor awal record adalah 0. SEEK(Variabel_berkas,nomor_record) ; Contoh : Seek (File_data,3) ; {diarahkan kekomponen yang ketiga} 8. Fungsi FILEPOS Fungsi ini digunakan untuk mengetahui letak penunjuk komponen berbeda. Dan hasilnya berupa bilangan bulat yang menunjukan posisi penunjuk komponen pada saat itu. FILEPOS(variabel_berkas) ; Contoh : Filepos(File_data) ; 9. Fungsi FILESIZE Digunakan untuk mengetahui ukuran dari suatu berkas. Jika fungsi ini bernilai 0 berarti berkas tersebut masih kosong. FILESIZE (variabel_berkas) ; Contoh : Ukuran := Filesize(File_data) ; {ukuran dalam satuan byte} 10. Fungsi EOF Fungsi ini digunakan untuk mengetahui apakah penunjuk komponen berada diakhir bekas (End Of File = EOF), Jika Ya maka bernilai TRUE dan jika TIDAK maka bernilai FALSE. EOF(variabel_berkas) ; Contoh : Akhir_file := EOF(file_data) ; 11. Statemen FLUSH Flush digunakan untuk mengosongkan penyangga(buffer) dari berkas, dengan demikian akan memastikan bahwa isi penyangga telah ditusikan dalam media penyimpan setelah statemen WRITE selesai dikerjakan. 44
  • 45. FLUSH(variabel_berkas) ; Contoh : FLUSH(file_data) ; 12. Statemen ERASE Erase digunakan untuk menghapus file atau berkas yang telah tertutup atau sedang tidak digunakan. ERASE(variabel_berkas) ; Contoh : ERASE(file_data) ; 13. Statemen RENAME Digunakan untuk memberi nama baru pada berkas yang dinyatakan oleh variabel berkas. Dan hanya dapat dilakukan pada berkas yang tertutup. RENAME(variabel_berkas,nama_baru) ; Contoh : RENAME(file_data,’baru.dat’) ; 45