latest articles

Sabtu, 20 Oktober 2012

Konsep Fraktal

Fraktal berasal dari bahaha nggris, yaitu  fractal. Istilah fractal dibuat oleh Benoit Mandelbrot pada tahun 1975 dari kata Latin fractus yang artinya "patah", "rusak", atau "tidak teratur". Sebelum Mandelbrot memperkenalkan istilah tersebut, nama umum untuk struktur semacamnya (misalnya bunga salju Koch) adalah kurva monster.

Pada dasarnya, fractal merupakan sebuah kajian di dalam matematika yang mempelajari mengenai bentuk atau geometri yang didalamnya menunjukan sebuah proses penggandaan yang tanpa batas. Geometri yang dilipat gandakan tersebut memiliki kemiripan bentuk satu sama lain (self-similarity), dan pada penyusunan pelipatgandaannya tersebut tidak mengacu pada satu pakem orientasi tertentu bahkan cenderung meliuk liuk dengan detail dan dimensi yang beragam mulai dari kecil hingga besar.

Read more

Membuat Segitiga Sierpinski Dengan Java


Disini saya sedikit mereview tentang praktikum ke-5 untuk matakuliah ALPRO1 kelas B. Hari itu adalah hari senin, tepat pada tanggal 28 Nopember 2011, dimana pada hari itu ada sebuah praktikum yang ke-5 untuk matakuliah ALPRO 1 bagi kelas B di jurusan Sistem Informasi ITS. Praktikum kali ini membahas tentang konsep fraktal.

Sebelum ini saya telah menjelaskan mengenai fraktal. Dan saya telah menjelaskan secara singkat mengenai salah satu contoh fraktal yakni segitiga sierpinski. Segitiga yang terus membagi dirinya dengan segitiga-segitiga lain yang mirip namun dengan skala yang terus berbeda.
Fraktal-fraktal tersebut dapat dimodelkan dengan bantuan komputer. Salah satu cara untuk memodelkannya adalah dengan menggunakan bahasa pemrograman java. Dengan logika yang telah dijelaskan pada artikel sebelumnya kita dapat membuat segitiga sierpinski tersebut.

Penjelasan diatas merupakan penjelasan sedikit tentang materi yang bersangkutan untuk praktikum ALPRO1 yang ke-5 ini. Dalam praktikum kali ini kami diminta untuk membuat sebuah segitiga sierpinski dalam bahasa java persis seperti ulasan materi diatas.

Berikut adalah source code nya. Untuk membuat program ini, kita dapat membuatnya menjadi dua  class. Class pertama berisi atribut dan method yang diperlukan, dan class kedua berfungsi untuk menampilkan object yang dibuat, yakni segitiga sierpinski. Level kedalaman segitiga dibuat berdasarkan inputan dari user.


Di bawah ini adalah Class pertamanya :

 /*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */


import java.awt.*;
import javax.swing.*;
/**
*
* @author Rachmat Arif
*/
public class Sierpinski extends JPanel{
public static final int WINDOWSIZE = 512;
static Polygon[] polyList;
static int count = 0;

public static void gambarSegitiga(int splits, int ax, int ay, int bx, int by, int cx, int cy){
        int[] C1 = {ax,ay};
        int[] C2 = {bx,by};
        int[] C3 = {cx,cy};
        if(splits == 1){
                int[]ps={ax,bx,cx};
                int[]qs={ay,by,cy};
                Polygon p = new Polygon(ps,qs,ps.length);
                polyList[count] = p;
                count++;
        } else{
                int[] C4 = getMidpoint(ax, ay, bx, by);
                int[] C5 = getMidpoint(bx, by, cx, cy);
                int[] C6 = getMidpoint(ax, ay, cx, cy);

                gambarSegitiga(splits - 1,C1[0],C1[1],C4[0],C4[1],C6[0],C6[1]);
                gambarSegitiga(splits - 1,C4[0],C4[1],C2[0],C2[1],C5[0],C5[1]);
                gambarSegitiga(splits - 1,C6[0],C6[1],C5[0],C5[1],C3[0],C3[1]);
        }
}
public static int[] getMidpoint(int ax, int ay, int bx, int by){
        int[] mid = new int[2];
        mid[0] = (ax + bx)/2;
        mid[1] = (ay + by)/2;
        return mid;
}


public void paint(Graphics g){
        for(int i = 0; i < polyList.length; i++)
        {g.fillPolygon(polyList[i]);}
}
} 

