AHMAD JURNAIDI WAHIDIN NIM : 1611600253 KELAS DOSEN : X.A : Ir. MOH. SJUKANI, M.M
SOAL NO 1 Titik A dan titik B dihubungkan hanya oleh sebuah jalan yang panjangnya =1100 m. Ali berangkat dari titik A menuju titik B tepat jam 08:00:00 pagi dengan kecepatan tetap 10 m/detik, tidak pernah berubah. Sepuluh detik kemudian, yaitu pukul (08:00:10) Badu berangkat dari titik B menuju titik A dengan kecepatan awal 5m/detik. Tetapi 10 detik kemudian, kecepatannya naik sebesar 2m/detik menjadi 7m/detik. Demikian seterusnya, setiap 10 detik kecepatan Badu naik sebesar 2m/detik. Susun algoritma untuk mencetak pukul berapa (Jam : Menit : Detik) Ali dan Badu bertemu dijalan. Bila Ali dan Badu berpapasan dititik C, cetak jarak titik A dengan titik HASIL PROGRAM
SUSUNAN PROGRAM #include <iostream> #include <cstdlib> using namespace std; int main(int argc, char *argv[]) cout<<"program Soal No.1"<<endl; cout<<"========================"<<endl<<endl; int mnt,det; int jarakakeb=1100,jarak=0,jaraka=0,jarakb=-50, keca=10,kecb=5 ; int durasi=0,x=0 ; while(jarakb<1100) x=x+1 ; jaraka=jaraka+keca ; jarakb=jarakb+kecb ; if((x>=20)&&(x%10==0)) kecb=kecb+2; if(jaraka==(jarakakeb-jarakb)) durasi = x ; jarak = jaraka; mnt = durasi / 60 ; det = durasi % 60 ; cout<<"diketahui : "<<endl; cout<<"jarak dari Titik A ke Titik B : "<<jarakakeb<<" meter"<<endl ; cout<<"ali berangkat dari A ke B : pukul 08:00:00 "<<endl; cout<<"badu berangkat dari B ke A : pukul 08:00:10 "<<endl; cout<<"kecepatan awal Ali : "<<keca<<" m/detik"<<endl; cout<<"kecepatan awal Badu : "<<kecb<<" m/detik"<<endl<<endl; cout<<"\nmaka : "<<endl; cout<<"waktu Saat berpapasan : pukul 08:0"<<mnt<<":0"<<det<<endl ; cout<<"jarak papasan dari Titik A ke Titik C : "<<jarak<<" meter"<<endl ; int getch(void);
SOAL NO 2 Sebuah kebun besar ditanami pohon bibit sebanyak n baris. Setiap baris terdiri dari n pohon, sehingga kebun besar ini dapat kita sebut ukurannya = n x n. Pohon-pohon tersebut kemudian dicabut dan ditanam ulang menjadi 13 buah kebun dengan ukuran lebih kecil yaitu setiap kebun kecil terdiri dari m baris dan setiap baris terdiri dari m pohon. Sehingga kebun kecin ini kita sebut berukuran m x m. Setelah terbentuk 13 kebun kecil ukuran m x m, ternyata pada kebun besar masih tersisa 1 pohon. Susun program untuk mencetak berapa jumlah pohon semula yang ada di kebun besar. HASIL PROGRAM
SUSUNAN PROGRAM #include <iostream> #include <math.h> #include <conio.h> using namespace std; main() cout<<"program Soal No.2"<<endl; cout<<"========================"<<endl<<endl; long n, m, i, kebunbesar1, kebunbesar2, kebunkecill; kebunbesar1 = 1; kebunbesar2 = 0; kebunkecill = 0; n = 1; while(kebunbesar1!=kebunbesar2) for(i=1;i<n;i++) m = i; kebunbesar1 = n*n; kebunbesar2 = (13*(m*m))+1; kebunkecill = m*m; if(kebunbesar1==kebunbesar2) cout<<"\njumlah Pohon Semula yang ada di Kebun Besar :"<<kebunbesar1; cout<<"\njumlah baris n (kebun besar) : "<<n<<" x " <<n<<" "; cout<<"\n\njumlah Pohon yang ada di Kebun Kecil : "<<kebunkecill; cout<<"\njumlah baris m (kebun kecil) : "<<m<<" x " <<m<<" "; exit(1); n = n+1; getch ();
SOAL NO 3 Susun program (penggalan program) untuk menginputkan dua buah bilangan long integer yang berbeda, lebih besar dari nol, misalkan disimpan dalam variable A dan B. Kemudian cari dan cetak pembagi persekutuan terbesar kedua buah bilangan tersebut : Contoh : Bila A =75 dan B = 105 maka tercetak 15. Keterangan : 75 dan 105 habis dibagi oleh : 1, 3, 5, 15. Yang terbesar adalah 15. Ini yang dicetak. 105 habis dibagi 35, tapi 75 tidak habis dibagi 35, Jadi 35 tidak termasuk dalam persekutuan pembagi habis. 75 habis dibagi 25, tapi 105 tidak habis dibagi 25, Jadi 25 tidak termasuk dalam persekutuan pembagi habis. HASIL PROGRAM
SUSUNAN PROGRAM #include <iostream> #include <conio.h> using namespace std; long cekkosong(long nil) do if(nil<1) cout<<"\nnilai yang diberikan harus lebih besar dari 0 "; cout<<"\nsilahkan masukan nilai kembali : "; cin>>nil; while(nil<1); cout<<endl; return(nil); main() long A,B,C,X, MAX; cout<<"program Soal No.3"<<endl; cout<<"========================"<<endl<<endl; cout<<"masukan Nilai A : "; cin>>a; A=cekkosong(A); cout<<"masukan Nilai B : "; cin>>b; B=cekkosong(B); if(a==b) do cout<<"\nnilai A dan B harus berbeda!!!"; cout<<"\nsilahkan masukan nilai B kembali : "; cin>>b; B=cekkosong(B); while(a==b); if(a>b) MAX=A; else MAX=B; for(x=1;x<=max;x++) if(a%x==0 && B%X==0) C= X; cout<<"\nnilai Persekutuan Terbesar : "<<C; getch();
SOAL NO 4 X dan Y adalah bilangan bulat lebih besar dari nol. Susun program untuk mencetak nilai X dan Y, bila berlaku : 3x + 4y =17 5x + 2y = 19 HASIL PROGRAM
SUSUNAN PROGRAM #include <iostream> using namespace std; int main() cout<<"program Soal No.4"<<endl; cout<<"========================"<<endl<<endl; int x,y; for (x=1; x<=60; x++) for (y=1; y<=60; y++) if((x*3 + y*4 == 17) && (x*5 + y*2 == 19)) cout<<"hitunglah nilai X dan Y, jika diketahui: "<<endl; cout<<"3x + 4y = 17"<<endl; cout<<"5x + 2y = 19"<<endl; cout<<"\n\njawab: "<<endl; cout<<"nilai x = "<<x<<endl; cout<<"nilai y = "<<y<<endl; return 0;
SOAL NO 5 Sebuah restoran mempunyai 2 macam daging campur, daging campur A dan daging campur B, masing-masing 10 kg. Daging campur A merupakan campuran 80% daging dan 20% lemak. Daging campur B merupakan campuran 60% daging dan 40% lemak. Susun program untuk mencetak berapa kg daging campur A, dan berapa kg daging campur B yang harus diambil, keduanya diaduk secara merata agar didapat 4 kg daging campur baru dengan 75% daging dan 25% lemak. HASIL PROGRAM
SUSUNAN PROGRAM #include <iostream> #include <stdio.h> #include <stdlib.h> using namespace std; int c; float ka,kb,da,db,la,lb,dca,dcb,dc,lc,jd,jl; typedef float matrik[10][10]; typedef float matriks[10]; void doolittle(matrik A,matrik L,matrik U,int n); void input(matrik A,int n,matriks H); void persamaan (matrik A, matriks H, int n); void solusiy(matrik A, matriks M, matriks H, int n); void solusix(matrik U, matriks X, matriks Y, int n); void output(matriks H, int n); main() cout<<"program Soal No.4"<<endl; cout<<"========================"<<endl<<endl; matrik A,L,U; matriks H,Y,X; int n; n=2; input(a,n,h); //meminta input persamaan persamaan(a,h,n);//menampilkan persamaan linier doolittle(a,l,u,n);//faktorisasi matrik A menjadi L*U solusiy(l,y,h,n);//menentukan matrik Y dari persamaan L*Y=H solusix(u,x,y,n);//menentukan matrik X dari persamaan U*X=Y output(x,n);//menampilkan matrik X ke layar getchar(); void input(matrik A, int n, matriks H) int i,j; cout<<"persamaan 1 adalah persentase DAGING"<<endl; cout<<"persamaan 2 adalah persentase LEMAK"<<endl; for (i=0;i<n;i++) printf("\npersamaan %d : \n",i+1); for (j=0;j<n;j++) printf("persentase [%d] = ",j+1); scanf("%f",&a[i][j]); cout<<endl; cout<<"berat daging campuran yang diinginkan : ";cin>>c; cout<<"persentase daging didalam daging campuran : ";cin>>dc;
cout<<"persentase lemak didalam daging campuran : ";cin>>lc; jd=dc*c; jl=lc*c; cout<<"--------------"<<endl;; cout<<"jumlah berat daging didalam daging campuran setelah dihitung menjadi : "<<jd<<endl; cout<<"jumlah berat lemak didalam daging campuran setelah dihitung menjadi : "<<jl<<endl; cout<<"---------------"<<endl; cout<<"masukan berat DAGING yang telah dihitung kedalam KOEFISIEN 1"<<endl; cout<<"masukan berat LEMAK yang telah dihitung kedalam KOEFISIEN 2"<<endl<<endl; printf("hasil Persamaan \n"); for (j=0;j<n;j++) printf("koefisien [%d] = ",j+1); scanf("%f",&h[j]); void persamaan(matrik A,matriks H, int n) int i,j,fg; printf("\npersamaan Linier : \n"); for (i=0;i<n;i++) fg=0; for (j=0;j<n;j++) if (A[i][j]!=0) if (fg==0) if (A[i][j]!=1) printf("%4.2f X[%d]",A[i][j],j+1); else printf("x[%d]",j+1); fg=1; else if (A[i][j]!=1) printf("+ %4.2f X[%d]",A[i][j],j+1); else printf("+ X[%d]",j+1); if (j== n-1) printf(" = %4.2f",H[i]); printf("\n");
void doolittle(matrik A,matrik L,matrik U,int n) float sum; int k,j,m; for(j=0;j<n;j++) L[j][j]=1; for (m=0;m<j;m++) if (m>j) L[j][m]=0; else if (m<j) U[m][j]=0; for (k=0;k<n;k++) U[0][k]=A[0][k]; if (U[0][0]!=0) L[k][0]=A[k][0]/U[0][0]; for (k=0;k<n;k++) for(j=1;j<k;j++) sum=0; for (m=0;m<j;m++) sum+=u[m][j]*l[k][m]; if ((k!=j) && (U[j][j]!=0)) L[k][j]=(A[k][j]-sum)/U[j][j]; if (k!=0) for(j=k;j<n;j++) sum=0; for (m=0;m<k;m++) sum+=u[m][j]*l[k][m]; if (j>=k) U[k][j]=A[k][j]-sum; void solusiy(matrik A,matriks M,matriks H, int n) int i,j; float sum; M[0]= H[0]; for (i=1;i<n;i++) sum=0; for (j=0;j<i;j++) sum+=a[i][j]*m[j]; M[i]= H[i]-sum;
void solusix(matrik U, matriks X, matriks Y, int n) int i,j; float sum; X[n-1]= Y[n-1]/U[n-1][n-1]; for (i=n-2;i>=0;i--) sum=0; for (j=n-1;j>i;j--) sum+=u[i][j]*x[j]; if (U[i][i]!=0) X[i]= (Y[i]-sum)/U[i][i]; void output(matriks X, int n) int j; printf("\nsolusi Persamaan Linier : \n"); for (j=0;j<n;j++) if (j==0) ka=(j+1,x[j]); printf("x[%d] = %4.2f ",j+1,x[j]); printf("\n"); if (j==1) kb=(j+1,x[j]); printf("x[%d] = %4.2f ",j+1,x[j]); printf("\n"); cout<<endl; cout<<"banyaknya Daging Campur A yang digunakan : "<<ka<<"kg"; cout<<"\nbanyaknya Daging Campur B yang digunakan : "<<kb<<"kg\n\n"; system("pause");