iklan

close
Tampilkan postingan dengan label Bahasa Pascal. Tampilkan semua postingan
Tampilkan postingan dengan label Bahasa Pascal. Tampilkan semua postingan

Minggu, 11 Desember 2011

CONTOH PROGRAM PASCAL

PEMROGRAMAN BAHASA PASCAL

Bahasa Pascal dirancang oleh Niclaus Wirth pada tahun 1970. Turbo Pascal merupakan salah satu versi bahasa pascal yang dikembangkan oleh Borland International. Bahasa Pascal merupakan bahasa tingkat tinggi (High Level Languange) yaitu bahasa pemrograman yang mudah dipahami oleh manusia. Pascal merupakan pemrograman terstruktur yang tersusun atas sejumlah blok. Blok-blok yang kecil selanjutnya dapat dapat dipakai untuk membuat blok yang lebih besar. Blok ini lebih dikenal dengan sebutan subprogram, yang dibedakan atas prosedur dan fungsi.

Skema dari pemrograman Pascal adalah sebagai berikut:
     Program Nama_Program ;
     Deklarasi (berisi variabel yang terlibat)
               (Deklarasi label, konstan, tipe, variabel, subprogram)
     Deskripsi ~ berisi detail program / termasuk program utama
               Begin
                         Pernyataan;
                         ……
                        Pernyataan;
               End;

Program pascal tidak mengenal aturan penulisan di kolom tertentu, jadi boleh ditulis mulai kolom berapapun. Penulisan statement-statement pada contoh program yang menjorok masuk beberapa kolom tidak mempunyai pengaruh diproses, hanya dimaksudkan supaya mempermudah pembacaan program, sehingga akan lebih terlihat bagian-bagiannya, dan baik untuk dokumentasi.

Judul program sifatnya optional dan tidak signifikan didalam program. Jika ditulis dapat digunakan untuk memberi nama program dan daftar dari parameter tentang komunikasi program dengan lingkungannya yang sifatnya sebagai dokumentasi saja. Judul program bila ditulis harus terletak pada awal dari program dan diakhiri dengan titik koma.

Berikut ini link untuk mendownload softwarenya : Turbo Pascal for Windows

Kamis, 08 Desember 2011

SUB PROGRAM DALAM BAHASA PASCAL

Sub Program dibagi menjadi dua yaitu Prosedur (Procedure) dan Fungsi (Function). Prosedur adalah suatu program terpisah dalam blok sendiri yang berfungsi sebagai sub program. Prosedur diawali dengan kata Procedure didalam bagian deklarasi prosedur.

Bentuk umum penulisan prosedur dalam sebuah program :
     Procedure NamaProsedur (parameter1: tipe_data ; parameter2 : tipe_data) ;
     Const {daftar konstanta lokal}
     Var {daftar pendeklarasian variabel lokal}
     Begin
     ....... {kode program yang ditulis}
     End ; 

Parameter merupakan suatu nilai atau referensi yang dilewatkan ke dalam rutin tertentu dan kehadirannya akan mempengaruhi proses maupun nilai yang terdapat di dalam rutin itu sendiri. Parameter bisa berupa nilai/variabel/konstanta yang menghubungkan sub program dengan bagian yang menggunakan. Parameter bersifat opsional.

Supaya nilai variabel dapat digunakan di modul lainnya yang membutuhkan, maka dapat dilakukan dengan beberapa cara, yaitu :
  • Dibuat bersifat global. Supaya suatu nilai dapat bersifat global, maka harus dideklarasikan diatas modul yang menggunakannya. Contoh Program :
                    uses wincrt ;
                    var
             A,B,C : integer ;
                    procedure satu ;
                    begin
                   writeln ('Nilai A : ') ; Readln (A) ;
                   writeln ('Nilai B : ') ; Readln (B) ;
                    end ;
                    procedure dua ;
                    begin
                    C := B + 1 ;
                    end ;
                    begin
                    satu ;
                    Writeln (A) ;
                    Writeln (B) ;
                    dua ;
                    Writeln (C) ;
                     end. 
  • Dikirim sebagai parameter ke modul yang membutuhkannya. Parameter yang dikirim dari modul utama ke modul prosedur disebut dengan parameter nyata (actual parameter). Parameter yang ada dan dituliskan pada judul prosedur disebut dengan parameter formal (formal parameter). Proses pengiriman data lewat parameter nyata ke parameter formal disebut dengan passing parameter. Parameter nyata dan parameter formal harus dengan tipe yang sama. Pada bahasa pascal pengiriman parameter dapat dikirimkan secara nilai (by value) atau secara alamat (by reference). 
