ALGORITMA PEMROGRAMAN 1A** (PP-011302:S1-KA) Pertemuan...

Post on 12-Sep-2020

15 views 0 download

Transcript of ALGORITMA PEMROGRAMAN 1A** (PP-011302:S1-KA) Pertemuan...

ALGORITMA PEMROGRAMAN 1A**(PP-011302:S1-KA)

Pertemuan 6

Ahmad Hidayat

TEKNIK PENGULANGAN/LOOPING/PEMUTARAN KEMBALI

▪ NESTED LOOP

▪ ARRAY ( Variabel Berindeks )

▪ SUB PROGRAM (SUB RUTIN)

NESTED LOOP (Perulangan Bersarang)Nested loop adalah proses loop/pemutaran didalampemutaran lainnya dengan menggunakan lebih darisatu statement FOR-NEXT.

Pada operasi perulangan, urutan eksekusi dimulai dariperulangan yang paling terdalam, sehingga instruksi-instruksi yang didapat pada perulangan yang palingdalam akan paling banyak dieksekusi.

NESTED LOOP (Perulangan Bersarang)

Syarat yang harus diperhatikan untuk operasi FOR-NEXTperulangan bersarang :

▪ Setiap perulangan tidak boleh menggunakan variabelcounter/index penghitung yang sama.

▪ Perulangan-perulangan tersebut tidak boleh salingberpotongan (overlapping), karena batas antarakeduanya tidak jelas.

NESTED LOOP

Latihan

HASIL

I J Output

1 11, 12, 13, 14, 15 11, 12, 13, 14, 15, 1

2 11, 12, 13, 14, 15 11, 12, 13, 14, 15, 2

3 11, 12, 13, 14, 15 11, 12, 13, 14, 15, 3

Latihan

ARRAY ( Variabel Berindeks )

▪ Array ( Variabel Berindeks ) adalah variabel yang mempunyai tipe datasejenis, misalnya numerik atau string, yang mampu menampung banyak nilaidan didefinisikan dengan sebuah nama variabel berindeks.

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

Untuk menyimpan nilai matriks X tidak dapat digunakansebuah variabel. Untuk itu harus digunakan variabelberindeks, yaitu X1, X2, X3, X4, X5, X6, X7, X8 dan X9.

Berdasarkan jumlah dimensi indeks dalam sebuahvariabel array, dikenal adanya array dimensi satu, dimensidua dan array dimensi banyak.

ARRAY ( Variabel Berindeks )

Beberapa hal penting yang harus diperhatikan bila ingin memasukkan deretandata kedalam variabel array adalah :

1. Tipe data yang akan disimpan kedalam variabel harus diketahui, karenavariabel array numerik hanya dapat menerima data numerik dan variabel arraystring hanya dapat menerima data string.

2. Banyaknya data harus lebih kecil atau sama dengan jumlah subskrip ( indeks )dari array tersebut.

3. Untuk memasukkan deretan data dalam suatu variabel indeks dapatdigunakan intruksi perulangan.

4. Banyaknya indeks yang ditentukan menunjukkan banyaknya ruang memoriyang dialokasikan, oleh karena itu dalam menentukan banyaknya indekssebaiknya disesuaikan dengan banyaknya data sehingga tidak memboroskanpengalokasian ruang memori.

Contoh 1:

Contoh 2:

Perhatikan flowchart disamping,

kemudian tentukan outputnya jika

diketahui datanya 10,20,30,40 !

ARRAY ( Variabel Berindeks )

1. Array Dimensi Satu

Bentuk umum deklarasi array dimensi satu adalah :

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

Keterangan:

Cacah : banyaknya elemen array

Awal : nomor awal subskrib/index

Akhir : nomor akhir subskrib/index

Tipe : tipe data elemen array.

ARRAY DIMENSI SATU

Contoh :

DIM baristabel(5)

DIM baristabel(1 to 5)

DIM baristabel(5) As Integer

▪ Dari contoh deklarasi diatas maka akan disediakan ruang memoriuntuk array baristabel dengan jumlah elemen 5.

▪ Untuk mengoperasikan array digunakan subskrib.Baristabel(1) = 40, Baristabel(2) = 30, Baristabel(3) = 100Baristabel(4) = 80, Baristabel(5) = 75

Contoh:

▪ REM PROGARRAY1DIM A(5)LET A(1)=40 : A(2)=30 : A(3)=100 : A(4)=80 : A(5)=75C = A(1) + A(2) + A(3) + A(4) + A(5) PRINT A(1) , A(2) , A(3) , A(4) , A(5)PRINT “HASIL JUMLAH = “; CEND

▪ Output:40 30 100 80 75HASIL JUMLAH = 325

▪ Statement REM digunakan untuk menuliskan komentar yang tidakdiproses oleh program.

ARRAY ( Variabel Berindeks )

2. Array Dimensi DuaBentuk umum deklarasi array dimensi 2 adalah :

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

Keterangan:

Namavar : nama variable yang akan dideklarasikan sebagai array duadimensi

Baris : cacah barisKolom : cacah kolom

ARRAY DIMENSI DUA

Contoh :

