Wednesday, June 27, 2012

SOAL - SOAL LATIHAN ALJABAR LINEAR

TUGAS MANDIRI
SOAL - SOAL LATIHAN ALJABAR LINEAR
MATA KULIAH : ALJABAR LINEAR


NAMA : HENDRIK SUDEFRI S
NPM : 110210095



UNIVERSITAS PUTERA BATAM
2012

KATA PENGANTAR
Puji dan syukur penulis panjatkan ke hadirat Allah SWT yang telah memberikan kekuatan dan niat baik pada penulis di dalam penyempurnaan dari tulisan ini tepat pada waktunya dan demi kepentingan nilai ujian akhir semester.
Makalah ini berisikan atas : Kumpulan Soal Latihan Dasar-Dasar Aljabar Linear.
Penulis sadar bahwa dalam menyelesaikan tulisan ini penulis tidak dapat menyelesaikannya tanpa dukungan materi maupun moril yang diberikan oleh banyak pihak. Oleh karena itu, secara khusus penulis ingin menyampaikan terima kasih kepada:
1. Ibu Desi Sariani,SPd selaku dosen pengampu yang bersedia merelakan waktu untuk memberikan bimbingan dan perbaikan-perbaikan yang berguna untuk keberhasilan penulisan ini.
2. Ibunda dan ayahanda yang senantiasa memberikan dukungan berupa do’a maupun dana yang dipergunakan dalam menulis tulisan ini.
3. Segenap pihak yang tidak bisa disebutkan satu per satu yang terlibat secara langsung maupun tidak langsung dalam penulisan ini.
Akhir kata, penulis berharap semoga tulisan ini dapat bermanfaat bagi semua kalangan pembaca. Oleh karenanya, penulis mengharapkan saran dan kritik untuk perbaikan tulisan ini agar menjadi lebih sempurna. Terima kasih untuk semua pihak yang telah memberi dukungan dalam penulisan Makalah ini.
Batam, Juni 2012

Penulis

DAFTAR ISI

Kata Pengantar ....................................................................................................... 2
Daftar Isi ................................................................................................................. 3
Bab I ........................................................................................................................ 4
Pendahuluan ............................................................................................................ 4
1.1 Latar Belakang ........................................................................................... 4
1.2 Landasan Teori .......................................................................................... 5
Bab II ...................................................................................................................... 7
Kumpulan Soal Latihan Dasar-Dasar Aljabar Linear ............................................. 7
2.1 Operasi-operasi Matriks ............................................................................. 7
Bab III ..................................................................................................................... 40
Penutup .................................................................................................................... 40
Kesimpulan .............................................................................................................. 40
Daftar Pustaka







BAB I
PENDAHULUAN
1.1 LATAR BELAKANG
Penyelesaian persamaan linier dalam bentuk matriks dapat dilakukan melalui beberapa cara, yaitu dengan eliminasi Gauss atau dapat juga dengan cara eliminasi Gauss-Jordan. Namun, suatu sistem persamaan linier dapat diselesaikan dengan eliminasi Gauss untuk mengubah bentuk matriks teraugmentasi ke dalam bentuk eselon-baris tanpa menyederhanakannya. Cara ini disebut dengan substitusi balik.
Sebuah sisitem persamaan linier dapat dikatakan homogen apabila mempunyai bentuk :
a11x1 + a12x2 + ... + a1nxn = 0
a21x1 + a22x2 + ... + a2nxn = 0
am1x1 + am2x2 + ... + amnxn = 0
Setiap sistem persamaan linier yang homogen bersifat adalah tetap apabila semua sistem mepunyai x1 = 0 , x2 = 0 , ... , xn = 0 sebagai penyelesaian. Penyelesaian ini disebut solusi trivial. Apabila mempunyai penyelesaian yang lain maka disebut solusi nontrivial.
Matriks dapat dikatakan Eselon-baris apabila memenuhi persyaratan berikut :
1.) Di setiap baris, angka pertama selain 0 harus 1 (leading 1).
2.) Jika ada baris yang semua elemennya nol, maka harus dikelompokkan di baris akhir dari matriks.
3.) Jika ada baris yang leading 1 maka leading 1 di bawahnya, angka 1-nya harus berada lebih kanan dari leading 1 di atasnya.
4.) Jika kolom yang memiliki leading 1 angka selain 1 adalah nol maka matriks tersebut disebut Eselon-baris tereduksi

1.2 LANDASAN TEORI
Eliminasi Gauss adalah suatu cara mengoperasikan nilai-nilai di dalam matriks sehingga menjadi matriks yang lebih sederhana (ditemukan oleh Carl Friedrich Gauss). Caranya adalah dengan melakukan operasi baris sehingga matriks tersebut menjadi matriks yang Eselon-baris. Ini dapat digunakan sebagai salah satu metode penyelesaian persamaan linear dengan menggunakan matriks. Caranya dengan mengubah persamaan linear tersebut ke dalam matriks teraugmentasi dan mengoperasikannya. Setelah menjadi matriks Eselon-baris, lakukan substitusi balik untuk mendapatkan nilai dari variabel-variabel tersebut.
Eliminasi Gauss-Jordan adalah pengembangan dari eliminasi Gauss yang hasilnya lebih sederhana. Caranya adalah dengan meneruskan operasi baris dari eliminasi Gauss sehingga menghasilkan matriks yang Eselon-baris tereduksi. Ini juga dapat digunakan sebagai salah satu metode penyelesaian persamaan linear dengan menggunakan matriks. Caranya dengan mengubah persamaan linear tersebut ke dalam matriks teraugmentasi dan mengoperasikannya. Setelah menjadi matriks Eselon-baris tereduksi, maka langsung dapat ditentukan nilai dari variabel-variabelnya tanpa substitusi balik.
Dua buah matriks dikatakan sama apabila matriks-matriks tersebut mempunyai ordo yang sama dan setiap elemen yang seletak sama. Jika A dan B adalah matriks yang mempunyai ordo sama, maka penjumlahan dari A + B adalah matriks hasil dari penjumlahan elemen A dan B yang seletak. Begitu pula dengan hasil selisihnya. Matriks yang mempunyai ordo berbeda tidak dapat dijumlahkan atau dikurangkan.
Jumlah dari k buah matriks A adalah suatu matriks yang berordo sama dengan A dan besar tiap elemennya adalah k kali elemen A yang seletak. Didefinisikan: Jika k sebarang skalar maka kA = A k adalah matriks yang diperoleh dari A dengan cara mengalikan setiap elemennya dengan k. Negatif dari A atau -A adalah matriks yang diperoleh dari A dengan cara mengalikan semua elemennya dengan -1. Untuk setiap A berlaku A + (-A) = 0. Bab II akan menjelaskan tentang operasi-operasi matriks dan vektor.















