Algoritma Pemograman (Kondisi)



Struktur Pengambilan Keputusan / Statement Kendali

Statement kendali digunakan untuk proses pengambilan keputusan. Dimana proses akan dikerjakan bila kondisi yang disyaratkan sesuai (bernilai true / benar). Terdapat dua statement kendali :
1.       IF
2.       CASE

Statement IF
·         Kondisi Ganda
Sintaks : IF <kondisi> THEN <statement> ELSE <statement>

Contoh Program IF..THEN
Uses wincrt;
Var
        nilai : real;
Begin
        Write(‘Jumlah nilai : ‘); readln(nilai);
        If nilai > 60 then writeln(‘LULUS’) else writeln(‘TIDAK LULUS’);
End.

·         IF Tersarang (Nested IF)
Sintaks :       IF<kondisi> THEN <statement>
                        ELSE IF <statement>
                        ELSE IF <statement>



Contoh Program Penggunaan IF Tersarang
Uses wincrt;
Var
        nilai : real;
begin
        write(‘Jumlah nilai : ‘); readln(nilai);
        if nilai > 79 then writeln(‘Grade A’)
        else if nilai > 69 then writeln(‘Grade B’)
        else if nilai > 59 then writeln(‘Grade C’)
        else if nilai > 49 then writeln(‘Grade D’)
        else writeln(‘Grade E’);
end.

·         CASE
Bentuk CASE...OF
CASE <ungkapan> OF
Konstan1 : <statement>
Konstan2 : <statement>
:
ELSE <statement>
END;





Contoh Program Penggunaan CASE..OF
Contoh 1:
Uses wincrt;
Var
        huruf : char;
begin
        write(‘Masukkan nilai huruf : ‘); readln(huruf);
        CASE nilai OF
        ‘A’ : writeln(‘Sangat Baik’);
        ‘B’ : writeln(‘Baik’);
        ‘C’ : writeln(‘Cukup’);
        ‘D’ : writeln(‘Kurang’);
        ‘E’ : writeln(‘Sangat Kurang’);
else writeln('Anda menekan tombol yang salah, coba lagi !');
END;
End.

Contoh 2:
uses wincrt;
var
   nilai:byte;
begin
     write('Masukkan nilai 1..10 : ');readln(nilai);
     CASE nilai OF
     1 : writeln('Anda menekan angka satu');
     2 : writeln('Anda menekan angka dua');
     3 : writeln('Anda menekan angka tiga');
     4 : writeln('Anda menekan angka empat');
     5 : writeln('Anda menekan angka lima');
     6 : writeln('Anda menekan angka enam');
     7 : writeln('Anda menekan angka tujuh');
     8 : writeln('Anda menekan angka delapan');
     9 : writeln('Anda menekan angka sembilan');
     10 : writeln('Anda menekan angka sepuluh');
     else writeln('Anda memasukkan angka yang salah, coba lagi !');    
END;
end.

Contoh 3:
uses wincrt;
var
   nilai:char;
begin
     write('Masukkan nilai A..E : ');readln(nilai);
     CASE nilai OF
     'A','a' : writeln('Anda menekan huruf A');
     'B','b' : writeln('Anda menekan huruf B');
     'C','c' : writeln('Anda menekan huruf C');
     'D','d' : writeln('Anda menekan huruf D');
     'E','e' : writeln('Anda menekan huruf E');
     ELSE writeln('Anda menekan tombol yang salah, coba lagi !');
     END;
end.






Contoh  4:
uses wincrt;
var
   h : char;
begin
     write('Masukkan huruf atau angka : ');readln(h);
     CASE h OF
     'A'..'Z' : writeln('Anda menekan huruf besar : ',h);
     'a'..'z' : writeln('Anda menekan huruf kecil : ',h);
     '0'..'9' : writeln('Anda menekan angka : ',h);
     ELSE writeln('Anda menekan tombol yang salah, coba lagi !');
     END;
end.

Contoh 5:
uses wincrt;
var
   nilai:integer;
