Kamis, 05 Januari 2012

TurBo PasCaL

Pengertian Pascal
Pascal adalah bahasa tingkat tinggi (High Level Languange) yaitu bahasa pemrograman yang mudah dipahami oleh bahasa manusia. Pascal merupakan bahasa yang terstruktur 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. Pascal Pertama kali di buat oleh Profesor Niklaus Wirth, seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971.

Kelebihan dari Bahasa Pemrograman 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 Bahasa Pascal:
-Versi awal Pascal kurang cocok untuk aplikasi bisnis karena dukungan basisdata yang terbatas.
-Sintaks Pascal terlalu bertele-tele
-Tidak mendukung pemrograman berorientasi objek
-Pascal tidak fleksibel dan banyak kekurangan yang dibutuhkan untuk membuat aplikasi yang besar.

Konsep Pemrograman Prosedural dan Prosedur/Fungsi di Turbo Pascal
Ketika program yang dibuat sudah terlalu panjang ratusan bahkan puluhan ribu baris, sehingga kita mengalami kesulitan untuk memahami jalannya program secara keseluruhan, maka ada baiknya bila program tersebut dipecah menjadi beberapa bagian yang biasanya disebut modul, subprogram atau subrutin. Konsep semacam ini biasa disebut dengan pemrograman prosedural. Dalam tulisan ini selanjutnya akan digunakan kata modul supaya lebih ringkas. Turbo Pascal yang digunakan pada percobaan ini adalah versi 7.1, bila anda menggunakan Turbo Pascal 7.0 maka prosesnya tidak jauh berbeda. Memecah program menjadi modul-modul tentunya akan lebih memudahkan dalam mencari kesalahan, memperbaiki serta membuat dokumentasinya. Pembuatan modul di Turbo Pascal dibagi dua jenis yaitu : Prosedur dan Fungsi. Prosedur atau Fungsi adalah suatu modul program yang terpisah dari program utama, diletakan dalam blok tersendiri yang berfungsi sebagai bagian dari program. Setiap prosedur diawali dengan kata cadangan (reserver word) Procedure, sedangkan Fungsi diawali dengan kata cadangan Function.
Prosedur atau Fungsi banyak digunakan pada program terstruktur, karena :
1. Merupakan penerapan konsep modular, yaitu memecah program menjadi modul-modul atau subprogram-subprogam yang lebih sederhana.
2. Untuk hal-hal yang sering dilakukan berulang-ulang, cukup dituliskan sekali saja dalam prosedur dan dapat dipanggil atau dipergunakan sewaktu-waktu bila diperlukan.
 
Unsur-unsur Pemograman Pascal
a. Mendapatkan data dengan membaca data dari default input (key board, file atau sumber data lainnya).
b. Menyimpan data ke dalam memori dengan struktur data yang sesuai,
c. Memproses data dengan instruksi yang tepat.
d. Menyajikan atau mengirimkan hasil olahan data ke default output (monitor, file atau tujuan lainnya).

