Selasa, 04 Desember 2012


pemograman pascal algoritma




“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”.
Kata Logis merupakan kata kunci dalam Algoritma. Langkah-langkah dalam Algoritma
harus logis dan harus dapat ditentukan bernilai salah atau benar.
Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu computer yang diacu dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-haripun banyak terdapat proses yang dinyatakan dalam suatu algoritma.
Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-lankah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. S
ecara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alatalat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut. Melaksanakan Algoritma berarti mengerjakan langkah-langkah di dalam Algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok.
Karena itu suatu Algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses.
Jadi suatu pemroses harus :
1. Mengerti setiap langkah dalam Algoritma
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
Mekanisme Pelaksanan Algoritma Oleh Pemroses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer,
algoritma hasrus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program.
Jadi program adalah prwujudan atau implementasi teknis Algoritma yang ditulis dalam bahasa pemrogaman tertentu sehingga dapat dilaksanakan oleh komputer.
Ciri penting algoritma
• Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas.
• Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (Ambiguitas).
• Algoritma memiliki nol atau lebih masukkan.
• Algoritma memiliki nol atau lebih keluaran.
• algoritma harus efektif (setiap langkah harus sederhana sehingga dapat dikerjakan dalam waktu yang masuk akal).
sumber : kompasiana.com

Pemrograman Pascal
Page 2
Ikhtisar
• Subprogram
• Contoh struktur program
• Fungsi & contohnya
• Prosedur & contohnyaIF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 3
Subprogram
• Menyederhanakan persoalan dengan
memecahnya menjadi sub-persoalan
• Membagi program menjadi elemenelemen yang lebih kecil
• Diperlukan mekanisme pemanggilan
subprogram dari program utama
• Jenis: fungsi dan prosedurIF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 4
Contoh Struktur Program
main program P
Function F Procedure P1
Procedure P2IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 5
Fungsi (Function)
• Analogi dengan fungsi (matematik):
– Memetakan nilai domain ke nilai range
– Karenanya mempunyai:
• Parameter
• Menghasilkan nilai
• Merupakan subprogram ber-parameter dan
mengembalikan sebuah nilai ke program
pemanggil
• Nama fungsi digunakan sebagai indikasi nilai
yang akan dikembalikan
• Tidak boleh mengubah state variabelIF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 6
Contoh Fungsi Pangkat3
function pangkat3 (N:integer):
integer;
(* fungsi yg menghasilkan pangkat3 *)
(* dari sebuah bilangan integer    *)
begin
  pangkat3 := N * N * N;
end (*pangkat3*);IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 7
Contoh Fungsi Pemanggil Pangkat3
program mainP3;
(* program pemanggil pangkat3 *)
function pangkat3 (N:integer): integer;
(* fungsi yg menghasilkan pangkat3 *)
(* dari sebuah bilangan integer    *)
begin
  pangkat3 := N * N * N;
end (*pangkat3*);
var N,P3:integer;
begin
  readln(N);
  writeln(pangkat3(N));
  N := N + 10;
  P3 := pangkat3(N);
  writeln(P3);
end (*mainP3*).IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 8
Contoh Fungsi Kabisat & Pemanggilannya
program PKabisat;
(*program menentukan apakah Y adalah tahun kabisat atau
bukan*)
function kabisat (year:integer):boolean;
begin
  kabisat := (year mod 4 = 0)and((year mod 100 <> 0) or
                (year mod 400 = 0));
end (*kabisat*);
var Y:integer;
begin
  write('Masukkan tahun : ');
readln(Y);
  if (kabisat(Y)) then
    writeln(Y,'tahun kabisat')
  else writeln(Y,' bukan tahun kabisat');