BAB II

KUMPULAN SOAL LATIHAN DASAR-DASAR ALJABAR LINEAR

2.1.OPERASI-OPERASI MATRIKS
LATIHAN 1.2
Ø Soal no.1 matriks-matriks 3 x 3 yang berbentuk baris eselon tereduksi :





Ø Soal no.2 matriks-matriks 3 x 3 yang berbentuk baris eselon :



Ø Soal no.6 penyelesaian matriks-matriks dengan eliminasi Gauss-Jordan

· Soal 6.c matriks 4 variabel :

x – y + 2z - w = -1
2x + y - 2z - 2w = -2
-x + 2y - 4z + w = 1
3x - 3w = -3

2 B1+B2 = B2, B1+B3 =B3
-3B1+B4 = B4 1/3B2 =B2
-
B2+B1=B1 -B2+B3=B3,-3B2+B4=B4


x - w = -1 y – 2z = 0 z = a
x = w - 1 y = 2z w = b
x = b – 1 y = 2a

· Soal 6.d matriks 3 variabel :
-2b + 3c = 1
3a + 6b – 3c = -2
6a + 6b + 3c = 5

⅓ B1 =B1
-1/2 B2 =B2 -6B1 + B3 =B3
6B2 + B3 =B3
-2B2 + B1 = B1
a + c = ⅓
b – 3/2 c = -2
0 ≠ 6
Tidak Konsisten

Ø Soal no.8 penyelesaian matriks-matriks dengan eliminasi Gauss-Jordan
· Soal 8.a matriks 2 variabel :
2X1 – 3X2 = -2
X1 + X2 = 1
3X1 + 2X2 = 1

½ B1 = B1
-2B1 + B2 = B2 -3B1 + B3 = B3
¼ B2 =B2
-13/2 B2 + B3 =B3
X1 – 3/2 = -1
X2 =
0 ≠ Tidak Konsisten

· Soal 8.b matriks 3 variabel :

3X1 – 2X2 – 2X3 = -15
5X1 + 3X2 + 2X3 = 0
3X1 + X2 + 3X3 = 11
-6X1 - 4X2 + 2X3 = 0




⅓ B1 = B1


-5B1 + B2 = B2, -3B1 + B3 = B3 dan 6B1 + B4 = B4

B2 + B3 =B3
- B2 + B1 = B1

X1 + 7X3 = 45 X2 - 11X3 = -75 -7X3 = -49
X1 = 45 - 7X3 X2 = 11X3 – 75 X3 = -49/-7
X1 = 45 – 7(7) X2 = 11(7) – 75 X3 = 7
X1 = 45 – 49 X2 = 77 – 75
X1 = -4 X2 = 2

· Soal 8.c matriks 2 variabel :
4X1 – 8X2 = 12
3X1 – 6X2 = 9
-2X1 + 4X2 = -6


-3B1 + B2 =B2 2B1 +B2 = B2

X1 – 2X2 = 3
X1 = 2X2 + 3
X1 = 2k + 3 dan X2 = k


· Soal 8.d matriks 4 variabel :

10y – 4z + w = 1
x + 4y – z + w = 2
3x + 2y + z + 2w = 5
-2x – 8y + 2z – 2w = -4
x – 6y + 3z = 1





-3B1 + B3 = B3, 2B1 + B4 =B4 –B1 + B5 =B5

10B2 + B4 =B4

B3 +B1 =B1 B3 +B2 =B2




x + w = y + w = z = a
x = - w y = - w w = b
x = - b y = - b
Ø Soal no.10 penyelesaian matriks-matriks dengan eliminasi Gauss-Jordan
Soal 10.a matriks 3 variabel :
· 5X1 – 2X2 – 6X3 = 0
-2X1 + X2 + 3X3 = 1

B1=B1 2B1+B2=B2

X1 – X2 – X3 = 0 X2 + X3 = 1 X3 = k
X1= X2 – X3 X2 = 1 – X3
X1 = (5 – 27 k) - k X2 = (1 – k) 5
X1 = 2 - k - k X2 = 5 – 27k
X1 = 2 - k
X1 = 2 - 12k
· Soal 10.b matriks 4 variabel :

X1 – 2X2 + X3 – 4X4 = 1
X1 + 3X2 + 7X3 + 2X4 = 2
X1 – 12X2 - 11X3 – 16X4 = 5
-B1+B2=B2, -B1+B3=B3
B2 = B2
-10B2+B3=B3, 2B2+B1=B1
X1 – X2 – X4 = X2 + X3 + X4 = 0 ≠ 6
Tidak Konsisten
· Soal 10.c matriks 5 variabel :

w + 2x – y = 4
x – y = 3
w + 3x – 2y = 7
2u + 4v + w + 7x = 7


B1 = B1


-3B3+B4=B4, 2B3+B2=B2
B3 + B1 = B1

u + 2v + 3y = -6 w + y = -2 x – y = 3 v = k
u = -2k – 3j – 6 w = -j -2 x = j + 3 y = j

LATIHAN 1.3
Soal no.1 anggap A,B,C,D dan E adalah matriks-matriks dengan ukuran-ukuran sebagai berikut :
A (4 x 5) B (4 x 5) C (5 x 2) D (4 x 2) E (5 x 4)

Mencari ukuran matriks dari operasi-operasi yang dimilikinya :
a). B*A = (4 x 5) * (4 x 5) Tidak Terdefinisi
b). A*C+D = (4 x 5) * (5 x 2) + (4 x 2)
= (4 x 2) + (4 x 2)
= (4 x 2)
c). A*E+B = (4 x 5) * (5 x 4) + (4 x 5)
= (4 x 4) + (4 x 5) Tidak Terdefinisi
d). A*B+B = (4 x 5) * (4 x 5) + (4 x 5) Tidak Terdefinisi
e). E(A + B) = E*A + E*B
= (5 x 4) * (4 x 5) + (5 x 4) * (4 x 5)
= (5 x 5) + (5 x 5)
= (5 x 5)
f). E(A*C) = (5 x 4) ((4 x 5) * (5 x 2))
= (5 x 4) * (4 x 2)
= (5 x 2)
g). A = (4 x 5) * (4 x 5) Tidak Terdefinisi
h). ( +E)D = ((5 x 4) + (5 x 4)) * (4 x 2)
= (5 x 4) * (4 x 2)
= (5 x 2)

Soal no.3 Tinjau matriks-matriks :
A= , B= , C= , D= , E=

