Modul 4 - Belajar Pascal Pemula
Modul 4
Hallo, ketemu lagi, pada pertemuan ini kita akan membahas tentang Looping.
Apa itu Looping
Secara sederhana looping diartikan
sebagai
proses berulang terhadap statement maupun serangkaian statement lebih dari satu kali.
Aduh, kurang jelas, dapatkah anda
memberikan contoh pemakaian
looping
dari program yang pernah kita buat sebelumnya ?
He-he-he, mungkin anda sudah lupa dengan program Hangman yang pernah kita buat pada pertemuan kedua, disana komputer secara berulang menanyakan huruf tebakan
kita sebanyak 10 kali kesempatan, dalam hal ini kita telah menggunakan looping.
Ok, sekarang saya sudah punya gambaran.
Apakah
hal tersebut tidak
dapat dilakukan tanpa looping ?
Tentu saja bisa, tetapi akibatnya program kita menjadi panjang dan tidak efisien,
coba bayangkan misalnya anda ingin mencetak
tulisan PentaCOM sebanyak 10 baris di layar, bisa saja anda menggunakan perintah Writeln('PentaCOM'); sebanyak 10 kali.
Bukankah lebih baik kita memerintahkan komputer untuk secara berulang menjalankan perintah Writeln('PentaCOM'); sebanyak 10 kali.
Benar juga ya, tetapi bagaimana struktur perintah perulangan pada pascal ?
Salah
satu struktur perintah
perulangan pada
pascal adalah
yang
menggunakan
counter.
For variabel
:= nilai awal To nilai akhir Do Statement;
Atau
For variabel
:= nilai awal DownTo nilai akhir Do Statement;
Dimana variabel harus ordinal type
Contoh :
Var I : Integer; Begin
For I := 1 To 10 Do Writeln('PentaCOM'); End.
Tapi tadi saya lihat yang satu pakai To dan yang satu lagi pakai DownTo, apa sih bedanya ?
Kita menggunakan To kalau nilai awal < nilai akhir, dan sebaliknya pakai DownTo
17
Contoh :
Var I : Integer; Begin
For I := 10 DownTo 1 Do Writeln('PentaCOM');
End.
Apa maksudnya variabel counter harus ordinal type ?
Maksudnya variabel counter harus berupa salah satu type seperti Byte, Shortint,
Integer, Longint, Char, Boolean.
Misalnya Ch adalah Char, maka dapat dilakukan
For Ch := 'a' to 'z' Do Write(Ch,'
');
Dan bahkan misalnya Bo adalah boolean, dapat juga
For Bo :=false to true do writeln(Bo);
Adakah struktur perulangan lainnya pada bahasa pascal ?
Ya, ada lagi, yaitu yang melakukan perulangan yang menggunakan condition. While condition Do Statement;
Contoh :
I := 1;
While I <= 10 Do
Begin
Writeln('PentaCOM'); I
:= I + 1;
End;
Apakah maksudnya
I := I + 1; saya belum pernah melihat persamaan seperti ini secara matematika !
Ya, memang hal ini tidak mungkin ada secara matematika,
tetapi pada dunia pemrograman artinya menaikan nilai
variabel I
sebesar
1. Supaya tidak
membingungkan pascal menyediakan suatu function Inc(variabel); sebagai penganti I:= I + 1;
Ok, sekarang saya sudah jelas dengan struktur looping pada bahasa pascal.
Tunggu dulu, masih ada satu struktur perulangan dengan condition, yaitu :
Repeat
Statement;
…
Until condition;
Contoh :
18
I := 1;
Repeat
Writeln('PentaCOM');
Inc(I);
Until I <= 10;
Kalau begitu ya sama saja dengan yang While, bukankah begitu ?
Tentu saja ada perbedaannya, coba perhatikan contoh berikut
I := 11;
While
I <= 10 Do Begin Writeln('PentaCOM');
Inc(I);
End;
Dan
I := 11;
Repeat
Writeln('PentaCOM'); Inc(I);
Until I <= 10;
Pada contoh 1,
tidak
akan mencetak apa-apa,
sedangkan
pada
contoh
2
akan mencetak tulisan PentaCOM minimal 1 kali.
Pada prinsipnya struktur While melakukan pemeriksaan awal, dan struktur Repeat
melakukan pemeriksaan di akhir.
Bagaimana kalau kita ingin keluar dari pertengahan looping walaupun conditionnya masih terpenuhi ?
Mudah saja, gunakan perintah Break, dan anda juga dapat menggunakan perintah
Continue untuk kembali ke While ataupun Repeat.
Contoh :
I := 1;
While I <= 10 Do
Begin Writeln('PentaCOM');
I := I + 1;
Break; End;
Akan mencetak PentaCOM sekali saja, karena begitu ketemu perintah Break, maka
proses keluar dari looping. Bagaimana dengan yang berikut ini :
I := 1;
While I <= 10 Do
Begin
19
Writeln('PentaCOM'); I := I + 1;
Continue;
End;
Pelajaran tambahan :
Random dan randomize
Kedua berfungsi menghasilkan bilangan random, bilangan random sering digunakan
untuk mensimulasikan dunia nyata yang penuh dengan ketidakpastian. Kita tidak akan
mendiskusikan hal ini, tetapi pemakaian kedua perintah tersebut.
Randomize digunakan untuk menginisialisasi suatu bibit random secara acak yang
cukup dipanggil sekali saja.
Random digunakan untuk mendapatkan bilangan random(bilangan), yang akan
menghasilkan bilangan 0 s/d
bilangan-1. Misalnya num:=random(50); berarti variabel num mungkin berisi salah satu bilangan 0 s/d 49.
Cobalah contoh berikut :
var
i : byte;
begin randomize;
for i:=1 to 10 do write(random(30),' ');
end.
Coba hilangkan "randomize", dan jalankan beberapa kali,
bagaimana dengan
bilangan yang dihasilkan apakah sama pada setiap percobaan ?
Jadi, selalu gunakan "randomize" untuk menjamin kerandoman bilangan yang
dihasilkan pada setiap run.
Latihan IV
1. Explain the characteristics of all three loop syntaxes in Pascal !
2. Explain the differences between them !
3. Suppose the output is :
1
2
3
4
5
6
20
Write an excerpt using all three syntaxes !
4. Explain how to nest one syntax to another !
Latihan di laboratorium
1.
|
Input
|
:
|
5
|
2.
|
Input :
|
5
|
|||||||||||||||||||||||
Output
|
:
|
1
|
2
|
3
|
4
|
5
|
4
|
3
|
2
|
1
|
Output :
|
1
|
2
|
3
|
4
|
5
|
|||||||||||||
Input
|
:
|
1
|
1
|
2
|
3
|
4
|
5
|
||||||||||||||||||||||
Output
|
:
|
1
|
1
|
2
|
3
|
4
|
5
|
||||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
|||||||||||||||||||||||||
3.
|
Input
|
:
|
5
|
1
|
2
|
3
|
4
|
5
|
|||||||||||||||||||||
Output
|
:
|
1
|
2
|
3
|
4
|
5
|
4.
|
Input :
|
5
|
||||||||||||||||||||
2
|
3
|
4
|
5
|
1
|
Output :
|
1
|
|||||||||||||||||||||||
3
|
4
|
5
|
1
|
2
|
1
|
2
|
|||||||||||||||||||||||
4
|
5
|
1
|
2
|
3
|
1
|
2
|
3
|
||||||||||||||||||||||
5
|
1
|
2
|
3
|
4
|
1
|
2
|
3
|
4
|
|||||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
|||||||||||||||||||||||||
5.
|
Input
|
:
|
5
|
6.
|
Input :
|
5
|
|||||||||||||||||||||||
Output
|
:
|
1
|
Output :
|
1
|
1
|
1
|
1
|
1
|
|||||||||||||||||||||
2
|
2
|
2
|
2
|
2
|
2
|
2
|
|||||||||||||||||||||||
3
|
3
|
3
|
3
|
3
|
3
|
3
|
3
|
||||||||||||||||||||||
4
|
4
|
4
|
4
|
4
|
4
|
4
|
4
|
4
|
|||||||||||||||||||||
5
|
5
|
5
|
5
|
5
|
5
|
5
|
5
|
5
|
5
|
||||||||||||||||||||
7.
|
Input
|
:
|
5
|
8.
|
Input :
|
5
|
|||||||||||||||||||||||
Output
|
:
|
1
|
Output :
|
1
|
1
|
1
|
1
|
1
|
|||||||||||||||||||||
1
|
2
|
1
|
1
|
2
|
2
|
2
|
1
|
||||||||||||||||||||||
1
|
2
|
3
|
2
|
1
|
1
|
2
|
3
|
2
|
1
|
||||||||||||||||||||
1
|
2
|
3
|
4
|
3
|
2
|
1
|
1
|
2
|
2
|
2
|
1
|
||||||||||||||||||
1
|
2
|
3
|
4
|
5
|
4
|
3
|
2
|
1
|
1
|
1
|
1
|
1
|
1
|
||||||||||||||||
1
|
2
|
3
|
4
|
4
|
4
|
4
|
4
|
3
|
2
|
1
|
|||||||||||||||||||
1
|
2
|
3
|
3
|
3
|
3
|
3
|
3
|
3
|
3
|
3
|
2
|
1
|
|||||||||||||||||
1 2
|
2
|
2
|
2
|
2
|
2
|
2
|
2
|
2
|
2
|
2
|
2
|
2 1
|
|||||||||||||||||
1 1 1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1
|
1 1 1
|
9. Make fibonacci series. If input is n, write all
the
series up to n numbers :
Input : 10
Output : 1 1 2 3 5 8 13 21 34 55
The first and the second numbers of fibonacci series are 1. The third is the sum of the first and the second. The fourth is the sum of the second
and
the third. The fifth is the sum of the third and the fourth, so on.
10. Make a factor tree.
Input : 100 Input : 1001
Output : 100 Output : 1001
/ \ /\
2 50 7 143
/\ /\
2 25 11 13
/\ Input : 5
5 5 Output : 5 is a prime !
Tugas Rumah :
21
Create a game
just like a space
invader (you've got to know that), but in normal text
mode (80x25). Use colors as pretty as possible. Normally space
invader have a matrix of enemies, but I make allowances to you. You just make only one enemy. If the enemy is destroyed,
it
just reappears at a different place and the player gains a point. Each
players have
3
ships to play. If all ships are used up (shot down) you show "Game
Over"
message and ask if the player want to play
again.
Each enemy ship scores 10. Player got an extra ship when reaches 500 and its multipliers
(1000,
1500, 2000,...). Players can only have one shot. Before the fire is out, players can not trigger another shot. The same rule applies for the enemy. Player could only move his/her ship horizontally (left or right), not vertically or diagonally. The enemy
may
come closer to the ship after it reaches the edge (of left or right). I mean that the enemy ship go left or right, after it touches the edge, it advances a bit -- just like
a normal space invader game. Make it as fancy as possible.
Kembali Ke Modul 3 Lanjut Ke Modul 5
I like your blog ang its background :)
ReplyDelete