Minggu, 11 Januari 2015

Latihan dan Contoh Perulangan Pascal

1. Buatlah program untuk mencetak bilangan bulat sbb: 15  13  11  9  7  5  3  1 menggunakan struktur perulangan Repeat-Until, While dan For!


Jawab :
Perulangan Repeat-Until
   uses crt;
   var
     i : integer;
   begin
     clrscr;
     writeln(' PERULANGAN REPEAT-UNTIL ');
     writeln('-------------------------');
     writeln;
     i:=15;
     repeat
     begin
          if i mod 2 = 1 then
          write(i:3);
          i:=i-1;
     end;
     until i<=1;
   readln;
   end.
Hasil:

Perulangan While
   uses crt;

   var
     i : integer;
   begin
     clrscr;
     writeln('     PERULANGAN WHILE     ');
     writeln('--------------------------');
     writeln;
     i:=15;
     while i>= 1 do
     begin
          if i mod 2 = 1 then
          write(i:3);
          i:=i-1;
     end;
   readln;
   end.
Hasil:


Perulangan For
   uses crt;

   var
     i : integer;
   begin
     clrscr;
     writeln('     PERULANGAN FOR      ');
     writeln('-------------------------');
     writeln;
     for i:= 15 downto 1 do
     begin
          if i mod 2 = 1 then
          write(i:3);
     end;
   readln;
   end.
Hasil:



2. Ada katak masuk kedalam sumur sedalam 31.2 m. 5 hari pertama katak bias naik 3 m tiap pagi dan merosot 1 meter tiap malam, 10 hari berikutnya katak bias naik 2 meter tiap pagi dan merosot 1.25 m tiap malam, selanjutnya naik 2 m tiap pagi dan merosot 1.5 m tiap malam, berapa hari katak tersebut dapat keluar dari sumur?


Jawab :
   uses crt;

   var
     merosot,kedalaman,selisih : real;
     naik,hari                 : integer;
   begin
     clrscr;
     write('Masukkan Jumlah Kedalaman Sumur = ');readln(kedalaman);
     writeln('------------------------------------------------------      --');
     writeln('Jumlah Hari   Naik    Merosot   Jumlah Naik                Kedalaman');
     writeln('                                Per Hari');
     writeln('------------------------------------------------------      --');
     hari      := 1;
     naik      := 3;
     merosot   := 1;
     selisih   := naik - merosot;
     while kedalaman > 0 do
     begin
          kedalaman  := kedalaman - selisih;
          writeln(hari:7, naik:10, merosot:10:2, selisih:11:2,                 kedalaman:14:2);
          hari       := hari + 1;
          if (hari>5) and (hari<=15) then
          begin
           naik      := 2;
           merosot   := 1.25;
           selisih   := naik - merosot;
          end
          else if (hari>15) then
          begin
           naik      := 2;
           merosot   := 1.5;
           selisih   := naik - merosot;
          end;
     end;
   readln;
   end.
Hasil:




Latihan dan Contoh Soal Untuk Program Penyeleksian Kondisi Pascal

1. Buatlah program untuk menghitung sewa sebuah Angkutan yang harga untuk 1 Km pertama Rp.4500 dan selanjutnya 2000/Km ?

Jawab :
   program Sewa_Angkutan;
   uses crt;
   const
     pertama = 4500;
     lanjut  = 2000;
   var
     jarak,bayar : longint;
   begin
     clrscr;
     writeln('      PROGRAM SEWA ANGKUTAN      ');
     writeln('---------------------------------');
     writeln;
     write('Jarak Tempuh (Km) = ');readln(jarak);
     if jarak > 1 then
        begin
             bayar:=pertama + (jarak * lanjut);
        end
     else
         bayar := pertama;
     writeln('Bayar = Rp. ',bayar);
   readln;
   end.
Hasil:



2. Buatlah algoritma untuk menentukan bilangan terbesar dari tiga buah bilangan bulat yang dimasukkan melalui piranti masukan. (Asumsi: ketiga bilangan adalah bilangan yang berbeda)
Contoh keluaran yang diinginkan;  
   Masukkan Bilangan Pertama  : 4
   Masukkan Bilangan Kedua    : 2
   Masukkan Bilangan Ketiga   : 7
   Bilangan Yang Terbesar     : 7

Jawab :
   program Mengetahui_Bilangan_Terbesar;
   uses crt;
   var
      bil1,bil2,bil3:longint;
   begin
      clrscr;
      writeln('   MENGETAHUI BILANGAN TERBESAR   ');
      writeln('----------------------------------');
      writeln;
      write('Masukkan Bilangan Pertama : ');readln(bil1);

      write('Masukkan Bilangan Kedua   : ');readln(bil2);

      write('Masukkan Bilangan Ketiga  : ');readln(bil3);

      writeln('----------------------------------');

      writeln;

      if (bil1 > bil2) and (bil1 > bil3) then

      begin

        writeln('Bilangan Yang Terbesar    : ', bil1);
      end
      else if (bil2 > bil1) and (bil2 > bil3) then
      begin
        writeln('Bilangan Yang Terbesar    : ', bil2);
      end
      else if(bil3 > bil1) and (bil3 > bil2) then
      begin
        writeln('Bilangan Yang Terbesar    : ', bil3);
      end;
      writeln;
      writeln('----------------------------------');
   readln;
   end.
