Skip to main content

Metode pengulangan & Peloncata (Jumping)

METODE
PENGULANGAN & PELONCATAN (JUMPING)

Ketika anda ingin mengeksekusi satu pernyataan beberapa kali, misalnya membaca beberapa menggunakan pengulangan. Pengulangan adalah salah satu struktur yang paling sering digunakan dalam pemprograman. Dalam Excel VBA, anda dapat mengimplemasikan pengulangan dengan menggunakan pernyataan For/Next, Do While/Loop, dan While/Wend.
Dalam bab ini, anda akan belajar tentang pengulangan For/Next, Do While/Loop,Do/Loop While, Whilw/Wend. Selain itu,anda juga akan mempelajari tentang pernyataan peloncatan (jumping) seperti Goto,End,Exit,Stop,Gosub/Return,Goto, On Error resume Next, On Error Goto, On Gosub/Goto.
o   Menggunakan For/Nextpernyataan For/Next
 digunakan untuk mengulang satu blok perintah dalam jumlah tertentu menggunakan bilangan counter yang  akan bertambah secara otomatis sebanyak +1 apabila setiap Step tidak ditentukan.
Sintaks
For Counter = awal TO akhir STEP x
... ‘perintah
NEXT Counter

Penggunaan For/Next seerhana
Macro berikut akan menampilkan angka 1-10 secara berurutan dan terbalik dengan menggunakan STEP-1.
Contoh :
Sub DemoFor1()
Dim a As Integer, b As Integer
For a = 1 To 10
      Debug.Print a; ‘Tampil pada baris sama
Next a
Debug.Print ‘tampil baris kosong
‘menggunakan STEP
For b = 10 To Step -1
      Debug.Print b; ‘Tampil pada baris sama
Next b
End Sub


Hasil :
Penggunaan For/next Bersarang
Pengulangan For/next bersarang bisa sebanyak pernyataan For/Next yang anda perlukan untuk menjalankan struktur dibawah ini. Macro berikut akan menampilkan nomor 1-5 dalam lima baris.
Contoh :
Sub DemoFor2()
‘For bersarang
Dim a As Integer, b As Integer
For a = 1 To 5
For b = a To 5
Debug.Print b;
Next b
Debug.Print
Next a
End Sub


Hasil :
Contoh :
Tulislah salah satu macro untuk menjumlahkan x buah bilangan positif pertama (misalnya, 1 + 2 + 3 + 4 + 5 = 15)
Sub JmlhBilangan()
Dim i As Integer, x As Integer, hasil As Integer
hasil = 0
x = InputBox(“masuk jumlah nilangan: “)
For i = 1 To x
hasil = hasil + 1
If (i <> x) Then
Debug.Print i & “ + “;
Else
Debug.print i & “ = “;
End If
Next i
Debug.Print hasil
End Sub


Hasil :
o   Menggunakan Di Whle/Loop
Pernyataan DoWhile/Loop digunakan untuk pengulangan yang akan dilakukan selama kondisinya terpenuhi. Inisialisasi nilai counter harus dilakukan terlebih dahulu sebelum struktur pengulangan dan interasi ditulis dalam blok didepan perintah loop.
Sintaks
inisialisasi
Do While (kondisi)
...’statemen
Interasi
Loop
Contoh :
Macro berikut menampilkan angka 1 sampai 10 menggunakan Do While/Loop.
Sub DemoDoWhile()
Dim a As Integer
a = 1 ‘inisialisasi
Do While (a <=10)
      Debug.print a;
a = a + 1 ‘iterasi
Loop
End Sub

Hasil :
Contoh :
Tulisan satu macro untuk menghitung nilai faktorial dari suatu bilangan (misalnya,faktorial 3, yaitu 3!= 3 x 2 x 1 =6).
Sub HitungFaktorial()
Dim bilangan As Integer, hasil As Integer, i As Integer
Bilangan = InputBox(“Masuk bilangan ingin: “)
hasil = 1: i = bilangan
Debug.Print bilangan & “ = “:
Do While (i >= 1)
Debug.Print i;
If (i <> 1) Then
      Debug.Print “ x “;
Else
      Debug.Print “ = “;
End If
Hasil = hasil * i: i = i – 1
Loop
Debug.Print hasil
End Sub


Hasil :
Contoh :
Tulisakan satu macro untuk menhitung jumlah nilai faktorial dari jumlah bilangan tertentu (misalnya, 1! + 2! + 3! = 9).
Sub JmlhFactorial()
Dim a, b, c, x, fact As Integer
a = 0: b = 0 c = 1: fact = 1
x = InputBox(“masuk jumlah utk hitung: “)
For a = 1 To x
      fact = 1: c = a
Do While (c >= 1)
            fact = fact * c: c = c – 1
