2. Dekomposisi Permasalahan Kompleks
Farichah, S.Kom.
Permasalahan
Permasalahan
Kecil Kecil
Kecil Kecil
Solusi
Analisis
Sintesis
Berpikir komputasional
adalah metode pemecahan
masalah dengan
menerapkan teknologi ilmu
komputer atau informatika.
Dekomposisi Merupakan
pemecahan permasalahan
kompleks menjadi
beberapa permasalahan
yang lebih kecil dan
mudah dipecahkan.
DEKOMPOSISI
3. Farichah, S.Kom.
Algoritma penyelesaian masalah kompleks
(menggunakan dekomposisi)
Contoh kasus
Buatlah algoritma dan flowchart untuk menyelesaikan
masalah menghitung volume bangun ruang (volume kerucut,
volume balok dan volume bola).
Algoritma:
Algoritma menghitung volume kerucut
Algoritma menghitung volume balok
Algoritma menghitung volume bola
Dekomposisi:
Flowchart untuk menghitung volume kerucut
Flowchart untuk menghitung volume balok
Flowchart untuk menghitung volume bola
4. A l g o r i t m a m e n g h i t u n g
v o l u m e k e r u c u t
1. Start
2. Masukkan nilai jari-jari (r)
3. Masukkan nilai tinggi (t)
4. Hitung volume kerucut (VK)
menggunakan rumus VK = π*r*r*t/3
5. Print nilai VK
6. End
Algoritma dan flowchart penyelesaian masalah kompleks
(menggunakan dekomposisi)
A l g o r i t m a m e n g h i t u n g
v o l u m e b a l o k
1. Start
2. Masukkan nilai panjang (p)
3. Masukkan nilai lebar (l)
4. Masukkan nilai tinggi (t)
5. Hitung volume balok (VB) menggunakan rumus VB = p*l*t
6. Print nilai VB
7. End
A l g o r i t m a m e n g h i t u n g
v o l u m e b o l a
1. Start
2. Masukkan nilai jari-jari (r)
3. Hitung volume bola (VBL) menggunakan
rumus VBL = 4*π*r*r*r/3
4. Print nilai VBL
5. End
VK = π*r*r*t/3
Input r, t
start
End
Print VK
Hitung_VK
VB = p*l*t
Input p, l, t
start
End
Print VB
Hitung_VB
VK = 4*π*r*r*r/3
Input r
start
End
Print VBL
Hitung_VBL
Farichah, S.Kom.
5. /* Menghitung volume kbola */
void VBola()
{
int r, VBL;
cout<<"--Menghitung Volume Bola--";
cout<<endl;
cout<<"Masukkan nilai jari-jari: "; cin >>r;
VBL = 4*3.14*r*r*r/3;
cout<<"volume bola = " << VBL <<endl;
cout<<endl;
cout<<endl;
}
/* Program utama */
int main ()
{
VKerucut();
VBalok();
VBola();
return 0;
}
#include <iostream>
using namespace std;
/* Menghitung volume kerucut */
void VKerucut()
{
float r, t, VK;
cout<<"--Menghitung Volume Kerucut--";
cout<<endl;
cout<< "Masukkan nilai jari-jari: "; cin >>r;
cout<< "Masukkan nilai tinggi: "; cin >>t;
VK = 3.14*r*r*t/3;
cout<< "volume kerucut = " << VK <<endl;
cout<<endl;
cout<<endl;
}
/* Menghitung volume balok */
void VBalok()
{
int p, l, t, VB;
cout<<"--Menghitung Volume Balok--";
cout<<endl;
cout<<"Masukkan nilai panjang: "; cin >>p;
cout<<"Masukkan nilai lebar: "; cin >>l;
cout<<"Masukkan nilai tinggi: "; cin >>t;
VB = p*l*t;
cout<< "volume balok = "<< VB <<endl;
cout<<endl;
cout<<endl;
}
Script coding menghitung volume kerucut,
balok dan bola pada C++ Shell
Farichah, S.Kom.
6. Contoh pengenalan pola pada pelajaran MTK
Pola pertama adalah bilangan ganjil
Pola kedua adalah bilangan asli
Pola ketiga adalah bilangan kelipatan
Contoh pengenalan pola
Pola yang berkaitan dengan kemacetan jalan disuatu
tempat atau lokasi.
Kita dapat mencari solusi jalan mana yang bisa dijadikan
alternatif atau menghindari kemacetan atau kepaatan jalan
tersebut.
Pengenalan pola merupakan salah satu konsep dari berpikir
komputasional. Dengan melakukan proses pengenalan pola,
kita tidak akan mengalami kebingungan pada saat
mangalami masalah karena telah mengetahui polanya.
Pattern Recognition
Pengenalan Pola pada Permasalahan Kompleks
1
1 3
1 3 5
1 3 5 7
1
1 2
1 2 3
1 2 3 4
1
2 4
3 6 9
4 8 12 16
Farichah, S.Kom.
7. Implementasi pola bilangan pada
Bahasa Pemrograman
Farichah, S.Kom.
Buatlah Algoritma dengan ketentuan sebagai berikut:
1. Algoritma untuk mencetak bilangan dengan pola segitiga
bilangan ganjil
2. Algoritma untuk mencetak bilangan dengan pola segitiga
bilangan asli
3. Algoritma untuk mencetak bilangan dengan pola segitiga
bilangan kelipatan.
1
1 3
1 3 5
1 3 5 7
1
1 2
1 2 3
1 2 3 4
1
2 4
3 6 9
4 8 12 14
8. Implementasi pola bilangan pada
Bahasa Pemrograman
Farichah, S.Kom.
Algoritma untuk mencetak bilangan dengan pola segitiga
bilangan ganjil.
1. Mulai
2. Definisi variabel a, b dan n. variabel a dan b untuk
perulangan, sedangkan n untuk menyatakan berapa baris
bilangan yang akan ditampilkan
3. Masukkan nilai n
4. Menggunakan logika For untuk proses perulangan dalam
menampilkan pola bilangan segitiga ganjil tersebit.
Digunakan dua perulangan, yang pertama untuk
menampilkan baris pertama sampai dengan ke-n, dan
perulangan kedua untuk mencetak bilangan pada setiap
baris tersebut
5. selesai
#include <iostream>
using namespace std;
Int main()
{
int a, b, n;
cout<<“Berapa baris?"; cin >>n;
for(a=1; a<=n; a++)
{
for(b=1; b<=2*a; b=b+2)
{
cout<< b << “ “;
}
cout<<endl;
}
return 0;
}
9. Implementasi pola bilangan pada
Bahasa Pemrograman
Farichah, S.Kom.
Algoritma untuk mencetak bilangan dengan pola segitiga
bilangan asli.
1. Mulai
2. Definisi variabel a, b dan n. variabel a dan b untuk
perulangan, sedangkan n untuk menyatakan berapa baris
bilangan yang akan ditampilkan
3. Masukkan nilai n
4. Menggunakan logika For untuk proses perulangan dalam
menampilkan pola bilangan segitiga ganjil tersebit.
Digunakan dua perulangan, yang pertama untuk
menampilkan baris pertama sampai dengan ke-n, dan
perulangan kedua untuk mencetak bilangan pada setiap
baris tersebut
5. selesai
#include <iostream>
using namespace std;
Int main()
{
int a, b, n;
cout<<“Berapa baris?"; cin >>n;
for(a=1; a<=n; a++)
{
for(b=1; b<=a; b=b+1)
{
cout<< b << “ “;
}
cout<<endl;
}
return 0;
}
10. Implementasi pola bilangan pada
Bahasa Pemrograman
Farichah, S.Kom.
Algoritma untuk mencetak bilangan dengan pola segitiga
bilangan kelipatan.
1. Mulai
2. Definisi variabel a, b dan n. variabel a dan b untuk
perulangan, sedangkan n untuk menyatakan berapa baris
bilangan yang akan ditampilkan
3. Masukkan nilai n
4. Menggunakan logika For untuk proses perulangan dalam
menampilkan pola bilangan segitiga ganjil tersebit.
Digunakan dua perulangan, yang pertama untuk
menampilkan baris pertama sampai dengan ke-n, dan
perulangan kedua untuk mencetak bilangan pada setiap
baris tersebut
5. selesai
#include <iostream>
using namespace std;
Int main()
{
int a, b, n;
cout<<“Berapa baris?"; cin >>n;
for(a=1; a<=n; a++)
{
for(b=1; b<a+1; b++)
{
cout<< a*b << “ “;
}
cout<<endl;
}
return 0;
}