Join With Me On Twitter

Join With Me On Twitter : @supersahrul

Selasa, 27 Maret 2012

Pengulangan Dalam Turbo Pascal

Laporan Pendahuluan
Praktikum Program Komputer

I. Judul Praktikum : Pengulangan pada Turbo Pascal
II. Tujuan Praktikum :
- Agar mahasiswa dapat mengerti kapan digunakannya pengulangan.
- Untuk mengetahui kebenaran suatu algoritma.
III. Dasar Teori
Salah satu kelebihan komputer dibandingkan dengan manusia adalah kemampuannya untuk melaksanakan suatu instruksi berulangkali tanpa mengenal lelah dan bosan. Di dalam algoritma, pengulangan atau repetition dapat dilakukan sejumlah kali atau sampai kondisi berhenti.

Perintah Goto
Untuk melaksanakan perintah Goto, anda harus mendefinisikan suatu label terlebih dahulu. Label tersebut didefinisikan pada daerah deklarasi dengan kata Label. Setelah mendefinisikan, anda diharuskan membuat Label itu di suatu tempat yang merupakan daerah yang akan dituju oleh Goto.
Tata penulisan perintah Goto adalah :
Goto Label;
Untuk memperjelas pemakaian Goto, anda dapat melihat program di bawah ini yang berguna untuk menghitung luas segitiga, lingkaran, atau persegi panjang.
Program Luasl;
Uses Crt;
Var
Lebar,Tinggi,Panjang,Jari :Real;
Luas :Real;
Pilihan :Integer;
Ch :Char;
Label 10;
Begin
10:
Clrscr;
Writeln(‘Masukan tugas yang anda hendak lakukan’);
Writeln(‘1. Menghitung luas segitiga’);
Writeln(‘2. Menghitung luas persegi panjang’);
Writeln(‘3. Menghitung luas lingkaran’);
Write(‘Pilihan anda:’);
Readln(Pilihan);
Writeln;
Case Pilihan Of
1 : Begin
Write(‘Masukan lebar alas :’);
Readlan(lebar);
Write(‘Masukan tinggi segitiga :’);
Readln(tinggi);
Luas := 0.5*lebar*tinggi;
Writeln(‘Luas segitiga adalah :’,Luas:10:2);
End;
2 : Begin
Write(‘Masukan lebar :’);
Readln(lebar);
Write(‘Masukan panjang :’);
Readln(panjang);
Luas :=lebar*panjang;
Writeln(‘Luas persegi empat adalah :’,Luas:10:2);
End;
3 : Begin
Write(‘Masukan jari-jari :’);
Readln(jari);
Luas :=pi*sqr(jari);
Writeln(‘Luas lingkaran adalah :’,Luas:10:2);
End;
Else goto 10;
End;
Writeln;
Write(‘Mau melakukan perhitungan lagi ? (Y/N)’);
Ch := Redakey;
If (Ch = ‘Y’) or (Ch = ‘y’) then goto 10;
End.




Pada saat ini program akan membaca masukan tugas yang akan dilaksanakan. Bila anda memilih 1, program akan membaca tinggi dan lebar segitiga dan mencari luas segitiga tersebut dengan rumus: Luas = 0.5*tinggi*lebar. Bila anda memilih 2, program akan membaca panjang dan lebar persegi panjang dan akan mencari luas persegi panjang dengan rumus : Luas = panjang*lebar. Bila nada memilih 3, program akan menanyakan jari-jari lingkaran, setelah itu akan menghitung luas lingkaran dengan rumus Luas = pi*jari2.
Bila pilihan yang anda masukan di luar ketiga pilihan di atas, proses program akan dialihkan ke daerah dengan label 10 yang ditandai dengan 10:. Label 10 tersebut terdapat pada daerah pertama program, jadi bila anda memasukan di luar ketiga pilihan di atas, program akan mengulangi proses menanyakan input. Setelah selesai mencari luas, program akan menanyakan apakah anda hendak mengulangi sekali lagi program di atas. Bila anda menekan ‘Y’ atau ‘y’, akan dilakukan kembali baris Goto 10 yang akan meloncat ke daerah Label 10, yaitu permulaan program.