a). D + E = + =
b). D – E = – =
c). 5A = 5 =
d). -7C = -7 =
e). 2B – C = 2 - Tidak Terdefinisi
f). 4E – 2D = 4 - 2 = -
=
g). -3(D+2E) = -3D + (-6)E = -3 + (-6)
= +
=
h). A – A = - =
i). tr(D) D =
tr(D) = 1 + 0 + 4 = 5
j). tr(D – 3E) = tr(D) – tr(3E)
D = 3E = 3 =
tr(D) – tr(3E) = (1 + 0 + 4) – (18 + 3 + 9)
= 5 – 30 = -25
k). 4 tr(7B)
7B = 7 =
4 tr(7B) = 4 (28 + 14) = 4 (42) = 168
l). tr(A) A =

tr(A) = Tidak Terdefinisi
LATIHAN 1.4
Soal no.1 anggap
A= B= C= a = 4 b = -7

Tunjukan bahwa :

a).A + (B +C) = (A + B) + C
+ + = + +
=

b).(AB) C = A (BC)
x x = x x
=

c).(a+b) C = aC +bC
(4 – 7) = 4 -7
-3 = -
=

d).a (B – C) = aB - aC
4 - = 4 - 4
4 = -
=
Soal no.7 carilah nilai A :
a). = B1=B1
-3B1-B2=B2
B2+B1=B1 B2=B2
A =

b). = B1=B1
-B1+B2=B2
B2+B1=B1 3B2=B2
7A = A =


c). = B1=B1 -5B1+B2=B2
B2+B1=B1 3B2=B2
5A = A =

d). = -B1=B1
-4B1+B2=B2
2B2+B1=B1 B2=B2

= 2A – I = -
2A = A =

LATIHAN 2.1

Soal no.3 : det = 12 – (-10) = 22

Soal no.8 : det = (-8 -42 + 240) – (18 + 32 + 140)
= 190 – 190

= 0
LATIHAN 2.2
Perhitungan deterrminan dari matriks-matriks denga mereduksi matriks menjadi bentuk baris eselon :
Soal no.6 : det = - 2B1+B2=B2
= - -5B1+B3=B3 = - B3 pindah B2 = -
= - B2=B2 = - 2B2+B3=B3 = -
= - = - (1) = -

Soal no.7 : det = -
= -3 2B2+B3=B3 = - 3 -3B2+B3=B3 = - 3
= (-3) (-11) = (-3) (-11) (1) = 33

Soal no.12 : diketahui = -6 ,carilah :

a). = -6 b). = 72

c). =-6
d). = 18

LATIHAN 2.3

Soal no.1 : periksalah det (kA) = k’’det (A)
a).A = , k = 2
det 2 = det
det = (-4 – 6 )
-16 – 24 = 4 (-10)
-40 = -40

b). A = , k = -2
det -2 = - det
det = - (20 - 1 + 36) – (6 + 8 – 15)
(-160 + 8 – 288) – (-48 – 64 + 120) = -8 (55 – (-1))
-448 = -448
Soal no.4 : dengan teorema 2.3.3 tentukan matriks yang dapat dibalik. (matriks bujur sangkar A dapat dibalik jika dan hanya jika (A) ≠ 0)
a). dapat dibalik.
b). tidak dapat dibalik.
c). tidak dapat dibalik.
d). tidak dapat dibalik.
LATIHAN 2.4
Soal no.11 : menentukan nilai dengan teorema 2.4.2.
A = adj (A) =
det A = =(-6 + 10 + (-20)) – (-10 + 8 + (-15)) = -16 – (-17) = 1
= adj (A) =
=

LATIHAN 3.1
Soal no.6 : anggap :
u = (-3,1,2) v = (4,0,-8) w = (6,-1,-4)
a). v – w = ( - , - , - )
= (4 – 6, 0 – (-1), -8 – (-4))
= (-2,1,-4)
b). 6u +2v = 6u = (-18,6,12) 2v = (8,0,-16)
6u +2v = ( + , + , + )
= (-18 + 8, 6 + 0, 12 – 16)
= (-10,6,-4)
c). –v + u = ( + , + , + )
= (-4 + (-3), 0 +1, 8 + 2)
= (-7,1,10)
d). 5 (v – 4u) =
4u = (-12,4,8)
5 (v – 4u) = 5 ( - , - , - )
= 5(4 – (-12), 0 – 4, -8 – 8)
= 5(16,-4,-16) = (80,-20,-80)
e). -3 (v – 8w) =
8w = (48,-8,-32)
-3 (v – 8w) = -3 ( - , - , - )
= -3 (4 – 48, 0 – (-8), -8 – (-32))
= -3 (-44,8,24)
= (132,-24,-72)
f). (2u - 7w) – (8v + u) =
2u – 7w = ( - , - , - )
= (-6 – 42, 2 – (-7), 4 – (-28)
= (-48,9,32)
8v + u = ( + , + , + )
= (32 + (-3), 0 + 1, -64 + 2)
= (29,1,-62)

(2u - 7w) – (8v + u) = (-49 - 29, 9 – 1, 32 – (-62))
= (-78,8,94)
Soal no.7 :
u = (-3,1,2) v = (4,0,-8) w = (6,-1,-4)
Carilah nilai x dari : 2u – v + x = 7x + w
(-6 -4, 2 – 0, 4 – (-8) + x = 7x + (6,-1,-4)
(-10,2,12) - (6,-1,-4) = 7x – x
(-16,3,16) = 6x
x = ( )
Soal no.8 :
u = (-3,1,2) v = (4,0,-8) w = (6,-1,-4)

Carilah nilai skalar berikut ini :
u + v + w = (2,0,4)
(-3,1,2) + (4,0,-8) + (6,-1,-4) = (2,0,4)
= 2 = -1 = 2
LATIHAN 3.2
Soal no.2 : cari jarak antara P1 dan P2 :
a). P1 = (3,4) dan P2 = (5,7)
d =
=
=
=


b). P1 = (-3,6) dan P2 = (-1,-4)
d =
=
=
= = 2

c). P1 = (7,-5,1) dan P2 = (-7,-2,-1)
d =
=
= =
d). P1 = (3,3,3) dan P2 = (6,0,3)
d =
=
=
= = 3

Soal no.3 : anggap :
u = (2,-2,3) v = (1,-3,4) w = (3,6,-4) , hitunglah :
a). =
=
=
=

b). + = +
= +
= +
= +

c). + = + 2
= + 2
= + 2
= + 2
= + 2

d).
=
=
=

e). w = (w1,w2,w3)
= (3,6,-4)
= (3,6,-4)
= (3,6,-4) = ( )

f). = w = (3,6,-4) = 1
Soal no.4 : anggap : v = (-1,2,5) cari skalar k sehingga = 4
= = = =
4 =
k =

LATIHAN 3.3
Soal no.1 : carilah nilai u .v
a).u = (2,3) dan v = (5,-7)
u.v = u1.v1 + u2.v2 = 10 + (-21) = -11

b). u = (-6,-2) dan v = (4,0)
u.v = u1.v1 + u2.v2 = -24 + 0 = -24