Hasil:



Sabtu, 10 Januari 2015

Contoh Algoritma, Flowchart dan Pseudocode.

1.Buatlah algoritma menggunakan flowchart dan pseudocode untuk menghitung luas persegi panjang.
Algoritma :
           1.Masukkan panjang
           2.Masukkan lebar
           3.Luas Persegi panjang adalah panjang dikalikan lebar
           4.Tampilkan luas persegi panjang

Pseudocode :
            1.Input panjang
            2.Input lebar
            3.Luas = panjang x lebar
            4.Print luas lingkaran


2.Buatlah algoritma menggunakan flowchart dan pseudocode untuk menghitung luas lingkaran.
Algoritma :
           1.Masukkan phi (π)
           2.Masukkan jari-jari (r)
           3.Luas Lingkaran adalah phi dikalikan jari-jari
           4.Tampilkan luas lingkaran


Pseudocode :
            1.Input phi (π)
            2.Input jari-jari (r)
            3.Luas = π x r x r 
            4.Print luas lingkaran 


3.Buatlah algoritma menggunakan flowchart dan pseudocode untuk mengubah satuan waktu yang diinputkan dari detik ke satuan jam dan menit .
Algoritma :        
           Masukkan detik
           Menit = 60 detik
           Jam = 3600 detik
           Tampilkan menit
           Tampilkan jam
                        

Pseudocode :    
            Read detik
            M = 60 s
            H = 3600 s
            Output M
            Output H




RECORD

RECORD adalah suatu struktur yang berisi sejumlah komponen yang dinamakan field, setiap field bisa berbeda typenya. Setiap field harus memiliki nama yang berbeda untuk memungkinkan pemilihan field secara acak.
Record mempunyai bentuk umum yaitu:
- Bentuk Umum Record
Type
(NamaRecord) =Record
(NamaField1) : TipeData;
(NamaField2) : TipeData;
...    : ..;
(NamaFieldN) : TipeData;
End;
Var (NamaVarRecord):(NamaRecord);

Contoh :








Kelebihan dan Kekurangan Pascal


Kelebihan Pascal :
·Tipe Data Standar, tipe-tipe data standar yang telah tersedia pada kebanyakan bahasa pemrograman.
·Pascal memiliki tipe data standar: boolean, integer, real, char, string,
·User defined Data Types, programmer dapat membuat tipe data lain yang diturunkan dari tipe data standar.
·Strongly-typed, programmer harus menentukan tipe data dari suatu variabel, dan variabel tersebut tidak dapat dipergunakan untuk menyimpan tipe data selain dari format yang ditentukan.
·Terstruktur, memiliki sintaks yang memungkinkan penulisan program dipecah menjadi fungsi-fungsi kecil (procedure dan function) yang dapat dipergunakan berulang-ulang.
·Sederhana dan Ekspresif, memiliki struktur yang sederhana dan sangat mendekati bahasa manusia (bahasa Inggris) sehingga mudah dipelajari dan dipahami.

Kekurangan Pascal:
·Tidak fleksibel penggunaannya.
·Bahasa PASCAL juga merupakan bahasa yang digunakan sebagai standar bahasa pemrograman bagi tim nasional Olimpiade Komputer Indonesia (TOKI). Selain itu, Bahasa PASCAL masih digunakan dalam IOI (International Olympiad in Informatics).



ARRAY (LARIK).

Array adalah variabel yang dapat menyimpan lebih dari satu nilai sejenis. Terdapat dua bagian penting yaitu elemen array yang merupakan nilai dan endeks array yang merupakan nilai urut untuk mengakses nilai pada array.
Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan bilangan di dalam kurung siku yang dinamakan subscript.

Array yang akan dipergunakan harus di deklarasikan terlebih dahulu. Deklarasi dari Array diawali dengan kata cadangan Array diikuti oleh tipe index yang diletakkan diantara tanda “ [ ] ” diikuti lagi oleh kata cadangan of dan tipe arraynya.
Array dapat bertipe sederhana byte, word, integer, real, boolean, char, string dan tipe scalar atau subrange.

Contoh:
Var
X : array [ 1..100 ] of integer ;
Larik X dideklarasikan sebagai larik tipe integer dengan jumlah elemen maksimum 100 elemen, dimana nilai elemen larik ini harus berisi nilai integer.
Misalkan :
X [1] : = 18 ;
X [2] : = 5 ;
Bila nilai elemen ke-1 dari larik X akan ditampilkan, dapat dipergunakan perintah :
Writeln ( x[1] ) ;


Keunggulan dari Array:
Sangat cocok untuk pengaksesan acak atau random.
Jika berada di suatu lokasi element, sangat mudah menelusuri ke element tetangga, baik element pendahulu maupun element penerus.
Jika element array adalah nilai-nilai independen dan seluruhnya harus terjaga.

