Cara Membuat Game Sederhana Mengunakan Greenfoot

Rabu, 15 Juni 2016

Gambaran Umum Game

• Game ini memiliki skenario sederhana yaitu 1 aktor Gajah yang lapar harus memakan buah apel tanpa harus mengenai batu.
• Game terdiri dari 1 scene dimana bilamana gajah terkena batu maka skor akan berkurang.

Langkah Pembuatan
Langkah Pembuatannya adalah sebagai berikut :

Letakan semua gambar yang akan digunakan  di folder dengan nama images.
*Semua image berformat .png
Letakan semua file suara di folder sounds.

Buat subclass-subclass...

Selanjutnya Coding di world

import greenfoot.*;  // imports Actor, World, Greenfoot, GreenfootImage

public class GajahWorld extends World
{
    private int GajahWorld=200;
    private int value;
    /**
     * Create the turtle world. Our world has a size
     * of 560x460 cells, where every cell is just 1 pixel.
     */
    public GajahWorld()
    {
        super(720, 600, 1);
        SunnySideUp();
        prepare();
        putingEgg();
        BatoBatosaLangit();
        //Greenfoot.playSound("chicken.mp3");
    }
    public void act()
    {
        if (getObjects(redapple.class).isEmpty()) SunnySideUp();
        if (getObjects(greenapple.class).isEmpty()) putingEgg();
        if (getObjects(Rock.class).isEmpty()) BatoBatosaLangit();
    }
    private void prepare()
    {
        gajah Gajah = new gajah();
        addObject(Gajah, 300, 300);
        Counter2 counter2 = new Counter2();
        addObject(counter2, 57, 69);
        Score score = new Score();
        addObject(score, 64, 44);
        score.setLocation(59, 44);
        Gajah.setLocation(600, 530);
    }
    public void SunnySideUp()
    {  
        if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new redapple(), Greenfoot.getRandomNumber(519),20); 
           
        }
    }
    public void putingEgg()
    {
         if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new greenapple(), Greenfoot.getRandomNumber(519),21);  
        }
    }
    public void  BatoBatosaLangit()
    {
         if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new Rock(), Greenfoot.getRandomNumber(519),21);  
        }
    }
    public void GameOver()
    {
        if (value == GajahWorld)
        {
           //setImage(new GreenfootImage("Level 2 Complete", 18, Color.YELLOW, Color.BLACK));
           Greenfoot.stop();
           Greenfoot.delay(20);
           Greenfoot.setWorld(new GameOver());
           System.out.println("Selamat Anda Menang");
        }
    }
}

Coding Game Over

import greenfoot.*;

public class GameOver extends World
{
    public GameOver()
    {
        super(720, 600, 1);
        Greenfoot.playSound("levelEnd.wav");
        prepare();
    }
     private void prepare()
    {
        Tamat end = new Tamat();
        addObject(end, 395, 237);
        end.setLocation(400, 279);

        Playagain playAgain = new Playagain();
        addObject(playAgain, 405, 329);
        playAgain.setLocation(392, 361);
        end.setLocation(360, 290);
        playAgain.setLocation(392, 361);
    }
}

Coding Turtleworld

import greenfoot.*;  // imports Actor, World, Greenfoot, GreenfootImage

public class TurtleWorld extends World
{
    public TurtleWorld()
    {
        super(720, 600, 1);
        SunnySideUp();
        prepare();
        putingEgg();
        BatoBatosaLangit();
    }
    public void act()
    {
        if (getObjects(redapple.class).isEmpty()) SunnySideUp();
        if (getObjects(greenapple.class).isEmpty()) putingEgg();
        if (getObjects(Rock.class).isEmpty()) BatoBatosaLangit();
    }
    private void prepare()
    {
        gajah Gajah = new gajah();
        addObject(Gajah, 300, 300);
        Counter2 counter2 = new Counter2();
        addObject(counter2, 57, 69);
        Score score = new Score();
        addObject(score, 64, 44);
        score.setLocation(59, 44);
        Gajah.setLocation(600, 530);
    }
    public void SunnySideUp()
    {  
        if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new redapple(), Greenfoot.getRandomNumber(519),20); 
           
        }
    }
    public void putingEgg()
    {
         if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new greenapple(), Greenfoot.getRandomNumber(519),21);  
        }
    }
    public void  BatoBatosaLangit()
    {
         if(Greenfoot.getRandomNumber(2) < 50)
        { 
            addObject(new Rock(), Greenfoot.getRandomNumber(519),21);  
        }
    }
}

Koding Win

import greenfoot.*;

public class Win extends World
{
    public Win()
    {
        super(720, 600, 1);
    }
}
 
Read more ...

Fuzzy Logic

Rabu, 15 Juni 2016