Contoh program secara nilai (by value) :
         uses wincrt ;
         procedure tukar (A,B : integer) ;
         var
          C : integer ;
         begin
          C := A ;
          A := B ;
          B := C ;
  writeln ('Nilai Pertama : ', A) ;
  writeln ('Nilai Kedua : ', B) ;
         end ;

         var
  X,Y : integer ;
         begin
         X := 10 ;
         Y := 15  ;
         tukar (X,Y) ;
         writeln ('X = ', X ,' Y = ', Y) ;
          end.
Berdasarkan program di atas nilai dari X diberikan kepada A dan nilai dari Y diberikan kepada B. Nilai yang dipertukarkan adalah nilai A dan B yang terjadi di dalam prosedur tukar, sedangkan nilai X dan Y yang berada di program utama tetap. 
Hasil outputnya :
       Nilai Pertama : 15
       Nilai Kedua : 10
       X = 10  Y= 15

Contoh program secara alamat (by reference) :
         uses wincrt ;
         procedure tukar_alamat (var A,B : integer) ;
          var
            C : integer ;
         begin
            C := A ;
            A := B ;
            B := C ;
  writeln ('Nilai Pertama : ', A) ;
  writeln ('Nilai Kedua : ', B) ;
         end ;

         var
  X,Y : integer ;
         begin
           X := 10 ;
           Y := 15  ;
  tukar_alamat (X,Y) ;
  writeln ('X = ', X ,' Y = ', Y) ;
         end.
Berdasarkan program diatas terlihat bahwa pengiriman parameter alamat merupakan pengiriman dua arah, bolak-balik sehingga perubahan nilai di parameter formal akan mempengaruhi nilai pada parameter nyata juga. Pada contoh disamping nilai dari variabel A dan B yang telah dipertukarkan mempengaruhi nilai X dan Y menjadi tertukar pula.
Hasil outputnya :
       Nilai Pertama : 15
       Nilai Kedua : 10
       X = 15  Y= 10

Untuk pengiriman parameter by reference dalam bahasa pascal, kita harus mengawali parameter tersebut dengan kata kunci Var. Contoh pengiriman berdasarkan referensinya :
Prosedure NamaProsedur ( var parameter1 : integer; var parameter2 : string) ;
Begin
........ {kode yang akan ditulis}
End ;

Tipe parameter formal yang dapat digunakan adalah berupa variable atau konstanta. Tipe data sederhana, seperti integer, byte, real, char dan boolean dapat langsung digunakan. Sedangkan tipe data kompleks seperti string, array dan record tidak dapat langsung dipergunakan tetapi harus dideklarasikan terlebih dahulu menggunakan type.
1.      Contoh untuk tipe data array :
Type
Nilai = array [1..100] of integer ;
Procedure Arrayku (a : Nilai) ;
2.      Contoh untuk tipe data string ;
Type 
Kata = string [25] ;
Procedure panjang_kata (Nama: Kata) ;

Untuk pemgiriman parameter string secara nilai, panjang parameter formal dan parameter nyata boleh tidak sama. Akan tetapi untuk pengiriman parameter secara acuan  panjang string harus sama. Variabel lokal adalah variabel yang hanya dikenal oleh bagian mendeklarasikan.

Memahami contoh program :
1.      procedure xyz (var x,y, : integer) ;
2.      var z : integer ;
3.      begin
4.             z := y ;
5.             y := x ;
6.             x := z ;
7.      end ;
8.      var x1,x2 : integer ;
9.      begin
10.           x1 := 10 ; x2 := 5  ;
11.    writeln (x1,x2) ;
12.    xyz (x1,x2) ;
13.    writeln (x1,x2) ;
14.    end.
Memahami Program  di atas:
No. 1 – 7    → Sub Program
No. 8 – 14  → Program Utama
No. 1          →  Parameter Formal
No. 12        →  Parameter Aktual dan Pemanggilan Prosedur
No. 11        →  Yang dicetak (10,5) → secara nilai
No. 13        →  Yang dicetak (5,10) → secara alamat
 
