Selasa, 10 Mei 2016
Senin, 09 Mei 2016
Minggu, 08 Mei 2016
Sabtu, 07 Mei 2016
Jumat, 06 Mei 2016
Tugas Martikulasi Analisa dan desain Algoritma
TUGAS MARTIKULASI
ANALISA DAN DESAIN ALGORITMA
Oleh :
Nim :1411601881
Nama : Muhammad
Alfi Mahyuarsony
Kelas :
XB
PROGRAM
STUDI MAGISTER ILMU KOMPUTER (MKOM)
FAKULTAS
PASCASARJANA
UNIVERSITAS
BUDI LUHUR
Februari 2015
Daftar Isi
Cover..........................................................................................................................i
Daftar Isi...................................................................................................................ii
Soal no 1....................................................................................................................1
Program dalam bahasa C++......................................................................................1
Hasil Programnya......................................................................................................4
Soal no 2...................................................................................................................4
Program dalam bahasa C++.....................................................................................5
Hasil Programnya.....................................................................................................6
Soal no 3...................................................................................................................6
Program dalam bahasa C++......................................................................................7
Hasil Programnya......................................................................................................8
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 jam 08:00:00 pagi dengankecepatan tetap 10 m/detik.
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 2m/detik menjadi 7m/detik.
Demikian seterusnya, setiap 10 detik kecepatan Ali naik2m/detik.
Susun algoritma untuk mencetak
pukul berapa (Jam : Menit : Detik ) Ali dan Badu bertemu, berpapasan di
jalan.Bila Ali dan Badu berpapasan di titik C, cetak jarak Titik A dengan Titik
C.
Jawab
:
Program
dalam Bahasa C++ :
#include
void main ()
{
int jarak, det, ketemu, stat, V1, V2,
T0, sb, TV1, bb, ta, stv;
jarak = 1100;
V1 = 5;
V2 = 10;
T0 = 10;
sb = 0;
TV1 = V1+2;
bb = 0;
stv = jarak;
stat = 0;
ta = 0;
cout << "Jarak Antara Titik A
dan Titik B
= " << jarak << "meter" ;
cout<< "\nKecepatan Awalbadu = " << V1
<< "m/dt";
cout << "\nKecepatan badu Naik menjadi = "
<< TV1 << "m/dt";
cout << "\nKecepatan Awal ali = " << V2
<< "m/dt";
cout << "\nSelang Waktu
Perubahan ali
= " << T0 << "detik \n";
for(det=1; ; det++)
{
if(ta <= jarak || stv >= 0)
{
if(ta <= jarak)
{
ta += V1;
}
if(stv >= 0)
{
stv -= V2;
}
if(ta >= stv && stat == 0)
{
ketemu = det;
stat = 1;
}
if(T0 != 0)
{
if(det % T0 == 0)
{
V1 += TV1;
}
}
if(sb != 0)
{
if(det % sb == 0)
{
V2 += bb;
}
}
}
else break;
}
cout << "\nJadi Pertemuan Ali
dan Badu pada waktu ke :" <
int Waktu, Jam, JlhJam, Selisih, Menit, JlhMenit, Detik,Tiba;
Jam = ketemu / 3600;
JlhJam = Jam * 3600;
Selisih = ketemu - JlhJam;
Menit = Selisih / 60;
JlhMenit = Menit * 60;
Detik = Selisih - JlhMenit;
Tiba =
Jam + 8;
cout << "\nali bertemu,berpapasan jalan pada pukul = "
<< Tiba << ":" << Menit << ":"
<
intvc;
vc=ketemu*V2;
cout<<
"\nJarakAntaraTitik A dengan C ="<
}
Hasil
Programnya :
Soal-2.
Sebuah kebun besar ditanami pohon
bibit sebanyak n baris. Setiap baris terdiridari n pohon, sehingga kebun besar
ini dapat kita sebut ukurannya = n x n. Pohon-pohon tersebut kemudian dicabut
dan ditanam ulang menjadi 13 buah kebundengan ukuran lebih kecil yaitu setiap
kebun kecil terdiri dari m baris dan setiapbaris 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
:
Program
dalam Bahasa C++ :
#include
#include
#include
#include
#pragma argsused
int main(int argc, char* argv[])
{
int a, b, n[400], m, index, status;
status = 0;
for(a=0; a<400 a="" o:p="">400>
n[a] = a*a;
for(b=1; b<400 b="" o:p="">400>
{
m = (b * b * 13) + 1;
printf("=> Untuk m = %d,
maka jumlah pohon di kebun besar =%d\n",abs(b),abs(m));
}
for(a=1; a<400 a="" o:p="">400>
{
for(b=1; b<400 b="" o:p="">400>
{
m = (b * b * 13) + 1;
if(m == n[a])
{
printf("=> m Pada kebun
kecil = %d \n",b);
printf("=> n Pada kebun
besar = %d \n",a);
printf("=> Jumlah pohon di
kebun besar = %d\n",abs(n[a]));
status = 1;
break;
}
}
if(status == 0)
{
printf("Sampai dengan bilangan
ke %d tidak ditemukan kombinasi yang cocok.",b);
}
getch();
return 0;
}
}
Hasil
Programnya :
Soal-3.
Susun program
(penggalan program) untuk menginputkan dua buah bilangan long integer yang
berbeda, lebih besar dari nol, misal disimpan dalam varibel 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, tapi75 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
:
Program
dalam bahasa C++ :
#include
#include
/* Standard C Function:
Greatest Common Divisor */
int
gcd ( int a, int b )
{
int c;
while ( a != 0 ) {
c = a; a =
b%a; b = c;
}
return b;
}
/* Recursive Standard C
Function: Greatest Common Divisor */
int
gcdr ( int a, int b )
{
if ( a==0 ) return b;
return gcdr ( b%a, a );
}
int
main(void)
{
int a,b;
{
cout
<< "masukkan bilangan a : "; //tampilkan ke layar
cin >> a; //memasukkan nilai inputan user ke
variabel a
cout << endl;
}
{
cout
<< "masukkan bilangan b : "; //tampilkan ke layar
cin >> b; //memasukkan nilai inputan user ke
variabel b
cout << endl;
}
printf("bilangan a=%d dan
b=%d\n\n", a,b);
printf("gcd(a,b)=gcd(%d,%d)=%d\n",
a, b, gcd(a,b));
return 0;
}
Quis Analisa dan Desain Algoritma
Quiz
#1 (Struktur Data) - Attempt 1
Top of Form
Question 1
Marks: 1
Dalam bahasa C, format pencetakan %d
digunakan untuk mencetak nilai yang bertipe:
Choose one answer.
|
a. double
|
|
|
b. char
|
|
|
c. int
|
|
|
d. float
|
Question 2
Marks: 1
Dua pernyataan kondisi yang
dihubungkan dengan operator kondisi AND akan bernilai FALSE jika:
Choose one answer.
|
a. Keduanya bernilai FALSE
|
|
|
b. Salah satunya bernilai FALSE
|
|
|
c. Salah satunya bernilai TRUE
|
|
|
d. Keduanya bernilai TRUE
|
Question 3
Marks: 1
Perhatikan potongan flowchart
berikut ini! Jika diinputkan nilai masing-masing 8, 7, 9 dan 9, maka jalur yang
akan ditempuh adalah:
Choose one answer.
|
a. 5
|
|
|
b. 7
|
|
|
c. 8
|
|
|
d. 6
|
Question 4
Marks: 1
Perhatikan potongan program berikut
ini! Apa yang tercetak jika nilai N diinputkan dengan nilai 85?


Choose one answer.
|
a. C
|
|
|
b. A
|
|
|
c. D
|
|
|
d. B
|
Question 5
Marks: 1
Berikut ini merupakan operator
aritmatika yang benar dalam bahasa C, kecuali:
Choose one answer.
|
a. % untuk modulus
|
|
|
b. + untuk pertambahan
|
|
|
c. * untuk perkalian
|
|
|
d. ^ untuk perpangkatan
|
Question 6
Marks: 1
Perhatikan potongan program bahasa C
berikut ini! Apa yang tercetak dari perintah baris 6?
Choose one answer.
|
a. 3
|
|
|
b. 1
|
|
|
c. 2
|
|
|
d. 10
|
Question 7
Marks: 1
Variabel pointer merupakan variabel
yang berisi:
Choose one answer.
|
a. suatu alamat memori
|
|
|
b. suatu nilai skalar
|
|
|
c. suatu nilai string
|
|
|
d. suatu nilai numerik
|
Question 8
Marks: 1
Untuk menghapus suatu simpul link
list dari memory komputer, digunakan fungsi:
Choose one answer.
|
a. delete()
|
|
|
b. malloc()
|
|
|
c. remove()
|
|
|
d. free()
|
Question 9
Marks: 1
Tipe data int dalam bahasa C
memiliki panjang 1 byte.
Answer:
True
False
Question 10
Marks: 1
Perhatikan gambar flowchart berikut
ini! Jika diinputkan nilai masing-masing 7, 5 dan 13, maka jalur yang akan
ditempuh adalah:


Choose one answer.
|
a. 1 – 3 – 7
|
|
|
b. 1 – 2 – 4
|
|
|
c. 1 – 2 – 5
|
|
|
d. 1 – 3 – 6
|
Question 11
Marks: 1
Jika program bahasa C berikut ini
dijalankan maka apa yang tercetak di layar?


Choose one answer.
|
a. 45 50 55 60 65
|
|
|
b. 65
|
|
|
c. 70
|
|
|
d. 45 50 55 60
|
Question 12
Marks: 1
Dua pernyataan kondisi yang
dihubungkan dengan operator kondisi OR akan bernilai TRUE jika:
Choose one answer.
|
a. Keduanya bernilai FALSE
|
|
|
b. Keduanya bernilai TRUE
|
|
|
c. Salah satunya bernilai FALSE
|
|
|
d. Salah satunya bernilai TRUE
|
Question 13
Marks: 1
Operator relasi dalam bahasa C untuk
menyatakan tidak sama dengan, adalah:
Choose one answer.
|
a. !=
|
|
|
b. <>
|
|
|
c. =
|
|
|
d. ==
|
Question 14
Marks: 1
Dalam suatu program bahasa C,
pemanggilan fungsi printf() harus menyertakan header fungsi, yaitu:
Choose one answer.
|
a. conio.h
|
|
|
b. io.h
|
|
|
c. studio.h
|
|
|
d. stdio.h
|
Question 15
Marks: 1
Memasukkan suatu nilai ke dalam
stack, disebut:
Choose one answer.
|
a. get
|
|
|
b. push
|
|
|
c. post
|
|
|
d. pop
|
Question 16
Marks: 1
Dalam bahasa C, agar tampilan hasil
program berpindah ke baris berikutnya menggunakan karakter khusus:
Choose one answer.
|
a. \e
|
|
|
b. \r
|
|
|
c. \enter
|
|
|
d. \n
|
Question 17
Marks: 1
Berapa jumlah maksimal node pada
sebuah pohon biner dengan kedalaman 8?
Choose one answer.
|
a. 512
|
|
|
b. 64
|
|
|
c. 256
|
|
|
d. 128
|
Question 18
Marks: 1
Perhatikan potongan flowchart
berikut ini! Jika diinputkan nilai masing-masing 8, 7, 3 dan 2, maka jalur yang
akan ditempuh adalah:
Choose one answer.
|
a. 7
|
|
|
b. 6
|
|
|
c. 8
|
|
|
d. 5
|
Question 19
Marks: 1
Representasi tree dalam pemrograman
paling tepat menggunakan:
Choose one answer.
|
a. stack
|
|
|
b. array
|
|
|
c. linked-list
|
|
|
d. queue
|
Question 20
Marks: 1
Perhatikan potongan program berikut
ini! Apa yang tercetak jika nilai N diinputkan dengan nilai 80 ?
Choose one answer.
|
a. 45
|
|
|
b. 55
|
|
|
c. 65
|
|
|
d. 80
|
Question 21
Marks: 1
Perbedaan yang benar antara
algoritma dan program adalah:
Choose one answer.
|
a. Algoritma selalu menggunakan
bahasa C
|
|
|
b. Algoritma menggunakan bahasa
manusia
|
|
|
c. Algoritma menggunakan bahasa
mesin
|
|
|
d. Program ditulis mengggunakan
bahasa pemrogram.
|
Question 22
Marks: 1
Perhatikan gambar flowchart berikut
ini! Apa yang tercetak jika diinputkan nilai 80?


Choose one answer.
|
a. Tidak tercetak apapun
|
|
|
b. LULUS
|
|
|
c. GAGAL
|
|
|
d. END
|
Question 23
Marks: 1
Berikut ini pernyataan yang benar
sehubungan dengan fungsi, yaitu:
Choose one answer.
|
a. Fungsi buatan boleh tidak
memiliki parameter (argumen).
|
|
|
b. Nama fungsi harus menggunakan
huruf besar.
|
|
|
c. Fungsi harus memiliki minimal 1
buah parameter.
|
|
|
d. Tipe dari fungsi tidak boleh
void
|
Question 24
Marks: 1
Bila diketahui nilai A = 5, B= 2, C
= 6 dan D = 4 maka manakah pernyataan berikut ini yang bernilai TRUE?
Choose one answer.
|
a. ((A > B) && (B >
D))
|
|
|
b. ((A > C) || (B > D))
|
|
|
c. ( ( A > B) && ! (B
> D))
|
|
|
d. ((A == B) && (B <
D))
|
Question 25
Marks: 1
Bilangan desimal 10 jika dikonversi
ke dalam bentuk biner menjadi:
Choose one answer.
|
a. 100
|
|
|
b. 10100
|
|
|
c. 10
|
|
|
d. 1010
|
Question 26
Marks: 1
Perhatikan potongan flowchart
berikut ini! Jika diinputkan nilai masing-masing 4, 7, 13 dan 10, maka jalur
yang akan ditempuh adalah: 

Choose one answer.
|
a. 3
|
|
|
b. 1
|
|
|
c. 2
|
|
|
d. 4
|
Question 27
Marks: 1
Berikut ini yang merupakan tipe data
dasar dalam bahasa C, yaitu:
Choose one answer.
|
a. byte
|
|
|
b. double
|
|
|
c. string
|
|
|
d. boolean
|
Question 28
Marks: 1
Apa yang tercetak dari perintah
berikut ini?
printf("%i", 5.625);
printf("%i", 5.625);
Choose one answer.
|
a. Program error
|
|
|
b. 5
|
|
|
c. 6
|
|
|
d. 5.625
|
Question 29
Marks: 1
Perhatikan gambar flowchart berikut
ini! Jika diinputkan nilai masing-masing 5, 5 dan 5, maka jalur yang akan
ditempuh adalah:
Choose one answer.
|
a. 1 – 2 – 4
|
|
|
b. 1 – 3 – 6
|
|
|
c. 1 – 2 – 5
|
|
|
d. 1 – 3 – 7
|
Question 30
Marks: 1
Perhatikan program berikut ini! Apa
yang tercetak di layar jika diinputkan nilai N = 10 ? 

Choose one answer.
|
a. ODD
|
|
|
b. EVEN
|
|
|
c. Program error
|
|
|
d. Tidak tercetak apapun
|
Question 31
Marks: 1
Stack menggunakan prinsip operasi:
Choose one answer.
|
a. FIFO
|
|
|
b. FCFS
|
|
|
c. GIGO
|
|
|
d. LIFO
|
Question 32
Marks: 1
Untuk mencetak nilai dari suatu
variabel dengan nama A yang bertipe int, perintah dalam bahasa C yang benar
adalah:
Choose one answer.
|
a. printf(A);
|
|
|
b. print(A);
|
|
|
c. print(“%i”, A);
|
|
|
d. printf(“%d”, A);
|
Question 33
Marks: 1
Sebuah fungsi yang selalu ada dalam
setiap program bahasa C, yaitu:
Choose one answer.
|
a. scanf()
|
|
|
b. main()
|
|
|
c. printf()
|
|
|
d. utama()
|
Question 34
Marks: 1
Berikut ini merupakan tipe data
primitif di dalam Bahasa C/C++, kecuali:
Choose one answer.
|
a. double
|
|
|
b. int
|
|
|
c. string
|
|
|
d. char
|
Question 35
Marks: 1
Satuan terkecil dalam sistem
komputer adalah:
Choose one answer.
|
a. Byte
|
|
|
b. Biner
|
|
|
c. Bit
|
|
|
d. Point
|
Question 36
Marks: 1
Jika program bahasa C berikut ini dijalankan
maka apa yang tercetak di layar?


Choose one answer.
|
a. 175
|
|
|
b. 170
|
|
|
c. 165
|
|
|
d. 180
|
Question 37
Marks: 1
Berikut ini merupakan pemberian nama
variabel dalam bahasa C yang benar, kecuali:
Choose one answer.
|
a. nilai
|
|
b. 10_nilai
|
||
|
c. NiLaI
|
|
|
d.
nilai_mahasiswa_universitas_budi_luhur
|
Question 38
Marks: 1
Jika program bahasa C berikut ini
dijalankan maka apa yang tercetak di layar?


Choose one answer.
|
a. 1 2 3 4 5 6 7 8 9 10
|
|
|
b. 1 3 5 6 9 11 13 15 17 19
|
|
|
c. 3 5 6 9 11 13 15 17 19 21
|
|
|
d. 1 3 5 6 9
|
Question 39
Marks: 1
Berikut ini merupakan tipe data
dasar dalam bahasa C, kecuali:
Choose one answer.
|
a. int
|
|
|
b. float
|
|
|
c. char
|
|
|
d. boolean
|
Question 40
Marks: 1
Fungsi untuk mencetak tampilan di
layar dalam bahasa C yang benar adalah:
Choose one answer.
|
a. getch()
|
|
|
b. clrscr()
|
|
|
c. printf()
|
|
|
d. scanf()
|
Bottom of Form