Pages

Diberdayakan oleh Blogger.

Hakk�mda

Foto Saya
Nini Chen
hi there ! i'm nini. i very love my mom, and very love my daddy ~ i LOVE my family ^^ i have one bro and one sist , i like sleep and eat something delicious :D find me at : facebook : Nini Chen Twitter : @ninichenn
Lihat profil lengkapku

Minggu, 16 Juni 2013

Ini tugas OFC ke 2 yang diberikan oleh dosen saya,sama sih ini juga simple banget aplikasinya,hehehe

Soal 1
Soal 1 yang dibahas disini adalah membuat program dimana user akan menginput angka yang diinginkan dan nantinya program akan mengeluarkan output yang menunjukkan bilangan prima dari angka yang di input oleh user tadinya,serta jumlah dari bilangan yang merupakan bilangan prima. Jadi,sebagaimana yang telah diketahui bahwa bilangan prima merupakan :

1. Bilangan yang lebih besar dari 1
2. Faktor pembaginya hanya 1
3. ilangan itu adalah dirinya sendiri.

 Jadi untuk lebih mengerti apa saja bilangan prima tersebut adalah bahwa bilangan prima itu baru akan habis (sisa=0) kalau dibagi 1 atau bilangan itu sendiri.Jadi,disini bisa digunakan fungsi modulus untuk mendapatkan sisa pembagian(dalam c# menggunakan %).

Cara kerja program yang saya buat adalah :

Pada saat program dijalankan,maka akan user akan diminta untuk menginput angka sesuai keinginan untuk mengetahui dari angka yang di input user,bilangan manakah yang termasuk bilangan prima.

Kemudian,selanjutnya user akan menginput angka sesuai keinginan,misalnya angka 10. Maka program akan menjalankan/mengecek dari angka 1 sampai 10, bilangan manakah yang termasuk bilangan prima. Disini digunakan Convert.toInt16 karena range yang digunakan tidak panjang sehingga hanya perlu menggunakan Int16 saja.

Selanjutnya , apabila user menekan enter maka akan muncul deret bilangan yang merupakan bilangan prima. Cara nya adalah dengan menggunakan for(looping untuk mengecek) dan apabila a % b = 0, jika iya maka akan di ++ . Selanjutnya akan di print dengan menggunakan writeLine untuk mengetahui bilangan mana saja yang merupakan bilangan prima dari angka yang sudah di input user tadinya. Dan untuk mengetahui jumlah dari angka yang merupakan bilangan prima disini program yang saya buat adalah dapat dengan menggunakan c = c + a; (dimana sebelumnya sudah di tentukan) untuk melakukan penjumlahan.

Jadi,method ini adalah sebuah code block yang berisi serangkaian statement. Method sangat berguna karena memungkinkan kita untuk memisahkan logika kita ke unit yang berbeda.Selain itu,kita juga dapat menyampaikan informasi dengan menggunakan method,melakukan satu/lebih statement dan mengambil kembali value nya.

Dari 2 type method yang ada , program yang saya gunakan disni adalah menggunakan type method void,dimana merupakan method yang hanya mengeksekusi sekelompok statement dan kemudian berakhir tanpa mengembalikan nilai apapun ke statement yang memanggilnya.

Code nya adalah :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Erlini_15011xxxxx_BilPrima
{
    class Program
    {
        public static void Main(string[] args)
        {
            int a;
            int b;
            int c;
            int d;
            int angka;
            c = 0;

            Console.WriteLine("Masukkan angka:");
            d = Convert.ToInt16(Console.ReadLine());
            Console.WriteLine();
            Console.WriteLine("Deret bilangan prima nya adalah:");
            Console.WriteLine();

            for (a = 2; a <= d; a++)
            {
                angka = 0;
                for (b = 2; b <= Math.Sqrt(a); b++)
                {
                    if (a % b == 0)
                    {
                        angka++;
                    }
                }
                if (angka == 0)
                {
                    Console.WriteLine("{0} merupakan bilangan prima", a);
                    c = c + a;
                }
            }
            Console.WriteLine("\nJumlah dari deret bilangan prima diatas adalah {0}", c);
            Console.ReadLine();
        }
    }
}

Soal 2
Sebelumnya saya akan menjelaskan sedikit tentang Tower Hanoi terlebih dahulu. Tower Hanoi adalah sebuah permainan yang terdiri dari 3 tiang dengan sejumlah disk yang ditumpukkan pada tiang. Permainan ini dilakukan dengan memindahkan sejumlah disk dari tiang satu ke tiang lain dengan menggunakan tiang bantuan. Cara nya yaitu memindahkan semua disk yang berada pada tiang A ke tiang C satu persatu dengan bantuan satu tiang dengan syarat disk yang lebih besar tidak boleh diletakkan diatas disk yang lebih kecil.

Pada saat awal program dijalankan maka :
User akan diminta untuk menginput berapa jumlah disk yang diinginkan .
Misalnya user menginput jumlah disk = 3. Setelah itu,maka akan di beritahu solusi untuk cara memindahkan disk agar dapat berpindah dari satu tiang ke tiang lain dengan bantuan satu tiang dengan memperhatikan syarat nya(tiang yang lebih kecil tidak boleh ditempatkan dibawah tiang  yang lebih besar).

Untuk lebih jelas,aplikasi akan dijelaskan dengan menggunakan flowchart:
Penjelasan :

1. Pertama,pada saat program dijalankan maka akan dimulai dengan “Start”

2. Kemudian proses selanjutnya adalah akan dimasukkan data berupa int x(merupakan inputan user)

3. Selain itu juga ada char A (Tiang A),char B(Tiang B),dan char C(Tiang C)

4. Selanjutnya user akan diminta untuk menginput berapa banyak disk yang ingin dimasukkan

5. Maka,setelah user melakukan input disk , proses selanjutnya akan diread x, a,b, dan c

6. Kemudian akan di cek apakah inputan disk yang dimasukkan user adalah lebih besar dari 0, apabila iya maka proses selanjutnya adalah program akan membaca dan melakukan pemindahan disk pada tiang satu ke tiang lain dengan menggunakan tiang bantuan. Cara kerja pemindahan disk dari satu tiang ke tiang lain dengan tiang pembantu adalah:
 

7.Misalnya disk yang di input adalah 3. Maka pertama akan di cek terlebih dahulu,apakah 3 lebih besar dari 0 ? Dan jawabannya adalah benar, 3 lebih besar dari 0 ,maka akan dijalankan proses Hanoi(x-1,a,c,b) dimana x=3 akan di – 1 = 2 ,maka disk 1 dari Tiang A akan di pindahkan ke tiang B, dan disk 2 dari Tiang A akan dipindahkan ke tiang C.
 

8. Selanjutnya akan dijalankan Hanoi(x-1,c,b,a) dimana (x-1=2, 2-1=1) maka disk 1 akan dipindahkan dari tiang B ke tiang C, dan disk 3 dari tiang A akan dipindahkan ke tiang B.
 

9. Kemudian disk 1 akan dipindahkan dari Tiang C ke tiang A. Dan akhirnya akan dipindahkan disk x dari A ke B” maka hasilnya disk 1 dari tiang A akan dipindahkan ke tiang B.

10. Apabila disk yang diinput oleh user tidak lebih besar dari 0 maka program akan diulangi dari start.


Code nya adalah :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Erlini_15011xxxxx_TowerHanoi
{
    class Program
    {
        static void Main(string[] args)
        {
            int x;
            char a='A', b='B', c='C';
            do
            {
                try
                {
                    Console.Write("Masukkan jumlah disk:");
                    x = Int32.Parse(Console.ReadLine());
                }
                catch (FormatException e)
                {
                    x = -10;
                }
            } while (x == -10 || x >= 10);
           hanoi(x, a, b, c);
            Console.Read();
        }
        static void hanoi(int x, char a, char b, char c)
        {
            if (x > 0)
            {
                hanoi(x - 1, a, c, b);
                move(x, a,b);
                hanoi(x - 1, c, b, a);
            }
        }
        static void move(int x, char a, char b)
        {
            Console.WriteLine("move disk " + x + " from " + a + " to " + b);
        }
    }
}


Dari kedua tugas yang diberikan pada OFC02 ini, dapat membantu saya lebih memahami penggunaan method. Jadi,method merupakan cara yang digunakan untuk membagi program menjadi beberapa bagian, dan method biasanya dgunakan ketika kita ingin mengembangkan program dalam skala besar. Dimana type method sendiri ada 2 yaitu yaitu “void” dan “value - returning ”. Perbedaan nya adalah :
Void : merupakan type method yang tidak mereturn/mengembalikan nilai apapun.
Value-returning : merupakan type method yang mengembalikan value kepada statement yang memanggilnya. Untuk type method ini, yang harus dilakukan adalah menghilangkan keyword void pada method yang kita buat , kemudian digantikan dengan variable kembalian kita, misalnya return value nya  int.
Jadi,program yang dibuat disni adalah menggunakan type method yang pertama yaitu void dimana tidak mengembalikan nilai apapun.




Sekarang saya mau share sediki tugas programming 2 yang diberikan dosen saya,aplikasi ini bener2 sangat simple,tapi mana tau ada yang membutuhkan ^^

Teori dasar yang terkait


Sebelum membuat aplikasi,terlebih dahulu ada baiknya mengerti apa yang dimaksud dengan windows form. Windows form adalah platform baru untuk pembuatan aplikasi Microsoft Windows berbasis .NET Framework. Framework ini menyediakan sekelompok class berorientasi object,dan dapat digunakan untuk membangun aplikasi Windows yang lengkap.

Windows terkait pada user interface yang user lihat dan gunakan dalam melakukan interaksi dengan aplikasi. Sedangkan form lebih dikaitkan pada tampilan design saat pembuatan aplikasi,dimana kita dapat melihat,mengatur property,tampilan maupun menambahkan control.

Form adalah objek yang memiliki properti2 yang mendefinisikan tampilan,method yang mendefinisikan behavior dan event yang mendefinisikan interaksi dengan pengguna.Dengan mengatur property form,kita dapat mengcostumize objek untuk memenuhi kebutuhan aplikasi.

Form adalah instance dari class. Form yang dibuat dengan windows form designer adalah sebuah class,dan saat kita menampilkan sebuah instance dari form pada run time,class adalah template yang digunakan untuk membuat form.

Dalam project Windows forms,form adalah alat utama untuk interaksi user. Dengan mengkombinasikan set control dan koding,kita dapat memperoleh informasi dari pengguna dan memberikan respon,bekerja dengan data yang sudah tersimpan ,melakukan query dan menuliskan kembali ke system file dan register pada computer pengguna. Meskipun form dapat dibuat secara manual kseluruhan di code editor,namun lebih mudah menggunakan windows form designer untuk membuat dan memodifikasi form.

Untuk membuat aplikasi berbasis windows forms dapat dilakukan dengan cara berikut:

1.       pilih menu File

2.       New

3.       Project
 

Setelah tampil dialog New Project, pilih Visual Basic untuk Project Types, karena kita sedang membuat aplikasi menggunakan Visual Basic .NET. Pada Templates pilih Windows Forms Application. Setelah itu tentukan nama proyek yang akan kita buat dengan mengisi kotak Name (sesuaikan nama proyek sesuai proyek/aplikasi yang akan dibuat). Dan tentukan lokasi untuk menyimpan proyek .Jika semua sudah dipilih dan diisi sesuai proyek/aplikasi yang akan dibuat, selanjutnya klik tombol Ok di bagian bawah,seperti pada gambar dibawah ini:

Kemudian  akan tampil form kosong seperti pada gambar dibawah ini :

Disini dapat dibuat aplikasi sesuai dengan keinginan dengan menggunakan toolbox yang sudah disediakan.

Pada toolbox terdapat Kontrol dari lingkungan pengembangan, dan digunakan untuk membuat obyek pada form dengan cara sederhana, yaitu dengan drag and drop.Kontrol dari Windows Forms secara khusus dirancang untuk membangun aplikasi Microsoft Windows, dan kita akan menemukan mereka diorganisasikan pada tab All Windows Forms dari Toolbox. Jendela Toolbox menampilkan alat yang dapat digunakan pada dokumen yang sedang aktif. Alat-alat tersebut akan tersedia bila kita mengedit Windows Form.


Kemudian ada juga yang disebut sebagai Properties,dimana disini kita dapat mengubah karakteristik, atau pengaturan properti, dari elemen user interface yang ada pada form (temasuk komponen didalamnya seperti Button, TextBox, Label,GroupBox,CheckBoxes dan lainnya). Pengaturan properti merupakan salah satu yang menentukan kualitas dari aplikasi yang kita buat. Kita dapat mengubah pengaturan properti dari jendela Properties saat kita sedang menciptakan user interface (pada saat design), atau dapat juga dengan menambahkan koding melalui kode editor untuk mengubah satu atau lebih pengaturan properti saat program berjalan (pada saat runtime).

Berikut contoh tampilan untuk Properties:

 
 
Setelah kita selesai membuat rancangan form dan komponen didalamnya,selanjutnya yang akan dilakukan adalah koding dengan mengklik button dua kali,maka akan masuk ke program code nya.Setelah selesai koding,untuk melihat hasilnya dapat menekan tombol F5 pada keyboard,maka aplikasi akan jalan.

Disini juga terdapat Event Handling yang merupakan suatu metode untuk menangani sebuah event/aksi yang diberikan pengguna kepada suatu komponen GUI. Event adalah suatu peristiwa yang dipicu oleh pengguna pada suatu komponen, misalnya tombol ditekan.Jadi event adalah ketika user berinteraksi dengan komponen GUI. Event handler adalah sebuah metode yang melakukan suatu tugas dalam menanggapi suatu peristiwa. Jadi secara umum dapat dikatakan bahwa Event handling adalah proses keseluruhan untuk merespon event

Penjelasan Program 
Program yang dibuat merupakan suatu program sederhana dengan kebutuhan untuk menginput Nama dan Nim mahasiswa di Binus University. Program ini dibuat dengan menggunakan Visual Studio 2012(Microsof Visual C# 20120 Express),dengan pilihan WindowsFormApplication , agar program yang ditampilkan kelihatan menarik. Program ini dibuat dengan menggunakan 2 buah Label (Nama dan Nim), 2 buah TextBox(Nama dan Nim) yang dapat diinput sesuai keinginan user,dan 2 buah Button(Simpan Data dan Data Baru) dengan beberapa control.


Berikut ditampilkan code nya :

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace Erlini_15011xxxxx
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
                String angka = TBNim.Text;
                int angka1;
                Boolean valid;
                try
                {
                    angka1 = int.Parse(angka);
                    valid = true;
                }
                catch (Exception)
                {
                    valid = false;
                }
           
                if (TBNama.Text == "")
                {
                    MessageBox.Show("Maaf,nama harus diisi !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (TBNim.Text == "")
                {
                    MessageBox.Show("Maaf,nim harus diisi !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (TBNim.Text.Length < 10)
                {
                    MessageBox.Show("Maaf,NIM anda tidak lengkap !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if (TBNim.Text.Length > 10)
                {
                    MessageBox.Show("Maaf,NIM tidak boleh lebih dari 10 angka !", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
                else if(valid==false)
                {
                    MessageBox.Show("Maaf,NIM harus berupa angka !","Error",MessageBoxButtons.OK,MessageBoxIcon.Error);
                }
                else
                {
                    MessageBox.Show("Nama: " + TBNama.Text + "\nNim   : " + TBNim.Text, "Simpan data", MessageBoxButtons.OK);
                    TBNama.BackColor = Color.Gray;
                    TBNim.BackColor = Color.Gray;
                    MessageBox.Show("Terimakasih,data telah di simpan", "Confirm", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                  }
        private void ButtonDB_Click(object sender, EventArgs e)
        {
            TBNama.Text = "";
            TBNama.BackColor = Color.White;
            TBNim.Text="";
            TBNim.BackColor = Color.White;
        }
        private void TBNama_KeyPress(object sender, KeyPressEventArgs e)
        {
            char keychar = e.KeyChar;
            if(keychar==13)
            {
                TBNim.Focus();
            }
        }
        private void TBNim_KeyPress(object sender, KeyPressEventArgs e)
        {
            char keychar = e.KeyChar;
            if(keychar==13)
            {
                ButtonSD.Focus();
            }
        }
    }
}
 
Jadi,inti dari aplikasi sederhana ini adalah user akan diminta untuk mengisi nama dan nim,dimana sudah ada validasi nya . Jika apa yang diminta aplikasi tidak sesuai dengan yang diinput maka akan dimunculkan mbox.

Flowchart nya sebagai berikut:

1. Program dimulai dengan “Start”

2. Decision disini menjelaskan :

-          Apabila user menekan button Simpan Data tanpa mengisi Nama pada TextBox , maka akan muncul MessageBox “Nama harus diisi”

-          Apabila user tidak menekan button Simpan Data,maka akan dilanjutkan ke proses selanjutnya yaitu menginput Nama

3. Setelah menginput Nama,maka akan ada decision yang menjelaskan:

-          Apabila user menekan button Simpan Data tanpa mengisi Nim pada TextBox ,maka akan muncul MessageBox “Nim harus diisi”

-          Apabila user tidak menekan button Simpan Data,maka akan dilanjutkan ke proses selanjutnya yaitu menginput Nim

4. Setelah menginput Nama dan Nim maka user akan menekan button Simpan Data

5. Kemudian akan muncul MessageBox Simpan Data yang berisi Nama dan Nim sesuai inputan user

6. Kemudian user akan menekan button OK pada MessageBox Simpan data dan akan ditampilkan kembali Form OFC01_GUI dengan background pada TextBox nama dan nim yang sudah berubah menjadi warna abu-abu(menunjukkan bahwa data telah disimpan)

Setelah itu terdapat decision :

-          Apabila user kembali menekan button Simpan data maka akan ditampilkan kembali MessageBox Simpan Data dan dilanjutkan proses selanjutnya

-          Namun apabila user menekan button Data Baru maka akan dibuka Form OFC01_GUI yang baru,yang mana data sudah dibersihkan dari TextBox dn user dapat kembali menginput Nama dan Nim sesuai keinginan. Dan proses kembali dilanjutkan seperti yang dijelaskan diatas.
 
Kesimpulan yang saya dapatkan dari tugas ini adalah pemahaman tentang GUI dengan menggunakan c#. Dimana terdapat sangat tool yang bisa digunakan dalam membuat sebuah program. Pada program ini tool yang digunakan adalah Label,TextBox,dan Button. Sebenarnya masih sangat banyak tool yang bisa digunakan seperti radioButton(untuk male/female),comboBox,checkbox,dll,tergantung kebutuhan. Dan pada program ini event yang digunakan adalah “KeyPress”,dimana pada saat user menekan enter maka dari textbox Nama akan berpindah ke textbox Nim. Selain itu,event lain yang digunakan adalah button Click,dimana pada saat user mengklik button “Simpan Data” atau “Data baru” akan ada event yang terjadi,misalnya pada saat mengklik button “Simpan Data” akan muncul MesageBox konfirmasi.