begin
     write('Masukkan nilai 0-100 (bilangan bulat) : ');readln(nilai);
     CASE nilai OF
     85..100 : writeln('Anda mendapat nilai A');
     75..84 : writeln('Anda mendapat nilai B');
     60..74 : writeln('Anda mendapat nilai C');
     50..59 : writeln('Anda mendapat nilai D');
     0..49 : writeln('Anda mendapat nilai E');
     ELSE writeln('Anda menekan tombol yang salah, coba lagi !');
     END;
end.

Algoritma Pemograman (Input Dan Output)



Statement Input dan Output

·         Read / Readln
Readln digunakan untuk memasukkan data per baris, artinya setelah tombol enter ditekan maka akan ganti baris, sedangkan Read masih tetap pada baris yang sama.

·         Write / Writeln
Writeln digunakan untuk menampilkan hasil per baris, akan ganti baris untuk tampilan berikutnya, sedangkan Write digunakan untuk menampilkan hasil tanpa ganti baris pada tampilan berikutnya.

·         GotoXY (Kolom, Baris)
Untuk meletakkan posisi kursor pada kolom dan baris tertentu.

Fungsi  yang digunakan untuk memanipulasi data String
·         Length
Digunakan untuk menghitung panjang atau jumlah karakter yang ada pada data string. Hasil dari fungsi ini adalah nilai numerik integer positif.

·         ConCat
Untuk menggabungkan 2 atau beberapa data string.
Contoh : ConCat (‘ABC’, ‘DEF’)  {ABCDEF}

·         Delete
Digunakan untuk membuang sejumlah karakter dari suatu nilai string.
Sintaks : Delete (S, Index, Count);
S = data string
                        Index = posisi awal kita akan mengambil beberapa karakter (integer)
                        Count = Banyaknya karakter yang akan diambil (integer)

·         Copy
Mengambil satu atau beberapa karakter dari sebuah data string.
Sintaks : Copy (S, Index, Count) : String
                        S = data string
                        Index = posisi awal kita akan mengambil beberapa karakter (integer)
                        Count = Banyaknya karakter yang akan diambil (integer)

Fungsi yang digunakan untuk perhitungan aritmetika
·         Sqr
Digunakan untuk menghitung nilai pangkat kuadrat dari suatu bilangan.
Sintaks : Sqr(x);
·         Sqrt
Digunakan untuk menghitung nilai akar dari suatu bilangan.
Sintaks : Sqrt(x);

Contoh Program Penggunaan Statement Input dan Output
uses wincrt;
var
                kalimat1, kalimat2 : string;
begin
                write(‘Masukkan sembarang kalimat :  ‘); readln(kalimat1);
                write(‘Masukkan sembarang kalimat lagi :  ‘); read(kalimat2);
                gotoxy(20,10); writeln(kalimat1);
                write(kalimat2);
end.

Contoh Program Manipulasi Data String
Uses wincrt;
Var
                S, H : string;
                I : integer;
Const
                a = ‘STMIK’;
                b = ‘Wicida’;
begin
                S := ConCat(a,b); writeln(S);
                H := Copy(S,1,7);
                Writeln(H); writeln(‘Panjang string adalah : ‘, Length(H), ‘ karakter’);
                Delete(H, 2, 2); write(‘Beberapa karakter dihapus menjadi : ‘, H);
End.

Contoh Program Perhitungan Aritmetika
Uses wincrt;
Var
                x : real;
begin
                write(‘Masukkan nilai X = ‘); readln(x);
                writeln(‘Nilai X dipangkatkan = ‘, Sqr(x):5:1);
                write(‘Nilai X diakarkan = ‘, Sqrt(x):5:3);
end.

Algoritma Pemograman (Tipe Data)



Tipe Data Sederhana
Tipe Data Sederhana yang telah disiapkan oleh pascal adalah sebagai berikut :

  1.  Integer
  2. Real 
  3.  Karakter
  4. String


v  Tipe Data Integer
Tipe data Integer adalah tipe data yang nilainya merupakan bilangan bulat. Tipe data Integer terbagi atas beberapa macam :
Tipe
Range
ShortInt
-128..127
Integer
-32768..32767
LongInt
-2147483648..2147483647
Byte
0..255
Word
0..65535

Contoh penggunaan tipe data Integer :

1.      Var
        Jumlah : byte;
       Begin
                Jumlah := 200;
                Write(‘Nilai Jumlah = ‘, Jumlah);
       End.
       Bila program ini dijalankan, akan didapatkan hasil :  Nilai Jumlah = 200