c).u = (1,-5,4) dan v = (3,3,3)
u.v = u1.v1 + u2.v2 + u3.v3 = 3 + (-15) + 12 = 0

d). u = (-2,2,3) dan v = (1,7,-4)
u.v = u1.v1 + u2.v2 + u3.v3 = -2 + 14 + (-12) = 0

LATIHAN 4.1
Soal no.2 : anggap u = (-3,2,1,0), v = (4,7,-3,2) dan w = (5,-2,8,1). Carilah vektor x yang memenuhi :
5x – 2v = 2(w – 5x)
5x - 2(4,7,-3,2) = 2w – 10x
5x - (8,14,-6,4) = 2(5,-2,8,1) -10x
5x + 10x = (10,-4,16,2) + (8,14,-6,4)
15x = (18,10,10,6)
x = ( ) = ( )

Soal no.6 : anggap u = (4,1,2,3), v = (0,3,8,-2) dan w = (3,1,2,2)
a). =
=
=
=
b). + = +
= +
= +
= +
c). +
= + 2
= + 2
= + 2
= + 2 = + 2
d).
=
=
=
=
=
e). w = (w1,w2,w3,w4)
= (3,1,2,2)
= (3,1,2,2)
= (3,1,2,2) = (3,1,2,2)
= ( , , , )
f). = w = (3,1,2,2) = 1
Soal no.11 : jarak euclidean antara u dan v
a).u = (1,-2) dan v = (2,1)
d (u,v) =
=
= =

b).u = (2,-2,2) dan v = (0,4,-2)
d (u,v) =
= =

c).u = (0,-2,-1,1) dan v = ( -3,2,4,4)
d (u,v) =
= =

d).u = (3,-3.-2,0,-3) dan v = (-4,1, -1,5,0)
d (u,v) =
=
= = 10






BAB III
PENUTUP

3.1. KESIMPULAN
Sebuah sistem persamaan linier homogen dengan jumlah peubah yang lebih banyak dari pada jumlah persamaan mempunyai tak hingga banyaknya penyelesaiannya.
Dengan menganggap ukuran matriks-matriks di bawah adalah sedemikian sehingga operasi yang ditunjukkan bisa dilakukan. Aturan-aturan aritmetika :
1. A + B = B + A (komutatif untuk penjumlahan)
2. A (B + C) = (A + B) +C (asosiatif untuk penjumlahan)
3. A (BC) = (AB) C (asosiatif untuk perkalian)
4. A (B + C) = AB + BC (distributif kiri)
5. (B + C) A = BA + BC (distributif kanan)
6. A (B - C) = AB - BC (distributif kiri)
7. (B - C) A = BA - BC (distributif kanan)
8. a (B + C) = aB + aC (distributif kiri)
9. a (B - C) = aB - aC (distributif kiri)
10. (a + b) C = aC + bC (distributif kanan)
11. (a - b) C = aC – bC (distributif kanan)
12. a (bC) = (ab) C
13. a (BC) = (aB) C = B (aC)
14. dll.


DAFTAR PUSTAKA
Anton, Howard, Dasar-Dasar Aljabar Linear Jilid 1, Penerbit Interaksa, Batam Centre, 2000.
http://en.wikipedia.org/wiki/Categori : Aljabar Linear Tentang Operasi-Operasi Matriks

Monday, June 18, 2012

Pemrograman Terstruktur Komputer


KATA PENGANTAR


Puja dan Puji Syukur hanya milik Tuhan Yang Maha Esa, yang telah memberikan kasih sayang-Nya dan meluangkan waktu kepada penulis untuk menyelesaikan Tugas Mandiri  Pemrograman Terstruktur Komputer. Penulis juga ucapkan terima kasih kepada Teman-teman yang telah membantu dalam penyelesaian tugas ini,
Tugas Mandiri  tentang " Pemrograman Terstruktur Komputer " ini diajukan untuk memenuhi salah satu tugas UAS ( Ujian Akhir Semester) .
Penulis sangat menyadari bahwa Tugas Mandiri  ini masih jauh dari sempurna. Oleh karena itu, penulis mengharapkan kritik dan saran baik secara tertulis ataupun secara lisan, khususnya kepada Dosen mata kuliah Pemrograman Terstruktur Komputer agar penulis bisa mengembangkan ilmu pengetahuannya.








Batam , 21  May  2012


                                                                                              Hendrik Sudefri s






Daftar isi
KATA pengantar.............................................................................................. 1
daftar isi............................................................................................................ 2
BAB I
pendahuluan.................................................................................................... 3
I.1 LATAR BELAKANG...................................................................................... 3
 I.2 RUANG LINGKUP.................................................................................... 4
I.3 RUMUSAN MASALAH............................................................................. 4
I.4 TUJUAN...................................................................................................... 4
I.5 MANFAAT................................................................................................. 5
BAB II PEMBAHASAN
       II.1 ELEMEN – ELEMEN BAHASA DALAM PASCAL…………………..6
       II.2 STRUKTUR PROGRAM PASCAL……………………………………12
       II.3 PENGULANGAN………………………………………………………14
        II.4 PROSEDUR DAN FUNGSI ...…………………………………………………..18
BAB III PENUTUP
      III.1 KESIMPULAN…………………………………………………………26
DAFTAR PUSTAKA










BAB I
PENDAHULUAN

I.1 LATAR BELAKANG
        Bahasa program  merupakan suatu wahana untuk menuangkan pikiran manusia yang dapat dimengerti oleh mesin komputer sehingga  bernilai guna. Suatu bahasa program akan terikat aturan dari  paradigma bahasa. Ada berbagai macam paradigma bahasa :  Prosedural, Fungsional, Deklaratif, Object Oriented, Konkuren.
