Anda di halaman 1dari 18

FINAL PROJECT

ALGORITMA PEMOGRAMAN
POPULASI SAPI

DISUSUN OLEH
NAMA : ARI PRASETYO
WIBOWO
NIM :082011633083
KELAS I1
DOSEN : Drs.KARTONO
M.Kom.

FAKULTAS SAINS DAN TEKNOLOGI


UNIVERSITAS AIRLANGGA
TAHUN 2020

DESKRIPSI PROJEK
Final Project atau projek terkahir dari mata kuliah Algoritma dan Pemrograman (Praktikum) adalah
membuat Populasi dengan ketentuan sebagai berikut:

Setelah membuat populasi, adapun tujuan dan tugas yang perlu diselesaikan oleh mahasiswa yaitu:

Final Project ini dibuat dengan bahasa pemrograman Java menggunakan aplikasi compiler yang
bernama Apache Netbeans IDE versi 8.2. Selain itu, tugas ini juga merupakan penerapan dari
materi Object Oriented Programming (OOP) atau yang kami lebih kenal dengan nama Class.
Populasi sapi ini dibuat berdasarkan source code yang akan saya cantumkan dibawah. Pertama
saya membuat projek yang bernama Projectsapi . Pada bagian main program, saya membuat
beberapa variabel yang salah satunya adalah n yang diinput oleh user untuk menentukan berapa
tahun yang dicari, sisanya bisa dilihat di source code yang saya cantumkan dibawah. Di sini saya
hanya memuat 1 class saja
1. Class Sapi
a. Attributes
Attributes yang ada di Class ini terdiri dari array jantan, array betina, Array jantan dan betina
merupakan variable array yang berisi umur sapi jantan dan betina di sini saya membuat sapi mati
dengan mengubahnya isi umur array nya dengan -1 probabilitas kematian sapi yang sudah tentukan
pada ketentuan soal.
b. Methods
Didalam class ini terdapat berbagai jenis method yang terdiri dari method constructor, method
return, dan method non return. Untuk method constructor terdiri dari method Populasi untuk,
banyakumur, jumlahumurawal, dan prob mati. Untuk method non-return terdiri dari method
usiasapi , kemungkinanmeahirkan,. Semua sudah tercantum di source code.
Untuk Costumisasi di sini saya menambahkan Sapi kabur dimana sapi yang berumur 6 – 8 bisa
kabur dari peternakan karena tidak ada yang menjaganya berikut ini tambahan nya
  public void kemungkinankabur(){
        sapikabur = 0;
        for (int i=0;i<jumlahsapijantan;i++){
            if (jantan[i]==6){
            double kaburjantan = Math.random();
            if(kaburjantan<=0.2){
             jantan[i]=-1;
             sapikaburjantan++;
             
           }
        }  
            if (jantan[i]==7){
            double kaburjantan = Math.random();
            if(kaburjantan<=0.2){
            jantan[i]=-1;
            sapikaburjantan++;
        }
    }
             
            if (jantan[i]==8){
            double kaburjantan = Math.random();
            if(kaburjantan<=0.2){
             jantan[i]=-1;
             sapikaburjantan++;
        }
    }
        }
        for (int i=0;i<jumlahsapibetina;i++){
            if (betina [i]==6){
            double kaburbetina =Math.random();
            if(kaburbetina <= 0.2){
                betina[i]=-1;
                sapikaburbetina++;
            }
           }
            if (betina [i]==7){
            double kaburbetina =Math.random();
            if(kaburbetina <= 0.2){
                betina[i]=-1;
                sapikaburbetina++;
        }
            
    }
            if (betina [i]==8){
            double kaburbetina =Math.random();
            if(kaburbetina <= 0.2){
                betina[i]=-1;
                sapikaburbetina++;
        }
    }
        }
    }    
SOURCE CODE
MAIN PROGAM
package projectsapi;
import java.util.Scanner;

public class ProjectSapi {
  
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner masukan =new Scanner(System.in);
        double [] totaldatasimulasi; 
        double [] datasimulasi; 
        double [] datamean; 
        double [] datavarians;
        double [] dataatas ;
        double [] datasimulasipertahun ; 
        int tahun;
        int jumlahsapi;
        System.out.println("Program Sapi");
        System.out.println("================**================");
        System.out.println();
        System.out.print("Masukan tahun yang ingin dimasukan = ");
        tahun = masukan.nextInt();
        
        
        System.out.println("");
        
