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.


0 komentar :

Posting Komentar