Perintah For
For adalah pengulangan dengan jumlah pengulangan tertentu. Pengulangan ini bergantung pada suatu variabel integer. Pada setiap pengulangan, variabel tersebut akan bertambah atau berkurang satu. Batas bawah dan batas atas proses For ini ditentukan oleh kedua batas tersebut. Jumlah looping juga dapat ditentukan.
Tata penulisan looping For ini adalah :
For V_Int := n_awal To/Downto n_akhir do
Proses yang dilaksanakan
Dimana n_awal adalah nilai awal yang akan diisikan ke dalam v_int. N_awal ini akan bertambah atau berkurang satu setiap kali program melaksanakan proses. Bila nilai awal telah sama dengan n_akhir, proses For akan selesai dan program akan melaksanakan proses berikutnya.
Untuk memperjelas pembahasan, berikut ini adalah contoh program yang memanfaatkan For.
Program Forl;
Uses Crt;
Var
I :integer;
Begin
Clrscr;
For I := 1 to 10 do Writeln(‘Nilai I adalah :’,I);
End.







Dari hasil tersebut diketahui bahwa kalimat program Writeln(‘Nilai I adalah :’,I); dilaksanakan sebanyak 10 kali dengan nilai I yang berubah dari 1 hingga 10. Bila batas awal dan batas akhir diubah, nilai I juga kan berubah. Sebagai contoh, bila nilai tersebut diberikan nilai 10 dan 15,


Bila pada daerah program yang diproses lebih dari 1 perintah, anda harus membuat suatu blok yang dimulai dengan kata Begin dan diakhiri kata End;. Sebagai contoh lihat program di bawah ini yang merupakan program yang menggunakan For dengan suatu blok.
Program For2;
Uses Crt;
Var
I:integer;
Begin
Clrscr;
For I :=1 to 10 do
Begin
Writeln(‘Nilai I adalah :’,I);
If I <> 10 then writeln(‘Nilai I akan bertambah satu’)
Else Writeln(‘Ini adalah nilai terakhir I’);
End;
End.
Bila program di atas dijalankan, akan muncul tampilan seperti program sebelumnya. Namun untuk nilai I sama dengan 1 hungga 9 akan muncul kalimat ‘Nilai I akan bertambah satu’, sedang pada baris terakhir hasil cetakan akan tertulis ‘Ini adalah nilai terakhir I’.
Pada awal subbab telah dikatakan bahwa nilai variabel integer yang diberikan dapat dilakukan penurunan nilai satu persatu. Penurunan nilai dapat dilakukan dengan mengganti kata To dengan Downto. Untuk lebih jelasnya, perhatikan program di bawah ini.
Program For3;
Uses Crt;
Var
I:integer;
Begin
Clrscr;
For I := 10 downto 1 do writeln(‘Nilai I adalah :’,I);
End.
Hasil program ini akan berbentuk dimana bila anda lihat nilai I akan berubah dari nilai 10 hingga 1. 10 dan 1 diperoleh dari nilai-nilai batasnya. Bila nilai batas tersebut diubah, jumlah pengulangan dan nilai I ang tersedia juga akan berubah.