        totaldatasimulasi = new double [tahun];
        datasimulasi = new double [tahun];
        datamean = new double [tahun];
        datavarians = new double [tahun];
        dataatas = new double [tahun];
        datasimulasipertahun = new double [tahun*20];
        int x = 0; 
            
       
        System.out.println("Banyak sapi " + tahun + " tahun ke depan");
        System.out.println();
        Sapi sapi;
        
         //perulangan 20x simulasi soal B
        for (int i = 0;i<20;i++){
            System.out.println("================== Simulasikan ke-"+(i+1)+"==================");
            sapi= new Sapi(tahun);
            datasimulasi=sapi.jumlahsapi();
        for (int a=0;a<tahun;a++){
           totaldatasimulasi[a]=totaldatasimulasi[a]+datasimulasi[a];
         }
        for (int b=0;b<tahun;b++){
            datasimulasipertahun[x]=datasimulasi[b];
            x++;
          }
        }
        System.out.println("****************Data Mean**********************");
        for (int c =0;c<tahun;c++){
            datamean[c]=totaldatasimulasi[c]/20;
            System.out.println("Data Mean tahun ke   =" +(c+1)+ " adalah "+datamean[c]);
        }
        System.out.println("");
        
        System.out.println("****************Data varians*******************");
        for (int i=0;i<tahun;i++){
            int d = i;
            for (int p=0;p<20;p++){
                dataatas[i] =(datamean[i]-datasimulasipertahun[d])*(datamean[i]-
datasimulasipertahun[d]);
                datavarians[i] = (datavarians[i]+dataatas[i]);
                d = d + tahun;
               
            }
            datavarians[i] = datavarians[i]/(20-1);
            System.out.println("Data Varians tahun ke ="+(i+1)+" adalah "+datavarians[i]);
        }
        
    }
}
CLASS Sapi
package projectsapi;

public class Sapi {
    int jumlahsapijantan;//jumlahsapijntan
    int jumlahsapibetina;//jumlahsapijantan
    int usiasapi; //usia peternakan sapi
    int [] jantan;
    int [] betina; 
    int nilaibetina;// untuk menampilkan sapi betina
    int nilaijantan;// menmpilkan sapi jantan
    int sapimati; // jumlah sapi matinya
    int menambahanakjantan=0; // jumlah pertambahan anak jantan
    int menambahanakbetina=0; // jumlah menambah anaak betina
    int sapimatibetina; // jumlah sapi betina yag mati
    int sapimatijantan; // jumlah sap \i jantan yang mati
    double [] simpansapihidup; // Buat mencari varians dan mean 
    int banyakrumputhektar;
    int sapikabur;// jumlah sapi kabur
    int sapikaburjantan;//jantan kabur
    int sapikaburbetina;// bettina kabur
    
