• Tidak ada hasil yang ditemukan

5. Teknik Pengulangan - 5 6. Teknik Pengulangan

N/A
N/A
Protected

Academic year: 2018

Membagikan "5. Teknik Pengulangan - 5 6. Teknik Pengulangan"

Copied!
25
0
0

Teks penuh

(1)

5. Teknik Pengulangan

Counter

Teknik kounter dipakai untuk mengontrol pengulangan proses. Pengontrolan ini

dilakukan dengan memeriksa isi variabel yang digunakan sebagai kounter, sehingga

junlah pengulangan dapat diketahui.

Misalnya terdapat beberapa proses yang harus dilakukan dengan urutan sebagai

berikut :

Proses A

Proses B

Proses C

Proses D

Proses B

Proses C

Proses D

Proses B

Proses C

Proses D

Proses E

Dari contoh di atas bahwa proses B, C, dan D diulang sebanyak tiga kali.

Pengulangan ini terjadi setelah proses A dan sebelum proses E dikerjakan.

Jika diimplementasikan ke bentuk flowchart, maka terbentuk rangkaian symbol yang

tersusun berderet. Hal ini tidak efisien.

Agar flowchart menjadi lebih efisien maka digunakan kounter sebagai pengontrol

(2)

Contoh :

START

PROSES B

PROSES D PROSES C

PROSES E K = K + 1

K = 3

END

T

Y K = 0

Dari flowchart di atas dapat ditelusuri sebagai berikut :

1. Pertama kali dikerjakan adalah proses A.

2. Persiapkan variabel yang digunakan sebagai kounter yaitu K= 0. Variabel ini

digunakan untuk mengontrol jumlah pelaksanaan proses B, C dan D yang telah

dikerjakan.

3. Kerjakan proses B, C, D secara berurutan.

4. Variabel kounter ditambah 1. Isi variabel ini menunjukkan jumlah pelaksanaan

untuk proses B, C dan D.

5. Periksa isi variabel kounter yaitu K untuk membatasi jumlah perulangan. Jika isi

variabel K =3, maka kerjakan proses E. Sebaliknya jika K lebih kecil dari 3 berarti

(3)

Berikut ini sebuah contoh untuk memperjelas penerapan teknik kounter dalam

flowchart.

Sebuah perusahaan ingin mencetak data pegawai melalui komputer. Data tersebut

tersimpan di dalam disk dan dicetak melalui printer.

Spesifikasi proses adalah :

c Input data diperoleh dari dik yang terdiri dari nomor pegawai, nama pegawai dan

alamat.