Anda juga dapat membuat suatu program dengan For bertingkat. Dalam membuat program For bertingkat, yang perlu anda perhatikan adalah batas jangkauan program yang diproses oleh For. Sebagai contoh program di bawah ini menggunakan For secara bertingkat.
Program For4;
Uses Crt;
Var
I,J:integer;
Begin
Clrscr;
For I := 1 to 10 do
Begin
For J := 1 to i do
Write(ij,’ ‘);
Writeln;
End;
End.
Bila anda lihat program di atas, dimanakah perintah Writeln berada? Apakah dia berada di For pertama dengan variabel I atau For kedua dengan variabel J atau mungkin di luar kedua For tersebut? Jawaban yang benar untuk pertanyaan di atas adalah Writeln terdapat pada pernyataan For pertama. Bila anda lihat kalimat for j : = 1 to I do write(I,j,’ ‘); telah berakhir ketika ditemukan tanda titik koma. Hal ini dapat dipastikan karena tidak terdapatnya Begin dan End; untuk For kedua. Jadi For dengan variabel j tersebut hanya akan menjalankan satu perintah. Sedang bila dilihat perintah Writeln; masih terdapat di dalam blok yang didefinisikan untuk I karena kata ‘End;’ terdapat di bawah perintah Writeln tersebut.
Cobalah anda cari perbedaan program di atas dengan program di bawah ini
Program For5;
Uses Crt;
Var
I,J : integer;
Begin
Clrscr;
For I := 1 to 10 do
For J : = 1 to I do
Writeln(ij,’ );
End.
Perintah While..Do
Proses pengulangan While..Do adalah proses dengan suatu kondisi. Kondisi yang dimaksud sama seperti kondisi pada If. Jadi daat disimpulkan bahwa While..Do dapat disamakan dengan suatu kondisi If yang dapat melakukan pengulangan. Secara logika dapat juga disamakan dengan kondisi If yang ditambah perintah Goto.
Tata penulisan dari pengulangan While..Do adalah :
While kondisi do perintah yang diulang;
Dimana bila kondisi menghasilkan suatu yang benar, proses pada perintah yang diulang akan dilaksanakan.
Pengulangan While..Do ini biasanya melaksanakan lebih dari satu perintah. Oleh karena itu perlu adanya suatu blok yang menyatakan perintah-perintah yang akan dilaksanakan oleh kondisi benar While..Do.
Untuk lebih jelasnya, marilah kita lihat program di bawah ini yang menggunakan pengulangan While..Do.
Program While1;
Uses Crt;
Var
I:integer;
Begin
Clrscr;
I := l;
While i<=10 do
Begin
Writeln(‘Nilai I adalah :’,i);
Inc(i);
End;
End


Bila hasil program dan programnya sendiri diamati, While..Do tidak melakukan pertambahan terhadap nilai I seperti yang terdapat pada For. Pada program kita menambahkan sendiri nilai I dengan menggunakan perintah Inc. Anda dapat melihat bahwa perintah-perintah yang diproses pada While..Do adalah perintah-perintah yang terdapat di antara Begin dan End.
Pada kondisi While..Do, anda dapat memberikan lebih dari satu kondisi. Untuk melaksanakan hal tersebut anda harus menggunakan operator And atau Or sesuai dengan keperluan anda. Sebagai contoh program di bawah ini yang merupakan modifikasi program di atas menggunakan operator And dan akan melakukan proses unuk nilai I dari 10 hingga 20.
Program While2;
Uses Crt;
Var
I:integer;
Begin
Clrscr;
I :=10
While (i>=10) and (i<=20) do
Begin
Writeln(‘Nilai I adalah :’,i);
Inc(i);
End;
End.
Yang perlu anda perhatikan dari program di atas adalah jangan lupa memberikan tanda kurung untuk setiap kondisi bila menggunakan operator And atau Or.
Perintah Repeat..Until
Pengulangan Repeat..until ini hampir sama dengan pengulangan While..Do. Perbedaannya adalah Repeat..Until mencek kondisi pada akhir looping, sedang While..Do pada awal looping. Pada Repeat..Until juga tidak ditemukan Begin dan End; seperti pada While..Do.
Tata penulisan Repeat..Until ini adalah :
Repeat
Proses yang dilaksanakan
Until kondisi;
Dimana kondisi yang terdapat pada Repeat..until adalah kondisi yang tata penulisannya sama dengan If ataupun While..Do, sedang proses yang dilaksanakan adalah proses yang dilaksanakan bila kondisi tidak memenuhi syarat. Proses yang dilaksanakan ini pasti satu kali dilaksanakan lebih dahulu, sebelum dilakukan pengulangan dengan kondisi yang memenuhi.
Untuk memperjelas Repeat..Until ini lihat program di bawah ini :
Program Repeat1;
Uses Crt;
Var
I:integer;
Begin
Clrscr;
I:=0
Repeat
Inc(i);
Writeln(‘Nilai I adalah :’,I);
Until I = 10;
End.
Tampilan yang keluar dari program ini akan sama dengan tampilan dari program pertama While ataupun For. Bila dilihat pada program di atas, perbedaan dengan looping pada While..Do menjadi sangat berbeda terutama pada tidak terdapatnya Begin dan End;. Untuk membuktikan bahwa proses yang akan dilaksanakan satu kali dahulu sebelum membandingkan dengan kondisi dan melakukan pengulangan, anda dapat mengganti perintah Until dengan kata-kata ‘until i>0;’ yang berarti tidak mungkin dilakukan pengulangan karena pada saat masuk ke until I telah bernilai 1. Namun bila program anda jalankan akan muncul kalimat ‘Nilai I adalah : 1’.