Perlu diperhatikan perbedaan antara belajar bahasa program dengan belajar memprogram!!! Belajar bahasa program hanya belajar tentang sintak (aturan) dari bahasa sedangkan belajar memprogram akan tercakup beberapa hal yang didalamnya terkandung tentang belajar bahasa program itu sendiri.  Yang harus diperhatikan oleh mahasiswa yang sedang belajar memprogram, yaitu :
Simulasi , sensibilitas terhadap masalah dan kemungkinan solusi. Kegiatan dilakukan di kelas, melalui permainan. Contoh : Mengurutkan tinggi badan mahasiswa dari tinggi  ke pendek atau sebaliknya. Permainan dapat dilakukan secara manual maupun dengan komputer.
Analisis masalah secara lebih formal dan membuat spesifikasi dan algoritma dalam notasi yang ditetapkan. Mahasiswa harus menuliskan solusi algoritmiknya dalam notasi standar di kelas. Penulisan notasi algoritmik bertujuan untuk menyeragamkan  pemahaman tentang algoritma program yang terbebas dari sintak (aturan) penulisan bahasa program .
Menulis program, yaitu menterjemahkan notasi algoritmik ke dalam sintak bahasa program.
Debugging dan menguji coba program. Hal ini bertujuan untuk mendapatkan program yang benar. Program dikatakan benar jika terbebas dari salah lojik dan  sintak bahasa. Secara ideal  mahasiswa hanya diberi kesempatan untuk me-run program sebanyak 2 kali : pertama untuk membersihkan program dari kesalahan sintak dan kedua untuk mendapatkan program benar. Pada tahap ini diharapkan tidak terjadi kesalahan lojik jika analisa benar.
Mengamati peristiwa eksekusi, perlu dilakukan untuk meningkatkan kepercayaan  bahwa jika analisa benar maka sisa pekerjaan menjadi mudah. Pada pemrograman prosedural, aspek ini penting untuk memahami fenomena eksekusi dan perubahaan nilai suatu struktur data.
Membaca  program : orang akan dapat menulis dengan baik kalau sering membaca. Hal ini juga berlaku dalam memprogram. Kegiatan yang dapat dilakukan di kelas adalah dengan saling tukar menukar teks algoritma, dan saling mengkritik algoritma teman. Mahasiswa harus berlatih sendiri pada kegiatan belajar bersama.
Membuktikan kebenaran program secara formal , satu-satunya hal yang menjamin kebenaran, tetapi kontradiktif dan sulit diterapkan dalam kehidupan sehari-hari. Program yang hanya lima baris pembuktiannya bisa sehalaman, sehingga seringkali tidak pernah diterapkan dalam aplikasi nyata.
Makalah ini akan membahas tentang algoritma dan pemrograman dalam Bahasa Pascal.

I.2 RUANG LINGKUP
Pada penulisan makalah ini, Saya membatasi permasalahan, yakni seputar runtunan, pemilihan (satu kasus, dua kasus, tiga kasus/lebih, case), pengulangan (for_do, while_do, repeat_until), prosedur, fungsi, dan larik.

I.3 RUMUSAN MASALAH
Apa saja elemen-elemen bahasa dalam Pascal ?
Bagaimana struktur program Pascal ?
Apa yang dimaksud dengan struktur runtunan, pemilihan, pengulangan, prosedur, fungsi, dan larik ?
Bagaimana algoritma dan program dari struktur tersebut ?
I.4 TUJUAN
Adapun tujuan pembuatan makalah ini adalah :
Untuk melengkapi nilai tugas mata kuliah Algoritma dan Pemrograman 1
Sebagai media untuk berbagi pengetahuan
Untuk mengkaji kembali pengetahuan yang telah saya dapat pada kuliah Algoritma dan Pemrograman 1
I.5 MANFAAT
Dengan adanya makalah ini diharapkan mahasiswa/i dapat lebih memahami dan mengerti tentang Algoritma dan dapat Pemrograman.
























BAB II
PEMBAHASAN

II.1 ELEMEN – ELEMEN BAHASA DALAM PASCAL
        Pascal adalah bahasa pemrograman yang pertama kali di buat oleh Profesor Niklaus Wirth, seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971. Dengan mengambil nama dari matematikawan Perancis, Blaise Pascal, yang pertama kali menciptakan mesin penghitung, Profesor Niklaus Wirth membuat bahasa Pascal ini sebagai alat bantu untuk mengajarkan konsep pemrograman komputer kepada mahasiswanya. Selain itu, Profesor Niklaus Wirth membuat Pascal juga untuk melengkapi kekurangan-kekurangan bahasa pemrograman yang ada pada saat itu. Sebelum kita membuat sebuah program, maka terlebih dahulu kita harus mengerti tentang elemen- elemen bahasa (Language elements) Turbo Pascal, seperti Reserved word, Statement, Type, Constants, Variabel, Tipe data, Label, Operator, dan lain-lain.
a. Reserved Word
Reserved word adalah kata – kata yang tidak dapat dijadikan menjadi identifier (pengenal), karena kata – kat tersebut sudah mempunyai arti tersendiri dalam Turbo Pascal. Adapun kata – kata yang termasuk ke dalam identifier adalah:
And, asm, array, begin, case, const, constructor, destructor, div, do, downto, else, end, exports, file, for, function, goto, if, implementation, in, inherited, inline, interface, label, library, mod, nil, not, object, of, or,packed, procedure, program, record, repeat, set, shl, shr, string, then, to, type, unit, until, uses, var, while, with, xor.
b. Statement
Statement adalah salah satu dari berikut ini:
-          Assignment (:=)
-          Begin..end
-          Case..of..else..end
-          For..to/downto..do
-          Goto
-          If..then..else
-           Inline(..)
-          Procedure call
-          Repeat..until
-          While..do
-          With..do

c. Type
Bentuk umum:
Type
Pengenal  = tipe data;
……….
Pengenal = tipe data;

d. Const (Constant)
Constant yang disingkat dengan const adalah nilai konstanta ( nilai tetap) yang dipasang dalam program.
Bentuk umum:
Const
Pengenal = ekspresi
………
Pengenal = ekspresi
Const
Pengenal: type = nilai;
………..
Pengenal: type = nilai;

e. Var ( Variabel)
Jika constant adalah nilai tetap, maka Variabel adalah nilai yang isinya dapat berubah – ubah. Dalam program, Variabel disingkat menjadi Var.
Bentuk umum:
Var
Pengenal, … pengenal : Tipe data;
……
Pengenal,… pengenal: Tipe data;

f. Tipe Data
Tipe atau jenis data dalam Turbo Pascal dibagi kedalam 6 kelompok besar, antara lain:
1.      Tipe simple:
Tipe ordinal : dibagi kedalam 5 tipe:

Tipe
Range
Size
Shortint
128..127
8-bit
Integer
-32768..32767
16-bit
Longint
-2147483648..2147483647
32-bit
Byte
0.255
8-bit
Word
0.65535
16-bit

Tipe integer : dibagi kedal 5 bagian yaitu:

Tipe
Range
Format
Shortint
-128..127
8-bit bertanda
Integer
-32768..32767
16-bit bertanda
Longint
-2147483648..2147483647
32-bit bertanda
Byte
0.255
8-bit tak bertanda
Word
0.65535
16-bit tak bertanda

Catatan : Semua tipe integer adalah tipe ordinal.

Tipe real : dibagi kedalm 5 bagian yaitu:

Tipe
Range
Digit
Byte
Real
2.9e-39..1.7e38
11 - 12
6
Single
1.5e-45..3.4e38
7 - 8
4
Double
5.0e-324..1.7e308
15 - 16
8
Extended
3.4e4932..1.1e4932
19 - 20
10
comp
-9.2e18..9.2e18
19 - 20
8