Berikut adalah Class keduanya, dimana dalam kelas ini berisi main yang berfungsi untuk memanggil Class pertama

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
import java.awt.Color;
import java.awt.Polygon;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
/**
 *
 * @author Rachmat Arif
 */
public class Remote extends Sierpinski {
public static void main (String[] args)
    {
        int C1x = WINDOWSIZE/2;
        int C1y = WINDOWSIZE/10;
        int C2x = WINDOWSIZE-C1y;
        int C2y = WINDOWSIZE-C1y;
        int C3x = WINDOWSIZE/10;
        int C3y = WINDOWSIZE-C1y;

        String input = JOptionPane.showInputDialog("Enter Your Choice Number:");
        int splits = Integer.parseInt(input);
        polyList = new Polygon[(int)Math.pow(3,splits-1)];
        JFrame fr = new JFrame("Sierpinski's Triangle!");
        fr.setSize(WINDOWSIZE,WINDOWSIZE);
        fr.setBackground(Color.CYAN);
        fr.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        fr.setVisible(true);

        gambarSegitiga(splits,C1x,C1y,C2x,C2y,C3x,C3y);
        Sierpinski s = new Sierpinski();
        fr.add(s);
        
        
    }
}
Read more

Hanoi Tower 2D


Sebagian orang mungkin telah mengetahui tentang permainan "Tower of Hanoi". Permainan berupa puzzle ini menurut saya gampang-gampang susah sih. Bagi kalian yang baru pertama kali mencobanya  pasti kebingungan. Saat saya pertama kali kenal dengan permainan ini pun juga begitu. Saya dibuat bingung dengan permainan ini. 

Permainan ini tergambarkan seperti gambar diatas. Dimana ada 3 pilar dalam sebuah permaianan ini, pilar pertama berisi tumpukan, sedangkan pilar kedua dan ketiga kosong. Langsung saja pada penjelasan atau cara bermain dengan puzzle ini. Ada beberapa syarat yang perlu diperhatikan sebelum memainkannya.
  • Kalian harus memindahkan tumpukan dari pilar 1 ke pilar ke 3 dan kondisinya harus seperti semula (seperti pilar 1).
  • Dalam meindahkan tumpukan anda diperbolehkan untuk memindahkan dari pilar 1 ke pilar sesuka anda dengan syarat pilar yang kecil tidak diperbolehkan berada dibawah pilar yang lebih besar. Singkatnya urutan pilar harus dimulai paling besar, dan semakin atas semakin kecil.
Hal diatas merupakan sebagian informasi tentang permainan "Tower of Hanoi" ini. Saya mengenal permainan ini lewat seorang dosen matakuliah ALPRO1 saya. Saat itu beliau mengajarkan sebuah algoritma berfikir logika, pada saat itulah beliau mengenalkan permaianan  ini pada saya dan teman-teman saya.

Detik berganti detik, haripun silih berganti. Seminggu setelah dosen saya memberikan permainan tersebut tepatnya, rabu itu saya masuk kuliah seperti biasanya, waktu telah menunjukkan pukul 07:15 WIB dimana kami menunggu dosen ALPRO1 kami yang tak kunjung datang. Kamipun setia menunggu beliau, hingga jam menunjukkan pukul 07:30 WIB. Hati kami mulai resah suasana kelaspun menjadi ramai dan tidak lagi tenang seperti biasanaya. Namun lima menit kemudian, (GuobRaakk....!!!) suara pintu kelas kami terbuka keras, ternyata pak dosen yang telah kami nanti-nanti akhirnya datang juga.

