Showing posts with label Program Pascal. Show all posts
Showing posts with label Program Pascal. Show all posts

Monday, 29 October 2012

Koding Program Sorting Array dengan Urutan Ascending


Program Sorting Array dengan Urutan Ascending

program sorting;
uses crt;

const
     nmax = 50;
type
    rdata = record
         nim      : integer;
         nama     : string[30];
         alamat   : string[50];
         end;
    aData = array [1..nmax] of rdata;


var
{variabel global}
    data         : aData;
    plh, ch      : char;
    x            : integer;

{fungsi menu awal}
function menu : char;
var
   c : char;
begin
     clrscr;
     writeln('--- Program Sorting Array dengan Urutan Ascending ---');
     writeln;
     writeln('1: Insertion Sort');
     writeln('2: Selection Sort');
     writeln('3: Bubble Sort');
     writeln('4: Keluar Program');
     repeat
           writeln;
           write('Pilih >> ');
           c := readkey;
           writeln(c);
           if not (c in ['1'..'4']) then
              writeln('Pilihan salah ...');
     until(c in ['1'..'4']);
     menu := c;
end;

procedure inputData(var A : aData; var n : integer);
var
   i : integer;
begin
     repeat
           write('Berapa banyak data? ');
           readln(n);
           if n>0 then
           begin
                writeln;
                for i:=1 to n do
                begin
                     writeln('Mahasiswa ke-',i);
                     write('NIM    : '); readln(data[i].nim);
                     write('Nama   : '); readln(data[i].nama);
                     write('Alamat : '); readln(data[i].alamat);
                     writeln;
                end;
           end
           else
               writeln('Input salah...')
     until(n>0);
end;

{prosedur Insertion Sort}
procedure iS(var A : aData; var ndata : integer);
var
   temp,i,j : integer;
   temp2,temp3 : string[50];
begin
     clrscr;
     writeln('Input Data Insertion Sort');
     writeln;
     inputData(A,ndata);
     {rutin kode}
     for i:=2 to ndata do
     begin
          temp := A[i].nim;
          temp2 := A[i].nama;
          temp3 := A[i].alamat;

          j := i-1;
          while ((temp<A[j].nim) and (j>=1)) do
          begin
               A[j+1].nim := A[j].nim;
               A[j+1].nama := A[j].nama;
               A[j+1].alamat := A[j].alamat;
               j := j-1;
          end;
          A[j+1].nim := temp;
          A[j+1].nama := temp2;
          A[j+1].alamat := temp3;
     end;
end;

{prosedur untuk tukar data}
procedure tukar(i,j : integer);
var
   temp : integer;
   temp2 : string[50];
begin
     temp := data[i].nim;
     data[i].nim := data[j].nim;
     data[j].nim := temp;

     temp2 := data[i].nama;
     data[i].nama := data[j].nama;
     data[j].nama := temp2;

     temp2 := data[i].alamat;
     data[i].alamat := data[j].alamat;
     data[j].alamat := temp2;
end;

{prosedur Selection Sort}
procedure sS(var A : aData; var ndata : integer);
var
   i,j,pos : integer;
begin
     clrscr;
     writeln('Input Data Selection Sort');
     writeln;
     inputData(A,ndata);

     {rutin kode}
     for i:=1 to ndata-1 do
     begin
          pos := i;
          for j:=i+1 to ndata do
              if (A[pos].nim > A[j].nim) then
                 pos := j;
          if (pos<>i) then
             tukar(pos,i);
     end;
end;

{prosedur Bubble Sort}
procedure bS(var A : aData; var ndata : integer);
var
   i,j : integer;
begin
     clrscr;
     writeln('Input Data Bubble Sort');
     writeln;
     inputData(A,ndata);

     {rutin kode}
     for i:=1 to ndata-1 do
         for j:=ndata downto i+1 do
             if (A[j].nim < A[j-1].nim) then
                  tukar(j,(j-1));
end;

{prosedur tampil data yang terurut Ascending}
procedure showUrut(A : aData; var ndata : integer);
var
   i : integer;
begin
     clrscr;
     writeln('Tampilan Data Terurut');
     writeln;
     for i:=1 to ndata do
     begin
          writeln('NIM    : ',A[i].nim);
          writeln('Nama   : ',A[i].nama);
          writeln('Alamat : ',A[i].alamat);
          writeln;
     end;
