Anda di halaman 1dari 25

Algoritma dan Pemrograman 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
jumlah pengulangan ketiga proses tersebut.

Teknik pengulangan

Algoritma dan Pemrograman 1

Contoh :
START

K = 0

PROSES B

PROSES C

PROSES D

K = K + 1

T
K = 3

Y
PROSES E

END

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
proses B, C, D masih perlu diulang.

Teknik pengulangan

Algoritma dan Pemrograman 1

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.

Data habis jika input data yang dibaca /*

Setiap halaman terdapat judul .

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
lakukan proses pencetakan judul.

Teknik pengulangan

Algoritma dan Pemrograman 1

Bentuk flowchart dari persoalan diatas :


START

N = 0

PRINT
JUDUL

READ
NO, NM,
ALM

Y
/*

END

T
N = N + 1

PRINT
NO, NM,
ALM

T
N =30

Y
N = 0

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.
Oleh karena itu proses selanjutnya adalah kembali ke langkah 1 yaitu mencetka

Teknik pengulangan

Algoritma dan Pemrograman 1

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 :

START

READ
A, B

C=A+B

Y
C>5

PRINT
C

N
D=C+3

PRINT
D

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
Numeric

Teknik pengulangan

= XXX, ZZZ

= 999, 000

Algoritma dan Pemrograman 1

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.
Contoh :

START

data 1,2,3,4,5,6,999,99

READ
A,B

C=A+B

START

READ
A,B

Y
END

A = 999

N
PRINT
C

C=A+B

PRINT
C

Hasil :

Hasil:

11

11

999 = out of data


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
Antara kalang-kalang tersebut tidak boleh saling berpotongan (overlapping)

Teknik pengulangan

Algoritma dan Pemrograman 1

Contoh kalang berpotongan (Salah )

START

Contoh kalang Bersarang (Benar)

START

FOR I = 1 TO
10

FOR I = 1 TO
10

FOR J = 1 TO
10

FOR J = 1 TO
10

Print I,J

Print I,J

NEXT I

NEXT J

NEXT J

NEXT I

END

END

Teknik pengulangan

Algoritma dan Pemrograman 1

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

START

FOR I = 1 TO 10

Print I

NEXT I

FOR J = 1 TO
10

Print J

NEXT J

END

contoh
1. Buat flowchart untuk mencetak hasil sbb :
1

2. Apa output flowchart dibawah ini

Teknik pengulangan

Algoritma dan Pemrograman 1

Teknik pengulangan

Algoritma dan Pemrograman 1

3. Hasil dari flowchart dibawah ini adalah :


Start

FOR J = 1 TO 2

FOR I = 1 TO 2

NEXT I

NEXT J

J , I

End

Teknik pengulangan

10

Algoritma dan Pemrograman 1

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

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

pengalokasian ruang memori.

Teknik pengulangan

11

Algoritma dan Pemrograman 1

Contoh 1.
Perhatikan flowchart dibawah ini, tentukan hasil jika diketahui datanya

5,10,15,20
Start

FOR K = 1 TO 3

Baca A(K)

NEXT K

A (K)

END

Hasil : 5 10 15

Teknik pengulangan

12

Algoritma dan Pemrograman 1

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
variabel :
B ( BRS , KLM )
Teknik pengulangan

13

Algoritma dan Pemrograman 1

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.
g. bertemu NEXT BRS, menuju ke nomor 5a.

Teknik pengulangan

14

Algoritma dan Pemrograman 1

Start

Masukkan nilai
B?

FOR BRS 1 =
TO B

End

Masukkan nilai
B?

DIM A(B,K),
B(B,K),
C(B,K),

FOR BRS 1 =
TO B

FOR KLM 1 =
TO K

Masukkan nilai
B (BRS, KLM)

NEXT KLM

NEXT BRS
FOR KLM 1 =
TO K
FOR BRS 1 =
TO K

Masukkan nilai
A (BRS, KLM)
FOR KLM 1 =
TO B

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

NEXT BRS
Cetak
C (BRS,KLM)

A
NEXT KLM

NEXT BRS

Teknik pengulangan

15

Algoritma dan Pemrograman 1

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
104

Teknik pengulangan

16

Algoritma dan Pemrograman 1

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 :

SUBRUTIN 1

START

GO SUB 200

PROSES

CALL
RETURN

END

SUBRUTIN 2

SUB..

END SUB
Teknik pengulangan

17

Algoritma dan Pemrograman 1

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
END FUNCTION

Hitung
contoh :

t 2
START

Input bil1
Input bil2

GOSU
B 200
? Contoh
subrutin

Rata=(bil1+bil
2)/2

Print rata

END
RETURN

Teknik pengulangan

18

Algoritma dan Pemrograman 1

IMPLEMENTASI DALAM PROGRAM BASIC


Berikut contoh program yang menggunakan kounter.

REM PROGKOUNTER1
DATA 2,4,6,8,999
C=0
10

READ BIL
IF BIL = 999 THEN 20
C=C+1
GO TO 10

20

PRINT C
END

Output :
4
Pada program di atas yang dimaksud variable kounter adalah C. Setiap kali
statemen C = C + 1 dilaksanakan, maka harga C bertambah dengan 1.

REM PROGKOUNTER2
N = 0 : K=0
10

READ X
K=K+1
IF K = 9 THEN 30
IF X > 3 THEN 20
GOTO 10

20

N=N+1
GOTO 10

30

PRINT N
DATA 1,4,2,3,5,6,5,9,2,8
END

Output :
5

Teknik pengulangan

19

Algoritma dan Pemrograman 1

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
C = A(1) + A(2) + A(3) + A(4) + A(5)

Teknik pengulangan

20

Algoritma dan Pemrograman 1

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
: cacah baris

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,
M(2,1)=10, M(2,2)=10, M(2,3)=10

Teknik pengulangan

21

Algoritma dan Pemrograman 1

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)
M(2,3,1),M(2,3,2),M(2,3,3),M(2,3,4)

Teknik pengulangan

22

Algoritma dan Pemrograman 1

Latihan
1. Buatlah sebuah program untuk menghasilkan laporan sbb:
DAFTAR GAJI PEGAWAI
NAMA

TOTAL GAJI

---------------------------------INA

1500000

ANI

1300000

NIA

1250000

ANE

1000000

ANU

7500000

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)

IF K=5 THEN 20
K=K+1
GOTO 10
20

PRINT DAFTAR GAJI PEGAWAI


PRINT
PRINT NAMA;TAB(15);TOTAL GAJI
PRINT -----------------------------------
FOR K = 1 TO 5

Teknik pengulangan

23

Algoritma dan Pemrograman 1

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,
untuk kemudian proses berlanjut seperti biasa.

Teknik pengulangan

24

Algoritma dan Pemrograman 1

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
END

Teknik pengulangan

25

Anda mungkin juga menyukai