Distribusi Bilangan + Grafik

iseng-iseng posting soal latihan uts-nya pak arif…yg ikut pemrog1 psti masi inget soal yang dikasih pak arif, cz kluar d uts-nya mirip2 gini..(tp ampun uts-nya lebih susah hehe)

soalnya gini,…
random 50 bilangan antara 0-9, trus dikelompokkan (distribusi). hitung jumlah masing-masing disribusi trus dbuat grafiknya ke bawah (bukan kesamping) dalam bentuk bintang

maaf codingnya amburadul, masi newbi :) just for sharing ajah hehe..
fungsi-fungsinya sengaja saya taroh bawah setelah program utama (haha kliatan kacaunya)
benernya masih banyak cara yg lebih mudah dan simple, ini cuma salah satunya aja :)


import java.util.*;
import java.io.*;

public class grafikmenurun{
 //program utama
 public static void main(String[] args){
 int[] data= new int [50];
 int[] dis= new int[10];
 int maxdis=0;

 Random Rbil = new Random();

 System.out.println("DATA BILANGAN:");
 for (int i=0;i<data.length;i++){

 data[i]=Rbil.nextInt(10);
 System.out.println("data ke-"+i+" = "+data[i]);

 }

 sort(data); //data di sorting dulu

 distribusi(data,dis);

 System.out.println('\n');
 System.out.println("DATA DISTRIBUSI BILANGAN 0-9:");

 //cetak distribusi
 for (int i=0;i<dis.length;i++)    {

 System.out.println("bilangan "+i+" sebanyak "+dis[i]);

 }

 System.out.println('\n');

 //mencari distribusi terbanyak
 for (int i=0; i<dis.length;i++){
 if (dis[i]>maxdis){
 maxdis=dis[i];
 }

 }

 dis_max(maxdis,dis);
 System.out.println('\n'+"GRAFIK SEBARAN DISTRIBUSI: "+'\n');
 grafik(dis,maxdis); //manggil fungsi grafik untuk mencetak grafik distribusi

 }

// fungsi untuk mengurutkan dari bilangan terkecil hingga terbesar
static void sort(int[] z){
 int temp;

 for (int a=0;a<z.length;a++){
 for(int b=0;b<z.length-1;b++){

 if(z[b]>z[b+1]){
 temp=z[b];
 z[b]=z[b+1];
 z[b+1]=temp;

 }

 }

 }

}

//fungsi untuk menentukan banyak anggota masing-masing distribusi (setelah dsorting datanya)
static void distribusi(int[] y, int[] x){
 int smtr=y[0],k=0;

 for (int a=0;a<y.length;a++){

 if (y[a]>smtr){
 smtr=y[a];

 k++;
 x[k]++;

 }
 else{

 x[k]++;
 }

 }

}

//fungsi untuk cetak data
static void cetak(int[] c){
 for (int i=0;i<c.length;i++)    {

 System.out.println(i+". "+c[i]);

 }

}

//fungsi untuk menginisialisasi nama distribusi terbanyak
static void dis_max(int dm,int[] arr_dis){
 String nama_dm="";

 if (dm==arr_dis[0]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 0";

 }

 else if (dm==arr_dis[1]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 1";
 }

 else if (dm==arr_dis[2]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 2";
 }

 else if (dm==arr_dis[3]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 3";
 }

 else if (dm==arr_dis[4]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 4";
 }

 else if (dm==arr_dis[5]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 5";
 }

 else if (dm==arr_dis[6]){
 nama_dm="Kelompok distribusi yang paling banyak adalah bilangan 6";
 }
 else if (dm==arr_dis[7]){
 nama_dm="Kelompok distribusi yang paling banyak adalahi bilangan 7";
 }

 else if (dm==arr_dis[8]){
 nama_dm="Kelompok distribusi yang paling banyak adalahi bilangan 8";
 }

 else if (dm==arr_dis[9]){
 nama_dm="Kelompok distribusi yang paling banyak adalahi bilangan 9";
 }

System.out.println(nama_dm+" mempunyai "+dm+" anggota ");

}

//fungsi untuk cetak grafik kebawah
static void grafik(int[] d,int m){
 int g=0,a=1;

 System.out.println("0 1 2 3 4 5 6 7 8 9 ");

 while (g!=10){

 for(int b=0;b<d.length;b++){

 if(d[b]>=a){

 System.out.print("* ");
 }
 else{
 System.out.print("  ");
 }

 }
 a++;
 System.out.println("");
 if(a>m)
 g=10;
 }

}

}

banyak data

grafik distribusi

Posted on November 18, 2009, in Java, Kuliah, Pemrograman. Bookmark the permalink. Leave a Comment.

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.