"Keluarkan kertas A5, kita quiz sekarang lima belas menit harus sudah kalian kumpulkan" ucap pak dosen yang baru masuk kelas kami. Sungguh begitu kerasnya kuliahku ini, dosen datang langsung ngasih quiz (hatiku berkata). Lima belas menit berlalu quizpun usai dan dilanjutkan materi seperti biasanya. Diakhir kuliah, dosen kamipun seakan tak puas dengan quiz yang beliau berikan kepada kami. Beliau meminta kepada kami untuk membuat sebuah program "Tower of Hanoi" berbasis pemrograman java berbasis GUI dan dikumpulkan minggu depannya. Kuliah kami hari ini berakhir dengan tugas membuat program tersebut.

Bagi kalian yang membaca artikel ini, dan ingin memainkan permainan tersebut, silahkan copas code program di bawah ini. Kemudian masukkan IDE java kalian masing-masing. Jalankan dan mainkan.

dijamin seru pokoknya permainan ini........



Read more

Game Outbound : The Messenger


Sebuah game penghilang penat untuk para calon programmer SI ITS hadir dari mata kuliah Ketrampilan Interpersonal. Game ini bernama “The Messenger” yang artinya adalah “utusan”. Senin sore itu kami ada jadwal mata kuliah KI, dimana mata kuliah KI outdoor setiap seninnya untuk kelas kami ini membawakan game “The Messanger” waktu itu. Sebuah game yang sangat menarik menurut saya. Rasa riang dan bahagia terpancar dari setiap wajah teman-teman SI seakan tidak ada beban bagi mereka saat mengikuti game ini. “Ada KI semuanya jadi happy”, ucap salah satu teman kami.
Untuk kali ini saya akan menjelaskan game yang telah saya dapat dari KI ini lebih jauh. Menjelaskan cara bermainnya, makna yang terkandung di dalamnya, serta pesan tersirat yang disampaikan oleh game ini. Langsung saja…….

Permainan ini adalah :
Menyampaikan pesan secara estafet antar anggota tim, dimulai dari anggota tim yang berada di bagian paling belakang hingga bagian terdepan. Awalnya kita diberi sebuah aba-aba dari fasilitator permaianan ini berupa berbaris menurut timnya masing-masing. Selanjutnya sang fasilitator membisikkan sebuah kalimat (lumayan panjang) pada anggota tim yang paling belakang dan menugaskan kepada anggota tim yang paling belakang tersebut menyampaikan apa yang telah dibisikkannya kepada anggota di depannya hingga mencapai anggota paling akhir yang terdepan. Sebuah tim dikatakan menang dari tim lainnya, jika kalimat yang diucapkan oleh anggota tim terdepan sama seperti anggota tim yang paling belakang (penerima pesan awal).

Saya suka permaianan ini karena :

• Dapat melatih konsentrasi kita
• Melatih kita untuk mengingat lebih baik
• Mengajarkan kejujuran dalam menyampaikan sesuatu
• Butuh suatu kekompakan dalam tim agar tak terjadi miss komunikasi

Kejadian terbaik di permainan ini :
  • Menjaga kejujuran. Agar pesan yang kita sampaikan tetep original
  • Mendengar dengan Seksama.Supaya setiap informasi yang kita terima dapat kita pahami dengan baik
  • Refleksi dari permainan. dalam permainan ini banyak mengajarkan kejujuran, kekompakan dan menjaga rasa egois

Yang tak akan saya lupakan :

Rasa egois yang ada dalam diri kita harus kita buang atau ia akan menghancurkan tujuan sebuah tim kita.

Quote favorit saya :

Sampaikanlah Setiap Kebenaran yang Kamu Terima