Fungsi adalah modul program yang memberikan/mengembalikan (return) sebuah nilai yang bertipe sederhana (integer, real, boolean, string).  Sebagaimana halnya dengan prosedur, fungsi diakses dengan memanggil namanya. Selain itu fungsi juga dapat mengandung daftar parameter formal. Blok fungsi hampir sama dengan blok prosedur, hanya fungsi harus dideklarasikan dengan tipenya. Tipe deklarasi ini menunjukkan tipe hasil dari fungsi. Sama dengan prosedur, parameter dalam fungsi dapat dikirim secara nilai (by value) atau secara acuan (by reference). Parameter yang dikirimkan secara nilai, maka parameter formal yang ada di prosedur akan berisi nilai yang dikirimkan yang kemudian bersifat lokal di prosedur. Bila pengiriman parameter secara acuan (by reference), maka perubahan-perubahan yang terjadi pada nilai parameter formal di prosedur akan mempengaruhi nilai actual parameter
 
Bentuk umum penulisan fungsi dalam sebuah program :
Function NamaFungsi (parameter: tipe_data ; .......) : tipe_data ;
Const {daftar konstanta lokal}
Var {daftar pendeklarasian variabel lokal}
Begin
....... {kode program yang ditulis}
NamaFungsi := nilai_kembalian ;    {INGAT baris ini}
End ;

Lalu apa perbedaan prosedur dan fungsi? Prosedur hanya bisa menjalankan perintah dan tidak mengembalikan nilai, sedangkan fungsi bisa mengembalikan nilai untuk di tampilkan dilayar atau diolah lagi

PERULANGAN/LOOPING DALAM BAHASA PASCAL

Dalam beberapa hal, sebuah program terkadang harus melakukan hal yang sama berkali-kali. Agar program tidak menjadi terlalu panjang karena setiap proses menjadi baris program, maka diperlukan adanya kemampuan otomatisasi dalam kode program. Dengan adanya otomatisasi dalam program, maka dapat dilakukan pengerjaan proses sama berkali-kali yang berada dalam beberapa statemen hanya dengan menuliskannya sekali saja. Karena perulangan merupakan suatu hal yang sering ditemui dalam program, maka bahasa Pascal juga menyediakan kemampuan tersebut. Dalam Pascal terdapat beberapa cara melakukan perulangan,  yaitu :
  • Perulangan dengan jumlah perulangan yang pasti (tanpa adanya kondisi yang harus diperiksa) → For 
  • Perulangan dengan kondisi yang harus diperiksa → While-do dan Repeat-until

Perbedaan antara While-do dan Repeat-until adalah terletak pada pengecekan kondisi. Jika pada pernyataan While-do, kondisi dicek pada awal proses, sedangkan pernyataan Repeat-until, kondisi dicek pada akhir proses. Perbedaannya yang lain, bila pernyataan While-do mengulang pernyataan selama kondisi masih terpenuhi dan tetapi tidak akan mengulang jika kondisi tidak terpenuhi, sedangkan pernyataan Repeat-until mengulang pernyataan selama kondisi belum terpenuhi dan akan mengulang satu kali walaupun kondisi tidak terpenuhi.

