November 23, 2009

- Jolly Jumper Numbers on Java Source Code-

Posted in Algoritma dan Pemrograman at 2:57 pm by 2lazy4study2010

Assalamualaikum  Wbr.

Kali ini momon coba ngeposting code java buat Jolly Jumper..

yah karena ini kebetulan salah satu tugas praktikum alpro..

Apa itu Himpunan bilangan Jolly Jumper? Mungkin seperti yang sudah kita tau dari paman Google, jolly jumper adalah himpunan bilangan random terdiri atas positif integer dari dimana n>o, i>0, nah ada deret barisan sejumlah n bilangan, bila selisih bilangan berdekatan dalam deret itu ada semua nilai antara 1 dan n-1, maka barisan itu disebut Jolly Jumper.

Misalnya yah.. ada deret A= 1 4 2 3 7, maka deret tersebut adalah Jolly Jumper karena perbedaan antar nilainya adalah 3, 2, 4 dan 1, tidak perlu mengurutkan antara bilangan pertama dengan selanjutnya.

Source code dibawah ini menentukan apakah deret bilangan yang kita input termasuk Jolly Jumper (Statement: Jolly) atau bukan Jolly Jumper (statement : Not Jolly)

mohon dikoreksi jika saya salah yah guyz.. thx, dibawah ini logika penyelesaiannya:

  • Baca tiap baris input dan masukkan kedalam array, nilai pertama tiap array menunjukkan panjang sequence (banyaknya deret angka), dan nilai berikutnya bilangan dalam sequence
  • Hitung untuk setiap baris apakah dia termasuk Jolly Jumper atau tidak
    • jika cuma ada satu bilangan maka otomatis jolly jumper
    • jika bilangan lebih dari 1:
    • cek tiap-tiap selisih dari bilangan di baris
    • jika ada dua bilangan sama dalam deretan, maka itu deretan itu pasti bukan Jolly Jumper
    • jika ada beda yang lebih besar atau sama dengan n, maka itu deretan itu pasti bukan Jolly Jumper
    • jika selisih dengan nilai tertentu ditemukan 2 kali, maka itu pasti bukan jolly jumper
    • jika ternyata selisih tersebut baru ditemukan sekali berarti mungkin itu baris Jooly
    • lakukan sampai bilangan terakhir dalam baris

Dengan algoritma ini tiap baris bisa dicek apakah Jolly Jumper atau tidak dengan jumlah iterasi paling banyak sejulah n. Ini bisa lebih singkat bila baris itu bukan Jolly Jumper.

 

Untuk lebih jelasnya Source code Javanya bisa seperti ini:

/*

* Metode Penyelesaian deret bilangan Jolly Jumper

* Menggunakan method Array dan  StringTokenizer

*@author momoncha 2009

*/

 

package jollyjumper;

import javax.swing.*;

import java.util.*;

public class Main {

public static void main(String[] args) {

String bilangan = JOptionPane.showInputDialog(“Masukkan deret angka”);

int [] number;

int [] jumlah;

int [] ketemu;

int a = 0;

StringTokenizer tokens = new StringTokenizer( bilangan );

int f =  tokens.countTokens() – 1;

int cek=f-1;

if (f>3000){

JOptionPane.showMessageDialog(null,”maaf gan, bilangan yang di input kegedean batasnya kan cuman 3000?!”);

System.exit(0);

}

JOptionPane.showMessageDialog(null,”Panjang n = ” + tokens.countTokens());

number = new int[tokens.countTokens()];

jumlah = new int[tokens.countTokens()];

ketemu = new int[tokens.countTokens() - 2];

while ( tokens.hasMoreTokens() ){

number[a] = Integer.parseInt(tokens.nextToken());

JOptionPane.showMessageDialog(null, “number”+”["+a+"] = ” + number[a]);

a++;

}

if(number[0] != f){

JOptionPane.showMessageDialog(null, “Not Jolly 1″);

System.exit(0);

}

for(int j=1; j<f; j++){

jumlah[j] = number[j] – number[j+1];

if(jumlah[j] < 0){

jumlah[j] = jumlah[j] * -1;

}

if(jumlah[j] > f){

JOptionPane.showMessageDialog(null, “Not Jolly 2″);

System.exit(0);

}

}

 

Output yang dihasilkan akan berupa Jolly atau Not Jolly, code diatas menggunakan StringTokenizer, gunanya kira2 memberi tempat bagi tiap-tiap angka kedalam sebuah wadah dan memberi spasi diantaranya kayanya gitu deh..CMIIW yah..

Gitu aja deh postingan saya kali ini..

Wassalamualaikum Wbr.

Momoncha, ITS, SI, 2009

Advertisement

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

Follow

Get every new post delivered to your Inbox.