Kelemahan dari Array:
Bersifat Homogen.
Kebanyakan bahasa pemograman meng-implementasikan array static yang sulit di ubah ukurannya di waktu eksekusi.

Macam-macam Array / Larik:
Array Satu Dimensi:
var nama_array : array [batas bawah indeks..batas atas indeks] of type_data; 

Array Dua Dimensi:
var nama_array : array [batas bawah indeks baris..batas atas indeks baris, batas bawah indeks kolom..batas atas indeks kolom] of type_data;

Array Banyak Dimensi:
Var ( NamaVarArray) :
Array [Indeks1,indeks2,..,indeksN]
Of TipeData;


SUBRUTIN (PROSEDURE DAN FUNCTION)

Di setiap bahasa pemrograman pasti mempunyai yang namanya sub rutin yaitu sub program atau bagian terkecil dari suatu program yang digunakan untuk keperluan tertentu. Hanya saja masing-masing bahasa pemrograman mungkin menyebutnya dengan istilah/cara yang berbeda. Dengan menggunakan procedure dan function pembuatan program yang besar dan komplek menjadi lebih mudah.
Sub rutin dibagi menjadi dua macam, yaitu Procedure dan Function. Yang membedakan antara procedure dengan function adalah jika procedure tidak menghasilkan/mengembalikan suatu nilai, akan tetapi function mengembalikan suatu nilai.
Sebagai contoh kita membuat program yang digunakan untuk mencetak identitas sebanyak 3 kali (di Pascal).
    program tanpaprocedure;
    begin
    write('Nama : Untung Subagyo');
    write('Alamat Asal : Kebumen');
    write('Alamat Tinggal: Yogyakarta');


    write('Nama : Untung Subagyo');

    write('Alamat Asal : Kebumen');
    write('Alamat Tinggal: Yogyakarta');


    write('Nama : Untung Subagyo');

    write('Alamat Asal : Kebumen');
    write('Alamat Tinggal: Yogyakarta');
    end.


   tapi kalo menggunakan procedure:
    program pakeprocedure;


    procedure identitas;

    begin
    write('Nama : Untung Subagyo');
    write('Alamat Asal : Kebumen');
    write('Alamat Tinggal: Yogyakarta');
    end;
    begin
    identitas;
    identitas;
    identitas;
    end.


Ketika kita menggunakan procedure, dan kita membutuhkan suatu pekerjaan berulang kali, maka kita tinggal memanggil procedure tersebut. Pada contoh program di atas, tidak ada nilai yang dikembalikan ke procedure. Biasanya procedure digunakan untuk melakukan pekerjaan-pekerjaan yang tidak menghasilkan nilai, misalkan untuk menampilkan sesuatu berulang kali. Di dalam pascal sudah tersedia beberapa procedure. Sebagai contoh, write adalah procedure untuk menampilkan tulisan di layar. clrscr adalah procedure yang digunakan untuk membersihkan layar. Jika kita sering melakukan pekerjaan yang sama berulang kali, dan pekerjaan tersebut membutuhkan sekumpulan perintah/statement, maka sebaiknya kita membuat procedure untuk keperluan tersebut.


Sama seperti procedure, function merupakan sekumpulan perintah yang digunakan untuk keperluan tertentu, yang mungkin pekerjaan tersebut sering kita lakukan. Hanya saja, function menghasilkan/mengembalikan suatu nilai. Biasanya function digunakan untuk perhitungan. Nilai yang dihasilkan bisa disimpan ke suatu penampung terlebih dahulu (misalnya variabel), atau bisa juga langsung dicetak. Di dalam pascal terdapat beberapa function yang sudah tersedia, seperti readln digunakan untuk meminta masukan dari user melalui keyboard.


Sebagai contoh kita menginginkan untuk menghitung luas segitiga beberapa kali:



    PROGRAM TanpaFunction;

    var p, l : integer;
    BEGIN
    alas := 5;
    tinggi := 3;
    writeln('Luas Segitiga = ',alas*tinggi*0.5);


    alas := 2;

    tinggi := 7;
    writeln('Luas Segitiga = ',alas*tinggi*0.5);


    alas := 4;
    tinggi := 6;
    writeln('Luas Segitiga = ',alas*tinggi*0.5);
    END.

Jika menggunakan function

    PROGRAM DenganFunction;
    FUNCTION luas(alas,tinggi : integer):single;
    BEGIN
    luas := 0.5 * alas * tinggi;
    END;

    var p, l : integer;
    BEGIN
    alas := 5;
    tinggi := 3;
    writeln('Luas Segitiga = ',luas(alas,tinggi));

    alas := 2;
    tinggi := 7;
    writeln('Luas Segitiga = ',luas(alas,tinggi));

    alas := 4;
    tinggi := 6;
    writeln('Luas Segitiga = ',luas(alas,tinggi));
    END.

Pada contoh di atas, function menghasilkan nilai luas segitiga yang langsung dicetak.
Silahkan anda simpulkan apa kegunaan dari procedure dan function.