Bagan alur Flowchart
       

    Pernyataan For
    Banyaknya pengulangan yang akan dilakukan dihitung dari mulai nilai batas awal sampai nilai batas akhir. Perlu diperhatikan bahwa nilai dari batas awal harus lebih kecil dari pada nilai batas akhir. Apabila nilai batas awal sama dengan nilai batas akhir, maka statemen hanya akan dilakukan satu kali. 
    Bentuk alogritmanya
    (Apabila hanya terdiri dari satu statemen)
    FOR variabel_indeks := batas_awal TO batas_akhir DO
    ·         Statemen_yang_akan_diulang ;
    (Apabila terdiri atas beberapa statemen)
    FOR variabel_indeks := batas_awal TO batas_akhir DO BEGIN
    ·         Statemen_yang_akan_diulang1 ;
    ·         Statemen_yang_akan_diulang2 ;
    ·         ..........
    end ;

    Pernyataan For juga dapat digunakan untuk melakukan pengulangan yang sifatnya menurun, yaitu dengan cara mengganti kata kunci TO dengan DOWNTO. Oleh karena itu nilai batas awal harus lebih besar daripada nilai batas akhir. Apabila nilainya sama maka pengulangan akan dilakukan satu kali saja.  Berikut ini 
    contoh program 1 :
               Uses Wincrt ;
               Var
           i : integer ;

               Begin
          FOR i:=0 TO 4 DO
          Writeln (‘Bahasa Pemrograman’) ;
                      End.
    Maka hasil yang akan diberikan adalah sebagai berikut :
                     Bahasa Pemrograman
                     Bahasa Pemrograman
                     Bahasa Pemrograman
                     Bahasa Pemrograman
          
    Contoh Program 2 :
               Uses Wincrt ;
               Var
           i : integer ;

               Begin
         FOR i:=5 DOWNTO 1 DO BEGIN
         Writeln ( i) ;
               End.
    Maka hasil yang akan diberikan adalah sebagai berikut :
                      5
                      4
                      3
                      2
                      1

    Pernyataan While-do
    Pada pengulangan While terdapat suatu kondisi yang harus diperiksa terlebih dahulu. Apabila kondisi yang didefinisikan bernilai benar (true) maka statemen yang terdapat dalam blok pengulangan akan dieksekusi. Sebaliknya apabila kondisi salah (false), maka program tidak akan pernah memasuki blok pengulangan x(diabaikan). 
    Bentuk alogritmanya
           (Apabila hanya terdiri dari satu statemen)
          WHILE (kondisi) DO
          Statemen ;
            (Apabila terdiri atas beberapa statemen)
          WHILE (kondisi) DO BEGIN
          Statemen1 ;
          Statemen2 ;
          ..........
          end ;
    Contoh Program :
              Uses Wincrt ;
              Var
          i : integer ;

              Begin
         i := 1 ;
        WHILE (i <= 20) DO BEGIN
        Writeln ( i, ‘ ‘) ;
         i := i + 2 ;
                     End.
    Maka hasil yang akan diberikan adalah sebagai berikut :

                     1 3 5 7 9 11 13 15 17 19


    Pernyataan Repeat-until
    Pada pengulangan Repeat, pengulangan akan terus dilakukan apabila kondisi yang didefinisikan masih bernilai salah (false). Jadi, dengan kata lain pengulangan hanya akan dihentikan apabila kondisi bernilai benar (true).
    Bentuk alogritmanya
    REPEAT
                statemen ;
                                        .......
                            UNTIL (kondisi) ;
    Contoh Program :
                Uses Wincrt ;
                Var
            i : integer ;

                Begin
           REPEAT 
           Writeln (‘Bahasa Pemrograman’) ;
            i := i + 1 ;
           UNTIL (i > 5) ;
                End.
    Maka hasil yang akan diberikan adalah sebagai berikut :
                       Bahasa Pemrograman
                       Bahasa Pemrograman
                       Bahasa Pemrograman
                       Bahasa Pemrograman
                       Bahasa Pemrograman

    Rabu, 07 Desember 2011

    PERCABANGAN/PEMILIHAN DALAM BAHASA PASCAL


    Pernyataan if-then (satu kasus)
    Pernyataan hanya akan dijalankan kalau kondisi bernilai benar. 
    Bentuk algoritma adalah
        (Apabila hanya terdiri dari satu statemen)
    IF (kondisi)  THEN
    Statemen ;
        (Apabila terdiri atas beberapa statemen)
    IF (kondisi)  THEN BEGIN
    statemen 1 ;
    .........
    statemen 2 ;
    end;

    Bagan alurnya 

      Contoh Program : 

            Uses Wincrt ;
      Var
      X : integer ;
      Begin
      Write (‘Masukkan nilai X: ‘) ;
      Readln (X);
      IF ( X > 5 ) THEN X := X * 2 ;
      Write (X) ;
      End.
      Pertanyaan :
      Jika X = 6. Maka, nilai X yang akan tercetak adalah 12
      Jika X = 5. Maka, nilai X yang akan tercetak adalah 5
      Jika X = 4.Maka, nilai X yang akan tercetak adalah 4


      Pernyataan if-then-else (dua kasus) 
      Apabila kondisi bernilai benar (true), maka yang akan dilakukan adalah statemen pertama. Sebaliknya, apabila salah (false) maka yang akan dilakukan adalah statemen kedua, yaitu statemen yang terdapat pada bagian else.
      Bentuk algoritma adalah
      (Apabila hanya terdiri dari satu statemen)
                  IF (kondisi) THEN
                              statemen_jika_kondisi_benar ;
                  ELSE
      statemen_jika_kondisi_salah ;
           (Apabila terdiri atas beberapa statemen)
      IF (kondisi)  THEN BEGIN
      statemen_jika_kondisi_benar ;
                              END ELSE BEGIN
      statemen_jika_kondisi_salah ;
      end;

      Bagan alurnya
         
        Contoh Program :
              Uses Wincrt ;
        Var
        X : integer ;
        Begin
        Write (‘Masukkan nilai X: ‘) ;
        Readln (X);
        IF ( X > 5 ) THEN X := X * 2
        ELSE X:= X + 2 ;
        Write (X) ;
               End
        Pertanyaan :
        Jika X = 6. Maka, nilai X yang akan tercetak adalah 12
        Jika X = 5. Maka, nilai X yang akan tercetak adalah 7
        Jika X = 4. Maka, nilai X yang akan tercetak adalah 6

        Pernyataan if-then-else if (tiga kasus atau lebih)
        Apabila kondisi pertama tidak terpenuhi, maka program akan mengecek kondisi kedua. Apabila ternyata kondisi kedua juga belum terpenuhi maka program akan mengecek kondisi berikutnya, begitu seterusnya sampai ditemukan kondisi yang sesuai. Namun apabila ternyata semua kondisi yang didefinisikan tidak terpenuhi, maka program akan  mengeksekusi statement alternatif yang berada pada bagian else yang terakhir.
        Bentuk algoritma adalah
        (Apabila hanya terdiri dari satu statemen)
                    IF (kondisi) THEN
                                statemen_jika_kondisi_benar ;
        ELSE IF (kondisi2) THEN
        statemen_jika_kondisi_benar ;
        ELSE IF (kondisi3) THEN
        statemen_jika_kondisi_benar ;
        ELSE
        statemen_alternatif ;
        (Apabila terdiri atas beberapa statemen)
        IF (kondisi)  THEN BEGIN
        statemen_jika_kondisi_benar ;
        END ELSE IF (kondisi2) THEN BEGIN
        statemen_jika_kondisi_benar ;
        END ELSE IF (kondisi3) THEN BEGIN
        statemen_jika_kondisi_benar ;
        END ELSE BEGIN
        statemen_alternatif ;
        end;

        Bagan alurnya

        Contoh Program :

        Uses Wincrt ;
        Var
        X : integer ;
        Begin
        Write (‘Masukkan nilai X: ‘) ;
        Readln (X);
        IF ( X > 10 ) THEN X := X + 5
        ELSE IF ( X > 5 ) THEN X := X + 10
        ELSE IF ( X0 ) THEN X:= X * 5
        ELSE write (‘Bukan bilangan positif’) ;
        Write (X) ;
        End.
        Pertanyaan :
        Jika X = 12. Maka, nilai X yang akan tercetak adalah 17
        Jika X = 6. Maka, nilai X yang akan tercetak adalah 16
        Jika X = 4. Maka, nilai X yang akan tercetak adalah 9

        Pernyataan Case
        Penyederhanaan bentuk If-Then-Else-If
        Hanya dapat digunakan untuk memeriksa variabel dengan nilai ordinal (tipe variabel : integer dan char). Nilai ordinal ialah nilai yang memiliki nilai awal dan nilai akhir yang pasti.
        Tidak dapat memeriksa nilai dengan jangkauan tak terbatas.
        Bentuk alogritmanya
        CASE (ekspresi) OF
        nilai_konstan1 : statemen1 ;
        nilai_konstan2 : statemen2 ;
        ....
        ELSE
                    statemen_default ;
        end;
        Bagan alurnya

         Contoh Program  :
        Uses Wincrt ;
        Var
        NomorHari : integer ;
        Begin
        Write (‘Masukkan Nomor Hari (1 . .7) : ‘) ;
        Readln (NomorHari);
        CASE (NomorHari) OF
        1 : write (‘Hari ke-1 adalah hari Minggu’) ;
        2 : write (‘Hari ke-2 adalah hari Senin’) ;
        3 : write (‘Hari ke-3 adalah hari Selasa’) ;
        4 : write (‘Hari ke-4 adalah hari Rabu’) ;
        5 : write (‘Hari ke-5 adalah hari Kamis’) ;
        6 : write (‘Hari ke-6 adalah hari Jumat’) ;
        7 : write (‘Hari ke-7 adalah hari Sabtu’) ;
        ELSE write (‘Tidak terdapat harike-‘, NomorHari) ;
        End ;
        End.
        Maka hasil yang akan diberikan adalah sebagai berikut :
             Masukkan Nomor Hari (1 . . 7) : 3
             Hari ke-3 adalah hari Selasa