end;

{program utama}
begin
     repeat
           plh := menu;
           case plh of
                '1' : iS(data,x);
                '2' : sS(data,x);
                '3' : bS(data,x);
                '4' : exit;
           end;

           writeln;
           writeln('Next >> Tampilan setelah data diurutkan...');
           write('Tekan sembarang karakter untuk berikutnya...') ;
           readkey;
           showUrut(data,x);
           repeat
                 writeln;
                 write('Tekan >> 1: Kembali ke Menu, 0: Keluar Program');
                 ch := readkey;
                 if not (ch in ['1','0']) then
                    writeln(' >> Pilihan salah...');
           until(ch in ['1','0']);
     until(ch = '0');
end.

Koding Program Pencarian data Nomor_induk pegwai


Pencarian data didasarkan pada Nomor_induk pegwai

program searching;
uses crt;
label h, z, g, f;
const max=100;
type pegawai=record
     nomor         : integer;
     nama          : string[30];
     bagian        :string[20];
     gaji          :integer;
end;
tabel=array[1..max] of pegawai;
tabel_1=array[1..max] of integer;
var
 a:tabel;
 b:tabel_1;
 n:integer;
 ni:integer;
 i, j, temp:integer;
 p:char;
 pilih:integer;

procedure cari(a:tabel; n:integer; x:integer; var isearch:integer);
var
 i:integer;
begin
 if(n=0) then isearch:=0 else
 begin
  i:=1;
  while ((a[i].nomor<x) and (i<n)) do
  i:=i+1;
  if (a[i].nomor=x) then
  begin
   writeln('Data yang dicari : ');
   writeln('Nomor pegawai : ', a[i].nomor);
   writeln('Nama pegawai : ', a[i].nama);
   writeln('Bagian : ', a[i].bagian);
   writeln('Gaji : ', a[i].gaji);
  end
  else
   writeln('Data tidak ditemukan');
 end;
end;

procedure biner(a:tabel; n:integer; x:integer; var isearch:integer);
var
 bawah, atas:integer;
 tengah:integer;
 found:boolean;
begin
  if (n=0) then isearch:=0 else
  begin
   bawah:=1;
   atas:=n;
   found:=false;
   while ((not found) and (atas>=bawah)) do
   begin
    tengah:=(bawah+atas) div 2;
    if (a[tengah].nomor=x) then
     found:=true
    else
    if (a[tengah].nomor>x) then
     atas:=tengah-1
    else
     bawah:=tengah+1;
   end;
   if found then
   begin
    isearch:=tengah;
    writeln('Data yang dicari : ');
    writeln('Nomor pegawai : ',a[i].nomor);
    writeln('Nama pegawai  : ',a[i].nama);
    writeln('Bagian        : ',a[i].bagian);
    writeln('Gaji          : ',a[i].gaji);
   end;
 end;