Nama yang dipergunakan du dalam program Pascal disebut dengan pengenal atau Identifier. Identifier digunakan untuk nama: Program, Sub-program (procedure dan function), nama: Variable, Constant, Type, Label.
Nama-nama ini digunakan untuk pemakaian dan pemanggilan dalam program. Ketentuan penulisan identifier
a. Nama identifier harus dimulai dengan karakter huruf alfabet: a sampai z, A sampai Z atau karakter ‘_’ (underscore – garis bawah)
b. Karakter berikutnya boleh karakter numerik (0 .. 9) atau kombinasi alphanumerik (huruf-numerik).
c. Panjang nama, pada berbagai versi Pascal umumnya antara 32 – 63.
d. Tidak boleh menggunakan karakter istimewa: + – * / | \ = < > [ ] . , ; : ( ) ^ @ { } $ # ~ ! % & ` ” ‘ dan ? Contoh penulisan:
Penulisan yang benar: NamaMahasiswa, Gaji_Karyawan, PX4, dll.
Penulisan yang salah: 3X, A & B, C Z dll.
Variable adalah identifier yang berisi data yang dapat berubah-ubah nilainya di dalam program. Deklarasi Variable adalah :
a. Memberikan nama variabel sebagai identitas pengenal
b. Menentukan tipe data variabel
Contoh deklarasi variabel: var X : integer;
R  : real;
C  : char;
T  : boolean;
Konstanta adalah identifier yang berisi data yang nilainya tidak berubah di dalam program.
Deklarasi Konstanta adalah:
a. Memberikan nama konstanta sebagai identitas pengenal
b. Menentukan nilai konstanta
Contoh deklarasi konstanta: conts MaxSize = 100; {integer}
ExitC = ‘Q’; {char}
Reserved Words atau kata-kata cadangan pada Pascal adalah kata-kata yang sudah didefinisikan oleh Pascal yang mempunyai maksdu tertentu.Suatu Unit adalah kumpulan dari konstanta, tipe-tipe data, variabel, prosedur dan fungsi-fungsi. Unit standar pada Pascal yang bisa langsung digunakan adalah System, Crt, Printer Dos dan Graph. Untuk menggunakan suatu unit, maka kita harus meletakkan clausa atau anak kalimat Uses di awal blok program, diikuti oleh daftar nama unit yang digunakan. Pada materi ini yang akan dibahas adalah unit Crt. Unit ini digunakan untuk memanipulasi layar teks (windowing, peletakan cursor di layar, Color pada teks, kode extended keyboard dan lain sebagainya.



Struktur Pemrograman
Judul Program                         PROGRAM nama-program;
Blok Program 
Bagian deklarasi
- deklarasi label                                   LABEL nama-label;
- deklarasi konstanta               CONST…………..;
- deklarasi tipe                         TYPE …………….;
- deklarasi variabel                              VAR ……………...;
- deklarasi prosedur                 PROCEDURE nama-prosedur;
                                                ……………………………….;
- deklarasi fungsi                                 FUNCTION nama-fungsi;
                                                ………………………….;
Bagian Pernyataan                 
Begin
      (statement)                                   
      …………;
      …………;
end.
Contoh :  Menghitung luas bidang berbentuk empat persegi panjang dengan panjang P
     dan lebar L.

PROGRAM Luas;                                         {Judul}
VAR P,L,Luas            : real;                         {Deklarasi variabel}
BEGIN
            Read (P,L);                                         {Statemant}
            Luas := P*L;                                        {Statement}
            Write (P,L,Luas);                                {Statement}
END.

Judul program sifatnya adalah optional, dan bila ditulis, harus terletak pada awal dari program dan diakhiri dengan titik koma.
Bagian deklarasi digunakan bila di dalam program digunakan pengenal ( identifier). Identifier dapat berupa label, konstanta, tipe, variabel, prosedur dan fungsi. Kalau suatu program menggunakan identifier, Pascal menuntut supaya identifier tersebut diperkenalkan terlebih dahulu sebelum digunakan, yaitu dideklarasikan terlebih dahulu pada bagian ini.

Beberapa aturan dalam program Pascal :
· Akhir sebuah program Pascal ditandai dengan tanda baca titik (.) setelah END yang  paling akhir.
· Tanda titik koma (;) merupakan pemisah antar instruksi satu dengan lainnya.
·  Beberapa statement boleh ditulis menjadi satu baris dipisahkan dengan tanda baca titk koma (;)
Contoh : simpan  :=  akhir;   akhir := simpan + awal;
·  Baris komentar diletakkan diantara tanda (* dan *) atau diantara tanda { dan }
Contoh :    Var      rerata   : real;               (*nilai rata-rata*)
                              Nil1     : real;               {nilai ujian}    

Statement  (Pernyataan)
Adalah instruksi atau gabungan instruksi, yang menyebabkan komputer melakukan aksi.
Type statement dalam Pascal terdiri atas :
1. Sederhana :  
    - menandai sebuah item data ke sebuah variabel (assigment statement)
            contoh : X := Y * 4.135
      - pemanggilan procedure dan goto statement
     2. Terstruktur:
   - Compound Statement
            contoh : Begin
                                    read (x) ;
                                    y := x + 5;
                                    write (y)
                          End.
        - Repetitive Statement
            contoh :           For I := 1 to 100 do
                                    write (count);
       - Conditional Statement
            contoh :           If x > 100 then write (s)
                                                else write (p) ;
 

Pr0gRam dEteRminaN MaTriks

program determinan;
uses wincrt;
var n,i,j,x,y,z,k,l,q,e: integer;
    o,m,p,d:real;
    a:array[1..20,1..20] of real;
    b,c:array[1..20]of real;
    ulang:char;
begin
repeat
clrscr;
writeln ('********************************************');
writeln ('WeLc0me tO The maRtix dEterMinanT');
writeln ('********************************************');
writeln;
write ('Ordo Matriks yang ingin di input (n x n) : ');
readln (n);
writeln ('Matriks yang akan di input :  Matriks (',n,' x ',n,')');
writeln;
writeln ('--------------------------------------------');
writeln ('Mulai Untuk Input Elemen Matriks Anda') ;
for i:=1 to n do
    begin
    for j:=1 to n do
        begin
        write ('Elemen A(',i,',',j,') : ');
        readln (a[i,j]);
        end;
    end;
clrscr;
writeln ('Bentuk Matriks Anda :');
for i:=1 to n do
    begin
    for j:=1 to n do
        write ('   ',a[i,j]:0:0);
    writeln;
    end;
writeln;

if (n=2) then 
writeln ('Determinan Matriks Anda = ',(a[1,1])*(a[2,2])-(a[1,2])*(a[2,1]):0:0)
else

begin
   for i:=1 to n do
       begin
       for j:=n+1 to n+(n-1) do
           begin
           a[i,j]:=a[i,j-n];
           end;
       end;
   for j:=1 to n do
       begin
       o:=1;
       q:=j-1;
       for z:=1 to n do
           begin
           q:=q+1;
           o:=o*a[z,q];
           end;
           b[j]:=o;
       end;
   for i:=n+(n-1) downto n-1 do
       begin
       o:=1;
       q:=i+1;
       for z:=1 to n do
           begin
           q:=q-1;
           o:=o*a[z,q];
           end;
       c[i]:=o;
       end;
   m:=0;
   p:=0;
   for j:=1 to n do
       m:=m+b[j];
   for i:=n+(n-1) downto n-1 do
       p:=p+c[i];
   d:=m-p; 
   writeln ('Determinan Matriks Anda = ',d:0:0);
end;
writeln;
write('Ingin mencari determinan dari matriks lain [y/t] : ' );
readln(ulang);
until (ulang='t') or (ulang='T');
clrscr;
writeln ('******************************************');
writeln ('tHank yOu for Using oUr prOgraM');
writeln ('                 @_@                      ');
writeln ('          STATISTIKA ITS 2011             ');
writeln ('******************************************');
end.

proGraM iNverS maTriKs

program invers_matriks;
uses wincrt;
var a,b,c,d,i,invers,p,q,r,s:real;
jawab:char;
pass:string[8];
begin
clrscr;
gotoxy(20,1);
writeln('Mencari Invers Matriks Ordo 2x2 ');
gotoxy(10,5);write('a=');read(a);
gotoxy(18,5);write('b=');read(b);
gotoxy(10,7);write('c=');read(c);
gotoxy(18,7);write('d=');read(d);
i:=(a*d)-(b*c);
if not(i=0) then
begin
invers:=1/((a*d)-(b*c));
p:=d*invers;
q:=-b*invers;
r:=-c*invers;
s:=a*invers;
writeln;
writeln ('Determinan matriks A ='); write (i);
gotoxy(25,10);writeln('Invers matriks A =');
gotoxy(10,13);write(p:0:3);
gotoxy(18,13);write(q:0:3);
gotoxy(10,16);write(r:0:3);
gotoxy(18,16);write(s:0:3);
end
else
begin
gotoxy(25,15);
writeln('Tidak ada invers matriks');
end;
end.

prOgrAm TranPosE MatikS

program tranposmatriks;
uses wincrt;
var
A,B,C,D : array [1..10,1..10] of integer;
i,j,k,l : integer;
n,p,g : integer;
begin
writeln('matriks 1');
read(n);read(p);writeln;
for i:=1 to n do begin
for j:=1 to p do begin
readln(A[i,j]);
end;
end;
for i:=1 to n do begin
for j:=1 to p do begin
write(A[i,j]:5);
end;writeln;
end;
writeln;      writeln('matriks transpose');
for k:=1 to p do begin
for l:=1 to n do begin
write(A[l,k]:5); B[k,l]:=A[l,k];
end;writeln;
end; 
writeln;
for i:=1 to n do begin
for j:=1 to n do begin    C[i,j]:=0;
for k:=1 to p do begin  
C[i,j]:=C[i,j]+A[i,k]*B[k,j];
end;end;end;
for i:=1 to n do begin
for j:=1 to n do begin
write(C[i,j]:5);
end;writeln;
end;
end.

pRogRaM pErkaLian maTriks

program perkalian_matriks;
uses wincrt;
var A,B,c: array [1..10,1..10] of integer;
i,j,b1,k1,b2,k2,r,sum:integer;
begin
write('masukkan jumlah baris matriks 1 : ');readln(b1);
write('masukkan jumlah kolom matriks 1 : ');readln(k1);
write('masukkan jumlah baris matriks 2 : ');readln(b2);
write('masukkan jumlah kolom matriks 2 : ');readln(k2);
for i:=1 to b1 do
for j:=1 to k1 do
readln(A[i,j]);
for i:=1 to b2 do
for j:=1 to k2 do
readln(B[i,j]);
writeln;
writeln('matriks 1');
writeln('=========');
for i:=1 to b1 do
begin
for j:=1 to k1 do
write(A[i,j],' ');
writeln;
end;
writeln('matriks 2');
writeln('=========');
for i:=1 to b2 do
begin
for j:=1 to k2 do
write(B[i,j],' ');
writeln;
end;
writeln ('matriks 1 + 2');
c[i,j]:=0;
for i:=1 to b1 do
begin
for j:=1 to b2 do
begin
c[i,j]:= c[i,j]+A[i,j]+B[i,j];
write (c[i,j],' ');
end;
writeln;
end;
end.