5. Teknik Pengulangan
Counter
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 1
Algoritma dan Pemrograman 1
Contoh :
START
K = 0
PROSES B
PROSES C
PROSES D
K = K + 1
T
K = 3
PROSES E
END
Teknik pengulangan 2
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.
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
lakukan proses pencetakan judul.
Teknik pengulangan 3
Algoritma dan Pemrograman 1
START
N = 0
PRINT
JUDUL
READ
NO, NM,
ALM
Y
/* END
N = N + 1
PRINT
NO, NM,
ALM
T
N =30
N = 0
Teknik pengulangan 4
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 PRINT
C>5 C
PRINT
D=C+3 D
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.
Teknik pengulangan 5
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 :
READ READ
A,B A,B
C=A+B Y
A = 999 END
N
PRINT
C
C=A+B
PRINT
C
Hasil : 3 Hasil: 3
7 7
11 11
999 = out of data
Teknik pengulangan 6
Algoritma dan Pemrograman 1
START START
FOR I = 1 TO FOR I = 1 TO
10 10
FOR J = 1 TO FOR J = 1 TO
10 10
NEXT I NEXT J
NEXT J NEXT I
END END
Teknik pengulangan 7
Algoritma dan Pemrograman 1
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 1
1 2
2 1
2 2
3 1
3 2
2. Apa output flowchart dibawah ini
Teknik pengulangan 8
Algoritma dan Pemrograman 1
Teknik pengulangan 9
Algoritma dan Pemrograman 1
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
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
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
Teknik pengulangan 14
Algoritma dan Pemrograman 1
Start A B
Masukkan nilai
B? FOR KLM 1 =
TO K
DIM A(B,K),
B(B,K), Masukkan nilai
C(B,K), B (BRS, 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
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
CALL
RETURN
END
SUBRUTIN 2
SUB..
END SUB
Teknik pengulangan 17
Algoritma dan Pemrograman 1
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
GOSU
B 200 Rata=(bil1+bil
2)/2
? Contoh
subrutin
Print rata
END
RETURN
Teknik pengulangan 18
Algoritma dan Pemrograman 1
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
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
Dengan Namavar : nama variable yang akan dideklarasikan sebagai array dua
dimensi
Baris : cacah baris
Kolom : cacah kolom
30 50 20
10 10 10
Teknik pengulangan 21
Algoritma dan Pemrograman 1
Teknik pengulangan 22
Algoritma dan Pemrograman 1
Latihan
1. Buatlah sebuah program untuk menghasilkan laporan sbb:
DAFTAR GAJI PEGAWAI
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
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
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