    //Constructor
    public Sapi (int usiasapi){
        simpansapihidup = new double [999999];  
        this.jumlahsapijantan=5;
        this.jumlahsapibetina=10;
        this.usiasapi=usiasapi;
        betina = new int [99999999];
        jantan = new int [99999999];
     for (int i= 0; i<5;i++)
          jantan[i]=0; 
     for (int i=0; i<10;i++)
          betina [i]=0;   
     
     }
   
   
    // menaikan umur sapi sapi
    public void usiasapi(){
        for (int i=0;i<jumlahsapijantan;i++){
            if (jantan[i]==-1){
               continue;
            }
               jantan[i]=jantan[i]+1;
        }
        for (int i = 0;i<jumlahsapibetina;i++){
            if (betina[i]==-1){
               continue;
            }
               betina[i]=betina[i]+1;
        }    
    }
    // kemungkinan mati 
    public void kemungkinanmati(){
        double kemungkinanbetina;
        double kemungkinanjantan;
        sapimati=0;
        sapimatijantan=0;
        sapimatibetina=0;
        // Kemungkinan mati jantan 
        for (int i=0;i<jumlahsapijantan;i++){
            if (jantan[i]==1){
                kemungkinanjantan=Math.random();
                if (kemungkinanjantan<=0.1){
                    jantan[i]=-1;
                    sapimati++;
                    sapimatijantan++;
                }
            }
            if (jantan[i]==2){
                kemungkinanjantan=Math.random();
                if (kemungkinanjantan<=0.1){
                    jantan[i]=-1;
                    sapimati++;
                    sapimatijantan++;
                }
            }
            if (jantan[i]==3){
                kemungkinanjantan=Math.random();
                if (kemungkinanjantan<=0.2){
                    jantan[i]=-1;
                    sapimati++;
                    sapimatijantan++;
                }
            }
            if (jantan[i]==4){
                kemungkinanjantan=Math.random();
                if (kemungkinanjantan<=0.2){
                    jantan[i]=-1;
                    sapimati++;
                }
            }
            if (jantan[i]==5){
                kemungkinanjantan=Math.random();
                if (kemungkinanjantan<=0.3){
                    jantan[i]=-1;
                    sapimati++;
                    sapimatijantan++;
                }    
           }
            if (jantan[i]==6){
                kemungkinanjantan=Math.random();
                if (kemungkinanjantan<=0.3){
                    jantan[i]=-1;
                    sapimati++;
                    sapimatijantan++;
                }
            }
            if (jantan[i]==7){
                kemungkinanjantan=Math.random();
                if (kemungkinanjantan<=0.4){
                   jantan[i]=-1;
                   sapimati++;
                   sapimatijantan++;
                }
            }    
            if (jantan[i]==8){
                kemungkinanjantan=Math.random();
                if (kemungkinanjantan<=0.5){
                    jantan[i]=-1;
                    sapimati++;
                    sapimatijantan++;
                }  
            }
            if (jantan[i]==9){
                    jantan[i]=-1;
                    sapimati++;
                    sapimatijantan++;
            }    
        }
        //Kemungkinan mati Betina
       for (int i=0;i<jumlahsapibetina;i++){
         if(betina[i]==1){
            kemungkinanbetina=Math.random();
            if(kemungkinanbetina<=0.1){
                betina[i]=-1;
                sapimati++;
                sapimatibetina++;
            }
         }
         if(betina[i]==2){
            kemungkinanbetina=Math.random();
            if(kemungkinanbetina<=0.1){
                betina[i]=-1;
                sapimati++;
                sapimatibetina++;
            }
        }
          if(betina[i]==3){
            kemungkinanbetina=Math.random();
            if(kemungkinanbetina<=0.2){
                betina[i]=-1;
                sapimati++;
                sapimatibetina++;
            }
        }
          if(betina[i]==4){
            kemungkinanbetina=Math.random();
            if(kemungkinanbetina<=0.2){
                betina[i]=-1;
                sapimati++;
                sapimatibetina++;
            }
        }
          if(betina[i]==5){
            kemungkinanbetina=Math.random();
            if(kemungkinanbetina<=0.3){
                betina[i]=-1;
                sapimati++;
                sapimatibetina++;
            }
        }
          if(betina[i]==6){
            kemungkinanbetina=Math.random();
            if(kemungkinanbetina<=0.3){
                betina[i]=-1;
                sapimati++;
                sapimatibetina++;
            }
        }
          if(betina[i]==7){
            kemungkinanbetina=Math.random();
            if(kemungkinanbetina<=0.4){
                betina[i]=-1;
                sapimati++;
                sapimatibetina++;
            }
        }
          if(betina[i]==8){
            kemungkinanbetina=Math.random();
            if(kemungkinanbetina<=0.5){
                betina[i]=-1;
                sapimati++;
                sapimatibetina++;
            }
        }
          if(betina[i]==9){
               betina[i]=-1;
               sapimati++;
               sapimatibetina++;
            }
        }
            for (int i=0;i<usiasapi;i++){
                
            }
           
    } 
    //Kemungkinan kabur ada di umur 6 - 7 baik janan maupun betina
    public void kemungkinankabur(){
        sapikabur = 0;
        for (int i=0;i<jumlahsapijantan;i++){
            if (jantan[i]==6){
            double kaburjantan = Math.random();
            if(kaburjantan<=0.2){
             jantan[i]=-1;
             sapikaburjantan++;
             
           }
        }  
            if (jantan[i]==7){
            double kaburjantan = Math.random();
            if(kaburjantan<=0.2){
            jantan[i]=-1;
            sapikaburjantan++;
        }
    }
             
            if (jantan[i]==8){
            double kaburjantan = Math.random();
            if(kaburjantan<=0.2){
             jantan[i]=-1;
             sapikaburjantan++;
        }
    }
        }
        for (int i=0;i<jumlahsapibetina;i++){
            if (betina [i]==6){
            double kaburbetina =Math.random();
            if(kaburbetina <= 0.2){
                betina[i]=-1;
                sapikaburbetina++;
            }
           }
            if (betina [i]==7){
            double kaburbetina =Math.random();
            if(kaburbetina <= 0.2){
                betina[i]=-1;
                sapikaburbetina++;
        }
            
    }
            if (betina [i]==8){
            double kaburbetina =Math.random();
            if(kaburbetina <= 0.2){
                betina[i]=-1;
                sapikaburbetina++;
        }
    }
        }
    }    
       public void mengghitungjmlhsapi(){
           this.nilaibetina=0;
           this.nilaijantan=0;
      for(int i=0;i<jumlahsapijantan;i++){
         if(jantan[i]!=-1)
             this.nilaijantan++;
    }
      for(int i=0;i<jumlahsapibetina;i++){
         if(betina[i]!=-1)
             this.nilaibetina++;
       }
           System.out.println("====================*==============================");
           System.out.println("Betina                       = " +nilaibetina  );
           System.out.println("Jantan                       = " +nilaijantan  );
        }
       //Banyak Sapi betina yang dapat melahirakan 
      public void melahirkan(){
            menambahanakjantan = 0;
            menambahanakbetina = 0;
            int jumlahbetina1;
            double jumlahbetina2;
            jumlahbetina1=kemungkinanmelahirkan();
            for (int i=0;i<jumlahbetina1;i++){
            jumlahbetina2=Math.random();
            if (jumlahbetina2<0.4){
                jantan[jumlahsapijantan+1]=0;
                jumlahsapijantan++;
                menambahanakjantan++;
            }
            if (jumlahbetina2>=0.4){
               betina[jumlahsapibetina+1]=0;
               jumlahsapibetina++;
               menambahanakbetina++;
                    
             
           }
               
    }
}        
      // kemungkinan melahirkan betina 
      //umur 3 sampaidengan 7 tahun melahirkan jantan/beina
      public int kemungkinanmelahirkan(){
          int hasil=0;
          for (int i=0;i<jumlahsapibetina;i++){
              if (betina[i]>=3&&betina[i]<=7)
                  hasil=hasil + 1;
              if (jumlahsapijantan<1)
                  hasil = 0;
          }
       return hasil; 
      }        

