ALGORITMA PEMOGRAMAN
POPULASI SAPI
DISUSUN OLEH
NAMA : ARI PRASETYO
WIBOWO
NIM :082011633083
KELAS I1
DOSEN : Drs.KARTONO
M.Kom.
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