Saya mendapat pelajaran terbaik :
  
  • Setiap tim yang ingin sukses harus berbekal satu misi dan visi untuk mewujudkan tujuannya
  • Semakin banyak dan jauhnya sebuah pesan yang diterima dari sumbernya, maka semakin besar pula kemungkinan pesan itu salah
  • Kebenaran setiap pesan yang kita terima tergantung kejujuran setiap seorang perantara pesan tersebut

Read more

Membuat Bilangan Fibonacci dengan Java

Dalam matematika, bilangan Fibonacci adalah barisan yang didefinisikan secara rekursif sebagai berikut:

  F(n)=
   \begin{cases}
    0, & \mbox{jika }n=0; \\
    1, & \mbox{jika }n=1; \\
    F(n-1)+F(n-2) & \mbox{jika tidak.}
   \end{cases}
Penjelasan: barisan ini berawal dari 0 dan 1, kemudian angka berikutnya didapat dengan cara menambahkan kedua bilangan yang berurutan sebelumnya. Dengan aturan ini, maka barisan bilangan Fibonaccci yang pertama adalah:
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765, 10946...
Barisan bilangan Fibonacci dapat dinyatakan sebagai berikut:
Fn = (x1n – x2n)/ sqrt(5)
dengan
  • Fn adalah bilangan Fibonacci ke-n
  • x1 dan x2 adalah penyelesaian persamaan x2-x-1=0
Perbandingan antara Fn+1 dengan Fn hampir selalu sama untuk sebarang nilai n dan mulai nilai n tertentu, perbandingan ini nilainya tetap. Perbandingan itu disebut Golden Ratio yang nilainya mendekati 1,618.



import javax.swing.JOptionPane;
 
 /*
    This program computes Fibonacci numbers using a recursive
    method.
  */
 public class Fibonacci
{ 
    public static void main(String[] args)
    { 
       String input = JOptionPane.showInputDialog("Enter n: ");
       int n = Integer.parseInt(input);
 
       for (int i = 1; i <= n; i++)
       {
          int f = fib(i);
          System.out.println("fib(" + i + ") = " + f);
       }
       System.exit(0);
      
    }
 
    /**
       Computes a Fibonacci number.
       @param n an integer
       @return the nth Fibonacci number
    */
    public static int fib(int n)
    { 
       if (n <= 2)
            return 1;
       else
            return fib(n - 1) + fib(n - 2);
    }
 }
Read more

SI 2011 : Gagal Taklukkan "MATDIS"

Mahasiswa SI 2011 harus rela menelan pahitnya remidi dari matakuliah matematika diskrit. Hal ini dikarenakan UTS yang mereka garap beberapa hari lalu tak berjalan mulus sesuai rencana. Nilai yang mereka peroleh sangat jauh dari standart nilai yang seharusnya mereka dapatkan. Akhirnya mau tidak mau, mereka harus menelan pil pahit remidi ini.

Saya pribadi juga merupakan salah satu dari sekian banyak mahasiswa SI 2011 yang menelan pil pahit tersebut. Penyebab peristiwa “remidi berjamaah” ini pun masih dipertanyakan. Apakah ada yang salah dari sitem pengajaran sang dosen, atau dari sisi mahasiswanya sendiri yang kurang begitu ekstrim dalam melahab habis materi-materi matdis yang diberikan oleh dosen. Namun dari hati saya sendiri, saya dapat menjawab penyebab peristiwa tersebut. Menurut saya, peristiwa ini terjadi karena diri saya sendiri, seperti kurangnya mereview pelajaran-pelajaran yang disampaikan dosen waktu dikelas, rasa “malas bawaan” saya dari SMA masih belum menghilang, disamping itu juga kurang kreatif dalam belajar dari berbagai referensi dan kurangnya untuk latihan soal. 