2.      Var
Jumlah : integer;
                        Begin
                                 Jumlah := 25000;
                                 Write(‘Nilai Jumlah = ‘, Jumlah);
                        End.
Bila program ini dijalankan, akan didapatkan hasil :  Nilai Jumlah = 25000

Dengan mengetahui tipe data yang ada, maka diharapkan penggunaan data tidak menjadi salah. Contoh program berikut ini adalah salah, karena menggunakan variabel tipe byte yang diisi dengan data yang salah, yaitu melebihi jangkauan tipe byte sebagai berikut :

Var
        Jumlah : byte;
Begin
        Jumlah := 65000;
        Write(‘Nilai Jumlah = ‘, Jumlah);
End.
Pesan kesalahan :  Error 76 : Constant out of range
Karena variabel Jumlah akan diberi nilai 65000, maka harus dideklarasikan sesuai dengan tipe datanya, yaitu dapat dideklarasikan bertipe Word atau Longint.   

v  Tipe Data Real
Tipe data Real biasa digunakan untuk merepresentasikan nilai pecahan. Tipe data Real terbagi atas beberapa macam :
Tipe
Range
Real
± 2.9x10-39..1.7x1038
Single
± 1.5x10-45..3.4x1038
Double
± 5x10-324..1.7x10308
Extended
± 3.4x10-4932..1.1x104932
Comp
-9.2x1018..9.2x1018

Contoh penggunaan tipe data Real :
Var
        Nilai2, Nilai2 : real;
Begin
        Nilai1 := 12345678901.2345;
Nilai2 := 12345;
Writeln(‘Nilai1 = ‘, Nilai1);
Write(‘Nilai2 = ‘, Nilai2);
End.

Bila program ini dijalankan, akan didapatkan  hasil : Nilai1 = 1.2345678901E+10
                                                                                      Nilai2 = 1.2345000000E+4

v  Tipe Data Karakter
Hanya dapat menampung satu karakter saja. Ditulis diantara tanda petik tunggal.
Bentuk umum :
        Var
                        <Nama Variabel> : char;
Contoh :
        Var
                        Huruf : char;
        Begin
                        Huruf := ‘A’;
                        Write(‘Karakter tersebut = ‘, Huruf);
        End.
Bila program ini dijalankan, akan didapatkan  hasil : Karakter tersebut = A

v  Tipe Data String
Tipe data String merupakan gabungan dari karakter sebanyak maksimal 256 karakter.
Bentuk umum :
        Var
                        <Nama Variabel> : string;
Contoh :
        Var
                        Kalimat                 : string;
Tanggal                 : string[10];
Hari                        : string[6];
Jarak                      : char;
Begin
        Kalimat := ‘Tanggal hari ini : ‘
        Tanggal := ’15-10-2011’;
        Hari        := ‘Sabtu’;
        Jarak      := ‘ ‘;
        Writeln(Kalimat); write(Tanggal, Jarak, Hari); 
End.
Bila program ini dijalankan, akan didapatkan  hasil :
Tanggal hari ini :
15-10-2011 Sabtu

Contoh Program Menggunakan Tipe Data String, Integer,  Real
Program Penjualan; {Heading Program}
Uses wincrt;
Var  {bagian deklarasi}
                Nama : string[20];
                Kode : string[5];
                Jumlah : integer;
                Harga, Bayar : real;
Begin  {bagian pernyataan}
{***Input***}
Write(‘Masukkan nama barang : ‘);readln(Nama);
Write(‘Masukkan kode barang : ‘); readln(Kode);
Write(‘Masukkan jumlah barang : ‘);readln(Jumlah);
Write(‘Masukkan harga barang : ‘);readln(Harga);
{***Proses***}
Bayar := Jumlah * Harga;
{***Output***}
Writeln(‘Daftar Penjualan Toko Wicida’);
Writeln(‘============================’);
Writeln(‘Nama barang : ‘,Nama);
Writeln(‘Kode barang : ‘, Kode);
Writeln(‘Jumlah barang : ‘, Jumlah);
Writeln(‘Harga barang : ‘, Harga:8:2);
Writeln(‘Jumlah pembayaran : ‘, Bayar:8:2);
End.