      //Menghitung n tahun 
      public double [] jumlahsapi(){
          for (int i=0;i<this.usiasapi;i++){
              
              kemungkinanmati();
              melahirkan();
              usiasapi();
              mengghitungjmlhsapi();
              kemungkinanmelahirkan();
              kemungkinankabur();
              int sapimatiygjantan = sapimatijantan;
              int sapimatiygbetina = sapimatibetina;
              int jumlahanaklahirjantan = menambahanakjantan;
              int jumlahanaklahirbetina = menambahanakbetina;
              int totalanakhalhir =menambahanakjantan+menambahanakbetina;
              int sapiyangmati = sapimati;
              int jumlhsapi = nilaibetina+nilaijantan;
              simpansapihidup [i] =jumlhsapi;  
              int totalsapimati = sapimatijantan+sapimatibetina;
              int totalsapikabur = sapikaburjantan + sapikaburbetina;
              int sapikaburnbetina = sapikaburbetina;
              int sapikaburnjantan = sapikaburjantan;
              if (banyakrumputhektar>1){
                   banyakrumputhektar = banyakrumputhektar+1;
                   banyakrumputhektar = banyakrumputhektar-2;
              }
              if (banyakrumputhektar<0){
                  jumlahsapijantan = 0;
                  jumlahsapibetina = 0;
              }
              
              System.out.println("Total populasi sapi          = "+jumlhsapi);
              System.out.println("Lahir Anak betina            = " +jumlahanaklahirbetina);
              System.out.println("Lahir Anak jantan            = " +jumlahanaklahirjantan);
              System.out.println("Total Anak Lahir             = " +totalanakhalhir);
              System.out.println("Jumlah sapi jantan yang mati = " +sapimatiygjantan);
              System.out.println("Jumlah sapi betia yang mati  = " +sapimatiygbetina);
              System.out.println("Total Sapi mati              = " +totalsapimati);
              System.out.println("Sapi Kabur jantan            = " +sapikaburnjantan);
              System.out.println("Sapi Kabur Betina            = "+sapikaburnbetina);
              System.out.println("Sapi Kabur                   = " +totalsapikabur);
              
              System.out.println("**************Tahun ke"+(i+1)+"***************");
              System.out.println();
              
          }
          return simpansapihidup;
      }    

    
    }
CAPTURE SIMULASI
SOAL A
Simulasi ini merupakan perkembangan sapi selama n tahun yang diinput user yang kali ini
saya masukkan n = 10. Dibawah ini saya akan memberikan 5 kali capture simulasi.
1. Percobaan pertama:

2. Percobaan kedua:
3. Percobaan ketinga :

4. Percobaan 4 :
5. Percobaan ke 5
SOAL B
Mean dan Varian selama 20 kali percobaan:
MEAN DAN VARIAN 20X PECOBAAN

Anda mungkin juga menyukai