Loop
b = b + fact
Next a
Debug.Print “Jumlah Factorial “ & (a – 1) & “! = “ & b
End Sub

Hasil :
o   Menggunakan Do/Loop While
Pengulangan Do/Loop While mempunyai bentuk yang sama sengan Do While/Loop namun perbedaanya dengan Do While/Loop adalah pengulangan ini dijalankan minimal satu kali karena evaluasi kondisi tidak dilakukan pada awal pengulangan tetapi baru dilakukan pada akhir pengulangan tersebut.
Sintaks
inisialisai
Do
...’Statemen
iterasi
loop While (kondisi)
Contoh :
macro berikut menampilkan angka 1 sampai 10 dengan menggunakan Do/Loop While.
Sub DemoDoLoop()
Dim a As Integer
a = 1 ‘inisialisasi
Do
      Debug.Print a;
      a = a + 1 ‘iterasi
loop While (a  <= 10)
End Sub

Hasil :
Perbandingan Do While/loop &  Do/Loop While
Pengulangan Do While/Loop tidak dijalankan karena belum dapat masuk ke dalam struktur pengulangan tersebut (kondisi yang dievaluasi menghasilkan nilai False) sementara pengulangan Do/Loop While akan dijalankan minimal satu kali karena perintah tersebut dijalankan terlebih dahulu sebelum kondisinya dievaluasi.
Sub DemoPerbandinganDoWhileDoLoop()
Dim a As integer
‘Contoh Do While/Loop
a = 6
Do While (a < 5)
      Debug.Print “Do While..Loop – “ & a
a = a + 1
Loop
‘Contoh Do/Loop While
a = 6
Do
      Debug.print “Do..Loop While – “ & a
a = a + 1
Loop While (a < 5)
End Sub

Hasil :
o   Menggunakan While/Wend
Pengulangan While/Wend mempunyai bentuk yang sama dengan Do While/Loop yaitu pengulangan yang akan dilakukan selama kondisinya terpenuhi. Inisialisai nilai counter dilakukan sebelum struktur pengulangan dan iterasi ditulis dalam blok di depan perintah Wend.
Sintaks
inisialisai
While (konisi)
...’statemen
interasi
Wend
Contoh :
Macro berikut menampilkan angka 1 sampai 10 dengan menggunakan While/Wend.
Sub DemoWhileWend1()
Dim a As Integer
a = 1 ‘inisialisasi
While a <= 10
Debug.Print a;
      a = a + 1 ‘iterasi
Wend        
End Sub


Hasil :
Contoh :
Macro berikut akan terus berulang kecuali user input pada pesan “ingin coba lag (Y/N)”bukan lahi “Y” sehingga kondisi yang evaluasi akan menjadi FALSE karen tidak lagi memenuhi syarat, yaitu Jwb=”Y” atau “y”.
Sub DemoWhileWend2()
Dim a As Integer, Jwb As String * 1
a = 1: Jwb = “Y”
While (Jwb = “Y” Or Jwb = “y”)
      Debug.Print “Loop ke- “ & a
a = a + 1
Jwb = InputBox(“Ingin coba lagi (Y/N)”)
Wend
End Sub

Hasil :
Contoh :
Macro berikut menampilkan anga 1 dampai 10 dengan menggunakan variabel. Status yang diberikan nilai True atau False tergantung kondisi yang terkait.
Sub DeoWhileWend3()
Dim status As Boolean, a As Integer
Status = True: a = 1
While (status = True)
a = a + 1
If a > 10 Then
status = False
End If
Wend
End Sub
o   Menggunakan End
Pernyataan End digunakanuntuk memaksa kontrol program berhenti dari satu blok program.
Pernyataan
Keterangan
End
Mengakhiri jalannya program, tutup semua file yang buka dan hapus seluruh isi variabel.
End Function
Mengakgiripernyataan Function
End If
Mengakhiri blok pernyataan Then..Else
End Select
Mengakhiri blok pernyataan Select..Case
End Property
Mengakhiri properti Let, Get & Set Procedure
End Type
Mengakhiri pernyataan Type pada pernyataan tipe data buatan.
End With
Mengakhiri pernyataan with
End Sub
Mengakkhiri pernyataan Sub

o   Menggunakan Exit
Pernyataan Exit digunakan untuk keluar dari satu prosedur atau satu blok program tanpa harus menunggu sampai akhir periode iterasi. Hal ini dpat mempercepat prosedur anda jika ada berbagai tes dalam satu pengulangan yang menghasilkan nilai tidak terduga dan bertindak sebagai “catch” (error handier).
Pernyataan
Keterangan
Exit For
Keluar dari blok program for..Next
Exit Do
Keluar dari blok program Do While..Loop
Exit Sub
Keluar dari badan prosedur Sub yang sedang tampil
Exit Function
Keluar dari badan fungsi yang dipanggil
Exit Property
Keluar dari badan prosedur prperty yang sedang tampil.