end;
  begin
   h:clrscr;
   writeln;
   writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
   writeln('------ SEARCHING DATA ------');
   writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
   writeln;
   writeln;
   write('Banyaknya data pegawai : ');readln(n);
   writeln;
   for i:=1 to n do
   begin
    write('Nomor pegawai ke-',i,' : '); readln(a[i].nomor);
    write('Nama pegawai ke-',i,'  : '); readln(a[i].nama);
    write('Bagian ke-',i,'        : '); readln(a[i].bagian);
    write('Gaji ke-',i,'          : '); readln(a[i].gaji);
    writeln;
   end;
   z:
   writeln;
   writeln('*****************************');
   writeln('------- MENU SEARCHING ------');
   writeln('*****************************');
   writeln;
   writeln('1. Pencarian Sekuensial');
   writeln('2. Pencarian Biner     ');
   writeln('3. Exit');
   write('Pilihan : '); readln(pilih);
   writeln;
  case pilih of
  1:begin
    clrscr;
    g:
    writeln;
    writeln('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
    writeln('****** PENCARIAN SEKUENSIAL ******');
    writeln('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
    writeln;
    for i:=1 to n-1 do
    begin
     for i:=1 to n-i do
     begin
      if (a[j].nomor) > (a[j+i].nomor) then
      begin
       temp:=a[j].nomor;
       a[j].nomor:=a[j+1].nomor;
       a[j+1].nomor:=temp;
      end;
     end;
    end;
    writeln('Masukkan nomor pegawai yang ingin disearching : '); readln(ni);
    writeln;
    cari(a,n,ni,i);
    writeln;
    write('Ingin cari lagi ? (Y/T) : '); readln(p);
    if (p='Y') or (p='y') then goto g;
    goto z;
    writeln;
    end;
  2:begin
    clrscr;
    f:
    writeln;
    writeln('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
    writeln('****** PENCARIAN BINER ******');
    writeln('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
    writeln;
    for i:=1 to n-1 do
    begin
     for j:=1 to n-1 do
     begin
      if (a[j].nomor) > (a[j+1].nomor) then
      begin
       temp:=a[j].nomor;
       a[j].nomor:=a[j+1].nomor;
       a[j+1].nomor:=temp;
      end;
     end;
    end;
    writeln;
    writeln('Masukkan nomor pegawai yang ingin disearching : '); readln (ni);
    writeln;
    biner(a,n,ni,i);
    writeln;
    write('Ingin cari lagi ? (Y/T) : '); readln(p);
    if (p='Y') or (p='y') then goto f;
    goto z;
    writeln;
    end;
  3:begin
    writeln('Program diakhiri');
    writeln;
    end
    else
    writeln('Pilihan Salah');
    for i:=1 to n do
    begin
     delay(5000);
    end;
    goto h;
  end;
  readkey;
end.

Wednesday, 23 November 2011

Pemilihan (Selection) pada program pascal

Pemilihan (Selection) digunakan jika ada masalah yang tidak dapat dipecahkan dengan perhitungan yang pasti. Inti dari pemecahan masalah jenis ini adalah menganalisis semua kondisi yang mungkin terjadi dan menentukan statemen yang dilakukan untuk setiap kondisi tersebut.

 Terdapat dua skema pemilihan, yaitu menggunakan statemen if...then dan menggunakan statemen case....of. Statemen if dapat digunakan dengan bagian else atau tanpa bagian else, tergantung masalah yang dipecahkan dan algoritma yang dipilih.

Jika terdapat dua kondisi yang komplementer maka statemen if diikuti bagian else. Kondisi dalam statemen if dituliskan dalam ekspresi boolean. Statemen if juga dapat digunakan secara berulang.

Statemen if digunakan untuk memilih dari dua kondisi yang berbeda berdasar ekspresi boolean, sedangkan statemen case digunakan untuk memilih jika terdapat lebih dari dua kondisi yang masing-masing memerlukan penanganan yang berbeda. Variabel yang terlibat dalam statemen case harus bersifat ordinal.

1. Instruksi If/Then/Else

Instrusksi If/Then/Else digunakan untuk memilih alternative apabila suatu syarat atau kondisi dipenuhi ( 1 kasus ), atau memilih satu alternatif dari dua kemungkinan berdasarkan apakah syarat terpenuhi atau tidak ( 2 kasus ).

PERCABANGAN

Statemen Penyeleksian Kondisi
 Statemen penyeleksian kondisi menunjukkan bahwa suatu statemen akan dikerjakan bila suatu kondisi adalah benar. Jika kondisi salah satu syarat tidak terpenuhi maka statemen yang lainnya setelah kata cadangan Else akan dikerjakan atau diproses. Kata else tidak boleh diawali dengan titik koma (;) karena titik koma menunjukkan akhir dari statemen.

Struktur IF-THEN 

Statemen IF-THEN digunakan untuk menyeleksi suatu kondisi, jika kondisi yang diseleksi terpenuhi, maka statemen yang mengikuti THEN akan diproses. Tetapi, apabila kondisi tidak terpenuhi, maka yang akan diproses adalah statemen berikutnya.

Statemen IF-THEN…ELSE digunakan untuk menyeleksi suatu kondisi. Statemen 1 akan diproses jika kondisi yang diseleksi benar, sedangkan statemen 2 akan diproses jika kondisi yang diseleksi tidak terpenuhi.

2. Instruksi Case 

Instruksi case digunakan sebagai instruksi pemilihan dimana aksi yang akan dilakukan hanya bergantung pada nilai dari satu macam variable. Dengan kata lain, variable yang menentukan nilai ini mungkin banyak macam nilai dan setiap nilainya berkaitan dengan satu macam aksi.

Bentuk instruksi case :
Case ( variable )
Nilai-1 : aksi-1;
Nilai-2 : aksi-2;
Nilai-3 : aksi-3;
………..
Default : aksi-n;
Endcase
Bentuk case diatas dapat diterjemahkan sebagai berikut :
  • Dimungkinkan ada n-buah aksi, mulai dari aksi-1 hingga aksi-n.
  • Setiap aksi hanya dilakukan apabila suatu nilai variabel dicapai sesuai persyaratan. Misalnya, aksi-1 dilakukan hanya bila variabel bernilai nilai-1, aksi-2 dilaksanakan apabila variabel bernilai nila-2, dan seterusnya.
  • Apabila tak satu pun nilai variabel yang cocok maka aksi-n dikerjakan sebagai aksi ”default” ( hanya dikerjakan apabila tidak ada yang memenuhi syarat ).

Struktur CASE-OF…ELSE merupakan pengembangan dari struktur CASE-OF dan juga merupakan pengembangan dari standar Pascal. Pada struktur CASE-OF bila tidak ada kondisi yang terpenuhi berarti tidak ada statemen di dalam lingkungan CASE-OF yang diproses. Dengan struktur CASE-OF…ELSE, bila tidak ada kondisi yang terpenuhi, maka statemen yang akan diproses dalam lingkungan CASE-OF adalah statemen yang ada di ELSE.

Saturday, 12 November 2011

Runtunan (Sequentail)

Runtunan merupakan pernyataan yang terdiri dari satu atau lebih pernyataan, setiap pernyataan ditulis dalam satu baris atau dipisahkan dengan tanda titik koma. Tiap pernyataan dikerjakaan secara berurutan (sekunsional) sesuai dengan urutannya di dalam teks algoritma. Bila urutan diubah, maka hasil akhirnya juga akan berubah.
Runtunan adalah kegiatan atau aksi yang dilakukan secara beruntun dan saling terkait, dimana suatu aksi dilakukan setelah aksi sebelumnya selesai.

Bentuk Umum
'Variabel 1:Tipe Data1
Variabe2 1:Tipe Data2
Input Nilai1
Input Nilai2
Runtunan (sequence) adalah struktur algoritma paling dasar yang berisi serangkain intruksi yang diproses secara sekuensial, saru persatu, mulai dari intruksi pertama dan terakhir.

Runtunan satu atau lebih intruksi yang bahwa :
  1. Tiap instruksi dikerjakan satu peratu;
  2. Tiap instruksi dilaksanan tepat sekali, tidak ada instruksi yang diulang.
  3. Urutan instruksi yang dilaksankan pemrosesan sama dengan urutan instruksi.
  4. Akhir dari instruksi terakhir yang merupakan akhir algoritma.
Pengaruh Urutan Instruksi

Urutan instruksi dalam algoritma adalah penting. Urutan instruksi menunjukan urutan logik penyelesaian masalah.

Urutan instruksi yang berbeda mungkin tidak ada pengaruh terhadap solusi persoalan, tetapi mungkin juga menghasilkan keluaran yang berbeda, tergantung pada masalahnya

Thursday, 3 November 2011

Tipe data pada program pascal

Pengertian Tipe data menyiratkan suatu nilai yang dapat dinyatakan dalam bentuk konstanta atau variabel. Tipe data dikelompokan menjadi dua macam yaitu :
  1. Tipe dasar
  2. Tipe bentukan
 Tipe dasar merupakan tipe data yang sudah dikenal dalam kehidupan sehari-hari. Tipe ini sudah sejak zaman dahulu. Yang di antaranya adalah
  1. Tipe integer
  2. Tipe boolen
  3. Tipe char
  4. Tipe real
  5. Tipe string

Tipe Integer atau bilangan bulat adalah tipe data yang nilainya tidak memiliki titik decimal. Dalam bahasa pemrograman pascal hanya digit yang bisa muncul sebagai integer, tidak boleh ada character lain termasuk koma kecuali + dan -. Adal lima tipe data yang termasuk dalam kelompok ini, yaitu byte, short int, word, integer, long int. Ada pun operasi yang berlaku pada bilangan integer :

Operasi Aretmatika
Operasi Perbandingan
+
-
*
>=
Div
<=
Mod
=

< >

Tipe Boolean adalah nilai data yang sangat penting untuk pengambilan suatu keputusan dalam suatu program karena pada tipe ini data akan mempunyai dua nilai, yaitu true dan false. Operator yang digunakan adalah and, or, not, and xor.

Tipe Char, kata char disini digunakan untuk mendefinisikan tipe data yang nilainya merupakan himpunan karakter yang dikenal komputer seperti dalam tabel ASCII. Dalam program pascal, nilai data tipe char ditulis diantara tanda petik, misalnya ‘F’ ‘A’ ‘U’ ‘Z’ ‘I’ ‘15’ ’12, dan perlu diingat bahwa data tipe char hanya terdiri dari 1 karakter seperti ’FAUZIAH RIZKY AMALIA’ atau ‘AMIK BINA SARANA INFORMATIKA’ yang merupakan tipe data char yang lebih kompleks sehingga disebut dengan string. Ada pun operasi yang berlaku pada operasi karakter :

Operasi
=
>=

 Tipe Real adalah suatu bilangan yang berisi titik desimal. Dalam bahasa pemrograman pascal minimal harus ada satu digit sebelum titik desimal. Tidak boleh ada koma dan nilainya bisa positif atau negatif. Dapat dinyatakan dalam bentuk eksponsial dengan notasi E,sebagai contoh: 0.00017543 adalah 1.7543E-4. Terdapat 5 macam data pada tipe real, yaitu: real, single, double, extended dan comp. Operator matematika yang digunakan adalah +, -, *, / Penggunaan tipe data real ini adalah dalam perhitungan matematika, sains dimana derajat ketelitian sangat diperhatikan. Ada pun operasi yang e=verlaku pada bilangan real :


Operasi
=
>=

Tipe String adalah String adalah untaian karakter dengan panjang tertentu. Nama tipe string adalah string. Ranah tipe string sama dengan ranah tipe char. Semua konstanta string harus diapit oleh tanda petik tunggal.
Tipe bentukan adalah tipe yang di definisikan sendiri oleh pemogram (user-defined type data). Tipe bentukan disusun oleh satu atau lebih tipe dasar. 
Ada dua macam tipe bentukan :
  1. Tipe dasar yang diberi nama tipe baru
  2. Tipe terstutuktur 
Tipe dasar yang diberi nama baru adalah tipe diamana seorang peemogram ingin memberi nama baru terhadap tipe dasar tersebut yang sudah dikenal, alasan dari pemberian nama tersebut mungkin agar nama baru tersebut lebih akrab dan lebih muda diinterpresentasikan oleh orang yang membaca teks algoritma tersebut. 
Tipe terstrukutur adalah tipe yang berbentuk rekaman. Rekaman tersebut disusun oleh satu atau lebih failed, tiap failed menyimpan data dari tipe dasar tertentu atau dari tipe bentukan lain yang sudah didefinisikan sebelumnya.

Monday, 31 October 2011

Perintah-Perintah Turbo Pascal

Turbo Pascal merupakan bahasa pemograman tingkat tinggi yang dikembangakan oleh Borland International. Sebagai bahasa yang terstruktur, program pascal terdiri dari beberapa bagian statement yang menyatu membentuk suatu system pogram. Dengan bagian bentuk yang terstruktur ini maka terdapat bebrapa kelebihan yang di antaranya :
  • Mudah di pahami
  • Mudah dikoreksi bila ada kesalahan
  • Mudah dimodifikasi

Bahasa Pascal memiliki struktur program pascal sebagai berikut :
Program Bagan_Program; {*Nama Program*}
Uses .................... {*Deklarasi Piranti*}
Label .................... {*Deklarasi Label*}
Const .................... {*Deklarasi Konstanta*}
Type .................... {*Deklarasi Tipe Bentukan*}
Var .................... {*Deklarasi Perubah*}
Procedure SATU;
Procedure DUA;
Procedure Tambahan;

Begin {*awal program utama*}
Statemen-statemen dari program BAGAN_PROGRAM
End. (*Akhir Program Utama*)
Beberapa aturan penulisan progam adalah :
  • Program dapat ditulis pada kolom sembarangan.
  • Pada bagian statement selalu diawali dengan reserved word begin dan end.
  • Setiap blok statement adalah blok utama program, maka reserved word end harus diakhiri dengan tanda titik (.).
  • Setiap blok statement bukan blok utama program maka reserved word end diakhiri dengan tanda titik koma (;).
  • Beberapa statemen dapat ditulis sekaligus dalam satu baris, tapi ini tidak dianjurkan.
  • • Program tidak dipengaruhi capital atau tidaknya huruf.
  • Baris komentar diletakkan diantara tanda (* dan *) atau { dan }.
  • Kata baku tidak boleh digunakan sebagai tanda pengenal.
Beberapa tombol penting pengoperasian program adalah :
  • F1 :Berguna untuk mengaktifkan jendela pertolongan (Help)
  • F2 :Saving File Current (Tanpa mengubah nama file yang ada di layar editor)
  • F3 :Memanggil (LOAD) file program ke editor
  • F4 :Eksekusi program sampai posisi editor
  • F7 :Melacak hasil program ke dalam sub routine
  • F8 :Melompati pemanggilan sub routine
  • Alt+F1 :Memanggil jendela pertolongan yang terakhir dibaca
  • Alt+F3 :Menutup Window editor aktif
  • Alt+F5 :Memperlihatkan hasil eksekusi
  • Alt+F9 :Meterjemahkan program (Compiling)

Saturday, 15 January 2011

Program Menghitung Luas "pascal" prosedure2

Program Prosedure tanpa parameter.

PROGRAM PERTAMA;
USES CRT;
PROCEDURE HITUNGLUAS;
VAR
   P,L : INTEGER;
BEGIN
     CLRSCR;
     WRITELN('====================');
     WRITELN('LUAS PERSEGI PANJANG');
     WRITELN('====================');
     WRITE('MASUKAN PANJANG : '); READLN(P);
     WRITE('MASUKAN LEBAR   : '); READLN(L);
     WRITELN('HASIL LUAS      : ', P*L);
     WRITELN('====================');
     END;
     BEGIN
     CLRSCR;
     HITUNGLUAS;
     READKEY;
END.

Program Menghitung Luas "pascal" prosedure1

Program ini mengunakan prosedure yang mengunakan hanya parameter masukan, dimana program ini untuk menghitung luas persegi panjang.
PROGRAM KEDUA;
USES CRT;
VAR
   P,L : INTEGER;
   A,B : INTEGER;
PROCEDURE HITUNGLUAS(A,B : INTEGER);
BEGIN
     WRITELN('=======================');
     WRITELN('HASIL           : ', A*B);
     END;
     BEGIN
     CLRSCR;
     WRITELN('=======================');
     WRITELN('LUAS PERSEGI PANJANG');
     WRITELN('-----------------------');
     WRITE('MASUKAN PANJANG : '); READLN(P);
     WRITE('MASUKAN LEBAR   : '); READLN(L);
     HITUNGLUAS(P,L);
     READKEY;
END.

Program Menghitung Luas "pascal" prosedure

Program dibawah ini program menghitung luas persegi panjang dengan mengunakan prosedur yang mengunakan parameter masukan dan parameter keluaran..

PROGRAM KETIGA;
USES CRT;
VAR
P,L, LUAS : INTEGER;
PROCEDURE HITUNGLUAS(A,B : INTEGER; VAR C : INTEGER);
BEGIN
     WRITELN('=====================');
     C := A*B;
     END;
     BEGIN
     CLRSCR;
     WRITELN('=====================');
     WRITELN('LUAS PERSEGI PANJANG');
     WRITELN('---------------------');
     WRITE('MASUKAN PANJANG : '); READLN(P);
     WRITE('MASUKAN LEBAR   : '); READLN(L);
     HITUNGLUAS(P,L,LUAS);
     WRITELN('HASIL LUAS      : ', LUAS);
     READKEY;
END.

Program Menghitung Luas "pascal" function

Program dibawah ini adalah program menghitung luas persegi panjang dengan mengunakan function :

PROGRAM KEEMPAT;
USES CRT;
VAR
   P,L, HASIL : INTEGER;
FUNCTION LUAS(A,B : INTEGER) : INTEGER;
BEGIN
     WRITELN('====================');
     LUAS := A*B;
     END;
     BEGIN
     CLRSCR;
     WRITELN('====================');
     WRITELN('LUAS PERSEGI PANJANG');
     WRITELN('--------------------');
     WRITE('MASUKAN PANJANG : '); READLN(P);
     WRITE('MASUKAN LEBAR   : '); READLN (L);
     HASIL := LUAS(P,L);
     WRITELN('HASIL           : ', HASIL);
     READKEY;
END.

Nilai rata rata "pascal" prosedure

Program dibawah ini adalah program menghitung nilai rata-rata dengan menggunakan prosedure, prosedure dibawah ini adalah prosedure dari parameter masukan..

PROGRAM TIGA_SATU;
USES CRT;
VAR
   N,A,BILANGAN,TOTALBILANGAN : INTEGER;
   RATA2                      : REAL;
PROCEDURE NILAIRATA2(TOTALBILANGAN,N : INTEGER);
BEGIN
     RATA2 := TOTALBILANGAN/N;
     END;
     BEGIN
     CLRSCR;
     WRITE('MASUKAN JUMLAH BILANGAN : '); READLN(N);
     TOTALBILANGAN := 0;
     FOR A:=1 TO N DO
     BEGIN
     WRITE('MASUKAN BILANGAN KE ',A,' : '); READLN(BILANGAN);
     TOTALBILANGAN :=TOTALBILANGAN+BILANGAN;
     END;
     NILAIRATA2(TOTALBILANGAN,N);
     WRITELN('NILAI RATA - RATA : ', RATA2:1:0);
     READKEY;
END.

Nilai rata rata "pascal"

Program ini adalah program menghitung nilai rata-rata dengan mengunakan fungsi function :
bisa di lihat dibawah ini bagaimana program utama dan badan program fungsi.

PROGRAM TUGAS_DUA;
USES CRT;
VAR
   N,A,BILANGAN,TOTALBILANGAN : INTEGER;
   RATA2                      : REAL;
FUNCTION NILAIRATA2(TOTALBILANGAN,N : INTEGER): REAL;
BEGIN
     RATA2 := TOTALBILANGAN/N;
     END;
     BEGIN
     CLRSCR;
     WRITE('MASUKAN JUMLAH BILANGAN : '); READLN(N);
     TOTALBILANGAN := 0;
     FOR A := 1 TO N DO
     BEGIN
     WRITE('MASUKAN BILANGAN KE ',A,' : '); READLN(BILANGAN);
     TOTALBILANGAN := TOTALBILANGAN+BILANGAN;
     END;
     NILAIRATA2(TOTALBILANGAN,N);
     WRITELN('NILAI RATA-RATA : ',RATA2:1:0);
     READKEY;
END.

Sunday, 26 December 2010

Program Suhu "Pascal"

program suhu;
uses crt;
var
t : real;
begin
clrscr;
write('masukan suhu : '); readln(t);
if t <= 0 then write ('padat') else if (t > 0) and (t < 100) then write ('cair') else if t >= 100 then write('gas');
readkey;
end.

Program Upah Karyawan 'Pascal"

program gaji;
uses crt;
var

nama : string;
gol : char;
jjk,jamlembur : integer;
upahperjam,upahtotal : real;

const jamkerjanormal = 48;
const upahlembur = 3000;
begin
clrscr;
write('masukan nama karyawan : '); readln(nama);
write('masukan golongan karyawan : '); readln(gol);
write('masukan jumlah jam kerja karyawan : '); readln(jjk);
if gol = 'A' then
upahperjam := 4000
else
if gol = 'B' then
upahperjam := 5000
else
if gol = 'C' then
upahperjam := 6000
else
if gol = 'D' then
upahperjam := 7000;

if jjk upahtotal := jjk*upahperjam
else
jamlembur := jjk - jamkerjanormal;
upahtotal := (jamkerjanormal*upahperjam) + (jamlembur*upahlembur);

writeln('nama karyawan : ', nama);
writeln('gaji yang diterima karyawan : ', upahtotal:3:0);

readkey;
end.

program diskon_belanja "Pasxal"

program diskon_belanja;
uses crt;
var
harga, diskon, total : real;
begin
clrscr;
write('masukan total belanja : Rp.'); readln(harga);
if harga >= 100000 then
diskon := harga * 0.02;
total := harga - diskon;

writeln('jumlah diskon : Rp.', diskon:0:0);
writeln('jumlah total harga belanja : Rp.', total:0:0);
readkey;
end.