DIM M(2,3) atau DIM M( 1 to 2, 1 to 3)Dari contoh deklarasi di atas maka akan disediakan ruang memoriuntuk array M dengan jumlah elemen 2 baris dan 3 kolom.

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

Contoh:▪ REM PROGARRAY2

DIM M(2,3) M(1,1)=30: M(1,2)=50: M(1,3)=20M(2,1)=10: M(2,2)=10: M(2,3)=10PRINT M(1,1) +M(2,2)PRINT M(2,3)END

▪ Output:40

10

▪ Statement REM digunakan untuk menuliskan komentar yang tidakdiproses oleh program.

ARRAY ( Variabel Berindeks )

3. Array Dimensi BanyakBentuk umum deklarasinya :

DIM namavar (b,k,h,…,dn) [As tipe ] atauDIM namavar (b1 to b2, k1to k2, h1 to h2,…, dn1 to dn2) [As tipe]

Keterangan:

Namavar : nama variable yang akan dideklarasikan sebagai array banyakdimensi

Baris : cacah barisKolom : cacah kolom

ARRAY DIMENSI BANYAK

Contoh :

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

ARRAY DIMENSI BANYAK

DIM Nam$(1 TO 5), Age(1 TO 5), ID$ (1 TO 5)FOR Count = 1 TO 5INPUT “Enter Student’s name: ”, Nam$(Count)INPUT “Enter Student’s age: ”, Age(Count)INPUT “Enter Student’s ID: ”, ID$(Count)NEXT

ARRAY DIMENSI BANYAK

CLSFOR COUNT = 1 TO 5INPUT Enter student s name: ”, Nam$(Count)INPUT “Enter student’s score: ”, Score(Count)NEXT CountFOR COUNT = 1 TO 5FinalScore(Count) = Score(Count) *2.5NEXT CountCLSPRINT “Name”, “Score” ; TAB(22); “Final score”FOR COUNT = 1 TO 5PRINT Nam$(Count), Score(Count), FinalScore(Count)NEXT Count

SUB PROGRAM (SUB RUTIN) ▪ Subprogram atau subrutin, dikembangkan untuk mempersingkat

penulisan program.

▪ Kemudian tujuan penulisan subprogram menjadi berkembang. Sesuaidengan namanya maka subprogram adalah satu bagian dari program yang terpisah dari program utamanya.

▪ Struktur program yang demikian disebut dengan struktur modular.

▪ Tujuan lain dari penulisan subprogram adalah dalam hal kemudahanpelacakan dan pembacaan sebuah program.

▪ Karena program tersusun atas modul-modul, dimana setiap modulbiasanya tidak terlalu panjang, maka jika dalam sebuah modul terjadikesalahan, kita tidak perlu melacak seluruh program, tetapi cukup kitalihat dari modul dimana kesalahan terjadi.

SUB PROGRAM (SUB RUTIN)

Secara garis besar sebuah program

yang berisi sub rutin, alur flowchartnya

dapat digambar seperti gambar

disamping:

SUB PROGRAM (SUB RUTIN) Beberapa cara pemanggilan subrutin yaitu :

1. Statemen GOSUB RETURNMisal GOSUB 200Berarti memanggil Subrutin yang diawali dengan label 200 dan diakhiridengan RETURN

2. Statemen FNSubrutin yang dipanggil dengan fungsi FN ini harus diawali dengan statemenDEF FN dengan atau diakhiri dengan statemen END DEF

3. Satemen CALLuntuk memanggil subrutin yang diawali dengan SUB dan diakhiri dengan END SUB

4. Statemen FUNCTIONuntuk memanggil subrutin yang diawali dengan FUNCTION dan diakhiridengan END FUNCTION

CONTOH SUB PROGRAM (SUB RUTIN)

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

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

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

CONTOH SUB PROGRAM 2 (SUB RUTIN)

REM PROG-GOSUB

10 LET N = 3

20 GO SUB 100

30 PRINT “KAMPUS A”

40 LET N = N+1

50 GO SUB 100

60 PRINT “KAMPUS D”

70 GO TO 130

100 LET X = N

110 PRINT X * X

120 RETURN

130 END

Output : ?

Latihan1. Buatlah sebuah program untuk menghasilkan laporan sbb:

DAFTAR GAJI PEGAWAINAMA TOTAL GAJI----------------------------------INA 1500000ANI 1300000NIA 1250000ANE 1000000ANU 7500000

Dengan variable subskrib nama, gapok, tunjangan diinput dengan looping menggunakan teknik kounter. Total gaji diperoleh dari gapok ditambahtunjangan.

JawabanDIM NAMA$(5), GAPOK (5), TUNJ(5), TOTALGAJI(5)K= 110 INPUT “NAMA = “, NAMA$(K)INPUT “GAJI POKOK = “,GAPOK(K)INPUT “TUNJANGAN = “,TUNJ(K)TOTALGAJI(K) = GAPOK(K) + TUNJ(K)IF K=5 THEN 20K = K + 1GOTO 1020 PRINT “DAFTAR GAJI PEGAWAI”PRINTPRINT “ NAMA”;TAB(15);”TOTAL GAJI”PRINT “-----------------------------------“FOR K = 1 TO 5 PRINT NAMA$(K);TAB(15);TOTALGAJI(K)NEXT KEND

TERIMAKASIH