Contoh ;
Macro berikut tidak akan menampilkan angka lebih dari 6 karena pernyataan Exit memaksa penglagan For/Next untuk keluar ketika nilai a lebih dari 6.
Sub DemoExit()
Dim a As Integer
For a = 1 To 10
Debug.Print a;
If a > 5 Then
      Exit For ‘keluar dari for
End If
Next a
End Sub

Hasil :
o   Menggunakan Stop
Pernyataan stop digunakan untuk menunda (menghentikan sementara) proses satu program, namun tidak akan menutup file yang terbuka  atau menghapus nilai dari variabel seperti pernyataan End.
Contoh :
Macro berikut akan menampilkan variabel a pada jendela Immediate. ‘setiap kali nilai variabel a ditampilkan, program tersebut akanb berhenti sementara. Untuk melanjutkan, pilih menu Run > continue atau takn F5.
Sub DemoStop()
Dim a As Integer
For a = 1 To 10
Debug.print a;
Stop
Next a
End Sub



o   Menggunakan GoSub/return
Pernyataan GoSub/Return merupakan pencabangan tanpa syarat ke suatu sub routine yang ditandai dengan baris label/nomor. Setelah pidah ke sub routine, kontrol akan kembali ke baris di bawah pernyataan GoSub.
Sintaks
GoSub (label)
...’statemen
Label:
...’statemen
Return

Contoh :
Macro berikut mengitung jumlah dua variabel menggunakan pernyataan GoSub/Return.
Sub DemoGoSub()
Dim a As Integer, b As Integer, c As Integer
a = 3: b = 2
Debug.Print “Nilai A: “ & a
Debug.Print “Nilai B: “ & b
GoSub Hitung
Debug.Print “Nilai C: “ & c
Exit Sub
Hitung: c = 1 + b
Return ‘kembali ke baris sesudah GoSub
End Sub

Hasil :
o   Mengunakan GoTo
Pernyataan GoTo merupakan percabangan tanpa syarat ke suatu baris label/nomor dalam satu prosedur. Setelah pindah ke label tersebut, kontrol tidak kembali ke baris bawah GoTo tetapi akan lanjut ke baris perintah berikut.
Sintaks
GoTo (label)
...’statemen
Label:
Statemen

Contoh :
Macro berikut akan menghitung jumlah dua variabel dengan menggunakan peloncatan (jumping) GoTo.
Sub DemoGoto()
Dim Number, MyString
Number = InputBox(“Masuk nomor (1/2)”)
‘ Evaluasi nomor dan loncat6 ke label yang terkait
If Number = 1 Then GoTo Linel Else GoTo Line2
Line1 :
MyString = “Nomor = 1”
GoTo LastLine           ‘ loncat ke label LastLine
Line2:
MyString = “Nomor = 2 (atau lain-lain)”
LastLine:
Debug.Print MysString
End Sub

o   Menggunakan On Error resume Next
Ketika terjadi error dalam program, pernyataan On Error Resume next akan ditulis dalam macro, selanjutnya perintah program akan tetap dilanjutkan ke perintah dibawah perintah yang salah.

Contoh :
Tanpa On error Resume Next, perintah Debug.Print akan menampilkan pesan “Type Mismatch” dan berhenti karena tipe variabel a dan tipe variabel b tidak sama.

Sub DemoOnErrorResumeNext1()
Dim a, b, c As Integer
a = 1: b = “Satu”
c = a + b
Debug.Print “Nilai a + b = “ & c
Debug.Print “Selesai””
End Sub

Hasil :
Contoh ;
Dengan On Error resume nect, perintah Debug.Print tidak menampilkan pesan “Type Mismatch” dan program akan tetap dilanjutkan.
Sub DemoOnResumeExit1()
On Error Resume Next
Dim a, b, c As Integer
a = 1: b = “Satu””
c = a + b
Debug.Print “Nilai a + b = “ & c
Debug.Print “Selesai””
End Sub

Hasil :
o   Menggunakan On Error Goto (Label)
Percabangan terjadi ketika ada error dalam program, dimana sistem akan melanjutkan ke label yang ditentukan. Letak baris/label harus berada dalam prosedur sama.
Contoh :
Dengan On Error Goto, macro tersebut akan langsung menampilkan pesan “Type Mismatch” dan keluar dari program dengan menggunakan satu catch (error handler).
Sub DemoOnErrorGoto()
On Error GoTo errorHandler
Dim a, b, c
a = 1: b = “Satu”
c = a + b
Debug.Print “Nilai a + b = “ & c
Exit Sub