IV. Hasil Praktikum
- Program
Program Contoh1;
Uses Wincrt;
Var
X : integer;
Begin
Write(‘Masukan nilai x :’);read(x);
If(x>=70) then
Write(‘A’)
Else if (x<50) then
Write(’C’)
Else if(x>=50)and(x<70) then
Writeln(‘B’);
End.




V. Pembahasan

Pada praktikum kali ini kita melakukan praktikum dengan judul Kondisi yang terdapat pada Turbo Pascal. Pada praktikum ini kita telah menggunakan beberapa kondisi yang menuntun kita untuk lebih teliti dan cermat untuk menghasilkan data yang sesuai dengan keinginan kita.
Pada praktikum ini kita mencoba dengan beberapa contoh. Seperti contoh pertama yang menggunakan variabel x untuk menentukan jenisnya A, B, atau C. Di sini juga ditekankan tidak menggunakan tanda (;) jika kita akan memasuki Else.
Praktikum kali ini mengajarkan kepada kita untuk memakai program untuk menentukan jenis suatu data karena banyaknya kondisi yang digunakan. Sebagai contoh sederhana yaitu menentukan nilai mahasiswa, apakah nilainya A, B, C atau lainnya. Program ini memudahkan kita dalam membuat data dan mempermudah penyusunan data.
Contoh yang lain adalah program pemilu. Kita disini membuat program untuk menentukan apakah seseorang itu pemilih atau bukan. Di sini kita mencoba data yang akan diisi seperti pertanyaan berikut ‘Apakah anda WNI Y/T?’, ‘Apakah anda berumur >=17 tahun?’, ‘Apakah anda sudah menikah ?’, dan sebagainya. Kemudian data yang diisikan tersebut akan menentukan apakah anda pemilih atau bukan. Disini kita menggunakan 3 kondisi.
Contoh yang lain adalah memasukkan nilai x untuk menentukan nilai A, B, dan C. Di sini kita menggunakan untuk A dengan nilai x ≥ 70, untuk B dengan nilai 50 ≤ x < 70, untuk C dengan nilai x < 50. Disini juga kita memakai 3 kondisi, dengan x adalah integer.
Untuk menghindarkan kesalahan pada penulisan program di program Turbo Pascal, kita diajarkan juga untuk mengcopy langsung program dari program Turbo Pascal ke Ms. Word. Caranya adalah tekan Alt+PrintScreen Sys Rq pada Turbo Pascal kemudian ke Ms. Word dan tekan Ctrl+V atau klik Paste.


VI. Kesimpulan
1. Program ini memakai beberapa kondisi.
2. Pemakaian tanda (;) tidak boleh digunakan jika akan memasuki Else.
3. Pada kondisi terdapat besaran yang dibandingkan.
4. Perintah-perintah yang ada pada Kondisi : If..Then, If..Then..Else, If..Then Bertingkat, Case..Of, Case..Of..Else.
5. Untuk mengcopy program dari Turbo Pascal ke Ms. Word adalah Alt+Print Screen Sys Rq kemudian Ctrl+V.



Pardosi, Mico. 1999. Bahasa Pemograman Turbo Pascal 7.0. Surabaya : Indah.
Lembaga Pendidikan Lingua Prima. 2003. Turbo Pascal 7.0. Indralaya : Lingua Prima.

Tidak ada komentar:

Poskan Komentar