Analisa Kondisi dan Aksi

advertisement
Algoritma dan Pemrograman
Analisa Kondisi dan Aksi
TUJUAN :
Dapat menyelesaikan masalah dengan menggunakan lebih dari satu kondisi.
. Dapat menyelesaikan masalah menggunakan looping
. dapat menyelesaikan masalah menggunakan pembatasan perulangan dengan flowchart
.
Flowchart, Rijanto Tosin, bab 4, hal 41
Algoritma & Teknik Pemrograman, Budi Sutedjo, bab 10,115
Analisa Aksi dan Kondisi
1 dari 10
Algoritma dan Pemrograman
Hubungan antar kondisi
Kadang –kadang dalam suatu masalah terdapat beberapa kondisi atau persyaratan yang
saling menentukan. Hubungan antar kondisi ini biasanya terdiri dari dua hubungan, yaitu
:
- hubungan –DAN- hubungan –ATAUMasing-masing hubungan ini menyatakan keterkaitan antar kondisi sehingga dapat
dilakukan aksi sesuai dengan hubungan tersebut.
Hubungan DAN
Hubungan DAN merupakan hubungan antar kondisi yang mensyaratkan kedua kondisi
terpenuhi. Jika salah satu dari kondisi tidak terpenuhi maka proses/tindakan selanjutnya
yang dilakukan adalah kondisi yang bernilai false atau T (tidak).
Berikut ini terlampir tabel yang memperlihatkan nilai benar atau salah dari hubungan
DAN.
Kondisi I
Kondisi II
Hasil
Benar
Benar
Salah
Salah
Benar
Salah
Benar
Salah
Benar
Salah
Salah
Salah
Misalnya : untuk menentukan penerimaan calon pegawai ditentukan kriteria sebagai :
-
Umur di bawah 30 tahu, dan
Nilai test lebih besar dari 60
Berdasarkan contoh di atas berarti ada dua kondisi yang harus dipenuhi untuk
menyatakan bahwa calon pegawai diterima yaitu umur dan nilai test. Dengan demikian
dalam bentuk flowchart dapat digambarkan sebagai berikut :
Analisa Aksi dan Kondisi
2 dari 10
Algoritma dan Pemrograman
Umur < 30
Dan
Nilai > 60
calon pegawai
diterima
ya
tidak
calon pegawai
tidak diterima
Dari flowchart di atas terlihat walaupun hasil test dari calon pegawai sama dengan 80
namun jika umurnya sama dengan 32 maka calon pegawai tersebut tidak diterima.
Hubungan ATAU
Hubungan ATAU merupakan hubungan antar kondisi yang mensyaratkan hanya salah
satu kondisi yang terpenuhi. Kondisi bernilai false atau T (tidak) hanya dapat tercapai
jika kedua kondisi tidak terpenuhi.
Berikut ini terlampir tabel yang memperlihatkan nilai dari hubungan ATAU.
Kondis I
Kondisi II
Hasil
Benar
Benar
Salah
Salah
Benar
Salah
Benar
Salah
Benar
Benar
Benar
Salah
Misalnya : Tunjangan pensiun diberikan kepada pegawai yang berusia lebih dari 60
tahun. Untuk pegawai yang mempunyai masa kerja lebih dari 25 tahun juga mendapatkan
tunjangan tersebut. Berdasarkan contoh di atas berarti tunjangan pensiun diberikan
kepada pegawai dengan kondisi usia lebih dari 60 tahun ATAU masa kerja lebih dari 25
tahun. Dengan demikian dapat dibuat flowchart seperti di bawah ini
Analisa Aksi dan Kondisi
3 dari 10
Algoritma dan Pemrograman
Usia > 60
ATAU
MK > 25
ya
mendpt tunjangan
pensiun
tidak
tidak mendpt tunjangan
pensiun
Dari flowchart di atas terlihat jika pegawai telah mencapai usia lebih dari 60 tahun maka
mendapat tunjangan pensiun. Namun walaupun usianya 50 tahun tapi dengan masa kerja
lebih dari 25 tahun maka pegawai tersebut masih mendapatkan tunjangan pensiun.
Karena salah satu syarat terpenuhi yaitu masa kerja lebih dari 25 tahun.
Perputaran kembali / Looping
Pemrograman dengan struktur perulangan adalah suatu teknik pemrograman untuk
melakukan suatu proses secara berulanh-ulang jika suatu kondisi dipenuhi. Pada
prakteknya, proses perulangan biasanya digunakan untuk beberapa hal. Misalnya :
1. Mengulang proses pemasukan data
2. Mengulang proses perhitungan
3. Mengulang proses penampilan hasil pengolahan data.
Instruksi IF-THEN-GOTO
Instruksi IF-THEN-GOTO merupakan pemrograman dengan struktur perulangan, dimana
instruksi IF-THEN merupakan instruksi untuk pemeriksaan kondisi, sedangkan instruksi
GOTO digunakan untuk mengubah alur program menuju instruksi-instruksi yang telah
dieksekusi sebelumnya, jika kondisi dipenuhi. Contoh :
Permasalahan :
Buatlah sebuah program untuk menampilkan bilangan bulat dari angka 1 sampai
dengan angka 100.
Analisa Aksi dan Kondisi
4 dari 10
Algoritma dan Pemrograman
Program :
Cls
REM menentukan nilai awal variabel I
I=1
Ulang:
REM Mencetak isi variabel I
PRINT I
REM Pengujian, jika isi variabel I < 100,
REM maka isi variabel I ditambah 1,
REM kemudian kembali ke label Ulang
IF I < 100 THEN I=I+1: GoTO Ulang
END
Instruksi FOR-NEXT
Instruksi FOR-NEXT digunakan untuk mengeksekusi suatu baris/blok instruksi secara
berulang-ulang selama kondisi terpenuhi. Pada instruksi ini kondisi yang dapat digunakan
untuk menguji hanya sebatas perhitungan menambah atau mengurangi isi variabel
COUNTER dengan step tertentu. Instruksi ini digunakan apabila jumlah perulangan yang
dilakukan diketahui secara pasti. Adapun bentuk umum instruksi ini adalah :
FOR var-counter = nil-awal TO nil-akhir[STEP nil-penambah/pengurang]
Blok instruksi
NEXT [var-counter]
Jika nilai penambah /pengurang tidak ditulis, maka secara otomatis akan dipergunakan
nilai penambah yang telah diteentukan sebagai default, yaitu sebesar 1. Jika ingin
dilakukan hitungan dengan mengurangi isi variabel counter karena nilai awal > akhir,
maka nilai penambah/pengurang harus didefinisikan negatif.
Penulisan instruksi FOR – NEXT ini ada beberapa macam sesuai dengan kebutuhan
perulangan yang akan dilakukan , seperti perulangan satu kalang dan kalang dalam
kalang.
Instruksi FOR – NEXT Tunggal
Instruksi FOR – NEXT tunggal adalah sebuah instruksi untuk perulangan yang hanya
menggunakan sebuah sebuah counter. Contoh :
Permasalahan :
Buatlah sebuah program untuk menampilkan bilangan genap antara 1-10
Program :
CLS
FOR I=1 to 10 STEP 1
IF (INT(I/2)=I/2) then PRINT I
NEXT I
Analisa Aksi dan Kondisi
5 dari 10
Algoritma dan Pemrograman
END
Maka hasilnya adalah :
2
4
6
8
10
Apabila pertambahan counter adalah1, maka instruksi STEP dapat ditiadakan. Sedangkan
jika nilai awal lebih besar dari nilai akhir, maka hitungan akan dilakukan dengan cara
melakukan pengurangan terhadap isi variabel counter. Oleh karena itu digunakan STEP
bilangan negatif.
CLS
FOR I=10 to 1 STEP –1
IF (INT(I/2)=I/2) then PRINT I
NEXT I
END
Maka hasilnya adalah :
10
8
6
4
2
Mengubah Alur Kerja Program dalam Kalang
Dalam satu kalang FOR-NEXT dapat dilakukan perubahan alur eksekusi baris program
seperti dapat dilihat pada contoh berikut ini.
Permasalahan :
Buatlah sebuah program untuk menampilkan bilangan ganjil antara 1- 10
Program
CLS
FOR I=1 TO 10
IF (I MOD 2) = 0 THEN GOTO Lewat
PRINT I
Lewat :
NEXT I
Maka hasilnya adalah :
1
3
Analisa Aksi dan Kondisi
6 dari 10
Algoritma dan Pemrograman
5
7
9
Mengubah Alur Kerja Program Keluar dari Jkalang FOR – NEXT
Kadangkala eksekusi baris program dalam satu kalang FOOR-NEXT harus diakhiri
sebelum seluruh baris program diproses. Untuk keperluan tersebut dapat digunakan
instruksi EXIT FOR. Contoh :
CLS
FOR I = 1 TO 15
REM Menampilkan informasi
PRINT “Data ke”; I
PRINT “Isikan XXX untuk keluar”
REM Meminta inputan nama
INPUT “Masukan nama Anda=”, N$
REM Memeriksa masukan apakah nama=XXX?
REM jika ya , maka keluar dari kalang FOR NEXT
IF N$=”XXX” THEN EXIT FOR
REM Menampilkan jumlah huruf nama
PRINT “Panjang nama anda =”;LEN(N$)
NEXT I
PRINT “Selesai.”
END
Pada saat program diatas dieksekusi, power BASIC akan meminta masukan nama
sebanyak 15 buah, tetapi eksekusi tersebut dapat diakhiri sebelum 15 nama dituliskan,
apabila diketikkan “XXX”
Instruksi FOR NEXT Tersarang
Dalam sebuah kalang FOR NEXT diperbolehkan untuk membuat kalang FOR NEXT
lainnya. Pada operasi kalang dalam kalang tersebut, urutan eksekusi di mulai dari kalang
yang paling dalam sehingga instruksi-instruksi yang terdapat pada kalang yang paling
dalam akan paling banyak dieksekusi.
Analisa Aksi dan Kondisi
7 dari 10
Algoritma dan Pemrograman
Syarat yang harus diperhatikan untuk opersi FOR NEXT kalang tersarang :
1. setiap kalang tidak boleh menggunakan variabel counter yang sama
2. antara kalang-kalang tersebut tidak boleh saling berpotongan (Overlapping)
contoh kalang berpotongan :
FOR I=1 to 10
FOR J=1 to 10
PRINT I,J
NEXT I
NEXT J
Contoh kalang tersarang :
FOR I=1 to 10
FOR J=1 to 10
PRINT I,J
NEXT J
NEXT I
Contoh kalang yang menggunakan variabel counter yang sama :
FOR I=1 TO 10
FOR I=1 To 10
PRINT I,I
NEXT I
NEXT I
Instruksi WHILE WEND
Di samping instruksi FOR NEXT, terdapat instruksi kalang lain, yaitu instruksi WHILE
WEND yang digunakan untuk melakukan proses berulang selama sebuah kondisi
dipenuhi.
Berbeda dengan instruksi FOR-NEXT yang digunakan jika diketahui dengan pasti
banyaknya operasi perulangan. Instruksi WHILE WEND dapat digunakan bila jumlah
operasi perulangan yang dilakukan tidak diketahui dengan jelas, tetapi yang diketahui
hanya kondisi agar operasi perulangan terjadi.
Adapun bentuk umum instruksi ini :
WHILE kondisi
Blok kondisi
WEND
Contoh :
CLS
Lagi$ = ‘T’
REM selama lagi$ <> ‘T’ kerjakan proses berikut
WHILE Lagi$ =’T’
REM Memasukkan sebuah bilangan
Analisa Aksi dan Kondisi
8 dari 10
Algoritma dan Pemrograman
INPUT “Masukkan Sebuah Bilangan : “, Bil
REM Jika nilai dibagi 2 tidak bersisa, maka bil* 10,
REM Jika hasil bagi bersisa, maka bil/10
IF Bil MOD 2 = 0 THEN
PRINT bil*10
ELSE
PRINT bil/10
END IF
INPUT “Akan mengulang lagi (y/t) : “. Lagi$
WEND
Instruksi DO LOOP
Instruksi DO LOOP mempunyai fungsi yang sama dengan instruksi WHILE WEND,
yaitu untuk melakukan operasi perulangan, tetapi untuk penulisan kondisinya dapat
dilakukan secara fleksibel. Bentuk umum instruksi ini adalah :
a) Untuk DO LOOP yang kondisi tes terletak pada awal instruksi :
DO [{WHILE  UNTIL} kondisi]
Blok instruksi
[EXIT LOOP]
blok instruksi
LOOP
b) Untuk DO LOOP yang tes kondisinya terletak pada akhir instruksi :
DO
Blok instruksi
[EXIT LOOP]
blok instruksi
LOOP[{WHILE UNTIL }kondisi]
Perbedaan yang jelas antara 1 dan 2 adalah pada pengujian kondisinya. Pada point a,
kondisi akan diperiksa dulu apakah memenuhi syarat dan kemudian barulah instruksi
dilaksanakan, sedangkan pada point b, minimal proses instruksi telah dilakukan sekali,
baru kemudian pemeriksaan kondisi dilakukan.
Contoh :
I=1
DO WHILE I<=10
PRINT I
I =1
DO
PRINT I
Analisa Aksi dan Kondisi
9 dari 10
Algoritma dan Pemrograman
I=I+1
LOOP
I=I+1
LOOP UNTIL I>10
Analisa Aksi dan Kondisi
10 dari 10
Algoritma dan Pemrograman
Analisa Aksi dan Kondisi
11 dari 10
Download