Errorhandler:
MsgBox “Salah – Type Mismatch”
Resume Next
End Sub

Hasil :
o   Menggunakan On (Kondisi) GoSub/GoTo
Pernyataan On (kondisi) Gosub/Goto mirip dengan pernyataan Select..case dimana perintah program dapat bercabang ke beberapa kemungkinan baris/label yang ditentukan.
On (kondisi) Gosub (baris/label)
On (kondisi) Goto (baris/label)

Contoh :
Macro tersebut menampilkan jenis kelamin berdasarkan nilai yang dimasukkan pada variabel jenis dengan menggunakan pernyataan On (konsisi) GoSub.
Sub DemoOnGoSub()
Dim Jenis, Kelamin As String
Jenis = InputBox("Masuk jenis (1/2): ")
On Jenis GoSub Proses1, Proses2
Debug.Print "Nilai Jenis: " & Jenis
Debug.Print "Jenis Kelamin: " & Kelamin
Exit Sub
Proses1:
Kelamin = "Pria"
Return
Proses2:
Kelamin = "Wanita"
Return
End Sub

Hasil :














Comments

Post a Comment

Popular posts from this blog

lambang saka wira kartika

LAMBANG SAKA WIRA KARTIKA Lambang Saka Wira Kartika berbentuk segi lima beraturan dengan warda dasar merah dan putih. Di dalamnya terdapat gambar Kartika Eka Paksi, 2 buah tunas kelapa, 2 untai batang padi yang menguning, dan pita bertuliskan Saka Wira Kartika. Gambar Kartika Eka Paksi merupakan lambang dan semboyan TNI Angkatan Darat. lambang Saka Wira Kartika Penjelasan lebih mendalam mengenai lambang Saka Wira Kartika beserta arti kiasan yang terkandung di dalamnya akan diuraikan dalam artikel tersendiri. Anggota Saka Wira Kartika Layaknya pada Satuan Karya Pramuka lainnya, anggota Saka Wira Kartika disyaratkan seorang Pramuka Penegak atau Pramuka Pandega baik putera dan puteri yang menjadi anggota  gugusdepan  di wilayah cabang atau ranting di mana Saka Wira Kartika itu berada.  Untuk dapat mendaftar sebagai anggota Saka Wira Kartika seorang pramuka harus : §   Pramuka Penegak Bantara atau Pramuka Penegak Laksana atau...

Event Programming Dengan Excel VBA

Event Programming Dengan  Excel VBA o    Menggunakan VBA Excel untuk event programming Untuk membuka excel visual basic editor tekn Alt+F11 sesudah anda membuka excel. Jika anda belum membuat macro, jendela code tidak akan menampilkan apa-apa kecuali jika anda klik ganda pada Sheet1 (atau objek lain seperti modul). Atau pilih menu Insert > UserFrom untuk membuat user from baru atau Insert > Module untuk membuat modul baru. Lingkungan Visual Editor pada dasarnya terdiri dari jendela berikut ini. Keterangan dari masing-masing bagian sudah dijelaskan dalam Bab 1. Bagian / Jendela Untuk membuka 1. Standar Toolbar Pilih menu View > Toolsbars > Standard 2. Project Explorer Pilih menu View > Project Explorer atau tekan tombol Ctrl + R 3. Code Pilih menu View > Code atau tekan tombol F7 4.Properties Pilih menu View > Properties Window atau tekan tombol F4 5. Immediate ...

Saka Wirakartika Kabupaten Sragen Tahun 2018

SAKA WIRAKARIKA KABUPATEN SRAGEN TAHUN 2018 Hallo kakak-kakak pramuka diseluruh dunia. Apa kabar nih? Ciyelah,, sehatkan ? Alhamdullilah. Pada kesempatan kali ini kita akan membahas salah satu tentang Satuan Karya Pramuka yaitu saka wira karika. Apasih saka wirakartika itu ? dan kegiatan apakah yang sedang berlangsung? Yuhh, cusss kit abaca arikel berikut. Saka atau Satuan Karya Pramuka Wira Kartika   merupakan salah satu Satuan Karya Pramuka yang bersifat nasional. Saka yang dibentuk lewat kerjasama antara Kwartir Nasional dengan TNI Angkatan Darat ini bertujuan untuk mengembangkan pendidikan bela negara. Di samping Saka Wira Kartika, saka lainnya yang bersifat nasional seperti Saka Bhayangkara ,  Saka Bahari , Saka Bakti Husada, Saka Dirgantara, Saka Kencana, Saka Taruna Bumi, Saka Wanabakti, Saka Pariwisata, Saka Kalpataru, dan Saka Widya Budaya Bakti. Saka Wira Kartika adalah wadah kegiatan bagi  Pramuka Penegak  dan  Pramuka Pandega untuk men...