Turbo Pascal juga menyediakan 2 model floating-point:
-          Software floating point,{$N-}
-          80×87 floating point, {$N+}

Tipe char
Char adalah semua tombol yang terdapat pada keyboard, atau lebih lengkapnya semua karakter yang       terdapat pada kode ASCII.
Apabila tipe char dijadikan konstanta, maka karakter yang dimasukkan harus diapit oleh tanda kutip  satu. Dan apabila karakter tersebut berupa tanda kutip satu, maka harus diapit oleh dua tanda kutip satu.
Tipe Boolean
Ada empat yang termasuk kedalam tipe Boolean :Boolean, wordbool, longbool, bytebool. Keempat tipe Boolean tersebut adalah tipe untuk kompatibilitas dengan Windows.

Tipe enumerated
Bentuk umum:
Type
Nama = (pengenal,
Pengenal,…,
Pengenal  );

Tipe subrange
Bentuk umum:
Constant1 .. constant2

2.      Tipe String
String adalah kumpulan dari beberapa karakter dan panjangnya tidak boleh melebihi 255 karakter. Jika string mengandung tanda kutip satu, maka tanda kutip tersebut harus diberi tanda kutip lagi.
Bentuk umum:
String [ constant ]
Atau
String
Ciri – ciri
Apabila panjang string tidak ditentukan maka panjangnya dianggap255 karakter. Oleh karena itu, untuk menghemat memori, biasakanlah selalu menentukan panjang string yang akan dibuat.

3.      Tipe Structured
Tipe structured adalah tipe yang terdiri lebih dari satu nilai.  Sedangkan tipe structured terdiri dari   5 tipe :
Tipe array
Bentuk umum:
Array [Indeks] of Tipe Data
Tipe file
Bentuk umum:
File of type
Atau
File

Tipe object
Tipe object adalah data berstruktur yang berisi komponen bilangan fixed.
Bentuk umum:
Object
Field;
Field;
……..
Method;
Method;
End;

Tipe record
Bentuk umum:
Record
Field;
Field;
…….
End;

Tipe set
Bentuk umum:
Set of Tipe Data
4.      Tipe Pointer
Tipe pointer adalah tipe yang berisi alamat memori, dan berlambang ^. Anda dapat menunjuk sebuah nilai kedalam variable pointer dengan:
-          Procedure New atau GetMem
-          Operator @
-          Fungsi Ptr
5.      Tipe Procedural
Procedure dan Function adalah bagian Turbo Pascal dalam mebuat sebuah program. Melalui tipe Procedural, maka anda dapat memperlakukan Procedure dan Function sebagai object sehingga dapat dimasukkan kedalam sebuah variable dan parameter. Hasil function haruslah berupa string, real, integer, char, Boolean, atau pointer.
g. Label
Label adalah suatu deklarasi untuk membuat percabangan dalam proram. Label bisa berupa huruf, misalnya: AWAL, AKHIR, atau angka antara 0 and 999. Dan untuk menuju kelabel yang telah dideklarasikan harus menggunakan instruksi GOTO.
Bentuk umum:
Label pengenal,….. pengenal;

h. Operator
Operator adalah lambing- lambing untuk melakukan perkalian, penjumlahan dan lain- lain seperti dalam kalkulator. Tetapi operator dalam computer lebih kompleks dibandingkan kalkulator. Jenis-jenis operator:
Operator penghubung ( relational operators )
Operator arithmatik ( arithmetic operators )
Operator logika ( logical operators )
Operator pembanding ( Boolean operators )
Operator string ( string operators )
Operator set ( set operators )
Operator @ ( @ operators )
PROGRAM NamaProgram (FileList);
CONST
  (*Deklarasi Konstanta*)
TYPE
  (*Deklarasi Type*)
VAR
  (*Deklarasi Variabel*)
  (*Definisi SubProgram*)
BEGIN
  (*Statemen*)
END.
 
