Tutorial Turbo Pascal Part 4
Bajay X Generation -->
Apa itu Looping
Secara sederhana looping diartikan sebagai proses berulang terhadap statement maupun serangkaian statement lebih dari satu kali.
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('Bajay-X'); sebanyak 10 kali.
Bukankah lebih baik kita memerintahkan komputer untuk secara berulang menjalankan perintah Writeln('Bajay-X'); 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 :
Contoh :
Var I : Integer;
Begin
For I := 1 To 10 Do Writeln('Bajay-X');
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
Contoh :
Kita menggunakan To kalau nilai awal < nilai akhir, dan sebaliknya pakai DownTo
Contoh :
Var I : Integer;
Begin
For I := 10 DownTo 1 Do Writeln('Bajay-X');
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);
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('Bajay-X');
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 :
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 :
I := 1;
Repeat
Writeln('Bajay-X');
Inc(I);
Until I <= 10;
Kalau begitu ya sama saja dengan yang While, bukankah begitu ?
Tentu saja ada perbedaannya, coba perhatikan contoh berikut
Tentu saja ada perbedaannya, coba perhatikan contoh berikut
I := 11;
While I <= 10 Do
Begin
Writeln('Bajay-X');
Inc(I);
End;
Dan
I := 11;
Repeat
Writeln('Bajay-X');
Inc(I);
Until I <= 10;
Pada contoh 1, tidak akan mencetak apa-apa, sedangkan pada contoh 2 akan mencetak tulisan Bajay-X minimal 1 kali.
Pada prinsipnya struktur While melakukan pemeriksaan awal, dan struktur Repeat melakukan pemeriksaan di akhir.
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
Writeln('PentaCOM');
I := I + 1;
Continue;
End;
Pelajaran tambahan :
Random dan randomizeKedua 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 :
Random dan randomizeKedua 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.
Jadi, selalu gunakan "randomize" untuk menjamin kerandoman bilangan yang dihasilkan pada setiap run.
Informasi :
- Modified by Ajay Batubara
- Sumber : indoprog : Indonesia Programmer.
- www.freewebs.com/salim_web
- Modified by Ajay Batubara
- Sumber : indoprog : Indonesia Programmer.
- www.freewebs.com/salim_web
November 20, 2012 at 7:37 AM
ijin copas gan,,, mantap nih haha tengkyu