c Data habis jika input data yang dibaca /*

c Setiap halaman terdapat judul .

c Satu halaman hanya memuat 30 baris data.

Karena dalam satu halaman hanya memuat 30 baris data, maka diperlukan suatu

variabel kounter. Kounter ini digunakan untuk menghitung jumlah data yang telah

dicetak pada setiap halaman.

Selain itu juga terdapat proses pemeriksaan isi variabel kounter. Jika ternyata isinya

telah mencapai 30 maka pencetakan dilakukan pada halaman berikutnya dan

(4)

Bentuk flowchart dari persoalan diatas :

Berdasarkan flowchart di atas dapat ditelusuri sebagai berikut :

1. Siapkan variabel yang digunakan untuk kounter yaitu N = 0.

2. Cetak judul.

3. Baca data dan simpan di dalam variabel :

NO untuk data nomor pegawai.

NM untuk data nama pegawai.

ALM untuk data alamat pegawai

4. Periksa input data. Bila isinya berupa simbol /* maka proses berakhir.

5. Variabel N ditambah 1. Variabel ini digunakan sebagai kounter untuk mengetahui

jumlah data yang telah dicetak untuk setiap halaman.

6. Cetak rincian data yaitu NO, NM, ALM.

7. Periksa isi variabel N. Jika N = 30 berarti data telah dicetak sebanyak 30 baris.

(5)

judul halaman baru. Sedangkan jika N lebih kecil dari 30 maka proses

selanjutnya kembali ke langkah 3 untuk membaca data berikutnya tanpa

mencetak judul lagi.

LOOPING

Merupakan pengolahan data yang berulang yang lebih dari satu diadalam arus

diagram alur untuk itu digunakan tanda panah ke pengolahan data tersebut.

Contoh :

Untuk menghentikan proses diatas dapat digunakan :

Flag

Digunakan jika ada instruksi read atau input data . Fungsi dari flag ini adalah :

a. Untuk menghindari out of data.

b. Flag biasanya digunakna berupa data string atau character dan bisa berupa

data numeric atau angka-angka.

Contoh : String = “XXX”, “ZZZ”

(6)

c. Variabel dari flag harus benar-benar data yang tidak dipakai didalam

pelaksanaan proses.

d. Banyaknya flag yang digunakan dan jenisnya harus disesuaikan dengan

variabel yang dibaca.

Contoh : READ A, B Maka Flagnya yang digunakan ada 2 flag.

NESTED LOOP ( LOOPING BERSARANG)

Dalam sebuah kalang FOR-NEXT diperbolehkan untuk membuat kalang

FOR-NEXT lainnya. Pada operasi kalang dalam kalang tersebut, urutan eksekusi

dimulai dari kalang yang paling dalam sehingga instruksi-instruksi yang didapat

pada kalang yang paling dalam akan paling banyak dieksekusi.

Syarat yang harus diperhatikan untuk operasi FOR-NEXT kalang tersarang :

Setiap kalang tidak boleh menggunakan variabel counter yang sama

(7)

Contoh kalang berpotongan (Salah ) Contoh kalang Bersarang (Benar)

START

FOR I = 1 TO 10

FOR J = 1 TO 10

Print I,J

NEXT J

NEXT

I

START

FOR I = 1 TO 10

FOR J = 1 TO 10

Print I,J

NEXT J

NEXT I

(8)

Contoh dua Loop yang terpisah (Benar, tapi bukan Nested )

START

FOR I = 1 TO 10

Print J NEXT I

NEXT J

FOR J = 1 TO 10

Print I

END

contoh

1. Buat flowchart untuk mencetak hasil sbb :

1 1

1 2

2 1

2 2

3 1

3 2

(9)
(10)

3. Hasil dari flowchart dibawah ini adalah :

Start

FOR J = 1 TO 2

NEXT I FOR I = 1 TO 2

NEXT J

J , I

(11)

ARRAY ( Variabel Berindeks )

Pengertian Array ( Variabel Berindeks ) adalah veriabel yang mempunyai tipe

data sejenis, misalnya numerik atau string, yang mampu menampung banyak nilai

dan didefinisikandengan Sebuah nama variabel berindeks.

Contoh suatu variabel berindeks adalah matriks. Misalkan matriks X berisi :

1 2 3

4 5 6

7 8 9

Untuk menyimpan nilai matriks X tidak dapat digunakan sebuah variabel. Untuk itu

harus digunakan variabel berindeks, yaitu X1, X2, X3, X4, X5, X6, X7, X8 dan X9.

Berdasarkan jumlah dimensi indeks dalam sebuah variabel array, dikenal

adanya array dimensi satu dan arrray dimensi banyak.

Beberapa hal penting yang harus diperhatikan bila ingin memasukkan

deretan data kedalam variabel array adalah :

a. Tipe data yang akan disimpan kedalam variabel harus diketahui, karena

variabel array numerik hanya dapat menerima data numerik dan variabel array

string hanya dapat menerima data string.

b. Banyaknya data harus lebih kecil atau sama dengan jumlah subkrip ( indeks )

dari array tersebut.

c. Untuk memasukkan deretan data dalam suatu variabel indeks dapat digunakan

intruksi perulangan.

d. Banyaknya indeks yang ditentukan menunjukkan banyknya ruang memori yang

dialokasikan, oleh karena itu dalam menentukan banyaknya indeks sebaiknya

disesuaikan dengan banyaknya data sehingga tidak memboroskan

(12)

Contoh 1.

Perhatikan flowchart dibawah ini, tentukan hasil jika diketahui datanya

5,10,15,20

Start

Baca A(K) FOR K = 1 TO 3

NEXT K

A (K)

END

(13)

Contoh 2 :

Algoritma Program dari penjumlahan matriks :

Berapa Jumlah Ordonya.

Berapa jumlah baris ? Diisi ke variabel B.

Berapa jumlah kolomnya ? Diisi ke variabel K.

Memesan varaibel A, B dan C, yang masing-masing dapat menampung sebanyak B

baris dan K kolom.

Pengisian angka-angka di Matriks A :

a. Untuk BRS dari 1 hingga B, kerjakan nomor 3b.

b. Untuk KLM dari 1 hingga K, kerjakan nomor 3c.

c. Posisi untuk baris :

YA = BRS + 2

d. Posisi untuk kolom :

XA = 3 * KLM

e. Pada baris ke YA dan kolom ke XA, angka untuk matriks A diisi, dimasukkan

ke variabel :

A ( BRS , KLM )

f. Bertemu NEXT KLM, menuju ke nomor 3b.

g. Bertemu NEXT BRS, menuju ke nomor 3a

.

Pengisian angka – angka di Matriks B.

a. Untuk BRS dari 1 hingga B, dikerjakan nomor 4b.

b. Untuk KLM dari 1 hingga K, kerjakan nomor 4c.

c. Posisi untuk baris :

YA = BRS + 2

d. Posisi untuk kolom :

XA = 40 + ( 3 * KLM )

e. Pada baris ke YA dan kolom ke XA, angka untuk matriks B diisi, dimasukkan

ke

(14)

f. Bertemu NEXT KLM, menuju ke nomor 4b.

g. Bertemu NEXT BRS, menuju ke nomor 4a.

Proses penjumlahan dan cetak matriks C :

a. Untuk BRS dari 1 hingga B kerjakan nomor 5b.

b. Untuk KLM dari 1 hingga K kerjakan nomor 5c.

c. Menjumlahkan matriks A dan matriks B untuk dimasukkan ke matriks C :

C ( BRS , KLM ) = A ( BRS , KLM ) + B ( BRS , KLM )

d. Cetak matriks C dari variabel :

C ( BRS , KLM )

Untuk angka-angka berikut, dicetak disebelah kanan

e. Bertemu NEXT KLM, menuju ke nomor 5b.

f. Kosongkan 1 baris.

(15)
(16)

Contoh 3.

Perhatikan flowchart dibawah ini, kemudian tentukan outputnya jika diketahui

datanya 10,20,30,40

Start

FOR U = 10 SAMPAI 40 STEP 10

BACA A(U)

JUMLAH 1 + A(U)

A(U);

NEXT U

JUMLAH

END

Hasil : 11 21 31 41

(17)

SUB PROGRAM (SUB RUTIN)

Semula subprogram, yang sering disebut dengan nama subrutin,

dikembangkan untuk mempersingkat penulisan program. Tetapi kemudian tujuan

penulisan subprogram menjadi berkembang. Sesuai dengan namanya maka

subprogram adalah satu bagian program yang bisa dikatakan terpisah dari program

utamanya. Struktur program yang demikian disebut dengan struktur modular. Tujuan

lain dari penulisan subprogram adalah dalam hal kemudahan pelacakan dan

pembacaan program tersebut. Karena program tersusun atas modul-modul, dimana

setiap modul biasanya tidak terlalu panjang, maka jika dalam sebuah modul terjadi

kesalahan, kita tidak perlu melacak seluruh program, tetapi cukup kita lihat dari

modul dimana kesalahan terjadi.

Secara garis besar sebuah program yang berisi sub rutin, alur flowchartnya

dapat digambar sebagai berikut :

START

GO SUB 200

CALL

END

RETURN

SUBRUTIN 2

(18)

Beberapa cara pemanggilan subrutin yaitu :

1. Statemen GOSUB RETURN

Misal GOSUB 200

Berarti memanggil Subrutin yang diawali dengan label 200 dan diakhiri dengan

RETURN

2. Statemen FN

Subrutin yang dipanggil dengan fungsi FN ini harus diawali dengan statemen DEF

FN dengan atau diakhiri dengan statemen END DEF

3. Satemen CALL

untuk memanggil subrutin yang diawali dengan SUB dan diakhiri dengan END SUB

4. Statemen FUNCTION

untuk memanggil subrutin yang diawali dengan FUNCTION dan diakhiri dengan

(19)

IMPLEMENTASI DALAM PROGRAM BASIC

Berikut contoh program yang menggunakan kounter.

♣ REM PROGKOUNTER1

Pada program di atas yang dimaksud variable kounter adalah C. Setiap kali

statemen C = C + 1 dilaksanakan, maka harga C bertambah dengan 1.

(20)

Program di atas akan menghitung banyaknya bilangan-bilangan yang lebih besar

dari 3. Variabel kounter dari program diatas adalah K, yang juga digunakan sebagai

pemberhentian perulangan saat K = 9. Sedangkan N adalah variable penampung

yang menghitung banyaknya bilangan yang lebih besar dari 3.

Array Dimensi Satu

Bentuk umum deklarasi array dimensi satu adl :

DIM namavar ({cacah | awal to akhir}) [As tipe]

Dengan cacah : banyaknya elemen array

Awal : nomor awal subskrib

Akhir : nomor akhir subskrib

Tipe : tipe data elemen array.

Contoh : DIM baristabel(5)

DIM baristabel( 1 to 5)

DIM baristabel(5) As Integer

Dari contoh deklarasi di atas maka akan disediakan ruang memori untuk

array baristabel dengan jumlah elemen 5.

40 30 100 80 75

Untuk mengoperasikan array digunakan subskrib.

Baristabel(1) = 40, Baristabel(2) = 30, Baristabel(3) = 100

Baristabel(4) = 80, Baristabel(5) = 75

REM PROGARRAY1

DIM A(5)

LET A(1)=40 : A(2)=30 : A(3)=100 : A(4)=80 : A(5)=75

(21)

PRINT A(1) , A(2) , A(3) , A(4) , A(5)

PRINT “HASIL JUMLAH = “; C

END

Output:

40 30 100 80 75

HASIL JUMLAH = 325

Array Dimensi Dua

Bentuk umum deklarasi array dimensi 2 adalah :

DIM namavar (baris,kolom) [As tipe] atau

DIM namavar ( baris1 to baris2, kolom1 to kolom2) [As tipe]

Dengan Namavar : nama variable yang akan dideklarasikan sebagai array dua

dimensi

Baris : cacah baris

Kolom : cacah kolom

Contoh : DIM M(2,3) atau

DIM M( 1 to 2, 1 to 3)

Dari contoh deklarasi di atas maka akan disediakan ruang memori untuk

array M dengan jumlah elemen 2 baris dan 3 kolom..

30 50 20 10 10 10

Untuk mengoperasikan array digunakan subskrib.

M(1,1)=30, M(1,2)=50, M(1,3)=20,

(22)

♣ REM PROGARRAY2 output :

DIM M(2,3) 40

M(1,1)=30: M(1,2)=50: M(1,3)=20 10

M(2,1)=10: M(2,2)=10: M(2,3)=10

PRINT M(1,1) +M(2,2)

PRINT M(2,3)

END

Array Dimensi Banyak

Bentuk umum deklarasinya :

DIM namavar (b,k,h,…,dn) [As tipe ] atau

DIM namavar (b1 to b2,k1to k2, h1 to h2,…, dn1 to dn2) [As tipe]

Contoh : DIM M(2,3,4) atau

DIM M(1 to 2, 1 to 3, 1 to 4)

Dalam operasinya menggunakan subskrib 3 dimensi, yaitu :

M(1,1,1),M(1,1,2),M(1,1,3),M(1,1,4)

M(1,2,1),M(1,2,2),M(1,2,3),M(1,2,4)

M(1,3,1),M(1,3,2),M(1,3,3),M(1,3,4)

M(2,1,1),M(2,1,2),M(2,1,3),M(2,1,4)

M(2,2,1),M(2,2,2),M(2,2,3),M(2,2,4)

(23)

Latihan

1. Buatlah sebuah program untuk menghasilkan laporan sbb:

DAFTAR GAJI PEGAWAI

NAMA TOTAL GAJI

Dengan variable subskrib nama, gapok, tunjangan diinput dengan looping

menggunakan teknik kounter.

Total gaji diperoleh dari gapok ditambah tunjangan.

Jawab :

DIM NAMA$(5), GAPOK (5), TUNJ(5), TOTALGAJI(5)

K= 1

10 INPUT “NAMA = “, NAMA$(K)

INPUT “GAJI POKOK = “,GAPOK(K)

INPUT “TUNJANGAN = “,TUNJ(K)

TOTALGAJI(K) = GAPOK(K) + TUNJ(K)

PRINT “ NAMA”;TAB(15);”TOTAL GAJI”

PRINT “---“

(24)

PRINT NAMA$(K);TAB(15);TOTALGAJI(K)

NEXT K

END

ON n GOTO

Bentuk Umum :

ON n GOTO nomor baris [.,nomor baris]…

Contoh :

CLS

PRINT “Ketik 1, 2, 3, 4 atau 5

INPUT n

ON n GOTO 60, 40, 80, 100, 110

40 PRINT “ANDA MASUK GROUP BASIC”

GOTO 110

60 PRINT “ANDA MASUK GROUP COBOL”

GOTO 110

80 PRINT “ANDA MASUK GROUP PASCAL”

GOTO 110

100 PRINT “ANDA MASUK GROUP FORTRAN”

110 END

ON GOSUB

Statement ini sifatnya adalah gabungan antara statement ON n GOTO dan

GOSUB-RETURN itu sendiri.

Dimana :

ƒ ON n GOTO, proses menuju ke nomor baris yang tergantung dari nilai N nya,

(25)

ƒ ON n GOSUB-RETURN, proses ini juga akan menuju ke nomor baris yang

tergantung dari nilai N nya, tetapi proses akan kembali lagi ke program yang

memanggilnya di bawah statement ON n GOSUB bersangkutan bila ditemui statement RETURN.

Contoh :

FOR I = 1 to 2

ON I GOSUB 50, 60

NEXT I

PRINT “END”

END

50 PRINT “I = ” ; I ; “ Ke nomor baris 50”

RETURN

60 PRINT “I = ” ; I ; “ Ke nomor baris 60”

RETURN

Referensi

Dokumen terkait

Menyongsong Era Globalisasi yang tidak bisa kita hindari dalam realita sejarah yang pasti akan berpengaruh pada sektor pendidikan yang pada dasarnya berhakekat suatu proses

Pada penelitian ini penulis melakukan suatu proses penentuan kualitas ruang rawat inap rumah sakit dengan menggunakan fuzzy logic dan metode Tsukamoto sebagai

Saat ini Indonesia sebagai Negara yang telah maju dalam bidang teknologi informasi seharusnya bisa mencetak generasi muda berbakat menjadi entrepreneur dan

The study also shown that perceived risk has positive effect on adoption of BRI mobile banking in Surabaya but not significant, perceived ease of use has positive significant

Berdasarkan uji koefisien determinasi Tabel 7, dapat diketahui nilai koefisien determinasi (R 2 ) diperoleh sebesar 0,135, artinya pengaruh variable efektifitas

Pada berita yang ditampilkan oleh Kompas.com, Kompas.com memiliki kecenderungan untuk bersikap netral atau tidak memihak terhadap kasus SMS ancaman yang dilakukan

Manfaat kegiatan diantaranya : (1) sumber pendapatan bagi kampus; (2) wahana bagi mahasiswa untuk mengembangkan keterampilan berwirausaha berbasis hasil pengembangan

Di Virgiana Tech pada program ITMA, evaluasi portofolio mata kuliah didisain dengan tujuan mereviu dan mengevaluasi prestasi belajar mahasiswa selama pendidikan master