Logika fuzzy atau fuzzy logic bermula dari kenyataan bahwa dunia nyata sangat kompleks. Kompleksitas ini muncul dari ketidakpastian dalam bentuk informasi imprecision (ketidakpastian). Mengapa komputer yang dibuat oleh manusia tidak mampu  menangani  persoalan  yang  kompleks  dan  tidak  presisi  ini sedangkan manusia bisa. Jawabanya adalah manusia mempunyai kemampuan untuk menalar (Reasoning)  dengan  baik  yaitu  kemampuan  yang  komputer  tidak mempunyainya.pada suatu sistem jika kompleksitasnya berkurang, maka persamaan matematik dapat digunakan dan ketelitian yang dihasilkan menjadi sangat berguna dalam pemodelan sistem tetapi jika kompleksitasnya bertambah dimana persamaan matematik tidak dapat digunakan , logika fuzzy menjadi salah satu alternatif penyelesaiannya. Logika fuzzy merupakan alternatif cara berpikir yang dapat memodelkan kompleks sistem menggunakan pengetahuan dan pengalaman yang dipunyai logika dimulai sebagai studi tentang bahasa dalam argument dan persuasif, dan hal itu kemungkinan digunakan untuk menilai kebenaran dari rantai reasoning, dalam bentuk matematikanya sebagai contoh adalah sebagai berikut : Dalam dua nilai logika proporsinya bisa benar atau salah, tetapi tidak keduanya. Kebenaran ditandai dengan statement(pernyataan) nilai kebenaran. Dalam fuzzy logic proporsi kemungkinan benar atau salah atau mempunyai setengah nilai  kebenaran, seperti kemungkinan benar.

Ide pemikiran pada sistem fuzzy yaitu nilai kebenaran (dalam fuzzy logic) atau nilai fungsi keanggotaan (Membership function) dalam fuzzy set diindikasikan oleh nilai pada range [0.0,1.0], dengan 0.0 mewakili kesalahan absolut dan 1.0 mewakili kebenaran absolut. Dalam kasus ini berhubungan dengan multivalued logic(logika bernilai banyak). Sebagai contoh , kalimat :”Arthur is old.” Jika umur Arthur 80, kemungkinan akan memberikan statement nilai kebenaran 0.80. Statement dapat diartikan menjadi set terminologi sebagai berikut:”Arthur adalah anggota dari set orang tua .” Suatu logika berdasar pada dua nilai kebenaran true     and   false   kadang-kadang   tidak    cukup  manakala   menguraikan   dan menggambarkan pemikiran manusia.
Logika fuzzy menggunakan keseluruhan interval 0(False) dan 1(True) untuk menguraikan pemikiran manusia . Sebagai hasilnya logika fuzzy diterapkan dalam mengatur sebuah sistem karena sifatnya yang lebih sesuai dengan cara berpikir manusia.

Sejarah Fuzzy Logic
Sistem fuzzy merupakan suatu alternatif untuk pemikiran tradisional dari set keanggotaan dan logika yang berasal dari filosopi yunani dan aplikasi pada intelegensia semu. Logika fuzzy pertama kali diperkenalkan oleh seseorang professor computer science dari University of California di Berkeley yang bernama Lofti A. Zadeh pada tahun 1965 dan berhasil diaplikasikan dalam bidang kontrol oleh E.H.Mamdani. Sejak itu aplikasi dari logika fuzzy ini berkembang pesat terutama dinegara Jepang dengan dihasilkannya ribuan paten mulai dari bermacam-macam produk elektronik sampai aplikasi pada kereta api di kota Sendai. Logika fuzzy pada dasarnya merupakan logika bernilai banyak(Multivalued Logic)yang dapat mendefinisikan nilai diantara keadaan yang biasa dikenal seperti ya atau tidak, hitam atau putih, benar atau salah. logika fuzzy menirukan cara manusia mengambil keputusan dengan kemampuannya bekerja dari data yang samar atau tidak rinci dan menemukan penyesuaian yang tepat.

Teori Set Fuzzy (Fuzzy Set Theory)
Teori set fuzzy atau Fuzzy set theory adalah perpanjangan dari teori himpunan crisp yang konvensional. Fuzzy set theory mengatur konsep dari partial truth (nilainya antara 1(True)dan 0(False)). Dikenalkan oleh Prof.Lotfi A. Zadeh di UC/Berkeley pada tahun 1965 untuk dimaksudkan sebagai memodelkan kesamaran dan ambiguitas dalam sistem yang kompleks.
Ide dari fuzzy set sendiri adalah simpel dan alami. Sebagai contoh, kita mau mendefinisikan sebuah set (Himpunan) dari gray level yang propertinya dark. Dalam teori set yang klasik, kita harus mendeterminasikan sebuah threshold , katakanlah gray levelnya bernilai 100. Semua gray level yang nilainya antara 0 dan 100 adalah elemen dari set ini, yang lain nya tidak termasuk dalam set ini. Tetapi kegelapannya hanya masalah pada derajat. Jadi sebuah fuzzy set bisa memodelkan properti ini dengan lebih baik.Untuk mendefinisikan himpunan ini ,kita juga membutuhkan dua threshold katakanlah gray level 50 dan 150.Semua gray level yang dibawah 50 adalah full member dari himpunannya, gray level yang di atas 150 bukan merupakan member dari himpunannya. Gray level diantara 50 dan 150, mempunyai sebagian membership dalam himpunan.

Read more ...