Beberapa alasan diatas rasanya cukup untuk menjadi penyebab terjadinya peristiwa “remidi berjamaah” tersebut (menurut versi saya). Mungkin setiap teman-teman 2011 mempunyai alasan sendiri-sendiri untuk masalah ini, entah alasan tersebut sama seperti yang saya tulis diatas atau alasan lain menurut versi yang berbeda.

Terjadinya peristiwa ini seakan menjadi tamparan pertama bagi saya di dunia kuliah ini. Mungkin ALLAH masih sayang dengan saya dan teman-teman yang lain. Dengan adanya ini, ALLAH memperingatkan kita untuk belajar lebih giat lagi, serta mensadarkan kita, kalau sekarang kita ini sudah bukan lagi siswa SMA, oleh karena itu belajarnyapun harus sudah berbeda, lebih madiri dibanding SMA serta harus lebih giat lagi. 

Kegagalan adalah kesuksesan yang tertunda. Perjalanan kita masih panjang teman-teman. Oleh karena itu ayo kita tunjukkan kalau kita bisa. Belajarnya ditingkatkan, jangan lupa berdoa setiap kali belajar agar ilmu yang kita pelajari menjadi barokah, manfaat sehingga mendapatkan nilai plus tersendiri dari ALLAH dan dicatat sebagai ibadah serta amal yang makbul dan mabrur amin ya robbal aalamiin.
Read more

Game Outbound : Pelangi Oh Pelangi

Kembali lagi bertemu saya dalam blogku ini. Kali ini saya akan melanjutkan postingan saya tentang Game KI. Seperti biasa di setiap senin saya dan kawan-kawan bermain game dalam matakuliah KI ini. Game yang akan saya jelaskan kali ini berjudul Pelangi Oh Pelangi. Ingin tahu lebih lanjut tentang game ini ? baca dan ikuti terus tulisan di blog saya ini.
Langsung saja………

Permainan ini adalah :
Membuat sebuah gambar bersama-sama pada masing-masing tim dengan variasi berbagai warna, kemudian mempresentasikan di hadapan tim lain, tentang maksud atau makna gambar tersebut. Dimana segala fasilitas untuk menggambar sudah disediakan oleh fasilitator. Selanjutnya bagi tim yang gambarnya banyak dukungan dari tim lain dan mendapat vote paling banyak akan keluar sebagai pemenang.

Saya suka permaianan ini karena :
·         Belajar memadukan sesuatu hal dari berbagai hal yang berbeda
·         Dapat melatih kreatifitas dan imajinasi kita dalam berkarya.
·         Dapat mengeksplore diri untuk menggambarkan kesukaan kita
·         Kolaborasi warna-warni yang unik dan seru dari berbagai tangan.

Kejadian terbaik di permainan ini :
·         Kreatif .Menciptakan gambar-gambar yang warna-warni dan unik
·         Gambar yang Inovatif. Dari berbagai tangan pembuat menjadi suatu gambar yang padu dan satu
·         Refleksi dari permainan. Permainan ini mengajarkan suatu eksplorasi jiwa dan seni yang menghasilkan suatu karya cipta

Yang tak akan saya lupakan :
Aku termasuk bagian dari kunci sukses untuk timku.

Quote favorit saya :
The Difference Would Be Wonderful If United

Saya mendapat pelajaran terbaik :
·         Gambar adalah wujud atau ungkapan dari perasaan yang terpendam
·         Kekompakan menghasilkan suatu karya cipta yang luar biasa
·         Satu gambar dapat mewakilkan 1000 kata tersirat darinya.
·         Perbedaan akan terasa indah jika semuanya bersatu menjadi satu.

Diatas merupakan penjelasan singkat tentang game ini. Untuk lebih jelasnya praktekkan game ini di tempat kalian masing-masing jika ingin mencoba serunya game ini. Setiap permainan jangan diambil sisi senang dan refreshnya saja, namun jika mampu ambil juga pelajaran dari sebuah game atau permainan tersebut. Aku yakin setiap game pasti menyimpan maksud dan makna tersendiri.
Read more