A. Pertanyaan :
1. Apakah
yang dimaksud dengan algoritma?
Berikan
satu contoh algoritma dalam kehidupan sehari-hari!
2. Terdapat
dua buah gelas berukuran sama, tetapi masing-masing berisi cairan yang berbeda.
Tuliskan solusi algoritmik untuk menukarkan isi cairan dari kedua buah gelas
tersebut!
3. Tuliskan
solusi algoritmik untuk permasalahan berikut :
Diberikan
dua buah ember berukuran 5 liter dan 3 liter. Bagaimana cara mendapatkan air
berukuran 1 liter dengan kedua ember tersebut?
4. Jelaskan
keuntungan proses eksekusi dengan struktur kondisional bersarang (nested
conditional)!
5. Jelaskan
perbedaan mendasar tiga struktur pengulangan (looping): for, repeat-until
dan while-do!
6. Jelaskan
perbedaan fungsi dan prosedur dalam pemrograman!
7. Bagaimanakah
cara merepresentasikan polinom berderajat N (axn + bxn-1 + … + z) dalam
pemrograman?
8. Cenderung
setujukah anda dengan pernyataan: Komputer lebih pintar dari manusia? Berikan
alasannya!
B. Jawaban
1.
Pengertian Algoritma dan Contohnya dalam Kehidupan Sehari-hari
Algoritma
adalah suatu langkah-langkah yang logis dan terstruktur yang dipergunakan untuk
menyelesaikan permasalahan yang disusun secara sistematis.
Contoh algoritma :
·
Algoritma Membuat Jus Apel
1.
Siapkan bahan-bahan pembuatan Jus apel seperti Apel, gula, es batu,
air 250cc
2.
Siapkan blender, pisau, sendok dan gelas untuk tempat jus apel.
3.
Potong apel menjadi 4 bagian per buah
4.
Masukkan 12 potong apel, 1 sendok teh gula, air 150cc, dan es batu
ke dalam blender.
5.
Blender bahan-bahan tersebut dengan putaran blender maksimal selama
2 menit
6.
Setelah 2 menit, atur blender ke mode putaran paling lambat selama
1 menit
7.
Setelah tercampur rata tuangkan jus apel ke dalam gelas sesuai
selera
2.
Dalam permasalahan tersebut, diperlukan gelas ke-3 untuk membantu
dalam proses penukaran cairan dari masing-masing gelas. Algoritmanya sebagai
berikut :
asumsi
:
Gelas A = gelas pertama dengan cairan oli
Gelas B = gelas kedua dengan cairan minyak
Gelas C = gelas kosong
1.
Tuangkan cairan oli yang berada di gelas a kedalam gelas c.
2.
Tuangkan cairan minyak yang berada pada gelas b kedalam gelas a
3.
Kemudian, cairan oli yang berada di gelas c dituangkan kedalam
gelas b
3.
Pada permasalahan ini terdapat ember dengan ukuran 5 liter dan 3
liter dengan tujuan untuk mendapatkan air sebanyak 1 liter.
Algoritmanya:
1.
Isi ember yang ukuranya 3 liter dengan air secara penuh
2.
Tuangkan isi ember 3 liter kedalam ember yang ukurannya 5 liter
3.
Selanjutnya, isi lagi ember yang ukurannya 3 liter dengan air
secara penuh
4.
Tuangkan isi ember 3 liter kedalam ember ukuran 5 liter hingga
ember yang berukuran 5 liter penuh
5.
Maka akan didapatkan air sisa pada ember yang berukuran 5 liter
sebanyak 1 liter air
4.
Keuntungan dari proses eksekusi dari kondisi bersarang (nested)
adalah dalam eksekusi, khususnya untuk kondisi bersarang (if-else), jika
kondisi memenuhi syarat, maka perintah akan dikerjakan dan sebaliknya, jika
kondisi salah, maka perintah tidak dikerjakan. Dalam pernyataannya, pembuatan
program khususnya program yang menggunakan kondisi yang banyak, diperlukan
adanya code yang mendukungnya contohnya kondisi bersarang (if-else).
Intinya,
kondisi bersarang ini dapat menyisipkan pernyataan dalam pernyataan, sehingga
hasil dari konsep tersebut akan mengkhusus dan tergantung dengan kondisinya.
Selain
itu, kondisi berasang jika dieksekusi lebih ringan dibandingkan kondisi yang
tidak bersarang. Hal ini dikarenakan kondisi yang tidak bersarang akan semua dieksekusi,
sehingga akan mengakibatkan program yang lebih lambat. Berbeda dengan kondisi
yang bersarang, yang dieksekusi jika statemennya bernilai benar sehingga waktu untuk
mengeksekusi codenya lebih singkat.
5.
Perbedaan for, repeat-until,
dan while-do
·
FOR
Pernyataan for adalah konstruksi pengulangan tanpa kondisi artinya
instruksi-instruksi di dalam badan pengulangan diulangi sejumalah kali yang di perintahkan
oleh pembuat program. Dalam hal ini, banyaknya pengulangan sudah ditentukan
sebelum konstruksi pengulangan eksekusi. Perulangan dengan pernyataan FOR
digunakan untuk mengulang pernyataan/satu blok
pernyataan berulanng kali sejumlah yang ditentukan. Jumlah pengulangan
diketahui atau dapat ditentukan sebelum eksekusi. Untuk mencacah beberapa kali
pengulangan diperlukan sebuah peubah (variable) pencacah (counter). Peubah ini
nilainya selau bertambah 1 setiap kali pengulangan dilakukan.. Proses
pengulangan akan berhenti pada saat counter mencapai jumlah yang
dispesifikasikan
Algoritma FOR:
for (kondisi)
{
aksi;
}
·
REPEAT
REPEAT
biasanya digunakan jika jumlah pengulangan belum dapat ditentukan pada saat
program ditulis. Algoritma REPEAT:
repeat
aksi
until kondisi
Repeat-until
(ulangi sampai) adalah struktur pengulangan dimana
aksi dilakukan hingga kondisi (persyaratan) terpenuhi. Perulangan Repeat – Until
hampir sama dengan While – do, perbedaannya hanyalah letak pengecekan kondisi.
Jika pada while – do pengecekan berada pada awal blok
pernyataan yang harus diulang, maka pada repeat – until kondisi dicek pada
akhir blok pernyataan yang harus diulang. Perbedaan
lainnya adalah pernyataan while – do mengulang pernyataan selama kondisi masih
terpenuhi, tetapi pernyataan repeat – until hanya akan mengulang pernyataan
selama kondisi belum terpenuhi.
Pada repeat-until jumlah pengulangan tidak
dapat diketahui dari awal. Karena pengulangan aksi akan terus
dilakukan sampai ditemukan entry dari apa yang menjadi syarat sudah terlampaui.
·
WHILE
While berarti selagi/ selama dan do berarti lakukan.
Jadi, while-do artinya struktur pengulangan dimana
selama kondisi (persyaratan) pengulangan masih benar, maka aksi
dikerjakan.
Algoritma
WHILE :
while kondisi do
aksi
endwhile
Program akan menguji nilai <kondisi>. Jika
<kondisi> bernilai false, maka <pernyataan> tidak dilaksanakan dan
program menghentikan pengulangan, kemudian menjalankan baris berikutnya. Jika
<kondisi> berniai true, maka pernyataan akan
dilaksanakan satu kali. Kembali ke prosedur 1. Program menghentikan perulangan dan menjalankan baris
berikutnya.
Pada while-do kondisi pengulangan di
evakuasi di awal pengulangan, berbeda dengan repeat-until kondisi pengulangan di
evakuasi di akhir.
6.
Perbedaan fungsi dan procedure
Pada
prosedur nilai yang diproses tidak dikembalikan atau diubah, nilai hanya
diproses didalam prosedur dan kembali kepada keadaan semula ketika keluar dari
prosedur. Sedangkan pada fungsi, nilai yang diproses akan berubah dan memiliki
nilai keluaran. Bisa kita disimpulkan bahwa prosedur itu hanya berisi
metode/langkah-langkah penyelesaian masalah sedangkan fungsi adalah berisi
metode yang memproses nilai dan mengubah nilai itu sendiri.
7.
Berikut adalah implementasi
polinom berderajat n dalam program.
Nama Program: Program
Aritmatika Polinom
Bahasa Pemrogramam : C++
1 void penjumlahan(int a[],int b[],int
c,int e)
2 {
3 int k,l;
4 if(c<=e) l=e; else l=c;
5 if(l==c)
6 {
7 k=e+1;
8 for(
;k<=l;k++)
9 {
10 b[k]=0;
11 }
12 }
13 else if(l==e)
14 {
15 k=c+1;
16 for( ;k<=l;k++)
17 {
18 a[k]=0;
19 }
20 } int z;
21 for(z=0;z<=l;z++)
22 {
23 a[z]=a[z]+b[z];
24 }
25 for(z=0;z<=l;z++)
26 {
27 if(z!=l)
28 {
29 cout<<a[z]<<"x^"<<z<<"+";
30 }
31 else
32 {
33 cout<<a[z]<<"x^"<<z;
34 }
35 cout<<endl;
36 }
37 void pengurangan(int a[],int b[],int
e,int c)
38 {
39 int k,l;
40 if(c<=e)
41 l=e;
42 else l=c;
43 if(l==c)
44 {
45 k=e+1;
46 for( ;k<=l;
47 k++)
48 {
49 b[k]=0;
50 }
51 }
52 else
53 if(l==e)
54 {
55 k=c+1;
56 for( ;k<=l;k++)
57 {
58 a[k]=0;
59 }
60 }
61 int z;
62 for(z=0;z<=l;z++)
63 {
64 a[z]=a[z]-b[z];
65 }
66 for(z=0;z<=l;z++)
67 if(z!=l)
68 {
69 cout<<a[z]<<"x^"<<z<<"+";
70 }
71 else
72 {
73 cout<<a[z]<<"x^"<<z;
74 }
75 cout<<endl;
76 }
77 void perkalian(int a[],int b[],int c,int
e)
78 {
79 int f,g,h[21],i=0,j[21];
80 for(f=0;f<=c;f++)
81 for(g=0;g<=e;g++)
82 {
83 h[i]=b[g]*a[f];
84 j[i]=f+g; i++;
85 }
86 for(f=0;f<i;f++)
87 {
88 if(f!=i-1)
89 {
90 cout<<h[f]<<"x^"<<j[f]<<"+";
91 }
92 else
93 {
94 cout<<h[f]<<"x^"<<j[f];
95 }
96 } cout<<endl;
97 }
98 void turunan(int a[],int b[],int c,int e)
99 {
100
int f;
101
for(f=0;
102
f<=c;f++)
103
{
104
a[f]=a[f+1]*(f+1);
105
}
106
cout<<"turunan polinom
pertama adalah: "<<" ";
107
for(f=0;f<c;f++)
108
{
109
if(f!=c-1)
110
{
111
cout<<a[f]<<"x^"<<f<<"+";
112
}
113
else
114
{
115
cout<<a[f]<<"x^"<<f;
116
}
117
}
118
for(f=0;f<=e;f++)
119
{
120
b[f]=b[f+1]*(f+1);
121
}
122
cout<<endl<<endl<<"turunan
polinom kedua adalah:
"<<" ";
123
for(f=0;f<e;f++)
124
{
125
if(f!=e-1)
126
{
127
cout<<b[f]<<"x^"<<f<<"+";
128
}
129
else
130
{
131
cout<<b[f]<<"x^"<<f;
132
}
133
}
134
cout<<endl;
135
}
136
void
salah()
137
{
138
cout<<"Maaf menu tidak
tersedia,pilih menu yang tersedia!"<<endl;
139
}
140
int
main()
141
{
142
char jawab;
143
do
144
{
145
int a[21],b[21],c,d,e,f;
146
cout<<"Masukkan Polinom Pertama,
Tekan Sembarang Tombol Unuk Melanjutkan"<<endl;
147
getch();
148
cout<<"\nMasukkan Derajat
Tertinggi Polinom Pertama: ";
149
cin>>c; cout<<"\nMasukkan
Koofisien x Mulai Dari x Pangkat 0, Tekan Sembarang Tombol Untuk
Melanjutkan"<<endl;
150
getch();
151
for(d=0;d<=c;d++)
152
{
153
cout<<"\nKoofisien x Pangkat "<<d<<"
: ";
154
cin>>a[d]; cout<<endl;
155
}
156
cout<<"Masukkan Polinom Kedua,
Tekan Sembarang Tombol Untuk Melanjutkan"<<endl;
157
getch();
158
cout<<"\nMasukkan Derajat
Tertinggi Polinom Kedua: ";
159
cin>>e;
160
cout<<"\nMasukkan Koofisien x Mulai
dari x Pangkat 0, Tekan Sembarang Tombol Untuk Melanjutkan"<<endl;
161
getch();
162
for(d=0;d<=e;d++)
163
{
164
cout<<"\nKoofisien x Pangkat
"<<d<<" : ";
165
cin>>b[d]; cout<<endl;
166
}
167
cout<<"1. PENJUMLAHAN \n2.
PENGURANGAN \n3. PERKALIAN \n4. TURUNAN"<<endl;
168
cout<<"\nMasukkan Kode Operasi :
";
169
cin>>f; switch(f)
170
{
171
case 1:
172
{
173
penjumlahan(a,b,e,c);
174
break;
175
}
176
case 2:
177
{
178
pengurangan(a,b,e,c);
179
break;
180
}
181
case 3:
182
{
183
perkalian(a,b,c,e);
184
break;
185
}
186
case 4:
187
{
188
turunan(a,b,c,e);
189
break;
190
}
191
default:
192
{
193
salah();
194
break;
195
}
196
}
197
printf("\n Apakah anda ingin mengulang
? [y/t] ");
198
scanf("%s",&jawab);
199
} while ((jawab=='Y' || jawab=='y'));
200
printf("\n\n\t\t\t\tTERIMA KASIH");
201
}
8.
Saya tidak setuju dengan pernyataan tersebut. Menurut saya manusia
lebih pintar daripada komputer. Komputer hanya unggul dalam kecepatan
pemrosesan secara matematis dan juga dalam masalah mengingat komputer mempunya
kemampuan yang lebih tetapi jika data tersebut dihapus komputer tidak dapat
mengingatnya kembali. Sedangkan dalam hal pengambilan keputusan komputer masih
kalah dari manusia. Komputer juga tidak bisa belajar sendiri kecuali manusia
menambah programnya. Selain itu, Komputer lahir dan dapat beroperasi juga karena manusia. Jadi sebenarnya otak
manusialah yang lebih pintar dari Komputer, namun dengan perkembangan teknologi
Artificial Intelligence yang pesat tidak menutup kemungkinan di masa depan komputer
akan lebih cerdas dari manusia. Namun untuk masa sekarang manusia lebih unggul
dari komputer karena komputer bekerja di bawah kendali manusia.
No comments:
Post a Comment