Anda di halaman 1dari 14

AHMAD JURNAIDI WAHIDIN

NIM

: 1611600253

KELAS

: X.A

DOSEN

: Ir. MOH. SJUKANI, M.M

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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);
}

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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 ();
}

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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();
}

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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;
}

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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;
Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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");
}
}

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

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;
Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

}
}
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");
}

Tugas Matrikulasi Analisa dan Desain Algoritma Universitas Budi Luhur

Anda mungkin juga menyukai