Praktikum 1 tanpa array 2 dimensi


Disini menggunakan Person.java dan Praktikum01.java. Namun tidak menggunakan array dua dimensi melainkan menggunakan prinsip enkapsulasi pada kelas sehingga membentuk container yang digunakan untuk mengganti array 2 dimensi. Semoga bisa menjadi tambahan referensi.

 

Person.java

package prak01;

/**
 * 
 * @author Moch.Lutfi
 */
public class Person {
    private String name;
    private String gameID;

    /**
     * konstruktor dengan pengaturan nilai variabel name dan gameID
     * @param name
     * @param gameID
     */
    public Person(String name, String gameID){
        this.name = name;
        this.gameID = gameID;
    }

    /**
     * konstruktor tanpa pengaturan nilai variabel name dan gameID
     * hanya dilakukan inisialisasi name dan gameID dengan string kosong
     */
    public Person(){
        this.name = "";
        this.gameID = "";
    }

    /**
     * mengambil nilai pada variabel name
     * @return
     */
    public String name(){ return name; }

    /**
     * memanggil nilai pada variabel gameID
     * @return
     */
    public String gameID(){ return gameID; }

    /**
     * mengeset variabel name
     * @param name
     */
    public void name(String name) {this.name = name;}

    /**
     * mengeset variabel gameID
     * @param gameID
     */
    public void gameID(String gameID){this.gameID = gameID;}

    /**
     * Menampilkan nama dan gameID
     */
    public void printAll(){
       printName();
       printGameID();
    }

    /**
     * Menampilkan nama
     */
    public void printName(){
        System.out.println("Nama    \t: " +name());
    }

    /**
     * Menampilkan gameID
     */
    public void printGameID(){
        System.out.println("Kelompok\t: "+gameID());
    }

}

 

Praktikum01.java

package prak01;

/**
 * Praktikum Type Data Array
 * @author Moch.Lutfi
 */
import java.util.Scanner;

public class Praktikum01 {
    private Person[] peserta;
    private int maxArr = 10;
    private Scanner input = new Scanner(System.in);

    /**
     * Konstruktor
     * Inisialiasasi class Person sebagai array dengan panjang maxArray
     * pengisian variable name dan gameID melalui konstruktor
     */
    public Praktikum01(){
        peserta =  new Person[maxArr];  //Inisialiasasi class Person sebagai array dengan panjang maxArray
        //pengisian variable name dan gameID melalui konstruktor
        peserta[0] = new Person("Agus", "ACEDBF");
        peserta[1] = new Person("Budi", "DDFCDB");
        peserta[2] = new Person("Elok", "CEABFA");
        peserta[3] = new Person("Fajar","DFBAAD");
        peserta[4] = new Person("Gaguk", "EFFACC");
        peserta[5] = new Person("Haryono", "CEEBEE");
        peserta[6] = new Person("Joko", "ACEDBF");
        peserta[7] = new Person("Kadir", "DBCCCC");
        peserta[8] = new Person("Naryo", "EBDEBB");
        peserta[9] = new Person("Puji", "BABFAD");

        printPeserta();
    }

    public void printPeserta(){
        System.out.println("--------------------------------------------");
        System.out.printf(  " %-2s |  %-12.10s|%-3.3s|%-3.3s|%-3.3s|%-3.3s|%-3.3s|%-3.3s|\n", "No","Nama/Game"," 1 "," 2 "," 3 "," 4 "," 5 ", " 6 ");
        System.out.println("--------------------------------------------");
        int i=1;
        for(Person a:peserta){
            System.out.printf( " %-2s |  %-12.10s| %-2.2s| %-2.2s| %-2.2s| %-2.2s| %-2.2s| %-2.2s|\n",i, a.name(),a.gameID().charAt(0),a.gameID().charAt(1),a.gameID().charAt(2),a.gameID().charAt(3),a.gameID().charAt(4),a.gameID().charAt(5));
            i++;
        }
        System.out.println("--------------------------------------------");
    }

    /**
     *
     */
    public void oneGrupInAllGame(){
        for(int i=0;i<maxArr-1;i++){
            for(int j=i+1;j<maxArr;j++){
                if( peserta[i].gameID().equals( peserta[j].gameID() ) ){
                    System.out.println("Nama orang yang satu kelompok dalam semua permainan.");
                    peserta[i].printName();
                    peserta[j].printAll();
                }
            }
        }
    }

    /**
     *
     */
    public void totalGrup(){
        int ID=0;
        String temp="";
        int total=0;
        System.out.println("\nBanyaknya kelompok dalam suatu permainan");
        System.out.print("Input Permainan: ");
        ID = input.nextInt()-1;
       for(int i=0;i<maxArr;i++){
            if(!temp.contains(peserta[i].gameID().charAt(ID)+"")){
                temp+=peserta[i].gameID().charAt(ID);
                total++;
            }
       }
       System.out.println("Jumlah Kelompok: "+total);
    }

    /**
     *Mengembalikan indeks peserta berdasarkan parameter input
     * nama yang diberikan
     * @param name
     * @return
     */
    public int getIdx(String name){
        int idx=0;
        for(int i=0;i<maxArr;i++){
            if(peserta[i].name().equalsIgnoreCase(name)){
                idx=i;
            }
        }
        return idx;
    }

    /**
     *Fungsi untuk mencari nama peserta dalam satu kelompok dengan frekuensi
     * bersama sebanyak "frek" berdasarkan "nama"
     * @param frek
     * @param nama
     * @return
     */
    public String getInGroup(int frek, String nama){
        String result="";
        int idx;
        int count[] = new int[maxArr];
        for(int a=0;a<maxArr;a++)
            count[a]=0;
        idx = getIdx(nama);

         for(int i=0;i<peserta[idx].gameID().length();i++){
             for(int j=0;j<maxArr;j++){
                if( idx != j ){
                    if( peserta[idx].gameID().charAt(i) == peserta[j].gameID().charAt(i)){
                        count[j]++;
                    }
                }
             }
        }

         for(int a=0;a<maxArr;a++){
            if(count[a]==frek && a!=idx)
                result+=peserta[a].name()+" ";
         }
        return result;

    }

    /**
     *Mencari peserta yang berada dalam satu grup dengan frekuensi kebersamaan
     * tertentu
     */
    public void oneGrup(){
        String nama;
        int frek;
        System.out.println("\nDaftar siswa yang berada dalam satu kelompok tepat n kali dengan X");
        System.out.print("Nama Siswa        : ");
        nama = input.next();
        System.out.print("Frekuensi bersama : ");
        frek = input.nextInt();

        System.out.println("Daftar Siswa      : "+getInGroup(frek,nama));
    }

    /**
     * Mencari peserta yang tidak pernah satu kelompok dengan nama siswa yang
     * dimasukkan sebagai parameter input
     */
    public void notInGroup(){
        String nama;
        System.out.println("\nDaftar siswa-siswa yang tak pernah berada dalam satu kelompok dengan peserta tertentu");
        System.out.print("Nama Siswa        : ");
        nama = input.next();
        System.out.println("Daftar siswa tak pernah 1 kelompok  : "+getInGroup(0,nama));
    }

    public static void main(String args[]){
        Praktikum01 p01 = new Praktikum01();
        p01.oneGrupInAllGame();
        p01.totalGrup();
        p01.oneGrup();
        p01.notInGroup();
    }
}

 

Untuk tampilan hasil kompilasi lihat di New Hint Praktikum 1.

File dapat di unduh di file Praktikum 01

del.icio.us Tags: ,

3 thoughts on “Praktikum 1 tanpa array 2 dimensi

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 )

Google+ photo

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

Connecting to %s