Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 23

LAPORAN

PRAKTIKUM STRUKTUR DATA


MODUL3

Nama : Asep Saeful


: Hidayat
NIM : 20220910144
Kelas SINFC-2022-06

FAKULTAS ILMU
KOMPUTERPROGRAMSTUDISISTEMI
NFORMASITAHUN2023
2

DAFTARISI

BABIPRAKTIK

UM-2

3.1 STUDIKASUS-1..........................................................................................................................4

2.1.1 ANALISISPENYELESAIAN......................................................................................4

2.1.2 CODEPROGRAM.......................................................................................................4

2.1.3 RANGKUMANKOMPETENSI..................................................................................5

2.1.4 COMPUTATIONALTHINKING................................................................................6

3.2 STUDIKASUS -2........................................................................................................................6

2.2.1 ANALISISPENYELESAIAN......................................................................................6

2.2.2 CODEPROGRAM.......................................................................................................6

2.2.3 RANGKUMANKOMPETENSI..................................................................................8

2.2.4 COMPUTATIONALTHINKING................................................................................8

2.3 STUDIKASUS-3..........................................................................................................................9

2.3.1 ANALISISPENYELESAIAN......................................................................................9

2.3.3CODEPROGRAM...........................................................................................................9

2.3.1RANGKUMAN KOMPETENSI..................................................................................11

2.3.4COMPUTATIONAL THINKING................................................................................11

BABII

POSTTEST.............................................................................................................. 12

2.1 POST TEST-1............................................................................................................................12

2.1.1 ANALISISPENYELESAIAN....................................................................................12

2.1.2 CODEPROGRAM.....................................................................................................12

2.1.3 RANGKUMANKOMPETENSI................................................................................13
3
2.1.4 COMPUTATIONALTHINGKING...........................................................................13

2.2 POST TEST-2............................................................................................................................14

2.2.1 ANALISISPENYELESAIAN....................................................................................14

2.2.2 CODEPROGRAM.....................................................................................................14

2.2.3 RANGKUMANKOMPETENSI................................................................................16

2.2.4 CODEPROGRAM.....................................................................................................16

BAB

IIITUG

AS

TUGASPRAKTIKUM...........................................................................................................................17
4

BABIPRA

KTIKUM

1.1 Praktikum– 1

STUDIKASUS3.1
Dalamperhitunganmatematikadikenal perpangkatandenganmenentukanbilangandasaryang akan
dipangkatkan dan menentukan pangkat yang akan diterapkan pada bilangandasar tersebut,
bagaimana perhitungan matematika tersebut jika dibuat kedalam sebuahprogram

ANALISISPENYELESAIANNYA:

Berikutadalahanalisipenyelesaiandarikasusyangdiberikan:
1. Tentukanvariabelyangdibutuhkan
 intpangkat
2. Inputdanoutputangkaxserta angkayangakandijadikanpangkat
3. Hitungperpangkatanmenggunakanoperator*-+=
 Simpanhasilperhitungankedalamvariabelyangtelahditentukan
4. Tampilkanhasilangkayangsudahdipangkatkan
 Gunakanfungsicoutuntukmenampilkanhasil perhitungankelayar

#include

<iostream>#include

<cmath>usingnamespac

estd;

intpangkat(intx,inty)

