Assalamualaikum wr.wb
Halo semuaa, apakabar? baik-baik saja dong pastinya hehe. Mungkin kali ini saya akan memposting satu hal yang masih fundamental tapi sedikit rumit, kenapa? karena kita akan sedikit bermain dengan logic :)
Oke menyambung tentang postingan saya terakhir tentang for dan foreach. Yaitu salah satu kodingan untuk melakukan perulangan dalam membuat sebuah program. Kali ini kita akan sedikit bermain dengan salah satu perulangan tersebut, yaitu perulangan for.
For merupakan salah satu perulangan yang banyak digunakan oleh para developer untuk digunakan apabila kondisi perulangannya sudah diketahui. Nah kali ini kita akan membahas bagaimana caranya menggunakan for untuk membuat gambar berikut:
Lumayan rumit bukan, buat kita yang masih awam pasti masih bingung ya dengan hal yang seperti ini :) Tidak apapa kan, oleh karena itu kita belajar. Mulai sekarang kita akan menyebut gambar tersebut dengan deretan kupu-kupu.
Oke mungkin pertama kali kita harus memahami apa yang sebenarnya terjadi disini. Dalam dunia programming, ada dua buah pendekatan yang bisa kita gunakan dalam mendesain suatu program, yang pertama top-down design dan yang kedua bottom-up design.
Top-down design atau yang sering juga disebut dengan stepwise design/ deductive reasoning adalah apabila kita melakukan pemrograman dengan melihat dari big picture nya terlebih dahulu, baru kita melakukan break down ke segmen-segmen kecil miliknya.
Bottom-up design, kebalikannya, atau yang sering disebut dengan inductive reasoning adalah ketika kita melihat suatu masalah melalui hal-hal kecil atau segmentasi kecilnya terlebih dahulu , baru selanjutnya dihubungkan satu sama lain hingga membentuk sebuah sistem yang utuh.
Untuk lebih memahami tentang top-down design dan bottom-up design bisa dilihat disini :D
Pada kasus kali ini, kita akan menggunakan pendekatan bottom-up untuk memecahkan masalahnya, kita akan membagi bagian kupu-kupu tersebut terlebih dahulu baru kemudian menghubungkannya satu sama lain untuk membentuk satu kesatuan kupu-kupu yang utuh.
Seperti yang kita lihat digambar, jika kita memasukkan input jumlah angka, maka akan muncul output jumlah output sesuai jumlah kupu-kupu tersebut. Inilah acuan kita pertama kali dalam membuat program ini. Oke, mungkin kita pertama kali perlu membuat sebuah solution baru terlebih dahulu.
1. Buka program Visual Studio yang anda miliki.
2. Klik File, new, Project
3. Kemudian akan muncul jebdela new project, klik Installed, Templates, kemudian Visual C#. Lalu pilih Other project types, pilih Visual Studio Solutions, lalu Klik Blank Solution.
4. Berikan nama dan pilih directory project yang diinginkan, jika sudah selesai akan muncul tampilan sebagai berikut
5. Untuk mulai membuat program kita buat sebuah console application project terlebih dahulu di solution ini, sekarang buat project baru dengan nama "Kupu-kupu". Klik kanan pada solution, pilih add, lalu new project.
Halo semuaa, apakabar? baik-baik saja dong pastinya hehe. Mungkin kali ini saya akan memposting satu hal yang masih fundamental tapi sedikit rumit, kenapa? karena kita akan sedikit bermain dengan logic :)
Oke menyambung tentang postingan saya terakhir tentang for dan foreach. Yaitu salah satu kodingan untuk melakukan perulangan dalam membuat sebuah program. Kali ini kita akan sedikit bermain dengan salah satu perulangan tersebut, yaitu perulangan for.
For merupakan salah satu perulangan yang banyak digunakan oleh para developer untuk digunakan apabila kondisi perulangannya sudah diketahui. Nah kali ini kita akan membahas bagaimana caranya menggunakan for untuk membuat gambar berikut:
Lumayan rumit bukan, buat kita yang masih awam pasti masih bingung ya dengan hal yang seperti ini :) Tidak apapa kan, oleh karena itu kita belajar. Mulai sekarang kita akan menyebut gambar tersebut dengan deretan kupu-kupu.
Oke mungkin pertama kali kita harus memahami apa yang sebenarnya terjadi disini. Dalam dunia programming, ada dua buah pendekatan yang bisa kita gunakan dalam mendesain suatu program, yang pertama top-down design dan yang kedua bottom-up design.
Top-down design atau yang sering juga disebut dengan stepwise design/ deductive reasoning adalah apabila kita melakukan pemrograman dengan melihat dari big picture nya terlebih dahulu, baru kita melakukan break down ke segmen-segmen kecil miliknya.
Bottom-up design, kebalikannya, atau yang sering disebut dengan inductive reasoning adalah ketika kita melihat suatu masalah melalui hal-hal kecil atau segmentasi kecilnya terlebih dahulu , baru selanjutnya dihubungkan satu sama lain hingga membentuk sebuah sistem yang utuh.
Untuk lebih memahami tentang top-down design dan bottom-up design bisa dilihat disini :D
Pada kasus kali ini, kita akan menggunakan pendekatan bottom-up untuk memecahkan masalahnya, kita akan membagi bagian kupu-kupu tersebut terlebih dahulu baru kemudian menghubungkannya satu sama lain untuk membentuk satu kesatuan kupu-kupu yang utuh.
Seperti yang kita lihat digambar, jika kita memasukkan input jumlah angka, maka akan muncul output jumlah output sesuai jumlah kupu-kupu tersebut. Inilah acuan kita pertama kali dalam membuat program ini. Oke, mungkin kita pertama kali perlu membuat sebuah solution baru terlebih dahulu.
1. Buka program Visual Studio yang anda miliki.
2. Klik File, new, Project
4. Berikan nama dan pilih directory project yang diinginkan, jika sudah selesai akan muncul tampilan sebagai berikut
6. Pilih installed, Visual C#, lalu Klik Console Application. Masukkan nama dan directory yang diinginkan. Klik Ok. Akan muncul project baru dengan nama seperti yang kita tuliskan.
Oke pertama kali setelah kita menyiapkan solutionnya, kita harus memeta-metakan dahulu permasalahan yang ada karena kita melakukan pendekatan berupa bottom-up. Kita akan memisahkan terlebih dahulu bagian kecilnya baru menggabungkannya. Disini kita harus memikirkan bagaimana membagi fungsi loop tersebut dan bagian mana saja yang harus dipilih untuk dijadikan komponen kecilnya.
Pertama kita akan membagi gambarnya menjadi seperti berikut
Kita membagi gambar tersebut menjadi 12 section, ini apabila inputannya sama, yaitu 3.
- Pertama kita simpulkan dahulu artinya setiap looping utama yang dilakukan, program kita akan mencetak empat kotak bagian tersebut (yang berbentuk satu buah kupu) lalu mengulanginya secara bergantian sebanyak 3 kali.
- Dari keempat kotak tersebut, kita lebih mudah memisahkan juga bagian kupu yang atas dan bagian kupu yang bawah, sehingga sub-system kita dan apa yang harus dilakukan adalah membuat bagian atas dan bagian bawahnya terlebih dahulu
- Dari bagian atas dan bawah tersebut, masingi-masing terdiri dari dua buah blok, blok kanan dan kiri. Blok kanan untuk sayap kanan dan kiri untuk sayap kiri. Kita harus membuat dahulu sayap kanan dan sayap kiri tersebut.
Jadi sesuai dengan pendekatan bottom up, flow yang akan kita lakukan adalah sebagai berikut:
Mencetak sayap kanan dan kiri bagian --> mencetak bagian atas dan bagian bawah --> mencetak perulangan kupu
Oke pertama kali kita akan mencoba untuk membuat bagian kanan dan bagian kiri terlebih dahulu. Buka Program.cs yang kita buat terlebih dahulu, lalu masukkan kode berikut:
Console.Write("Masukkan angka yang ingin anda masukkan: ");
String b = Console.ReadLine();
Console.WriteLine("Angka = " + b);
Int16 angka = 0;
angka = Convert.ToInt16(b);
for (int i = 0; i <= angka; i++)
{
for (int j = 0; j <= i; j++)
{
Console.Write("*");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
Console.WriteLine();
}
Console.ReadLine();
}
Console.Write("Masukkan angka yang ingin anda masukkan: ");
String b = Console.ReadLine();
Console.WriteLine("Angka = " + b);
Int16 angka = 0;
angka = Convert.ToInt16(b);
for (int i = 0; i <= angka; i++)
{
for (int j = 0; j <= i; j++)
{
Console.Write("*");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
Console.WriteLine();
}
Console.ReadLine();
}
output:
Pada program tersebut, kita membuat sayap kiri bagian atasnya terlebih dahulu, perulangan for pertama kita gunakan untuk melakukan perulangan sebanyak baris kebawahnya. sedangkan for yang ada didalamnya, adalah untuk mencetak tanda ("*") dan spasi (" ") pada masing-masing baris. Idenya adalah dari baris pertama hingga keempat, tanda ("*") yang dicetak semakin banyak, sedangkan tanda (" ") semakin berkurang. Perhatikan kondisi pada masing-masing for :)
Setelah kita membuat sayap kiri, sekarang kita akan mencoba untuk mencetak sayap kanan, idenya adalah melakukan hal yang sama seperti saat mencetak sayap kiri, namun saat ini kita tambahkan dengan terlebih dahulu mengeprint spasinya. Beginilah source codenya:
for (int i = 0; i <= angka; i++)
{
for (int j = 0; j <= i; j++)
{
Console.Write("*");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = 0; k <= i; k++)
{
Console.Write("*");
}
Console.WriteLine();
}
output:
Terlihat bahwa dengan menambahkan kode yang sama, program membaca perulangan yang kita buat sehingga kita bisa memunculkan sayap kirinya. Baiklah mungkin saya belum menjelaskan secara detail, for yang pertama dengan kondisi for (int i = 0; i <= angka; i++) adalah for yang kita gunakan untuk melakukan pencetakan menurun tiap barisnya, for ini juga berpengaruh dengan jumlah karakter yang di print didalamnya, karena kita menggunakn kondisi for (int j = 0; j <= i; j++) (makin besar i semakin banyak yang dicetak) dan for (int k = angka; k > i; k--) (makin banyak i, makin sedikit yang dicetak). Keduanya bergantung kepada nilai i yang berasal dari for yang pertama.
Baik, langkah berikutnya adalah membentuk bagian bawahnya. Idenya, adalah membuat bentuk yang sama dengan bagian atas, namun kali ini karakter yang dicetak kita balik, "*" makin lama makin sedikit, sedangkan " " makin lama makin banyak. Beginilah sourcecodenya:
for (int i = 0; i <= angka; i++)
{
for (int j = 0; j <= i; j++)
{
Console.Write("*");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = 0; k <= i; k++)
{
Console.Write("*");
}
Console.WriteLine();
}
for (int j = 0; j < angka; j++)
{
for (int k = angka; k > j; k--)
{
Console.Write("*");
}
for (int k = 0; k <= j; k++)
{
Console.Write(" ");
}
for (int k = 0; k <= j; k++)
{
Console.Write(" ");
}
for (int k = angka; k > j; k--)
{
Console.Write("*");
}
Console.WriteLine();
}
Console.ReadLine();
}
Output:
Pada pembuatan bagian bawah, kita tidak memasukkan perulangan for tersebut dalam for utama yang sama dengan for yang membuat bagian atas, kita membuat for i lain, yang letaknya diluar scope perulangan i yang pertama, sehingga yang terjadi adalah sistem mencetaknya secara bergantian, bagian atas terlebih dahulu, baru bagian bawahnya.
Lalu bagian terakhir adalah membuat perulangan kupu sebanyak angka yang kita masukkan. Idenya adalah, kita melakukan perulangan pada bagian atas dan bagian bawah sehingga mereka akan mencetak masing-masing bagiannya sebanyak inputan yang kita masukkan. Seperti ini implementasinya:
for (int i = 0; i <= angka; i++)
{
for (int m = 0; m < angka; m++)
{
for (int j = 0; j <= i; j++)
{
Console.Write("*");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = 0; k <= i; k++)
{
Console.Write("*");
}
}
Console.WriteLine();
}
for (int j = 0; j < angka; j++)
{
for (int i = 0; i < angka; i++)
{
for (int k = angka; k > j; k--)
{
Console.Write("*");
}
for (int k = 0; k <= j; k++)
{
Console.Write(" ");
}
for (int k = 0; k <= j; k++)
{
Console.Write(" ");
}
for (int k = angka; k > j; k--)
{
Console.Write("*");
}
}
Console.WriteLine();
}
Console.ReadLine();
}
output:
Kita menambahkan satu buah for lagi diantara for utama (for untuk baris) dan kumpulan for yang kita gunakan untuk mencetak karakter. For yang baru ini fungsinya adalah untuk melakukan perulangan, agar for yang kita gunakan untuk mencetak karakter dapat mengulang proses mencetak mereka sebanyak inputan yang kita masukkan. Hal ini akan dibaca sistem di masing-masing baris sehingga pada akhirnya dapat tercetak kupu-kupu sebanyak inputan yang kita masukan :)
Inilah full source codenya:
Demikianlah tutorial untuk membuat kupu-kupu dengan menggunakan perulangan for. Apabila penjelasan saya kurang jelas, jangan ragu untuk bertanya yaa. Mungkin cukup sekian dulu postingan saya kali ini. Semoga bermanfaat. Terima kasih :D
wassalamualaikum.
-Keep sharing and blogging-
Pada program tersebut, kita membuat sayap kiri bagian atasnya terlebih dahulu, perulangan for pertama kita gunakan untuk melakukan perulangan sebanyak baris kebawahnya. sedangkan for yang ada didalamnya, adalah untuk mencetak tanda ("*") dan spasi (" ") pada masing-masing baris. Idenya adalah dari baris pertama hingga keempat, tanda ("*") yang dicetak semakin banyak, sedangkan tanda (" ") semakin berkurang. Perhatikan kondisi pada masing-masing for :)
Setelah kita membuat sayap kiri, sekarang kita akan mencoba untuk mencetak sayap kanan, idenya adalah melakukan hal yang sama seperti saat mencetak sayap kiri, namun saat ini kita tambahkan dengan terlebih dahulu mengeprint spasinya. Beginilah source codenya:
for (int i = 0; i <= angka; i++)
{
for (int j = 0; j <= i; j++)
{
Console.Write("*");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = 0; k <= i; k++)
{
Console.Write("*");
}
Console.WriteLine();
}
output:
Terlihat bahwa dengan menambahkan kode yang sama, program membaca perulangan yang kita buat sehingga kita bisa memunculkan sayap kirinya. Baiklah mungkin saya belum menjelaskan secara detail, for yang pertama dengan kondisi for (int i = 0; i <= angka; i++) adalah for yang kita gunakan untuk melakukan pencetakan menurun tiap barisnya, for ini juga berpengaruh dengan jumlah karakter yang di print didalamnya, karena kita menggunakn kondisi for (int j = 0; j <= i; j++) (makin besar i semakin banyak yang dicetak) dan for (int k = angka; k > i; k--) (makin banyak i, makin sedikit yang dicetak). Keduanya bergantung kepada nilai i yang berasal dari for yang pertama.
Baik, langkah berikutnya adalah membentuk bagian bawahnya. Idenya, adalah membuat bentuk yang sama dengan bagian atas, namun kali ini karakter yang dicetak kita balik, "*" makin lama makin sedikit, sedangkan " " makin lama makin banyak. Beginilah sourcecodenya:
for (int i = 0; i <= angka; i++)
{
for (int j = 0; j <= i; j++)
{
Console.Write("*");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = 0; k <= i; k++)
{
Console.Write("*");
}
Console.WriteLine();
}
for (int j = 0; j < angka; j++)
{
for (int k = angka; k > j; k--)
{
Console.Write("*");
}
for (int k = 0; k <= j; k++)
{
Console.Write(" ");
}
for (int k = 0; k <= j; k++)
{
Console.Write(" ");
}
for (int k = angka; k > j; k--)
{
Console.Write("*");
}
Console.WriteLine();
}
Console.ReadLine();
}
Output:
Pada pembuatan bagian bawah, kita tidak memasukkan perulangan for tersebut dalam for utama yang sama dengan for yang membuat bagian atas, kita membuat for i lain, yang letaknya diluar scope perulangan i yang pertama, sehingga yang terjadi adalah sistem mencetaknya secara bergantian, bagian atas terlebih dahulu, baru bagian bawahnya.
Lalu bagian terakhir adalah membuat perulangan kupu sebanyak angka yang kita masukkan. Idenya adalah, kita melakukan perulangan pada bagian atas dan bagian bawah sehingga mereka akan mencetak masing-masing bagiannya sebanyak inputan yang kita masukkan. Seperti ini implementasinya:
for (int i = 0; i <= angka; i++)
{
for (int m = 0; m < angka; m++)
{
for (int j = 0; j <= i; j++)
{
Console.Write("*");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = angka; k > i; k--)
{
Console.Write(" ");
}
for (int k = 0; k <= i; k++)
{
Console.Write("*");
}
}
Console.WriteLine();
}
for (int j = 0; j < angka; j++)
{
for (int i = 0; i < angka; i++)
{
for (int k = angka; k > j; k--)
{
Console.Write("*");
}
for (int k = 0; k <= j; k++)
{
Console.Write(" ");
}
for (int k = 0; k <= j; k++)
{
Console.Write(" ");
}
for (int k = angka; k > j; k--)
{
Console.Write("*");
}
}
Console.WriteLine();
}
Console.ReadLine();
}
output:
Kita menambahkan satu buah for lagi diantara for utama (for untuk baris) dan kumpulan for yang kita gunakan untuk mencetak karakter. For yang baru ini fungsinya adalah untuk melakukan perulangan, agar for yang kita gunakan untuk mencetak karakter dapat mengulang proses mencetak mereka sebanyak inputan yang kita masukkan. Hal ini akan dibaca sistem di masing-masing baris sehingga pada akhirnya dapat tercetak kupu-kupu sebanyak inputan yang kita masukan :)
Inilah full source codenya:
Demikianlah tutorial untuk membuat kupu-kupu dengan menggunakan perulangan for. Apabila penjelasan saya kurang jelas, jangan ragu untuk bertanya yaa. Mungkin cukup sekian dulu postingan saya kali ini. Semoga bermanfaat. Terima kasih :D
wassalamualaikum.
-Keep sharing and blogging-
No comments:
Post a Comment