13
LAPORAN PROJECT BESAR PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PROGRAM DATA PEMAIN BOLA Disusun oleh Kelompok : Rifqi Syamsul Fuadi (1211705138) Rinaldy Maulidiansyah (1211705140) Slamet Widagdo (1211705152) JURUSAN TEKNIK INFORMATIKA FAKULTAS SAINS DAN TEKNOLOGI UNIVERSITAS ISLAM NEGERI SUNAN GUNUNG DJATI BANDUNG 2012

Laporan program data pemain bola (java)

Embed Size (px)

Citation preview

Page 1: Laporan program data pemain bola (java)

LAPORAN PROJECT BESAR

PRAKTIKUM ALGORITMA DAN STRUKTUR DATA

PROGRAM DATA PEMAIN BOLA

Disusun oleh Kelompok : Rifqi Syamsul Fuadi (1211705138)

Rinaldy Maulidiansyah (1211705140)

Slamet Widagdo (1211705152)

JURUSAN TEKNIK INFORMATIKA

FAKULTAS SAINS DAN TEKNOLOGI

UNIVERSITAS ISLAM NEGERI SUNAN GUNUNG DJATI

BANDUNG

2012

Page 2: Laporan program data pemain bola (java)

DataBola.java

import java.util.Scanner;

class DataPemain{

private datap kepala, buntut;

private int aa;

private String bb;

private String cc;

//--------------------------------------------------

public DataPemain(){

kepala=null;

}

//=======================================================

//remove data dari depan / remove head

public datap hapusdepan(){

if(kepala!=null){

datap temp=kepala;

kepala=kepala.next;

temp.next=null;

return temp;

}

else{

System.out.println("List Kosong");

return null;

}

}

//untuk remove data berdasarkan idp / kode pemain

public void remove(int x){

datap bantu,bantu2,temp = kepala;

if (kepala!=null){

while (temp != null){

if (temp.next.idp == x){

temp.next = temp.next.next;

break;}

else if ((temp.idp==x)&&(temp==kepala)){

hapusdepan();

break;}

temp = temp.next;}

}

else

System.out.println("List Kosong");

}

//=======================================================

//update data

public boolean apdet (int p,int q){

datap temp;

for(temp=kepala; temp!=buntut; temp=temp.next){

if(temp.idp==p)

break;}

if(kepala==null && buntut==null)

return false;

else

temp.idp=q;

return true;

Page 3: Laporan program data pemain bola (java)

}

public boolean apdetnama (int p,String q){

datap temp;

for(temp=kepala; temp!=buntut; temp=temp.next){

if(temp.idp==p)

break;}

if(kepala==null && buntut==null)

return false;

else

temp.nama=q;

return true;

}

public boolean apdetposisi (int p,String q){

datap temp;

for(temp=kepala; temp!=buntut; temp=temp.next){

if(temp.idp==p)

break;}

if(kepala==null && buntut==null)

return false;

else

temp.posisi=q;

return true;

}

//menampilkan data yang akan diupdate berdasarkan kode

public void tampilnama (int p){

datap temp;

for(temp=kepala; temp!=buntut; temp=temp.next){

if(temp.idp==p)

break;}

System.out.println("Nama saat ini untuk kode " +p+

" : "+temp.nama);

System.out.println();

}

public void tampilposisi (int p){

datap temp;

for(temp=kepala; temp!=buntut; temp=temp.next){

if(temp.idp==p)

break;}

System.out.println("posisi saat ini untuk kode " +p+

" : "+temp.posisi);

System.out.println();

}

//====================================================

//searching method :D

//search integer

public void searchkode(int a){

if(kepala!=null){

datap bantuckode=kepala;

int i=0;

System.out.println("==============================");

System.out.println("Hasil Pencarian: ");

System.out.println("| No.\tKode Pemain\tNama

Pemain\tPosisi\t|");

Page 4: Laporan program data pemain bola (java)

for(bantuckode=kepala; bantuckode!=buntut;

bantuckode=bantuckode.next){

if(bantuckode.idp==a){

System.out.print("| "+(i+1)+"\t");

System.out.print(""+bantuckode.idp);

System.out.print("\t\t"+bantuckode.nama);

System.out.println("\t\t" + bantuckode.posisi +

"\t|");

i++;

}

}

if(i!=0)

System.out.println(i+" hasil ditemukan.");

else

System.out.println("Hasil tidak ditemukan.");

System.out.println("==============================");

}

else

System.out.println("List Kosong");

}

//search string

public void searchstr(String a){

if(kepala!=null){

datap bantucstr=kepala;

int i=0;

System.out.println("==============================");

System.out.println("Hasil Pencarian: ");

System.out.println("| No.\tKode Pemain\tNama

Pemain\tPosisi\t|");

for(bantucstr=kepala; bantucstr!=buntut;

bantucstr=bantucstr.next){

if((bantucstr.nama).compareTo(a)==0){

System.out.print("| "+(i+1)+"\t");

System.out.print(""+bantucstr.idp);

System.out.print("\t\t"+bantucstr.nama);

System.out.println("\t\t" + bantucstr.posisi+"\t|");

i++;

}

}

if(i!=0)

System.out.println(i+" hasil ditemukan.");

else

System.out.println("Hasil tidak ditemukan.");

System.out.println("==============================");

}

else

System.out.println("List Kosong");

}

public void searchstr2(String a){

if(kepala!=null){

datap bantucstr2=kepala;

Page 5: Laporan program data pemain bola (java)

int i=0;

System.out.println("==============================");

System.out.println("Hasil Pencarian: ");

System.out.println("| No.\tKode Pemain\tNama

Pemain\tPosisi\t|");

for(bantucstr2=kepala; bantucstr2!=buntut;

bantucstr2=bantucstr2.next){

if((bantucstr2.posisi).compareTo(a)==0){

System.out.print("| "+(i+1)+"\t");

System.out.print(""+bantucstr2.idp);

System.out.print("\t\t"+bantucstr2.nama);

System.out.println("\t\t"+bantucstr2.posisi+"\t|");

i++;

}

}

if(i!=0)

System.out.println(i+" hasil ditemukan.");

else

System.out.println("Hasil tidak ditemukan.");

System.out.println("==============================");

}

else

System.out.println("List Kosong");

}

//=======================================================

//sorting

public void sortingselec(){

datap bantu1,bantu2,idxterkecil,idxbase2,idxbase3;

int temp;

String temp2;

String temp3;

if(kepala!=null){

bantu1=kepala;

while(bantu1.next!=null){

bantu2=bantu1;

idxterkecil=bantu1;

idxbase2=bantu1;

idxbase3=bantu1;

while (bantu2!=null){

if(bantu2.idp<idxterkecil.idp)

{

idxterkecil=bantu2;

idxbase2=bantu2;

idxbase3=bantu2;

}

bantu2=bantu2.next;

}

if(bantu1.idp>idxterkecil.idp)

{//pertukaran data sorting

//id pemain

temp=bantu1.idp;

bantu1.idp=idxterkecil.idp;

idxterkecil.idp=temp;

Page 6: Laporan program data pemain bola (java)

//nama

temp2=bantu1.nama;

bantu1.nama=idxbase2.nama;

idxbase2.nama=temp2;

//posisi

temp3=bantu1.posisi;

bantu1.posisi=idxbase3.posisi;

idxbase3.posisi=temp3;

}

bantu1=bantu1.next;

}

}

else

System.out.print("Pengurutan dibatalkan karena

linked list kosong\n");

}

//==================================================

public void pemain(int a,String b, String c){

datap baru = new datap(a,b,c);

if(kepala==null){

kepala=baru;

}

else{

baru.next= kepala;

kepala=baru;

}

}

public void displaydatap(){

if(kepala!=null){

datap bantu=kepala;

int i=1;

System.out.println("==============================");

System.out.println("| No.\tKode Pemain\tNama

Pemain\tPosisi\t|");

while(bantu!=null){

System.out.print("| "+i+"\t");

System.out.print(""+bantu.idp);

System.out.print("\t\t"+bantu.nama);

System.out.println("\t\t"+bantu.posisi+"\t|");

bantu=bantu.next;

i++;

}

System.out.println("==============================");

}

else

System.out.println("List Kosong");

}

}

class DataBola{

public static void main (String [] args){

int pilih,pil;

char y;

long dp;

Page 7: Laporan program data pemain bola (java)

String nama, posisi;

int idp,tunjuk;

Scanner scn= new Scanner(System.in);

Scanner in= new Scanner(System.in);

DataPemain list = new DataPemain();

//=======================================================

do{

System.out.println("==============================");

System.out.println(" Daftar Pemain Bola ");

System.out.println("==============================");

list.displaydatap();

System.out.println("==============================");

System.out.println("1. Input data baru");

System.out.println("2. Update data");

System.out.println("3. Sort");

System.out.println("4. Search");

System.out.println("5. Delete");

System.out.println("==============================");

System.out.print("Pilih : ");

tunjuk=scn.nextInt();

if(tunjuk==1){

System.out.println("");

System.out.println("Data Pemain");

System.out.print("Kode Pemain : ");

idp= scn.nextInt();

System.out.print("Nama : ");

nama = in.nextLine();

System.out.print("Posisi : ");

posisi = in.nextLine();

list.pemain(idp,nama,posisi);

System.out.println("");

}

else if(tunjuk==2){

System.out.println("==============================");

System.out.println("1. Update Kode Pemain");

System.out.println("2. Update Nama");

System.out.println("3. Update Posisi");

System.out.println("==============================");

System.out.print("Pilih:");

int up= scn.nextInt();

if(up==1){

System.out.print("Masukan Kode Pemain : ");

int p=scn.nextInt();

System.out.print("Masukan Kode Pemain baru: ");

int q=scn.nextInt();

list.apdet(p,q);

}

else if(up==2){

System.out.print("Masukan Kode Pemain yang akan

diganti namanya: ");

int r=scn.nextInt();

list.tampilnama(r);

System.out.print("Masukan nama baru: ");

Page 8: Laporan program data pemain bola (java)

String s=scn.next();

list.apdetnama(r,s);}

else if(up==3){

System.out.print("Masukan Kode Pemain yang akan

diganti posisinya: ");

int t=scn.nextInt();

list.tampilposisi(t);

System.out.print("Masukan posisi baru: ");

String u=scn.next();

list.apdetposisi(t,u);}

}

else if(tunjuk==3){

list.sortingselec();

}

else if(tunjuk==4){

System.out.println("==============================");

System.out.println("Pilih jenis data yang akan

dicari: ");

System.out.println("1. Cari Kode");

System.out.println("2. Cari Nama");

System.out.println("3. Cari Posisi");

System.out.println("==============================");

int z= scn.nextInt();

if(z==1){

System.out.print("Masukan Kode yang akan dicari : ");

int ckode=scn.nextInt();

list.searchkode(ckode);

}

else if(z==2){

System.out.print("Masukan nama yang akan dicari:

");

String cnama=scn.next();

list.searchstr(cnama);}

else if(z==3){

System.out.print("Masukan posisi yang akan

dicari: ");

String cpos=scn.next();

list.searchstr2(cpos);}

}

else if(tunjuk==5){

System.out.print("Masukan Kode Pemain dari data

yang akan dihapus: ");

int x= scn.nextInt();

list.remove(x);

}

System.out.print("Kembali ke Daftar ? (Y/N)");

y=scn.next().charAt(0);

}while(y=='Y' || y=='y');

if(y=='T' || y=='t')

System.out.print("\n--- Terima Kasih ---");

}

}

class datap{

Page 9: Laporan program data pemain bola (java)

public int idp;

public String nama;

public String posisi;

public datap next;

//------------------------------------------------

public datap(int a,String b, String c){

idp=a;

nama=b;

posisi=c;

next=null;

}

}

Metode sorting yang digunakan adalah Selection Sort

Pengurutan Selection Sort dilakukan dengan memilih elemen terbesar dan menempatkan

pada posisinya, kemudian mencari element terbesar berikutnya dan menempatkan pada

tempatnya, dan seterusnya.

Proses pengurutan dengan menggunakan metode selection sort secara terurut naik adalah :

1) Mencari data terkecil dari data pertama sampai data terakhir, kemunian di tukar

posisinya dengan data pertama.

2) Mencari data terkecil dari data kedua sampai data terakhir, kemudian di tukar dengan

posisinya dengan data kedua.

3) Mencari data terkecil dari data ketiga sampai data terakhir, kemudian di tukar

posisinya dengan data ketiga

4) dan seterusnya sampai semua data turut naik. apabila terdapat n buah data yang akan

di urutkan, maka membutukan (n - 1) langkah pengurutan, dimana data terakhir yaitu

data ke-n tidak perlu di urutkan karena hanya tinggal satu satunya.

Pada program ini yang menjadi acuan pengurutan adalah kode pemain yang berupa

integer, dimana kode pemain ini bersifat unik, karena akan dijadikan sebagai kunci.

Metode searching yang digunakan adalah Sequential/linear Search

Merupakan algoritma pencarian yang paling sederhana. Pencarian dilakukan dengan

memeriksa setiap elemen secara berurutan, dimulai dengan elemen pertama hingga

menemukan elemen kunci atau mencapai nilai akhir dari array.

Page 10: Laporan program data pemain bola (java)

Screenshot program

Tampilan awal

Tampilan Input Data Baru

Tampilan data pemain setelah input 5 kali sebelum di sorting

Page 11: Laporan program data pemain bola (java)

Tampilan daftar pilihan update data

Tampilan kode pemain baru setelah di ganti (kode pemain 123 diganti menjadi 114)

Tampilan daftar pemain bola setelah di update sebelum di sorting

Page 12: Laporan program data pemain bola (java)

Tampilan daftar pemain bola setelah di sorting

Tampilan daftar pilihan untuk searching

Tampilan data pemain yang di cari berdasarkan posisi

Page 13: Laporan program data pemain bola (java)

Tampilan untuk hapus data berdasarkan kode pemain

Tampilan data pemain bola setelah kode pemain 115 dihapus