{if(y==0){

return1;

}else{

returnx*pangkat(x,y-1);

intmain()

{intx,y;
5
cout << "Masukkan Bilangan Yang Akan Dipangkatkan:

";cin>>x;

cout<<"MasukkanPangkatBilangan:";cin>>y;

cout<<x<<"pangkat"<<y<<"="<<pangkat(x,y)<<endl;return0;

KetHasilRunProgram:

RangkumanKompetensi
 Pemahamantentangstrukturkontrolpemilihan
Studikasusinimelibatkanpenggunaanstrukturkontrolpemilihandalammenampilkanhasilperpangkatan.
Oleh karena itu, pemrogram dapat memperdalam pemahamannya tentangcaramenggunakan struktur
kontrolpemilihandalamprogram.

 Pemahamantentangoperatoraritmatika
Studi kasus ini melibatkan penggunaan operator aritmatika seperti *-=. dalam
melakukanperhitunganperpangkatan.Pemrogramdapat
memperdalampemahamannyatentangcaramenggunakanoperatoraritmatika dalamprogram.

 Pemahamantentanginputdanoutput
Studikasusinimelibatkanpenggunaanfungsicoutdalammenampilkanhasil perhitunganke layar.
Pemrogram dapat memperdalam pemahamannya tentang cara menggunakanfungsiinputdan output
dalamprogram.

 Pemahamantentangvariabeldantipedata
Studikasusinimelibatkanpenggunaanvariabel dantipedatasepertiintdalammenyimpanangkat serta
angka perpangkatan. Pemrogram dapat memperdalam pemahamannyatentangcara
menggunakanvariabeldantipedata dalamprogram.

Dalam program tersebut, terdapat penggunaan fungsi, kontrol alur program menggunakanif else,
serta operasi aritmatika untuk menghitung bilangan berpangkat. Dengan demikian,program tersebut
menunjukkan kompetensi dasar dalam pemrograman C++
sepertipenggunaanfungsi,kontrolalurprogram,operasiaritmatika,danpemahamanvariabel
6
data.

ComputationalThinking!

ComputationalThinkingpadastudi kasustersebut.BerikutadalahbeberapaaspekComputationalThinking
yangdapatdiidentifikasidarikasustersebut:
1. PemecahanMasalah
Pemrogramharusdapatmencarisolusiuntukmenyelesaikanmasalahyangdiberikan,yaitubagaimana
menghitungbilanganberpangkat.

2. Algoritma
Pemrogramharusdapatmerancangalgoritmayanglogisdanefektifuntukmenyelesaikanmasalah yang
diberikan. Algoritma tersebut harus dapat menghitung serta menampilkanangkaperpangkatan.

3. PengembanganProgram
Pemrogramharusdapatmenerjemahkanalgoritmayangtelahdirancangkedalamkodeprogram yang dapat
dieksekusi dengan benar. Dalam hal ini, pemrogram dapatmenggunakan bahasa pemrograman C++
untuk menulis kode program yang dapatmenghitungperpangkatan.

StudiKasus3.2
Bilanganyangadamerupakanruntutanjumlahdari bilangansebelumnyadengandemikiankita dapat
mengetahui deret bilangan sebelumnya dengan melakukan faktorisasi daribilangan tersebut, hasil
dari penjumlahan deret bilangan tersebut dapat di lakukan dengansebutanfaktorialContoh
4difaktorialkan(4!)=>43 2 1:(hasilkali4!)= 24
Buatlahcodeprogramdaristudikasus3.2
ANALISISPENYELESAIANNYA:
Berikutadalahanalisispenyelesaian darikasusyangdiberikan:
1. Tentukanvariabelyangdibutuhkan
 int
2. Inputdanoutputangkaa yangakandifaktorialkan
3. Hitungfaktorialmenggunakanoperator*-=!
 Simpanhasilperhitungankedalamvariabelyangtelahditentukan
4. Tampilkanhasilangkayangsudahdipangkatkan
 Gunakanfungsicoutuntukmenampilkanhasilperhitungankelayar

BerikutadalahkodeprogramC++yangdapatdigunakanuntukmenyelesaikanstudikasus 3.2

#include<iostream>usin

g namespace

std;intfactorial(inta)

{
7
if(a>0){

cout<<a<<"";

return(a*factorial(a-1));

elseretur

n1;

intmain()

inta;

intfactorial(inta);

cout<<"ProgramMenampilkanDeretNilaiFaktorial"<<endl;cout<<"Masukan

NilaiFaktorial:";

cin>>a;cou

t<<endl;

cout<<"\n\nRekursif->HasilPerkalianSemuaNilaiDari"<<a<<"!
="<<factorial(a);

return0;

KetHasilRunProgram:
8
Program di atas merupakan program untuk menghitung nilai faktorial. Programmendefinisikan
fungsi faktorial yang memiliki satu parameter yaitu factorial yang telahdihitung sebelumnya.
Fungsi ini bertujuan untuk menampilkan nilai faktorial yang dicari kelayar dengan
menggunakancout

RangkumanKompetensi
Studikasustentangcaramengetahui nilaifaktorialsebuah bilangan
bulat.Berikutadalahkompetensiyangdidapatdarikasustersebut

1. Pemahamanstrukturkontrolpemilihan

Studikasusinimelibatkanpenggunaanstrukturkontrolpemilihandalammenampilkanbilangan faktorial.
Oleh karena itu, pemrogram dapat memperdalam pemahamannyatentangcaramenggunakanstruktur
kontrolpemilihandalamprogram.

2. Pemahamanoperatoraritmatika

Studi kasus ini melibatkan penggunaan operator aritmatika seperti *!-.dalam


melakukanperhitunganbilanganfaktorial.Pemrogramdapatmemperdalampemahamannyatentangcara
menggunakan operator aritmatika dalamprogram.

3. Pemahamaninputdanoutput

Studikasusinimelibatkanpenggunaanfungsicoutdalammenampilkanhasil perhitunganke layar.


Pemrogram dapat memperdalam pemahamannya tentang cara menggunakanfungsiinputdan output
dalamprogram.

4. Pemahamanvariabel dantipedata

Studikasusini melibatkanpenggunaanvariabel dantipedatasepertiintdalammenyimpanbilangan faktorial.


Pemrogram dapat memperdalam pemahamannya tentang caramenggunakanvariabeldan
tipedatadalamprogram.

ComputationalThinking!
1. PemecahanMasalah

Pemrogramharusdapatmencarisolusiuntukmenyelesaikanmasalahyangdiberikan,yaitubagaimana
menghitungsertamanampilkan bilanganfaktorial.

2. Algoritma

Pemrogramharusdapatmerancangalgoritmayanglogisdanefektifuntukmenyelesaikanmasalahyangdiberi
kan.Algoritmatersebutharusdapatmenghitungbilanganfactorial.

3. PengembanganProgram

Pemrogramharusdapatmenerjemahkanalgoritmayangtelahdirancangkedalamkode
9
program yang dapat dieksekusi dengan benar. Dalam hal ini, pemrogram
dapatmenggunakanbahasapemrogramanC++untukmenuliskodeprogramyangdapatmenghitungbilangan
faktorial.

StudiKasus3.3
Bilanganfibonanciadalahbilanganyangmelakukanpenambahanterhadapdirinyasendiridannilaipenjuml
ahandaribilanganpadadirinyayangsebelumnya seperti
teorinyaberikutini:
ANALISISPENYELESAIANNYA:
Berikutadalahanalisispenyelesaian darikasusyangdiberikan:
1. Tentukanvariabelyangdibutuhkan
 intpangkat
2. Inputdanoutputangkaxserta angkayangakandijadikanpangkat
3. Hitungperpangkatanmenggunakanoperator*-+=
 Simpanhasilperhitungankedalamvariabel yangtelahditentukan
4. Tampilkanhasilangkayangsudahdipangkatkan
 Gunakanfungsi coutuntukmenampilkanhasil perhitungankelayar

Berikut adalah kode program C++ yang dapat digunakan untuk menyelesaikan studi kasus2.3

#include<iostream>#i

nclude<conio.h>using

namespace

std;intfibo(inti)

if(i==0)r

eturn0;

elseif(i==1)

return1;else

//fungsirekursif

returnfibo(i-1)+fibo(i-2);

}
1
intmain()

intbil,i;

cout<<"\tFugsi Rekursif Bilangan

Fibonanci"<<endl;cout<<"\

t================================="<<endl;

cout<<"\

nMasukanBilangan:";cin>>bil;

//

pemanggilannilaifibonancifor(i=1;

i<=bil;i++)

//

pemanggilanfungsicou

t<<""<<fibo(i);

cout<<"\

nFibonanci("<<bil<<")="<<fibo(bil);getch();

return0;

KetHasilRunProgram:
1
RangkumanKompetensi
Studikasustentangcaramengetahuibilanganfibonacci.Berikutadalahkompetensiyangdidapatdarikasus
tersebut

1. Pemahamantentangstrukturkontrolpemilihan

Studi kasus ini melibatkan penggunaan struktur kontrol pemilihan dalam menampilkanjumlah saldo
selama 30 hari. Oleh karena itu, pemrogram dapat
memperdalampemahamannyatentangcaramenggunakanstrukturkontrolpemilihandalamprogram.

2. Pemahamantentangoperatoraritmatika

Studi kasus ini melibatkan penggunaan operator aritmatika seperti %,+,-.dalam


melakukanperhitungan jumlah saldo. Pemrogram dapat memperdalam pemahamannya tentang
caramenggunakanoperatoraritmatika dalamprogram.

3. Pemahamantentanginputdanoutput

Studikasusinimelibatkanpenggunaanfungsicoutdalammenampilkanhasil perhitunganke layar.


Pemrogram dapat memperdalam pemahamannya tentang cara menggunakanfungsiinputdan output
dalamprogram.

4. Pemahamantentangvariabeldantipedata

Studi kasusini melibatkanpenggunaanvariabel dantipedatasepertiintdalammenyimpanjumlah hari, serta


saldo. Pemrogram dapat memperdalam pemahamannya tentang caramenggunakanvariabeldan
tipedatadalamprogram.

ComputationalThinking!
1. Pemecahan masalah, menjadi solusi untuk menyelesaikan soal perhitungan bilanganfibonacci
2. Pengembanganprogram,programharusdirancangdandieksekusi
denganbenaruntukmenghitungbilangan fibonacci
1

BABIIPO
STTEST
2.1 PostTest-1

Buatlah code program dalam Bahasa C++ untuk studikasus sebuah program
untukmencarijumlahdigitdarisebuahbilanganbulatdenganmenggunakanfungsirekursif

ANALISISPENYELESAIAN
1. Tentukanvariabel yangdibutuhkan
 Intn,int num
2. Inputdanoutputbilanganbulatdanjumlahdigit

BerikutadalahkodeprogramC++untuk menyelesaikanposttest3.1

#include

<iostream>usingname

spacestd;

intcountDigits(intn)

{if(n==0){

return0;

}else{

return1+countDigits(n/10);

intmain()

{intnum;

cout<<"Masukkansebuahbilanganbulat:";cin>>nu

m;

cout<<"Jumlahdigitdari"<<num<<"adalah"<<countDigits(num)<<endl
;

return0;
1

KetHasilRunProgram:

Fungsi countDigits merupakan fungsi rekursif yang menerima satu parameterbilangan bulat
n dan mengembalikan jumlah digit dari n. Pada awal fungsi,
akandilakukanpengecekanapakahnsudahmencapainilai0ataubelum.Jikasudah,makafungsiak
anmengembalikan nilai0.
Jika n masih lebih besar dari 0, maka fungsi akan memanggil dirinya
sendiridenganparametern/10.Dalamhalini,n/10berfungsiuntukmenghapusdigitterakhirdarin.
Pada setiap pemanggilan rekursif, fungsi akan menambahkan 1 pada nilai
yangdikembalikan oleh pemanggilan rekursif sebelumnya. Hal ini akan terusdilakukan
hingga n mencapai nilai 0. Pada fungsi main, program akan
memintapenggunauntukmemasukkansebuahbilanganbulatdanmencetakjumlahdigitdarib
ilangan tersebutdenganmemanggilfungsicountDigits

RANGKUMANKOMPETENSI
 Penggunaantipedataintpadaprogram
 Penggunaaninputdanoutputpadaprogram
 Penggunaanperulanganifelse
 Kemampuan membuat logika program untuk menghitung jumlah digit berdasarkan
inputpengguna.

COMPUTATIONALTHINKING
1. Pattern Recognition: Konsep ini terlihat dalam penggunaan struktur if else untuk menentukanjumlah
digit bilangan yang dimasukkan oleh pengguna. Dengan menggunakan struktur if
else,programmenjadilebih mudahdipahamidandiimplementasikan.
2. Algorithm Design: Konsep ini terlihat dalam urutan operasi dalam program, yaitu menampilkanmasukan
bilang bulat sesuai keinginan user dan menentukan jumlah digit dari bilangan
yangdimasukanolehuser.Denganmenggunakanurutanoperasiyangtepat,programmenjadi
lebihmudahdipahamidan diimplementasikan.
1
2.2 POSTTEST-2
Buatlah code program dalam Bahasa C++ untuk menentukan apakah string
adalahpalindromeatautidak denganmenggunakanfungsirekursif

ANALISISPENYELESAIAN
1. Tentukanvariabel yangdibutuhkan
 String str,int start,int end
2. Inputdanoutputapakahstringtersebutmerupakanpalindromeataubukanpalindrome
3. Penggunaanperulanganifelse

#include

<iostream>#include

<cstring>usingnames

pacestd;

boolisPalindrome(stringstr,intstart,intend){

if(start >= end)

{returntrue;

}else{

return(str[start]==str[end])&&isPalindrome(
str,start+1,end-1);

int main()

{stringstr

cout << "Masukkan sebuah string:

";getline(cin,str);

intstart=0;

int end = str.length() -

1;if(isPalindrome(str,start,end)){
1
}else{

cout<<str<<"bukanpalindrome"<<endl;

return0;

KetHasilRunProgram:

Fungsi isPalindrome merupakan fungsi rekursif yang menerima


tigaparameteryaitustr(stringyangingindiperiksa),start(posisiawalkarakteryang ingin
diperiksa), dan end (posisi akhir karakter yang ingin diperiksa).Fungsi ini akan
mengembalikan nilai boolean true jika string tersebutadalahpalindromedan false
jika bukan.
Padaawalfungsi,akandilakukanpengecekanapakahstartsudahmelebihiatausamadenga
nend.Jikasudah,makafungsiakanmengembalikannilaitrue karena semua karakter
pada string telah dicek dan string tersebutadalahpalindrome.
Jika start masih kurang dari end, maka fungsi akan membandingkankarakter pada
posisi start dan end. Jika kedua karakter tersebut
sama,makafungsiakanmemanggildirinyasendiridenganparameterstart+1danend-1
untuk memeriksa karakter berikutnya. Jika kedua karakter tersebuttidak sama,
maka fungsi akan mengembalikan nilai false karena stringtersebutbukan
palindrome.
Pada fungsi main, program akan meminta pengguna untuk
memasukkansebuahstringdanmencetakapakahstringtersebutadalahpalindromeataubukan
denganmemanggilfungsiisPalindrome.
1
RANGKUMANKOMPETENSI
Program di atas menunjukkan kompetensi dalam memahami dasar-dasar bahasapemrograman C++,
seperti deklarasi variabel, tipe data, penggunaan operator, strukturkontrol, dan input/output. Selain
itu, program ini juga menunjukkan kemampuan dalammenggunakan if else dalam pengambilan
keputusan berdasarkan input pengguna. Programini juga menunjukkan kemampuan dalam
memecahkan masalah sederhana danmengimplementasikan solusi dalam bahasa pemrograman.
Dalam hal ini, program inimengimplementasikan sistem menentukan apakah string yang dimasukkan
merupakanpalindromeatau bukanpalindrome.
COMPUTIONALTHINKING

1. Algoritma: Program di atas menggunakan algoritma untuk memproses pilihan


stringmerupakan palindrome atau bukan palindrome yang diinputkan pengguna. Dalam hal
ini,program menggunakan struktur if else untuk menentukannya. Algoritma ini memberikansebuah
panduan untuk program untuk memproses data dan menjalankan tindakan
yangsesuaiberdasarkaninputpengguna.
2. Pengambilan Keputusan: Program di atas menggunakan pengambilan keputusandalam
memproses input pengguna. Setelah pengguna menginput string maka output akankeluar.
Pengambilan keputusan ini membantu program dalam melakukan tindakan
yangsesuaiberdasarkaninput yangdiberikan olehpengguna.
1

BAB
IIITUG
AS
1. Sepasang kelinci yang baru lahir (jantan dan betina) ditempatkan pada suatupembiakan.
Setelah dua bulan pasangn kelinci tersebut melahirkan sepasang kelincikembar (jantan dan betina).
Setiap pasangan kelinci yang lahir juga akan melahirkansepasangkelinci
jugasetiap2bulan.Penggunayangmemilihakanmelihatpadabulanke-

ANALISISPENYELESAIAN
1. Mendefinisikan fungsi sdh_pro() untuk menghitung jumlah pasangan kelinci
yangsudahproduktifpadasuatu bulandenganmenggunakanbilanganfibonacci.
2. Fungsi blm_pro() untuk menghitung jumlah pasangan kelinci yang belum
produktifpadasuatu bulan,dengan menggunakanbilangan fibonacci.
3. Fungsitotal()untukmenghitungjumlahtotalpasangankelincipadasuatubulan,jugadenganmenggu
nakanbilanganfibonacci.
4. Inputuseruntukmemasukkannilaiawalbulan,kemudianprogramakanmemanggilketiga fungsi
untuk menghitung jumlah pasangan kelinci dan menampilkan hasilnya padalayar

#include
<stdio.h>#include
<conio.h>usingnames
pacestd;

intsdh_pro(inti)
{
if(i<=2)
{
return0;
}
else
if(i==3)
{
return1;
}
else
{//fungsirekrusiffibo
returnsdh_pro(i-1)+sdh_pro(i-2);
}
}

intblm_pro(inti)
{
if(i==0)
{
1
return0;
}
else
if(i<=3)
{
return1;
}
else
{//fungsirekrusiffibo
returnblm_pro(i-1)+blm_pro(i-2);
}
}

inttotal(inti)
{
if(i==0)
{
return0;
}
else
if(i==1)
{
return1;
}
else
{//fungsirekrusiffibo
returntotal(i-1)+total(i-2);
}
}

intmain()
{
inti;
printf ("Perhitungan pembiakan kelinci\
n");printf("==================================\
n");
printf ("Masukan awal bulan :
");scanf("%d",&i);
printf ("\nJumlah pasangan produktif = %d\n", sdh_pro
(i));printf ("Jumlah pasangan belum produktif = %d\n", blm_pro
(i));printf("Totalpasangan=%d",total(i));

}
1

KetHasilRunProgram:

Program di atas adalah program untuk menghitung jumlah pasanagn kelinci pada suatupembiakan
pada setiap bulan, menggunakan metode rekursif untuk menghitung bilanganfibonacci. Program
tersebut menggunakan 3 fungsi yang masing masing fungsi digunakanuntuk menghitung jumlah
pasangan kelinci yang sudah produktif, yang belum produktif dantotalpasangankelincipada
setiapbulan.

RangkumanKompetensi
1. Pemahamantentangbahasapemrograman,terutamaC++.

2. Pemahamantentanglogikapemrogramandanalgoritma.

3. Kemampuanuntukmengembangkanalgoritmadanmengeksekusinyadalamprogram.

4. Kemampuanuntukmengevaluasiprogramdanmenemukandanmemperbaikikesalahanatau bug.

5. Kemampuanuntukmemecahkanmasalahdanmencari solusi yangefisiendalamkonteksprogramyang


dibuat.

6. Pemahaman tentang konsep-konsep dalam program, seperti fungsi, variabel,


percabangan,danperulangan.

7. Kemampuanuntukberpikiranalitisdanlogisuntukmemecahkanmasalah.

8. Kemampuanuntukmembacadanmemahamikodeprogramyangditulisolehoranglain.

9. Kemampuan untuk berkomunikasi secara efektif dalam menjelaskan solusi dan


prosesprogramkepada oranglain.

10. Kemampuanuntukbelajarmandiridanmengembangkandiridalampemrograman.

ComputationalThinking!
Program di atas menunjukkan contoh komputasi yang terstruktur dan sistematis
dalammenyelesaikan masalah pengiriman paket. Program ini juga menunjukkan
beberapakonsepdasarpemrogramansepertipenggunaanfungsi,percabangan,danoperatorlogika.

Secara khusus, program ini menunjukkan penggunaan algoritma dalam


memecahkanmasalah.Algoritmadigunakanuntukmengaturlangkah-
langkahyangharusdilakukanolehprogramuntukmenghitungongkoskirimdan
menentukantipeongkospalingefisien.
Algoritmajugamembantudalammemastikanprogrambekerjadenganbenardanmenghasilkanoutput yang
tepat.
2
Selain itu, program ini juga menunjukkan penggunaan computational thinking dalampemecahan
masalah. Computational thinking adalah suatu cara berpikir untukmemecahkan masalah dengan
cara yang sistematis, logis, dan terstruktur. Program inimenunjukkan bagaimana computational
thinking digunakan dalam menguraikan masalahpengiriman paket menjadi langkah-langkah
terstruktur yang mudah diimplementasikandalambentuk kodeprogram.

2. Buatlah program untuk mencari FPB (faktor persekutuan terbesar) dari dua buah nilaiyang di
masukan melalui piranti input, dengan menampilakan deret nilai faktorial
nyadenganmenggunakanduafungsi rekursif,untukmenghitungnilai factorialdari nilai“N”,
danFPB(a,b)denganmenggunakanalgoritmaEuclidean
AnalisisPenyelesaian:
1. Fungsi rekursif faktorial() untuk menghitung deret nilai faktorial dari kedua bilangandan
menampilkanpadalayar
2. Menentukanvariabelyangakandigunakan
 Int a,intb
3. Menggunakanperulanganifelse
4. Inputdanoutputuntukmenampilkanprogrampadalayar
5. Menggunakanoperatoraritmatika*,%

Berikutadalahprogramuntukmenyelesaikantugas3.2
#include
<iostream>usingname
spacestd;

//
Fungsirekursifuntukmenghitungfaktorialintfaktor
ial(intn){
if(n==0){
return1;
}else{
returnn*faktorial(n-1);
}
}

// Fungsi rekursif untuk mencari


FPBintfpb(inta,intb){
2

}else{
returnfpb(b,a%b);
}
}

intmain(){
inta,b;
cout<<"Masukkanduabilangan:";cin>>a>
>b;

//
MencaridanmenampilkannilaiFPBinthasi
l=fpb(a,b);
cout << "FPB dari " << a << " dan " << b << " adalah "
<<hasil<<endl;

//Menampilkanderetnilaifaktorial
cout<<"Deretnilaifaktorialdari"<<a<<"adalah:
";
for (int i = 0; i <= a; i++)
{cout<<faktorial(i)<<"";
}
cout<<endl;

cout<<"Deretnilaifaktorialdari"<<b<<"adalah:
";
for (int i = 0; i <= b; i++)
{cout<<faktorial(i)<<"";
}
cout<<endl;

return0;
}

KeteranganHasilRunProgram:
2
RangkumanKompetensi
1. Pemahamantentangbahasapemrograman,terutamaC++.
2. Pemahamantentanglogikapemrogramandanalgoritma.

3. Kemampuanuntukmengembangkanalgoritmadanmengeksekusinyadalamprogram.

4. Kemampuanuntukmengevaluasiprogramdanmenemukandanmemperbaikikesalahanatau bug.

5. Kemampuanuntukmemecahkanmasalahdanmencarisolusi yangefisiendalamkonteks
programyang dibuat.

6. Pemahaman tentang konsep-konsep dalam program, seperti fungsi,


variabel,percabangan,dan perulangan.

7. Kemampuanuntukberpikiranalitisdanlogisuntukmemecahkanmasalah.

8. Kemampuanuntukmembacadanmemahamikodeprogramyangditulisolehoranglain.

9. Kemampuan untuk berkomunikasi secara efektif dalam menjelaskan solusi dan


prosesprogramkepada oranglain.

10. Kemampuanuntukbelajarmandiridanmengembangkandiridalampemrograman.

ComputationalThinking!
Programdi atasmenunjukkancontohkomputasiyangterstrukturdansistematisdalammenyelesaikan
masalah pengiriman paket. Program ini juga menunjukkan beberapakonsep dasar pemrograman
seperti penggunaan fungsi, percabangan, dan operatorlogika.

Secara khusus, program ini menunjukkan penggunaan algoritma dalam memecahkanmasalah.


Algoritma digunakan untuk mengatur langkah-langkah yang harus dilakukanoleh program
untuk menghitung ongkos kirim dan menentukan tipe ongkos palingefisien. Algoritma juga
membantu dalam memastikan program bekerja dengan benardanmenghasilkan output yang
tepat.

Selain itu, program ini juga menunjukkan penggunaan computational thinking dalampemecahan
masalah. Computational thinking adalah suatu cara berpikir untukmemecahkan masalah dengan
cara yang sistematis, logis, dan terstruktur. Program inimenunjukkan bagaimana computational
thinking digunakan dalam menguraikan masalahpengiriman paket menjadi langkah-langkah
terstruktur yang mudah diimplementasikandalambentuk kodeprogram.

You might also like