algoritma dan arithmatika
TRANSCRIPT
Teori Terapan dalam Latihan &
Kasus
Ir. Sihar, MT.
T. Informatika – Fak. Teknologi Informasi
Bandung – 2013
TIF301 Algoritma dan Pemrograman – I (4 sks)
Daftar Pustaka
1) Davis, S. R. (2004). C++ for Dummies-5th Edition. Wiley Publishing.
2) Sedgewick, R. (2003). Algorithms-third edition. Addison-Wesley.
3) Shaffer, C. A. (2009). A Practical Introduction to Data Structuresand Algorithm Analysis. Department of Computer Science, VirginiaTech.
4) Simamora, S.N.M.P. (2002). "Diktat SK-100 Dasar Komputer danPemrograman". Dept. Sistem Komputer, Fak. Teknik. ITHB.Bandung.
5) Simamora, S.N.M.P. (2011). "Diktat Kuliah TIF301 Algoritma danPemrograman-1". Program studi Teknik Informatika. Univ. BALE.Bandung.
6) Simamora, S.N.M.P. (2013). "Diktat Kuliah Algoritma danPemrograman-I". Program studi Teknik Informatika. UTAMA.Bandung.
7) Skiena, S. S. (1998). The Algorithm Design Manual. SpringerVerlag, New York.
Sebuah variabel, zK, adalah input-value by end-user diproses dengan statement
berikut: x1←2*zK;
Tuliskan algoritma dan pemrograman C++ untuk mendapatkan isi zK jika
menggunakan unary-method pada expression tersebut. Tunjukkan tampilan
jalannya program.
Kasus:
Solusi: Agar expression dapat ditransformasikan dalam bentuk unary-method, maka:
statement tersebut harus menggunakan variabel yang sama yakni zK; mengapa zK,
oleh sebab pada soal diminta isi zK. Dengan demikian, expression 2∗zK diubah
posisi menjadi: zK∗2; dan statement tersebut dapat ditulis-ulang kembali menjadi:
zK←zK∗2; ⇒ zK∗= 2; dan zK←input-value by end-user
Algoritma dan pemrograman C++: Tampilan jalannya program:
Kasus: Tuliskan algoritma dan pemrograman C++, jika variabel Y1 diisikan DEC(-2) dan isi
variabel x adalah 2 kali isi Y1 untuk statement berikut: z2←x+Y1;
Tunjukkan tampilan jalannya program.
Solusi: Konstruksi-algoritma: Y1←DEC(-2);
x←2∗Y1;
z2←x+Y1;
Algoritma Pseudocode:
deklarasi var: Y1,x,z2 ∈ Float;
Y1←DEC(-2);
x←2∗Y1;
z2←x+Y1;
tampilkan z2;
Oleh sebab dalam kasus tidak ada
spesifik penggunaan bilangan
bulat atau pecahan, maka tipe-
data yang digunakan boleh int
atau float. Dalam penyelesaian
ini digunakan float dengan
alasan, tipe-data ini telah
merepresentasikan juga bilangan
bulat (int).
Algoritma dan pemrograman C++:
Tampilan jalannya program:
Alternatif-1: Alternatif-2:
Sebuah variabel, x1 dan x1∈Bil.Pecahan, adalah input-value by end-user diproses
dengan statement berikut: x1←9+zK;
Tuliskan algoritma dan pemrograman C++ untuk mendapatkan isi x1 jika
menggunakan unary-method pada expression tersebut. Tunjukkan tampilan
jalannya program.
Kasus:
Solusi: Agar expression dapat ditransformasikan dalam bentuk unary-method, maka:
statement tersebut harus menggunakan variabel yang sama yakni x1; mengapa x1,
oleh sebab pada soal diminta isi x1. Dengan demikian, expression 9+x1 diubah
posisi menjadi: x1+9; dan statement tersebut dapat ditulis-ulang kembali menjadi:
x1←x1+9; ⇒ x1+=9; dan x1←input-value by end-user
Algoritma dan pemrograman C++: Tampilan jalannya program:
Kasus: Sebuah variabel, t1, dikalikan dengan DEC(-7); hasilnya dikurangkan kembali dengan
nilai awal, DEC(-7), dan ditampungkan kembali ke t1. Tuliskan algoritma dan
pemrograman C++ untuk mendapatkan berapa isi t1 terakhir (ter-update) jika t1
sebelumnya didapatkan dari input-value by end-user. Tunjukkan tampilan jalannya
program.
Solusi: Konstruksi-algoritma: t1←?;
t1←t1∗DEC(-7);
t1←t1−DEC(-7);
tampilkan t1;
Algoritma dan pemrograman C++: Tampilan jalannya program:
Digunakannya tipe-data float untuk
menghindari hasil bersifat ambigue jika t1 di-
input-kan dalam bilangan pecahan
Kasus: Apabila diisikan DEC(125) ke variabel y, lalu di-MOD-kan dengan DEC(-2); lalu di-
MUL-kan dengan DEC(225); hasilnya di-ADD-kan dengan DEC(2). Tuliskan algoritma
pseudocode dan C++ beserta dengan tampilan jalannya program. Khusus untuk
algoritma dan pemrograman C++ gunakan unary-method pada expression untuk
statement yang dituliskan.
Solusi: Konstruksi-algoritma: y←DEC(125);
y←y%DEC(-2);
y←y∗DEC(225);
y←y+DEC(2);
tampilkan y;
MOD: modulo
MUL: multiply
ADD: add/sum
deklarasi var: y ∈ Int;
y←125;
y←y%-2;
y←y∗225;
y←y+2;
tampilkan y;
Algoritma Pseudocode: Algoritma dan pemrograman C++:
Tampilan jalannya program:
⇒ y=DEC(125);
⇒ y=DEC(1);
⇒ y=DEC(225);
⇒ y=DEC(227);
⇒tampilkan y=DEC(227);
Kasus: Berapakah nilai D, jika: D←A%B; untuk nilai A dan B berikut ini:
A←DEC(-27); B←DEC(2);
-27÷2 = -13 sisa -1, maka:
-27%2 = -1;
Algoritma dan pemrograman C++: Tampilan jalannya program:
A←DEC(28); B←DEC(-12);
28 ÷ -12 = -2 sisa 4, maka:
28 % -12 = 4;
Algoritma dan pemrograman C++: Tampilan jalannya program:
Berlaku Hukum Komutatif:
X + Z = Z + X
X ∗ Z = Z ∗ X
Kasus: Berapakah nilai D, jika: D←A%B; untuk nilai A dan B berikut ini:
A←DEC(27); B←DEC(-2);
27 ÷ -2 = -13 sisa 1, maka:
27 % -2 = 1;
Algoritma dan pemrograman C++: Tampilan jalannya program:
A←DEC(-65); B←DEC(7);
-65÷7 = -9 sisa -2, maka:
-27%7 = -2;
Algoritma dan pemrograman C++: Tampilan jalannya program:
Tidak berlaku Hukum Komutatif:
X − Z ≠ Z − X
X ÷ Z ≠ Z ÷ X
Kasus: Nilai awal DEC(1.5) ditampungkan ke sebuah variabel, p1, dikalikan dengan DEC(-7),
lalu ditambahkan dengan DEC(-7); hasilnya dikurangkan kembali dengan nilai awal
dan ditampungkan kembali ke p1. Tuliskan algoritma dan pemrograman C++ untuk
mendapatkan berapa isi p1 terakhir (ter-update) jika pada expression digunakan
unary-method pada statement yang dituliskan.
Solusi: Algoritma Pseudocode:
deklarasi var: p1 ∈ Float;
p1←DEC(1.5);
p1←p1∗DEC(-7);
p1←p1+DEC(-7);
p1←p1−DEC(1.5);
tampilkan p1;
Algoritma dan pemrograman C++: Tampilan jalannya program:
⇒ p1=DEC(1.5);
⇒ p1=DEC(-10.5);
⇒ p1=DEC(-17.5);
⇒ p1=DEC(-19);
⇒ tampilkan DEC(-19);
Kasus: Apabila diisikan DEC(125) ke variabel y, lalu di-DIV-kan dengan DEC(-2); lalu di-MUL-
kan dengan DEC(225); hasilnya di-SUB-kan dengan DEC(2). Tuliskan algoritma
pseudocode dan C++ beserta dengan tampilan jalannya program. Khusus untuk
algoritma dan pemrograman C++ gunakan unary-method pada expression untuk
statement yang dituliskan.
Solusi: Algoritma Pseudocode:
deklarasi var: y ∈ Float;
y←DEC(125);
y←y/DEC(-2);
y←y∗DEC(225);
y←y−DEC(2);
tampilkan y;
Algoritma dan pemrograman C++: Tampilan jalannya program:
⇒ y=DEC(125);
⇒ y=DEC(-62.5);
⇒ y=DEC(-14062.5);
⇒ y=DEC(-14064.5);
⇒ tampilkan DEC(- 14064.5);
DIV: divide
MUL: multiply
SUB: substraction
Kasus: Jika diketahui sebuah algoritma pseudocode berikut ini:
deklarasi var: x,G,t∈ Bil.Pecahan;
x←DEC(1.5);
t←?;
masukkan t;
G←2÷(x+(t/2);
tampilkan G;
Tuliskan algoritma dan pemrograman C++ untuk mendapatkan G, sertakan dengan
tampilan jalannya program.Solusi:
Algoritma dan pemrograman C++: Tampilan jalannya program:
Solusi:
Kasus: Jika diketahui sebuah statement berikut ini: zL←A∗4; jika diasumsikan variabel A
diisikan DEC(3), selesaikan persoalan berikut ini:
a). Tuliskan algoritma dan pemrograman C++ untuk mendapatkan zL jika operator
yang digunakan ADD. b). Tuliskan algoritma dan pemroograman C++ seperti pada a)
namun expression digunakan unary-method.
a). Konstruksi-algoritma:
A*4 = A+A+A+A;
sehingga : zL← A+A+A+A;
Algoritma dan pemrograman C++:
Tampilan jalannya program:
b). Konstruksi-algoritma:
zL← A+A+A+A;
Ubah expression dalam unary-method, maka
gunakan 1-variabel yang sama; misalkan: zL
sehingga : zL← zL+zL+zL+zL;
Statement menjadi:
Algoritma dan pemrograman C++:
zL+=zL;
zL+=zL;
Untuk mentransformasikan operator
MUL⇒ ADD: x+x+x+x+x;
Untuk mentransformasikan sebuah
expression menjadi dalam bentuk
unary-method, maka harus
menggunakan 1-variabel, boleh x atau
z bergantung pada statement.
Kasus: Perhatikan statement berikut: z←x∗5; jika variabel x diisikan DEC(4), tuliskan
algoritma dan pemrograman C++ untuk expression menggunakan unary-method dan
operator ADD. Tunjukkan tampilan jalannya program.
Solusi: Konstruksi-algoritma: x←DEC(4);
z←x+x+x+x+x;
Diubah expression dalam unary-method: misalkan: var: x;
x+=x;
x+=x;
x+=4;
tampilkan x;
Algoritma dan pemrograman C++:
Tampilan jalannya program:
4+4+4+4+4;
8
12
4
16
4
4
20
⇒ DEC(4)+DEC(4);
⇒ DEC(8)+DEC(8);
⇒ DEC(16)+DEC(4);
⇒ tampilkan DEC(20);
x+x+x+x+x;
tidak memenuhi
Kasus: Ubahlah statement berikut dalam expression dengan unary-method:
z←a+a+a+a+a+a+a;
jika variabel a diisikan DEC(5), dengan algoritma dan pemrograman C++; tunjukkan
tampilan jalannya program.Solusi: Konstruksi-algoritma: a←DEC(5);
z←a+a+a+a+a+a+a;
Diubah expression dalam unary-method: misalkan: var: a;
a+=a;
a+=a;
a+=a;
a+=5;
tampilkan z;
⇒ DEC(5)+DEC(5);
⇒ DEC(10)+DEC(10);
⇒ DEC(20)+DEC(20);
⇒ DEC(40)+DEC(5)
⇒ tampilkan DEC(45);
Kesimpulan: expression pada
statement tsb, tidak dapat
ditransformasikan dengan
unary-method.
Algoritma dan pemrograman C++: Tampilan jalannya program:
Solusi:
Kasus: Jika ditetapkan formula: A ÷ B = C sisa D; dalam operator MOD: A%B=D, maka
jelaskanlah bentuk pecahan berikut,
bahwa A adalah identilk dan sama-dengan (4 ∗ 7) + 3;
Buktikan dengan algoritma dan pemrograman C++ dan tunjukkan tampilan jalannya
program.
7
34
7
34Konstruksi-algoritma:
7
31
7
3)74(=
+∗A=31;
B=7;
C=4;
D=3;
sehingga: 31%7 = 3;
Algoritma dan pemrograman C++:
Tampilan jalannya program:
A ÷ B = C sisa D ditransformasikan dalam bentuk pecahan
menjadi:( )
B
DBC
B
DC
+∗=
Solusi:
Kasus: Jika ditetapkan formula: A ÷ B = C sisa D; dalam operator MOD: A%B=D, maka
jelaskanlah bentuk pecahan berikut,
bahwa A adalah identilk dan sama-dengan (2 ∗ 12) + 1;
Buktikan dengan algoritma dan pemrograman C++ dan tunjukkan tampilan jalannya
program.
12
12
12
12Konstruksi-algoritma:
12
25
12
1)122(=
+∗A=25;
B=12;
C=2;
D=1;
sehingga: 25%12 = 1;
Algoritma dan pemrograman C++:
Tampilan jalannya program:
A ÷ B = C sisa D ditransformasikan dalam bentuk pecahan
menjadi:( )
B
DBC
B
DC
+∗=
Solusi:
Kasus: Jika ditetapkan formula: A ÷ B = C sisa D; dalam operator MOD: A%B=D, maka
jelaskanlah bentuk pecahan berikut,
bahwa A adalah identilk dan sama-dengan (0 ∗ 14) + 11;
Buktikan dengan algoritma dan pemrograman C++ dan tunjukkan tampilan jalannya
program.
14
11
14
11Konstruksi-algoritma:
14
11
14
11)140(=
+∗A=11;
B=14;
C=0;
D=11;
sehingga: 11%14 = 11;
Algoritma dan pemrograman C++:
Tampilan jalannya program:
A ÷ B = C sisa D ditransformasikan dalam bentuk pecahan
menjadi:( )
B
DBC
B
DC
+∗=
Solusi:
Kasus: Pada sebuah balok, diketahui panjang=1.5cm, lebar=5.5cm, tinggi=2cm. Tuliskan
algoritma dan pemrograman C++ untuk menghitung volume balok tersebut, dan
tunjukkan tampilan jalannya program.
Konstruksi-algoritma: Volume-balok = panjang∗lebar∗tinggi;
Vb⇒Volume-kubus;
p⇒panjang;
l⇒lebar;
t⇒tinggi;
Algoritma dan pemrograman C++: Tampilan jalannya program:
Solusi:
Kasus: Tuliskan algoritma dan pemrograman C++ untuk menghitung volume kubus apabila
nilai sisi kubus dalam kelompok bilangan pecahan dan didapatkan dengan metode
input-value by end-user. Tunjukkan tampilan jalannya program.
Konstruksi-algoritma: Volume-kubus = sisi∗ sisi ∗ sisi;
Vk⇒Volume-kubus;
s⇒sisi;
Algoritma dan pemrograman C++: Tampilan jalannya program: