Sesi 1_PPT Ruang Kolaborasi Modul 1.3 _ ke 1_PGP Angkatan 10.pptx
Laporan program data pemain bola (java)
1. 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
2. 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;
3. }
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 PemaintNama
PemaintPosisit|");
5. int i=0;
System.out.println("==============================");
System.out.println("Hasil Pencarian: ");
System.out.println("| No.tKode PemaintNama
PemaintPosisit|");
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("tt"+bantucstr2.nama);
System.out.println("tt"+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;
6. //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 kosongn");
}
//==================================================
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 PemaintNama
PemaintPosisit|");
while(bantu!=null){
System.out.print("| "+i+"t");
System.out.print(""+bantu.idp);
System.out.print("tt"+bantu.nama);
System.out.println("tt"+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;
7. 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: ");
8. 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{
9. 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.
10. Screenshot program
Tampilan awal
Tampilan Input Data Baru
Tampilan data pemain setelah input 5 kali sebelum di sorting
11. 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
12. Tampilan daftar pemain bola setelah di sorting
Tampilan daftar pilihan untuk searching
Tampilan data pemain yang di cari berdasarkan posisi
13. Tampilan untuk hapus data berdasarkan kode pemain
Tampilan data pemain bola setelah kode pemain 115 dihapus