Operator Pchar ( Pchar operators

II.2 STRUKTUR PROGRAM PASCAL
Struktur dasar dalam pemrograman pascal :





Elemen-elemen dalam program harus sesuai dengan urutannya, beberapa elemen bisa dihilangkan bila tidak diperlukan. Seperti contoh dibawah, program yang ada merupakan program yang benar, tapi tidak melakukan apapun.
Text Box: PROGRAM informatika;
BEGIN
END. 



Komentar dapat disertakan dalam penulisan kode. Komentar tidak akan disertakan dalam kompilasi (compile) atau saat program dijalankan (execute). Penanda komentar adalah (* dan diakhiri dengan *). atau dapat pula dengan tanda { dengan akhiran }. Pemakaian komentar dalam bahasa pascal tidak boleh salah, karena akan menimbulkan masalah. Penulisan komentar yang salah seperti :
{ { disini komentar } }
Pada saat code dicompile, akan memberikan pesan kesalahan karena compiler akan melihat tanda { yang pertama dan tanda } yang pertama pula, sehingga tanda } yang kedua akan dianggap kesalahan. Berikut beberapa contoh penulisan komentar yang benar :
{ { disini komentar }
{ disini komentar } writeln(’test komentar’); { komentar lagi }
(* disini komentar *)
Pemberian komentar akan mempermudah dalam memahami suatu kode program (source code). Bila kita menulis program tanpa memberikan komentar, saat kita membuka kembali kode yang kita tulis dalam jangka waktu berselang lama. Akan mempersulit kita memahami program yang kita buat sebelumnya (bila program sangat rumit).




II.3 PENGULANGAN
Struktur pengulangan secara umum terdiri atas dua bagian :
kondisi pengulangan, yaitu ekspresi Boolean yang harus dipenuhi untuk melaksanakan pengulangan. Kondisi ini ada yang dinyatakan secara eksplisit oleh pemrogram atau dikelola sendiri oleh komputer (implisit);
badan (body) pengulangan, yaitu bagian algoritma yang diulang.

Disamping itu, struktur pengulangan biasanya disertai dengan bagian :
inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan pertama kali
terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai dilaksanakan

Text Box: <inisialisasi>
awal pengulangan
    badan pengulangan
akhir pengulangan
<terminasi>Inisialisasi dan terminasi tidak selalu harus ada, namun pada berbagai kasus inisialisasi umumnya diperlukan.
Struktur pengulangan secara umum :




yang dalam hal ini awal dan akhir pengulangan dinyatakan sebagai kata kunci yang bergantung pada struktur pengulangan yang digunakan. Selain itu, <inisialisasi> dan <terminasi> adalah bagian yang opsional.
Di dalam algoritma terdapat beberapa macam struktur pengulangan yang berbeda. Beberapa struktur dapat dipakai untuk masalah yang sama, namun ada notasi pengulangan yang hanya cocok dipakai untuk masalah tertentu. Pemilihan struktur pengulangan untuk masalah tertentu dapat mempengaruhi kebenaran algoritma. Pemilihan struktur pengulangan yang tepat bergantung pada masalah yang akan deprogram. Tiga (3) macam notasi struktur pengulangan, yaitu :
struktur FOR
struktur WHILE
struktur REPEAT
Struktur FOR
Struktur pengulangan FOR digunakan untuk menghasilkan pengulangan sejumlah kali yang dispesifikasikan. Jumlah pengulangan diketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah sudah berapa kali pengulangan dilakukan, kita memerlukan sebuah peubah (variable) pencacah (counter). Peubah ini nilainya selalu bertambah satu setiap kali pengulangan dilakukan. Jika cacah pengulangan sudah mencapai jumlah yang dispesifikasikan, maka proses pengulangan berhenti
Bentuk umum struktur FOR ada dua macam : menaik (ascending) atau menurun (descending).
Text Box: for pencacah←nilai_awal to nilai_akhir do
 aksi
endforFOR menaik :



Keterangan :
pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter. Tipe riil tidak dapat digunakan sebagai pencacah.
Aksi adalah satu atau lebih instruksi yang diulang.
nilai_awal harus lebih kecil atau sama dengan nilai_akhir. Jika nilai_awal lebih besar dari nilai_akhir, maka badan pengulangan tidak dimasuki.
Pada awalnya,pencacah diinisialisasi dengan nilai_awal.Nilai pencacah secara otomatis bertambah satu setiap kali pengulangan dimasuki, sampai akhirnya nilai pencacah sama dengan nilai_akhir.
Jumlah pengulangan yang tejadi adalah nilai_akhir - nilai_awal + 1.
Contoh analisis :
Buatlah algoritma dan program mencetak angka 1, 2, .., N, yang dalam hal ini nilai N dibaca terlebih dahulu dari piranti masukan.
Jadi, program CETAK_N_ANGKA dalam bahasa pascal adalah sebagai berikut :





Text Box: program CETAK_N_ANGKA;
{ mencetak 1, 2, …, N ke piranti keluaran }

uses wincrt;

(* DEKLARASI *)
var
 N : integer;
 k : integer;


(* DESKRIPSI *)
begin
        write('jumlah pengulangan = ');read(N);
 for k:=1 to N do  { ulangi sebanyak N kali }
     writeln(k)
 end.
end. 













Pertanyaan :
Apa yang terjadi bila N=0? N=-1? N=1?

Jawab :
Jika N = 0 atau N = -1, proses pengulangan tidak terjadi, karena nilai akhir pencacah pengulangan lebih besar dari nilai awalnya (1).
Jika N = 1, pengulangan yang terjadi adalah 1 kali, karena 1 – 1 + 1 = 1.

Text Box: for pencacah←nilai_akhir downto nilai_awal do
 aksi
endforFor menurun :



Keterangan :
Pencacah haruslah dari tipe data yang memiliki predecessor dan successor, yaitu integer atau karakter. Tipe riil tidak dapat digunakan sebagai pencacah.
Aksi adalah satu atau lebih instruksi yang diulang.
nilai_akhir harus lebih besar atau sama dengan nilai_awal. Jika nilai_akhir lebih kecil dari nilai_awal, maka badan pengulangan tidak dimasuki.
Pada awalnya, pencacah diinisialisasi dengan nilai_akhir. Nilai pencacah secara otomatis berkurang satu setiap kali aksi diulang, sampai akhirnya nilai pencacah sama dengan nilai_awal.
Jumlah pengulangan yang terjadi adalah nilai_awal-nilai_akhir+1.
Contoh analisis :
Algorima dan program peluncuran roket dengan hitung mundur, mulai dari 10, 9, 8, …, 0.





Text Box: Algoritma PELUNCURAN_ROKET
{ Hitung mundur peluncuran  roket }

DEKLARASI
 K : integer

DESKRIPSI
 for k←100 downto 0 do
      write(k)
 endfor
 write(‘Go!’) {roket meluncur }



Text Box: program PELUNCURAN_ROKET;
{ hitung mundur peluncuran roket }
uses wincrt;
(* DEKLARASI *)
var
   k : integer;

(* DESKRIPSI *)
begin
     for k:=10 downto 0 do
         writeln(k);
     write('Go!!!!'); { roket meluncur }
end.
 













Struktur WHILE
Bentuk umum :


Text Box: while kondisi do
 aksi
endwhile
 



Aksi (atau runtunan aksi) akan dilaksanakanberulangkali selama kondisi benilai true. Jika kondisi bernilai false, badan pengulangan tidak akan dilaksanakan, yang berarti pengulangan selesai.
Yang harus diperhatikan adalah pengulangan harus berhenti. Pengulangan yang tidak pernah berhenti menandakan bahwa logika algoritma tersebut salah. Pengulangan berhenti apabila kondisi bernilai false. Agar kondisi suatu saat bernilai false, maka di dalam badan pengulangan harus ada instruksi yang mengubah nilai peubah kondisi.

II.4 PROSEDUR DAN FUNGSI
        Sebuah program yang baik adalah program yang membagi permasalahan utama
menjadi bagian-bagian kecil dimana setiap bagian kecil ditangani oleh sebuah
subprogram, cara ini disebut dengan modular programming (pemrograman
terbagi/terpecah). Cara ini termasuk pemrograman terstruktur dan sangat didukung
oleh bahasa Pascal. Untuk itu, Pascal telah menyediakan dua jenis subprogram, yaitu
procedure dan function (prosedur dan fungsi).
Dengan modular programming, program lebih mudah dibaca dan dimengerti.
Selain itu, pembenahan program dan penelusuran jalannya program (debugging)
menjadi lebih mudah sebab dapat langsung diketahui subprogram mana yang berjalan
tidak sesuai dengan yang diharapkan.

P r o s e d u r
Prosedur adalah subprogram yang menerima masukan tetapi tidak mempunyai
keluaran secara langsung.
Pada dasarnya, struktur prosedur sama dengan struktur algoritma yang sudah anda kenal. Setiap prosedur mempunyai nama yang unik. Nama prosedur sebaiknya diawali dengan kata kerja karena prosedur berisi suatu aktivitas.
Notasi algoritma yang digunakan untuk mendefinisikan struktur prosedur (tanpa parameter) adalah :
Text Box: Procedur namaprosedur

{spesifikasi prosedur, berisi penjelasan tentang apa yang dilakukan oleh prosedur ini.}
{k.awal  : keadaan sebelum prosedur dilaksanakan}
{k.akhir :  keadaan setelah prosedur dilaksanakan}

Deklarasi
{semua nama yang dipakai dalam prosedur dan hanya berlaku local di dalam prosedur di definisikan disini}

Deskripsi
{badan prosedur, yang berisi kumpulan instruksi}  










Text Box: procedure A; { nama prosedur adalah A }
begin
{ statement }
end;Cara mendeklarasikan sebuah prosedur adalah sebagai
berikut :




Pendeklarasian prosedur di atas adalah untuk prosedur yang tidak memerlukan
parameter. Parameter adalah data masukan untuk subprogram yang nantinya akan
diproses lebih lanjut dalam subprogram tersebut. Dalam Pascal, dikenal dua macam
parameter yaitu :
1. parameter nilai (value parameter), dan
2. parameter referensi (reference parameter).

Cara mendeklarasikan parameter tersebut adalah sebagai berikut :

Text Box: procedure B(X : integer; var Y : integer);
begin
{ statement }
end; 



Pada deklarasi prosedur di atas, parameter X adalah parameter nilai sedang parameter
Y adalah parameter referensi. Jadi, pendeklarasian parameter referensi didahului oleh
reserved word var. Parameter referensi ini nantinya dapat dijadikan sebagai variabel
keluaran dari prosedur.
Untuk lebih memahami penggunaan prosedur dalam Pascal, perhatikan contoh
program di bawah ini :

program Prosedur;
uses wincrt;
var
Bil_1, Bil_2, Hasil : integer;
procedure Awal;
begin
Writeln('Latihan Pascal 2 : Prosedur dan Fungsi');
Writeln('--------------------------------------');
Writeln;
Writeln('Nama : ____________________');
Writeln('NIM : __________');
Writeln;
end;
procedure Baca_Data;
begin
Write('Masukkan bilangan pertama : ');
Readln(Bil_1);
Write('Masukkan bilangan kedua : ');
Readln(Bil_2);
Writeln;
end;
procedure Kali(A,B : integer);
var
I : integer;
begin
Hasil := 0;
for I := 1 to B do Hasil := Hasil + A;
end;
procedure Kalikan(A,B : integer; var C : integer);
var
I : integer;
begin
C := 0;
for I := 1 to B do C := C + A;
end;
begin
ClrScr;
Awal;
Baca_Data;
Kali(Bil_1, Bil_2);
Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Hasil:5);
Kalikan(Bil_1, Bil_2, Hasil);
Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Hasil:5);
Writeln;
Write('Tekan Enter...');
Readln;
end.



