SOURCE KODE DAN ALGORITMA MEMBUAT BELAH KETUPAT DENGAN VISUAL BASIC
Contoh keluaran yang dihasilkan:
Saya sering melihat artikel yang sama di blog-blog yang lain tentang cara membuat pola belah ketupat dengan string bintang (*) tapi hanya membeberkan source kodenya saja. Dan bahkan pembaca hanya bisa meniru atau sekedar copy paste saja dari artikel tersebut tanpa mengetahui algoritma dan maksud dari tiap baris kode tersebut. Oke disini kita akan kupas semua algoritma dan source kode dari pembuatan pola tersebut hingga pembaca bisa mencoba kembali membuat pola tersebut tanpa bantuan membaca artikel ini kembali.
Bila dilihat dari contoh:
'baris 1: Spasi=x=4,bintang=y=1
'baris 2: x=3,y=3
'baris 3: x=2,y=5
'baris 4: x=1,y=7
'baris 5: x=0,y=9
'baris 6: x=1,y=7
'baris 7: x=2,y=5
'baris 8: x=3,y=3
'baris 9: x=4,y=1
Dari contoh diatas kita akan membuat beberapa variabel;
spasi, bintang=1(di awal), bintang_maksimal(baris 5)=9, perubahan_bintang(per baris)=2.
lalu kita buat rumus;
spasi=(bintang_maksimal-1)/2
bintang=bintang+perubahan_bintang
kata kunci yang harus di gunakan yaitu suatu loop for, untuk menampilkan spasi,bintang dan garis baru. karena pola terbentuk hanya dari ketiga karakter ini. Sementara variabel spasi dan bintang kita deklarasikan untuk membatasi suatu loop.
sekarang kita tuangkan ke dalam source kode:
Module module1
Sub main()
'module1 membuat sebuah pola belah ketupat
Dim spasi, bintang, bintang_maksimal, perubahan_bintang, i, j As Integer 'mendeklarasikan variabel
bintang_maksimal = 9 'inisialisasi variabel
perubahan_bintang = 2
For bintang = 1 To bintang_maksimal Step perubahan_bintang 'loop menampilkan gabungan ketiga karakter(spasi,bintang,garis baru)
spasi = ((bintang_maksimal - bintang) / 2) 'inisialisasi variabel spasi
For i = 1 To spasi Step 1 'loop menampilkan spasi
Console.Write(" ")
Next
For j = 1 To bintang Step 1 'loop menampilkan bintang
Console.Write("*")
Next
Console.WriteLine() 'menampilkan garis baru
Next
End Sub
End Module
Mungkin sekarang anda bingung kenapa keluaran yang ditampilkan hanya membentuk setengah pola belah ketupat. Jawabanya "Belum Beres Cuy". Saya memotong menjadi dua bagian karena mustahil membentuk sebuah pola belah ketupat hanya menggunakan satu loop untuk menggabungkan tampilan dari ketiga karakter yaitu Spasi(" "),bintang("*"),dan garis baru.
Oke begini kelanjutanya...
Tampilan keluaran sejauh ini:
Sekarang yang harus kita selesaikan adalah menampilkan kembali bintang di baris selanjutnya dengan satu spasi dan 7 bintang. Yang
berarti menambah satu spasi di baris berikutnya dan megurangi dua bintang di baris berikutnya.
*
***
*****
*******
*********
******* 'baris 1: x=1,y=7
***** 'baris 2: x=2,y=5
*** 'baris 3: x=3,y=3
* 'baris 4: x=4,y=1
yang berarti sekarang kita ubah nilai dari variabel variabel sebelumnya;perubahan_bintang=-2, bintang=bintang_maksimal-2. Dan kita
harus mendeklarasikan bintang_minimum dan menginisialisasikanya dengan nilai 0, agar menjadi batas minimum suatu loop.
Sekarang kita sempurnakan Source kodenya:
Module module1_
Sub main()
'module1 membuat sebuah pola belah ketupat
Dim spasi, bintang, bintang_maksimal, perubahan_bintang, i, j As Integer 'mendeklarasikan variabel
bintang_maksimal = 9 'inisialisasi variabel
perubahan_bintang = 2
For bintang = 1 To bintang_maksimal Step perubahan_bintang 'loop menampilkan gabungan ketiga karakter(spasi,bintang,garis
baru)
spasi = ((bintang_maksimal - bintang) / 2) 'inisialisasi variabel spasi
For i = 1 To spasi Step 1 'loop menampilkan spasi
Console.Write(" ")
Next
For j = 1 To bintang Step 1 'loop menampilkan bintang
Console.Write("*")
Next
Console.WriteLine() 'menampilkan garis baru
Next
Dim bintang_minimal = 0
perubahan_bintang = -2
bintang = 7
For bintang = 7 To bintang_minimal Step perubahan_bintang
spasi = ((bintang_maksimal - bintang) / 2)
For i = 1 To spasi Step 1
Console.Write(" ")
Next
For j = 1 To bintang Step 1
Console.Write("*")
Next
Console.WriteLine()
Next
End Sub
End Module
SELAMAT BELAJAR!!!!
Anda juga bisa memodifikasi source kode yang saya berikan dengan mengganti inisialisasi program maksimum dengan membaca nilai yang
dimasukan pengguna menggunakan console.readline. Seperti Source kode berikut ini:
module module1
Sub main()
'module1 membuat sebuah pola belah ketupat
Dim spasi, bintang, bintang_maksimal, perubahan_bintang, i, j As Integer 'mendeklarasikan variabel
Console.WriteLine("POLA BELAH KETUPAT KARYA HARI ACHMAD")
Console.Write("Masukan angka ganjil untuk menjadi bintang yang terbanyak: ")
bintang_maksimal = Console.ReadLine()
perubahan_bintang = 2
For bintang = 1 To bintang_maksimal Step perubahan_bintang 'loop menampilkan gabungan ketiga karakter(spasi,bintang,garis
baru)
spasi = ((bintang_maksimal - bintang) / 2) 'inisialisasi variabel spasi
For i = 1 To spasi Step 1 'loop menampilkan spasi
Console.Write(" ")
Next
For j = 1 To bintang Step 1 'loop menampilkan bintang
Console.Write("*")
Next
Console.WriteLine() 'menampilkan garis baru
Next
Dim bintang_minimal = 0
perubahan_bintang = -2
bintang = bintang_maksimal - 2
For bintang = bintang_maksimal - 2 To bintang_minimal Step perubahan_bintang
spasi = ((bintang_maksimal - bintang) / 2)
For i = 1 To spasi Step 1
Console.Write(" ")
Next
For j = 1 To bintang Step 1
Console.Write("*")
Next
Console.WriteLine()
Next
End Sub
End Module
KELUARAN TERAKHIR:
Contoh keluaran yang dihasilkan:
Saya sering melihat artikel yang sama di blog-blog yang lain tentang cara membuat pola belah ketupat dengan string bintang (*) tapi hanya membeberkan source kodenya saja. Dan bahkan pembaca hanya bisa meniru atau sekedar copy paste saja dari artikel tersebut tanpa mengetahui algoritma dan maksud dari tiap baris kode tersebut. Oke disini kita akan kupas semua algoritma dan source kode dari pembuatan pola tersebut hingga pembaca bisa mencoba kembali membuat pola tersebut tanpa bantuan membaca artikel ini kembali.
Bila dilihat dari contoh:
'baris 1: Spasi=x=4,bintang=y=1
'baris 2: x=3,y=3
'baris 3: x=2,y=5
'baris 4: x=1,y=7
'baris 5: x=0,y=9
'baris 6: x=1,y=7
'baris 7: x=2,y=5
'baris 8: x=3,y=3
'baris 9: x=4,y=1
Dari contoh diatas kita akan membuat beberapa variabel;
spasi, bintang=1(di awal), bintang_maksimal(baris 5)=9, perubahan_bintang(per baris)=2.
lalu kita buat rumus;
spasi=(bintang_maksimal-1)/2
bintang=bintang+perubahan_bintang
kata kunci yang harus di gunakan yaitu suatu loop for, untuk menampilkan spasi,bintang dan garis baru. karena pola terbentuk hanya dari ketiga karakter ini. Sementara variabel spasi dan bintang kita deklarasikan untuk membatasi suatu loop.
sekarang kita tuangkan ke dalam source kode:
Module module1
Sub main()
'module1 membuat sebuah pola belah ketupat
Dim spasi, bintang, bintang_maksimal, perubahan_bintang, i, j As Integer 'mendeklarasikan variabel
bintang_maksimal = 9 'inisialisasi variabel
perubahan_bintang = 2
For bintang = 1 To bintang_maksimal Step perubahan_bintang 'loop menampilkan gabungan ketiga karakter(spasi,bintang,garis baru)
spasi = ((bintang_maksimal - bintang) / 2) 'inisialisasi variabel spasi
For i = 1 To spasi Step 1 'loop menampilkan spasi
Console.Write(" ")
Next
For j = 1 To bintang Step 1 'loop menampilkan bintang
Console.Write("*")
Next
Console.WriteLine() 'menampilkan garis baru
Next
End Sub
End Module
Mungkin sekarang anda bingung kenapa keluaran yang ditampilkan hanya membentuk setengah pola belah ketupat. Jawabanya "Belum Beres Cuy". Saya memotong menjadi dua bagian karena mustahil membentuk sebuah pola belah ketupat hanya menggunakan satu loop untuk menggabungkan tampilan dari ketiga karakter yaitu Spasi(" "),bintang("*"),dan garis baru.
Oke begini kelanjutanya...
Tampilan keluaran sejauh ini:
Sekarang yang harus kita selesaikan adalah menampilkan kembali bintang di baris selanjutnya dengan satu spasi dan 7 bintang. Yang
berarti menambah satu spasi di baris berikutnya dan megurangi dua bintang di baris berikutnya.
*
***
*****
*******
*********
******* 'baris 1: x=1,y=7
***** 'baris 2: x=2,y=5
*** 'baris 3: x=3,y=3
* 'baris 4: x=4,y=1
yang berarti sekarang kita ubah nilai dari variabel variabel sebelumnya;perubahan_bintang=-2, bintang=bintang_maksimal-2. Dan kita
harus mendeklarasikan bintang_minimum dan menginisialisasikanya dengan nilai 0, agar menjadi batas minimum suatu loop.
Sekarang kita sempurnakan Source kodenya:
Module module1_
Sub main()
'module1 membuat sebuah pola belah ketupat
Dim spasi, bintang, bintang_maksimal, perubahan_bintang, i, j As Integer 'mendeklarasikan variabel
bintang_maksimal = 9 'inisialisasi variabel
perubahan_bintang = 2
For bintang = 1 To bintang_maksimal Step perubahan_bintang 'loop menampilkan gabungan ketiga karakter(spasi,bintang,garis
baru)
spasi = ((bintang_maksimal - bintang) / 2) 'inisialisasi variabel spasi
For i = 1 To spasi Step 1 'loop menampilkan spasi
Console.Write(" ")
Next
For j = 1 To bintang Step 1 'loop menampilkan bintang
Console.Write("*")
Next
Console.WriteLine() 'menampilkan garis baru
Next
Dim bintang_minimal = 0
perubahan_bintang = -2
bintang = 7
For bintang = 7 To bintang_minimal Step perubahan_bintang
spasi = ((bintang_maksimal - bintang) / 2)
For i = 1 To spasi Step 1
Console.Write(" ")
Next
For j = 1 To bintang Step 1
Console.Write("*")
Next
Console.WriteLine()
Next
End Sub
End Module
SELAMAT BELAJAR!!!!
Anda juga bisa memodifikasi source kode yang saya berikan dengan mengganti inisialisasi program maksimum dengan membaca nilai yang
dimasukan pengguna menggunakan console.readline. Seperti Source kode berikut ini:
module module1
Sub main()
'module1 membuat sebuah pola belah ketupat
Dim spasi, bintang, bintang_maksimal, perubahan_bintang, i, j As Integer 'mendeklarasikan variabel
Console.WriteLine("POLA BELAH KETUPAT KARYA HARI ACHMAD")
Console.Write("Masukan angka ganjil untuk menjadi bintang yang terbanyak: ")
bintang_maksimal = Console.ReadLine()
perubahan_bintang = 2
For bintang = 1 To bintang_maksimal Step perubahan_bintang 'loop menampilkan gabungan ketiga karakter(spasi,bintang,garis
baru)
spasi = ((bintang_maksimal - bintang) / 2) 'inisialisasi variabel spasi
For i = 1 To spasi Step 1 'loop menampilkan spasi
Console.Write(" ")
Next
For j = 1 To bintang Step 1 'loop menampilkan bintang
Console.Write("*")
Next
Console.WriteLine() 'menampilkan garis baru
Next
Dim bintang_minimal = 0
perubahan_bintang = -2
bintang = bintang_maksimal - 2
For bintang = bintang_maksimal - 2 To bintang_minimal Step perubahan_bintang
spasi = ((bintang_maksimal - bintang) / 2)
For i = 1 To spasi Step 1
Console.Write(" ")
Next
For j = 1 To bintang Step 1
Console.Write("*")
Next
Console.WriteLine()
Next
End Sub
End Module
KELUARAN TERAKHIR: