Anda di halaman 1dari 8

Jawaban Tugas Martikulasi

Analisis dan Desain Algoritma

DOSEN
Ir. Moh. Sjukani M.M

Disusun Oleh

NIM
NAMA
KELAS

: 1511601351
: Indra Gunadiraja Hamid
: XB

MAGISTER ILMU KOMPUTER


UNIVERSITAS BUDI LUHUR JAKARTA
2015

1511601351

SOAL 1

Titik A dan titik B dihubungkan hanya oleh sebuah jalan yang panjangnya = 6000m.
Ali berangkat dari titik A menuju titik B tepat jam 08:00:00 pagi dengan kecepatan tetap 5
m/detik. Tetapi 10 detik kemudian, kecepatannya naik 2m/detik menjadi 7m/detik. Demikian
seterusnya, setiap 10 detik kecepatan Ali naik 2m/detik. Dua puluh lima detik kemudian
(08:00:25) Badu berangkat dari titik B menuju titik A. Pada detik pertamakecepatan badu 2
m/detik, pada detik ke-dua kecepatannya naik menjadi 2.1 m/detik, pada detik ke-tiga
kecepatannya berubah lagi menjadi 2.2 m/detik. Demikian seterusnya setiap detik berikutnya
kecepatan Badu selalu bertambah 0.1 m/detik. Susun algoritma untuk mencetak pada detik
keberapa setelah pukul 08:00:00, Ali dan Badu bertemu, berpapasan dijalan.

PENYELESAIAN SOAL 1
Implementasi algoritma dalam Bahasa C++
#include<iostream>
#include<conio.h>
int main()
{
int s1,v1,t;
s1 = 0;
v1 = 5;
t = 1;
float s2,v2;
s2 = 0;
v2 = 2;
while ((s1+s2)<6000)
{
s1=s2+v1;
if(t%10==0)
{
v1=v1+2;
}
if(t>=25){
s2 = s2+v2;
v2 = v2+0.1;

1511601351

}
t=t+1;
}
cout <<"Jarak Ali :"<< s1 <<"\n";
cout <<"Jarak Badu :"<< s2 <<"\n";
cout <<"Bertemu pada detik ke : "<< t;
getch();
}

1511601351

SOAL 2

Ali mempunyai banyak sekali uang logam. Uang logam tersebut hanya terdiri dari 2
macam nilai satuan yaitu : 5, dan 3 sen. Ali mau mengambil beberapa keping uang logam
tersebut senilai minimal 8 sen dan maksimal 100 sen. Anda diminta membantu Ali untuk
menentukan keping uang apa dan berapa keping jumlahnya untuk memenuhi nilai yang akan
diambil Ali, dengan ketentuan mendahulukan mengambil keping dengan nilai tertinggi agar
didapat jumlah keping yang paling sedikit.
Untuk itu Anda diminta membuat algoritma yang menginputkan sebuah nilai integer
yang menyatakan nilai uang yang akan diambil Ali, kemudian cetak berapa keping uang
logam bernilai 5 sen, dan berapa keping yang bernilai 3 sen, agar terpenuhi jumlah nilai yang
akan diambil Ali. Bila nilai yang diinput kurang dari 8, atau lebih dari 100, maka cetak
perkataan DATA SALAH dan proses diulang untung menginput nilai baru yang benar.
PENYELESAIAN SOAL 2
Implementasi algoritma dalam Bahasa C++
#include<iostream.h>
#include<conio.h>
void main()
{
int koin, P5, P3, S;
cout <<"Inputkan jumlah koin : ";
cin >> koin;
if (koin >= 8 && koin <= 100)
{
S = koin % 5;
if(S == 0)
{
P5 = koin / 5;
P3 = 0;
}
else
{
P5 = koin / 5;
while(P5 >= 0)
{
S = koin - (P5 * 5);
if(S % 3 == 0)
{
P3 = S / 3;

1511601351

break;
}
else
{
P5--;
}
}
}
cout << P5 <<" keping 5 sen"<< endl;
cout << P3 <<" keping 3 sen"<< endl;
}
else
{
cout <<"Maaf, Data yang Anda input salah !";
}
getch();
}

1511601351

SOAL 3

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. 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.
PENYELESAIAN SOAL 3
Implementasi algoritma dalam Bahasa C++
#include <iostream.h>
void main()
{
double n, m, i, kebB1, kebB2;
kebB1 = 1;
kebB2 = 0;
n = 1;
while(kebB1!=kebB2)
{
for(i=1;i<n;i++)
{
m = i;
kebB1 = n*n;
kebB2 = (13*(m*m))+1;
if(kebB1==kebB2)
{
cout << "Jumlah pohon semula yang berada di kebun
besar : "<<kebB1<<"\n";
cout << "Dengan jumlah baris kebun kecil (n):
"<<n<<"\n";
cout << "Dengan jumlah baris kebun besar (m):
"<<m<<"\n";
}
}
n = n+1;
}
}

1511601351

SOAL 4

Disebuah negara berlaku satuan uang logam (coin) sebagai berikut: quarter (25 sen)
dime (10 sen), nickel (5 sen) dan penny (1 sen). Apabila sebuah toko ingin mengembalikan
uang belanjaan sebesar 64 sen, dengan jumlah keping coin yang paling sedikit, maka
diperlukan 2 quarter, 1 dime dan 4 penny, (2*25+1*10+ 4*1) atau sebanyak 7 keping. Ia
tidak boleh mengembalikan dengan 6 dime dan 4 penny (6*10+4*1) atau 10 keping, karena
jumlah kepingnya bukan yang paling sedikit, walaupun nilainya sama-sama 64 sen. Susun
program untuk mencetak berapa keping masing-masing coin yang diperlukan untuk uang
kembalian. Nilai uang kembalian diketik melalui keyboard.
PENYELESAIAN SOAL 4
Implementasi algoritma dalam Bahasa C++
#include <iostream.h>
#include <conio.h>
void main()
{
int quarter, dime, nickel, penny, uang, sisa1, sisa2;
cout <<"Inputkan nilai Uang : ";
cin >> uang;
quarter = uang / 25;
sisa1 = uang - ( 25 * quarter );
dime = sisa1 / 10;
sisa2 = sisa1 - ( 10 * dime );
nickel = sisa2 / 5;
penny = sisa2 - ( 5* nickel );
cout << "Keping Quarter : "<< quarter << endl;
cout << "Keping Dime

: "<< dime << endl;

cout << "Keping nickel

: "<< nickel << endl;

cout << "Keping Penny

: "<< penny << endl;

getch ();
}

1511601351

Anda mungkin juga menyukai