Professional Documents
Culture Documents
Laprak Modul3 Ash
Laprak Modul3 Ash
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
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.1 ANALISISPENYELESAIAN....................................................................................12
2.1.2 CODEPROGRAM.....................................................................................................12
2.1.3 RANGKUMANKOMPETENSI................................................................................13
3
2.1.4 COMPUTATIONALTHINGKING...........................................................................13
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
3. Pemahamaninputdanoutput
4. Pemahamanvariabel dantipedata
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;
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
3. Pemahamantentanginputdanoutput
4. Pemahamantentangvariabeldantipedata
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){
{returntrue;
}else{
return(str[start]==str[end])&&isPalindrome(
str,start+1,end-1);
int main()
{stringstr
";getline(cin,str);
intstart=0;
1;if(isPalindrome(str,start,end)){
1
}else{
cout<<str<<"bukanpalindrome"<<endl;
return0;
KetHasilRunProgram:
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.
7. Kemampuanuntukberpikiranalitisdanlogisuntukmemecahkanmasalah.
8. Kemampuanuntukmembacadanmemahamikodeprogramyangditulisolehoranglain.
10. Kemampuanuntukbelajarmandiridanmengembangkandiridalampemrograman.
ComputationalThinking!
Program di atas menunjukkan contoh komputasi yang terstruktur dan sistematis
dalammenyelesaikan masalah pengiriman paket. Program ini juga menunjukkan
beberapakonsepdasarpemrogramansepertipenggunaanfungsi,percabangan,danoperatorlogika.
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);
}
}
}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.
7. Kemampuanuntukberpikiranalitisdanlogisuntukmemecahkanmasalah.
8. Kemampuanuntukmembacadanmemahamikodeprogramyangditulisolehoranglain.
10. Kemampuanuntukbelajarmandiridanmengembangkandiridalampemrograman.
ComputationalThinking!
Programdi atasmenunjukkancontohkomputasiyangterstrukturdansistematisdalammenyelesaikan
masalah pengiriman paket. Program ini juga menunjukkan beberapakonsep dasar pemrograman
seperti penggunaan fungsi, percabangan, dan operatorlogika.
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.