end.IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 9
Prosedur (Procedure)
• Merupakan subprogram yang melakukan
suatu sub-aksi tanpa mengembalikan
nilai
• Dapat disertai parameter (0,1,2,…):
– Input  :  passing by value, passing by name
– Output :  passing by name
– I/O  :  passing by nameIF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 10
Prosedur tanpa parameter
procedure tulisP3;
(* proc pemanggil pangkat3 *)
(* tanpa parameter         *)
(* memanggil fungsi pangkat 3 *)
var N:integer;
begin
  write('Masukkan Bilangan: ');
  readln(N);
  writeln('Pangkat 3 dari ',N,'
adalah ',pangkat3(N));
end (*tulisP3*);IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 11
Pemanggilan Prosedur tulisP3
program mainP3;
(* program pemanggil prosedur tulisp3 *)
function pangkat3 (N:integer): integer;
(* fungsi yg menghasilkan pangkat3 dari sebuah bil
integer *)
begin (*pangkat3*)
  pangkat3 := N * N * N;
end (*pangkat3*);
procedure tulisP3;
(* proc pemanggil fungsi pangkat3; tanpa parameter *)
var N:integer;
begin (*tulisP3*)
  write('Masukkan Bilangan: ');
readln(N);
writeln('Pangkat 3 dari ',N,' adalah ',pangkat3(N));
end (*tulisP3*);
begin (* main program *)
  tulisP3;
end (*main program*).IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 12
Prosedur dengan Parameter Input
program asterik;
(* Program menerima input dari user sebesar N, *)
(* lalu menuliskan bintang sejumlah N ke layar *)
procedure cetakBintang(jumlahBintang:integer);
(*I.S. : jumlah bintang terdefinisi              *)
(*F.S. : bintang dicetak sebanyak jumlahBintang  *)
(*proses: mencetak bintang sebanyak jumlahBintang*)
var i:integer;
begin (*procedure*)
for i:=1 to jumlahBintang do write('*');
end;(*procedure*)
var N:integer;
begin (*main program*)
  write('Masukkan bilangan N: ');
  readln(N);
  cetakBintang(N);
end (*main program*).IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 13
Prosedur dengan Parameter Output
procedure bacaBilangan(var bil:integer);
(*I.S.: bil tidak terdefinisi.            *)
(*F.S.: bil berupa input dari user,       *)
(*      bernilai antara 0 < bil < 21.     *)
(*Proses:menerima bilangan bil dari user, *)
(*       dg 0<bil<21 & mengoutputkan bil. *)
begin
 repeat
   write('masukkan bilangan(0<bil<21): ‘);
   readln(bil);
 until ((bil>0) and (bil<21));
end (*bacaBilangan*);IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 14
Prosedur dengan parameter I/O
procedure swap (var a,b:integer);
(*I.S.: a dan b terdefinisi     *)
(*F.S.: nilai a dan b telah bertukar *)
(*Pros: menukar nilai 2 bil a,b      *)
var temp:integer;
begin
  temp := a;
  a := b;
b := temp;
end (*swap*);IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 15
Prosedur dengan Parameter Array(1)
program tabel;
type Tab=array[1..10] of integer;
var TabInt:Tab;
procedure isiArray (var A:Tab);
(* mengisi array of integer, parameter output: array *)
var i:integer;
begin
   for i:=1 to 10 do
   begin
  write ('Masukkan elemen ke-',i,': '); readln(A[i]);
   end;
end(*isiArray*);
procedure tulisArray (A:Tab);
(* menuliskan isi array of integer, parameter input: array *)
var i:integer;
begin
   for i:=1 to 10 do
     writeln('Elemen ke-',i,' adalah ',A[i]);
end(*tulisArray*);
begin
 isiArray(TabInt);
 tulisArray(TabInt);
end.IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 16
Prosedur dengan Parameter Array (2)
• Sebagai parameter, array harus dijadikan tipe
bentukan
– type <nama_type> = array [awal..akhir] of
type_dasar;
– Contoh : type Tab = array[1..10] of integer;
• Sehingga deklarasi prosedur dengan
parameter array menjadi:
– procedure isiArray (var A:Tab);
• Bentuk ini tidak bisa digunakan:
– procedure isiArray(var A:array[1..10] of
integer);IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 17
Scope Variabel
program main;
var i:integer;     (* global *)
procedure P;
var i:integer; (* lokal *)
begin
  i := 5;          (* i lokal *)
end(*P*);
begin
  i := 10;         (* i global *)
  ...
end(*main*).IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 18
Bad Code!!
program Scope;
var Num1,Num2,Sum:integer;
procedure FindSum;
begin
Sum := Num1 + Num2;
end;
begin
  Num1 := 10;
  Num2 := 15;
  FindSum;
writeln('The sum is',Sum);
end(*Scope*).IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 19
Better one….!
program Scope;
var Num1,Num2,Sum:integer;
begin
  Num1 := 10;
  Num2 := 15;
  FindSum(Num1,Num2,Sum);
  writeln('The sum is',Sum)
end(*Scope*).
  procedure FindSum(A,B:integer; var C:integer);
begin
  C := A + B;
end;IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 20
Parameter Formal vs Aktual
program Scope;
var Num1,Num2,Sum:integer;
procedure FindSum (A,B:integer;
                   var C:integer);
begin
A := B + C;
end;
begin
  Num1 := 10;
  Num2 := 15;
  FindSum(Num1,Num2,Sum);
  writeln('The sum is',Sum);
end(*Scope*).
FORMAL
A,B,C
AKTUAL
Num1,Num2,
Sum
Passing by
NameIF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 21
Parameter Formal vs Aktual
program Scope;
var Num1,Num2,Sum:integer;
procedure FindSum (A,B:integer;
                   var C:integer);
begin
A := B + C;
end;
begin
  Num1 := 10;
  Num2 := 15;
  FindSum(10,15,Sum);
  writeln('The sum is',Sum);
end(*Scope*).
FORMAL
A,B,C
Passing by
Value
AKTUAL
10,15,SumIF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 22
Latihan
Buatlah subprogram X_pangkat_Y
yang menghitung nilai X
Y
, dan sertai
dengan program utama yg
memanggilnya. (nama program:
mainXY)
Buatlah subprogram sumArray yang
menampilkan hasil penjumlahan 2
array: A & B. Buat juga program
utama pemanggilnya.
     (nama program: mainArray)IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 23
Bersiap utk Kuis!
• Lakukan standar persiapan diri untuk
kuis
• Akan segera dilaksanakan kuis 10 menit!
• Kumpulkan kuis dengan tertib sesuai
prosedur yang diajarkan.IF-ITB/DA/2005
IF1101–Pengantar Teknologi Informasi
Page 24
Soal Kuis
• Buatlah sebuah program (maniptabel.pas)
yang:
– Mendefinisikan array A,B,C berukuran 10 sel dan
berisi bilangan integer
– Mengisi array A dan B berdasarkan masukan user
– Menjumlahkan isi kedua array tsb dan
menyimpannya di array C
– Menuliskan isi array A,B dan C
• Catatan: Gunakan sebanyak mungkin
subprogram utk melakukan hal-hal tsb.

sumber : wikipedia.com