Anda di halaman 1dari 6

Tugas Akhir Matrikulasi

Analisa dan Desain Algoritma


Dosen : Ir. Moh. Sjukani, M.M

Nama

: Aris Haryanto

NIM

: 1511600783

Kel.

: XB

MAGISTER ILMU KOMPUTER


UNIVERSITAS BUDI LUHUR
2015

Analisa dan Desain Algoritma

Tugas Akhir
Matrikulasi

Soal-1
Titik A dan titik B dihubungkan hanya oleh sebuah jalan yang panjangnya = 1100 m.
Ali berangkat dari titik A menuju titik B tepat pukul 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 5 m/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,
berpapasan dijalan.
Bila Ali dan Badu berpapasan dititik C, cetak jarak titik A dengan Titik C.

Jawab :
Penyelesaian menggunakan Java :
class badu{
public static void main(String[]args){
hitung();
}

public static void jam_menit_detik(int detik,int jam_awal){


int jam,menit,sec,jamketemu;
jamketemu=jam_awal+detik;
jam=jamketemu/3600;
sec=jamketemu/3600;
menit=sec/60;
if(detik>60)
sec=detik%60;
else
sec=detik;
System.out.println("Pukul "+jam+":"+menit+":"+sec);
//return detik;
}

public static void hitung(){


int jarak,ka,kb,sa,sb,jam_awal,totdetik;
jarak=0;
Aris Haryanto - 1511600783

Analisa dan Desain Algoritma

Tugas Akhir
Matrikulasi

jam_awal=(8*3600)+(0*60)+0;
ka=10;
kb=7;
sa=(10*ka);// dalam waktu 10 detik ali sudah menempuh jarak 100 Meter
sb=0;
totdetik=0;
while (jarak<1100)
{
sa=sa+ka;
if(totdetik%10==0 && totdetik>9){
kb=kb+2;
}
sb=sb+kb;
jarak=sa+sb;
totdetik=totdetik+1;
//System.out.println("jarak tempuh badu : "+ sb +" Ali Ke "+ sa + " kecepatan
Badu : " +kb+ " Meter/detik " );
}
System.out.println("Jarak Badu : "+ sb + " Meter");
System.out.println("Jarak Ali : "+ sa+ " Meter");
System.out.print("Ali dan Badu berpapasan pada : " );
jam_menit_detik(totdetik,jam_awal);
}
}
Output :

Aris Haryanto - 1511600783

Analisa dan Desain Algoritma

Tugas Akhir
Matrikulasi

Soal-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
kecil 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.

Jawab :
Penyelesaian menggunakan Java
class soal2
{
public static void main(String[]args)
{
double n=1.0,m=1.0;
int flag = 0;
while (flag == 0)
{
if ((n*n) == (13*m*m+1)) flag = 1;
else if ((n*n) < (13*m*m+1))
{
n = n+1;
}
else
m = m+1;
}
System.out.print("\nJumlah Pohon Semula Yang Ada Di Kebun Besar : "+(n*n));
System.out.println();
}
}

Aris Haryanto - 1511600783

Analisa dan Desain Algoritma

Tugas Akhir
Matrikulasi

Output :

Soal-3
Susun program (penggalan program) untuk menginputkan dua buah bilangan long integer
yang berbeda, lebih besar dari nol, misal disimpan dalam variabel 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

Jawab :
Penyelesaian menggunakan Java :
import java.util.Scanner;
class fpb
{ public static void main(String[]args){

Aris Haryanto - 1511600783

Analisa dan Desain Algoritma

Tugas Akhir
Matrikulasi

int bil1,bil2,hasil;
Scanner scan=new Scanner(System.in);
System.out.print("Masukkan Bilangan Pertama : ");
bil1=scan.nextInt();
System.out.print("Masukkan Bilangan Kedua : ");
bil2=scan.nextInt();
hasil = bil1 % bil2;
while(hasil != 0)
{
bil1 = bil2;
bil2 = hasil;
hasil = bil1 % bil2;
}
System.out.println("Pembagi Persekutuan Terbesar dari Bilangan 1 dan Bilangan 2
Adalah : " + bil2);
}
}
Output :

Aris Haryanto - 1511600783