Text Box: function A : integer; { nama fungsi adalah A dengan }
begin { tipe data keluaran adalah integer }
{ statement }
A := 3; { nilai yang dikeluarkan fungsi }
end;Perhatikan program di atas. Dua prosedur terakhir memiliki kemiripan, bedanya hanya
pada jumlah parameter dan variabel hasil perkaliannya. Untuk lebih jelas, jalankan program dan perhatikan apa yang dilakukan oleh dua prosedur tersebut maka akan nampak perbedaan keduanya.

2. F u n g s i
Fungsi adalah subprogram yang menerima masukan dan mempunyai keluaran secara langsung. Cara mendeklarasikan sebuah fungsi adalah sebagai berikut :




Sebagaimana dalam prosedur, fungsi juga dapat diberikan parameter. Cara
mendeklarasikan fungsi dengan parameter juga tidak jauh berbeda dengan
pendeklarasian parameter pada prosedur.

Text Box: function B(X : integer) : integer;
begin
{ statement }
B := X * 2;
end; 



Perbedaan utama antara prosedur dan fungsi adalah dalam menghasilkan keluaran.
Walaupun prosedur bisa menghasilkan nilai keluaran, tetapi nilai tersebut tidak dapat
diambil secara langsung, melainkan harus diambil melalui parameter referensi.
Sedangkan keluaran dari fungsi dapat diambil langsung dari fungsi tersebut.
Untuk lebih memahami perbedaan prosedur dan fungsi, perhatikan contoh berikut ini :
program Fungsi;
uses wincrt;
var
Bil_1, Bil_2, Hasil : integer;
procedure Awal;
begin
Writeln('Latihan Pascal 2 : Prosedur dan Fungsi');
Writeln('--------------------------------------');
Writeln;
Writeln('Nama : ____________________');
Writeln('NIM : __________');
Writeln;
end;
procedure Baca_Data;
begin
Write('Masukkan bilangan pertama : ');
Readln(Bil_1);
Write('Masukkan bilangan kedua : ');
Readln(Bil_2);
Writeln;
end;
function Kali(A,B : integer) : integer;
var
I,J : integer;
begin
J := 0;
for I := 1 to B do J := J + A;
Kali := J;
end;
procedure Kalikan(A,B : integer; var C : integer);
var
I : integer;
begin
C := 0;
for I := 1 to B do C := C + A;
end;
begin

ClrScr;
Awal;
Baca_Data;
Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Kali(Bil_1,Bil_2):5);
Kalikan(Bil_1, Bil_2, Hasil);
Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Hasil:5);
Writeln;
Write('Tekan Enter...');
Readln;
end.


Perhatikan program di atas. Prosedur Kalikan dan fungsi Kali mempunyai keluaran yang sama, tetapi cara mengambil keluarannya berbeda. Perhatikan dan jelaskan apa yang terjadi jika baris keempat dalam program utama yang semula perintah :
Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Kali(Bil_1,Bil_2):5);
diubah menjadi :
Writeln(Bil_1:3,' x ',Bil_2:3,' = ',Kalikan(Bil_1,Bil_2,Hasil):5);
















BAB III
PENUTUP
III.1 KESIMPULAN
        Pascal adalah bahasa pemrograman yang pertama kali di buat oleh Profesor Niklaus Wirth, seorang anggota International Federation of Information Processing (IFIP) pada tahun 1971. Dengan mengambil nama dari matematikawan Perancis, Blaise Pascal, yang pertama kali menciptakan mesin penghitung, Profesor Niklaus Wirth membuat bahasa Pascal ini sebagai alat bantu untuk mengajarkan konsep pemrograman komputer kepada mahasiswanya. Selain itu, Profesor Niklaus Wirth membuat Pascal juga untuk melengkapi kekurangan-kekurangan bahasa pemrograman yang ada pada saat itu.
Bahasa Pascal adalah bahasa pemrograman tingkat tinggi (high level language) yang cukup populer, khususnya di Indonesia. Hal ini disebabkan bahasa Pascal lebih mudah dipahami dibanding bahasa pemrograman lainnya, seperti bahasa C, bahasa assembler, dan lain sebagainya. Selain itu, bahasa Pascal adalah bahasa pemrograman yang terstruktur dan lebih mendekati bahasa manusia (bahasa Inggris) sehingga sangat cocok diterapkan dalam dunia pendidikan. Dalam latihan ini, digunakan compiler FreePascal (www.freepascal.org) yang bersifat open source dan tersedia di banyak operating system (DOS, Windows, Linux, Macintosh, FreeBSD, dan lain sebagainya).











DAFTAR PUSTAKA