Anda di halaman 1dari 25

LAPORAN PRAKTIKUM

ALGORITMA DAN PEMROGRAMAN


MODUL 5

Nama : Asep Permana


NIM : 20220910086
Jadwal : ............................................................
Kelas : SINFC-2022-02
FAKULTAS ILMU KOMPUTER
UNIVERSITAS KUNINGAN
2022
Kata Pengantar

Puji syukur kita panjatkan kehadirat Allah Swt. Yang telah memberikan rahmat dan
hidayah-Nya sehingga saya dapat menyelesaikan tugas yang berjudul “Laporan
Praktikum Modul 5” ini tepat pada waktunya.

Adapun tujuan dari penulisan dari laporan ini adalah untuk memenuhi tugas pada mata
kuliah Algoritma dan Pemrograman. Selain itu, laporan ini juga bertujuan untuk
mengimplementasikan program intruksi FOR dalam bahasa C/C++ bagi para pembaca
dan juga bagi penulis.

Terlebih dahulu, saya mengucapkan terima kasih kepada Bapak Erlan Darmawan,
S.Kom., M.Si. selaku Dosen Algoritma dan Pemrograman yang telah memberikan
tugas ini sehingga dapat menambah pengetahuan dan wawasan sesuai dengan
bidang studi yang saya tekuni ini.

Kemudian, saya menyadari bahwa tugas yang saya tulis ini masih jauh dari kata
sempurna. Oleh karena itu, kritik dan saran yang membangun kami butuhkan demi
kesempurnaan laporan ini.

Kuningan, 2 Desember 2022

Penulis
1. Pres Test (10 point)
1. Jelaskan bagaimana struktur kontrol pemilihan IF-THEN-ELSE dideklarasikan dalam
pemrograman C/C++.
2. Apa yang membedakan struktur pemilihan IF-THEN-ELSE dengan SWITCH-CASE jelaskan.
3. Jelaskan bagaimana sebuah kondisi dimana perintah SWITCH-CASE dijalankan untuk
menghasilkan keputusan.

JAWABAN
1. Pernyataan struktur IF-THEN-ELSE (jika - maka - kalau tidak) digunakan untuk menguji dua
kondisi yaitu yang terpenuhi dan yang tidak terpenuhi. Bila kondisi yang diuji terpenuhi,
program akan menjalankan pernyataan - pernyataan tertentu. Dan bila kondisi yang diuji
salah, program akan menjalankan pernyataan - pernyataan lain. Bentuk umum struktur IF-
THEN-ELSE adalah sebagai berikut :

if <kondisi> then
   <pernyataan_1>
else
   <pernyataan_2>
endif
 
Keterangan:
Pernyataan_1 akan dilaksanakan jika <kondisi> bernilai benar, tetapi jika kondisi bernilai salah,
maka else yang menyatakan ingkaran (negation) dari kondisi akan melaksanakan
pernyataan_2.

2. Perbedaannya yaitu:
o SWITCH-CASE, kondisi yang hanya dinyatakan dengan bilangan bulat atau
karakter/string sedangkan IF-THEN-ELSE yang dapat menggunakan operasi seperti <, >,
<= dan >=.
o Tidak ada konstanta yang sama dalam sebuah switch.
o Angka yang digunakan harus berkisar diantara 0 – 255.
o Harus menggunakan break, Gunanya untuk mengakhiri statement.
o Ada default, ini bisa dibilang sebagai ‘Else’nya Switch Case.

3. Pernyataan switch akan menyeleksi atau mencari sebuah kondisi yang diberikan dan
kemudian akan membandingan hasilnya dengan konstanta yang berada di dalam case.
Pembandingan akan dimulai dari konstanta1 sampai konstanta akhir. Jika hasil yang
didapatkan sama dengan konstanta3 maka statemen pada konstanta3 akan diproses. Jika
hasil tidak ada yang memenuhi kriteria dari masing-masing konstanta maka statement
yang berada pada default akan diproses.
Tipe data dari pernyataan harus karakter atau integer. Default mengekspresikan
statement alternatife yaitu jika nilai yang dimasukan tidak sesuai dengan nilai nilai konstan
yang telah didefinisikan.
Break berfungsi sebagai statement peloncatan atau untuk mengakhiri statement.
Apabila tidak ada break, komputer akan mengeksekusi intruksi yang berada di bawahnya
walaupun berada di case yang berbeda. Contohnya, misalnya hasil yang kita dapatkan akan
memproses konstanta1, apabila pada case konstanta1 tidak ada break, maka statement2
pada case konstanta2 sampai case konstanta3 akan ikut di proses. Maka dari itu apabila
menggunakan Switch Case , jangan lupa untuk menulis break pada akhir statemen.

2. Post Test (10 point)


A. Post Test Modul 5
1. Buatlah program yang menampilkan deret bintang dengan bentuk segitiga sama sisi...
2. Buatlah program yang menampilkan deret bintang segitiga sama sisi terbalik...
3. Sebuah rumah tangga menggunakan 22 lampu terdapat 2 lampu 45 w,terdapat 10
lampu 15 w dan terdapat 5 lampu 25 w serta terdapat lampu 5 100 w dan dinyalakan 12 jam per
hari. Televisi 110 W dinyalakan rata-rata 9 jam per hari. Kemudian sebuah mesin pompa air 125 W
sinyalakan rata-ata 4 jam per hari.
a. Jika harga 1 kWh energi listrik golongan R1/TR daya 900 V A, Rp.1.353 per kWh
b. Jika harga 1 kWh energi listrik golongan R1/TR daya 900 V A, Rp.1.444 per kWh

maka rekening listrik yang harus dibayar oleh keluarga tersebyt selama sebulan (30 hari)
adalah....

JAWABAN POST TEST MODUL 5

1. Buatlah program yang menampilkan deret bintang dengan bentuk segitiga sama sisi...

Sourcecode

#include <iostream>

using namespace std;

int main()

int baris,spasi,bintang,a;

cout<<"masukan tinggi = "

cin>>a;

for (baris=1; baris<=a; baris++)

for (spasi=1; spasi<=a-baris; spasi++)

cout<<" ";

for (bintang=1;bintang<=baris;bintang++)
{

cout<<"* ";

cout<<endl;

return 0;

Hasil RUNNING
2. Buatlah program yang menampilkan deret bintang segitiga sama sisi terbalik....

Sourcecode

#include <iostream>

using namespace std;

int main()

cout << "## Program C++ Piramida Bintang Terbalik ##" << endl;

cout << "=============================================" << endl;

cout << endl;

int tinggi_segitiga,i,j,k;

cout << "Input tinggi segitiga: ";

cin >> tinggi_segitiga;

cout << endl;

for(i=0; i<tinggi_segitiga; i++)

for(j=1; j<=i; j++) {

cout << " ";

for(k=1; k<=tinggi_segitiga-i;

k++) { cout << " *";

cout << endl;

return 0;

}
Hasil RUNNING no 2 di atas

3. Sebuah rumah tangga menggunakan 22 lampu terdapat 2 lampu 45 w,terdapat 10 lampu 15 w


dan terdapat 5 lampu 25 w serta terdapat lampu 5 100 w dan dinyalakan 12 jam per hari.
Televisi 110 W dinyalakan rata-rata 9 jam per hari. Kemudian sebuah mesin pompa air 125 W
sinyalakan rata-ata 4 jam per hari.
a. Jika harga 1 kWh energi listrik golongan R1/TR daya 900 V A, Rp.1.353 per kWh
b. Jika harga 1 kWh energi listrik golongan R1/TR daya 900 V A, Rp.1.444 per kWh

maka rekening listrik yang harus dibayar oleh keluarga tersebyt selama sebulan (30 hari)
adalah....

PROGRAM

BAHASA C

#include <iostream>

using namespace std;

int main()

char no[10],nama[15];

float kWh,p,p1,p2,p3,p4,p5,harga,j;

cout<<"======================================"<<endl;

cout<<"\n Pembayaran Tagihan Listrik"<<endl;


cout<<"======================================"<<endl;

cout<<"\n No. ID Pelanggan : ";cin>>no;

cout<<"Nama Pelanggan : ";

cin>>nama;

cout<<"\n===================================="<<endl;

cout<<"\n Yang Harus Dibayar Persatu kWh\t=Rp.1.353"<<endl;

p=1080; p1=1080;

p2=1500; p3=600;

p4=990; p5=500;

j=p+p1+p2+p3+p4+p5;

kWh=j/1000;

harga=kWh*1353*30;

cout<<"\n Pemakaian daya kWh bulan sekarang = "<<kWh<<endl; cout<<"\n

Tagihan listrik yang harus di bayar bulan ini = "<<harga<<endl;

return 0;

Hasil RUNNING
3. Tugas Modul 5 (20 point)

1. Buatlah algoritma flowchart, pseudocode serta program untuk menghitung rerata nilai
yang dimasukan dengan menggunakan instruksi FOR, minimal ada 10 data yang
diinputkan untuk di proses menhitung reratanya.

PSEUDOCODE

1. Mulai
2. Definisikan variabel angka, total, ratarata, jmlAngka dan i
3. Masukkan nilai dari variabel jmlAngka
4. Tentukan nilai awal variabel total dengan 0
5.Proses Menghitung Nilai Rata-Rata dengan perulangan
6. Tampilkan hasil rata-rata
7. Selesai

FLOWCHART
SOURCECODE

#include <iostream>

using namespace std;

int main ()

cout<<"PRORAM MENCARI NILAI RATA-RATA DARI BEBERAPA NILAI"<<endl;

double angka,total,ratarata;

int jmlAngka,i;

cout<<"Masukan Jumlah Angka :

"; cin>>jmlAngka;

total = 0;

for (i=1; i<=jmlAngka; i++)

cout<<"Masukan Angka Ke "<< i << " :

"; cin>>angka;

total = total = angka;

ratarata = total / jmlAngka;

cout<<"Nilai Rata-Rata yang anda masukan adalah : "<< ratarata <<endl;

return 0;

Hasil RUNNING
2.Buatlah algoritma, flowchart, pseudocode serta program untuk merotasi kekanan digit-
digit suatu bilangan bulat positif yang didalamnya tidak terdapat digit nol. Data masukan
ber tipe data LONG. Contoh: 17081945 diolah untuk menghasilkan keluaran 54918071,
data masukan -50 diolah untuk menjadi 05

PSEUDOCODE

Program merotasi bilangan bulat positif

->Mulai

->Deklarasi

-input hasil rotasi bilangan bulat positif

->Proses

-input bilangan yang akan di rotasikan

->cetak

-hasil rotasi bilngan bulat

->Selesai

FLOWCHART

SOURCECODE
#include <iostream>

using namespace std;

#define MAX 100

long i,n,jumlah=0;

char bil[MAX];

void rekrusif_bilangan_bulat_positif(char bil[])

cout<<endl;

cout<<" Hasil Rotasi Bilangan Positif = ";

for(i=jumlah;i>=0;i--)

printf("%c",bil[i]);

cout<<endl;

main()

cout<<"===Program Merotasi Bilangan Bulat===\n"; cout<<"\n";

cout<<" Input Bilangan = ";

gets(bil);

rekrusif_bilangan_bulat_positif(bil);

return 0;

}
Hasil Running

3.Buatlah algoritma, flowchart, pseudocode serta program yang menginputkan sebanyak 12 data,
dari 12 data yang diinputkan dapat diketahui :

a. Berapa nilai rata-rata dari 12 data tersebut b. Berapa nilai Mean dari 12 data tersebut

c. Berapa nilai Median dari 12 data tersebut

d. Berapa nilai Modus dari 12 data tersebut

c. Berapa nilai Standar deviasi dari 12 data tersebut

PSEUDOCODE

Program mencari rata-rata,mean,median,modus,dan standart deviasi

->Mulai

->Deklarasi

-input jumlah data

-cetak data yang telah di urutkan

-mencari & menampilkan rata-rata

-mencari & menampilkan mean

-mencari & menampilkan median

-mencari & menampilkan modus

-mencari & menampilkan standart deviasi

->Selesai

FLOWCHART
#include<iostream>

#include<conio.h>

#include<math.h>

using namespace std;

main()

int pil,banyak[100],x,modus[100],k=1,n,jumlahsd;

float nilai[100],jumlah=0,max,min, rata,med,sd,rata1,jumlah1;

cout<<"|||Program Mencari Nilai Rata-Rata,Mean,Median,Modus,dan Standar Deviasi|||"<<endl;

cout<<"|||
=====================================================================|||"<<endl;

cout<<"\n";

cout<<"Masukkan Jumlah Data = "; cin>>n;

cout<<endl;

for(int i=0;i<n;i++)
{

cout<<"Masukkan Data ke-"<<i+1<<" = ";

cin>>nilai[i];

//Mencari Rata-Rata

cout<<endl;

cout<<"Hasil:"<<endl;

for(int i=0;i<n;i++)

jumlah=jumlah+nilai[i];

rata=jumlah/n;

cout<<"A. Nilai Rata-Ratanya adalah : "<<rata;

cout<<endl;

//Mencari Mean

for(int i=0;i<n;i++)

jumlah1=jumlah1+nilai[i];

rata1=jumlah/n;

cout<<"B. Nilai Mean adalah : "<<rata1;

cout<<endl;

//Mencari Median

if(n%2==0)

med=(nilai[(n/2)]+nilai[(n/2)-1])/2;

else

{
med=nilai[(n/2)];

cout<<"C. Nilai Median adalah : "<<med;

cout<<endl;

//Mencari Modus

cout<<" Nilai yang berututan :"<<endl;

for(int i=0;i<n;i++)

for(int j=(i+1);j<n;j++)

if(nilai[i]>nilai[j])

int tmp; tmp=nilai[i];

nilai[i]=nilai[j];

//mengurutkan data

nilai[j]=tmp;

cout<<nilai[i]<<" ";

//menghitung berapa kali muncul tiap angka

for(int i=0;i<n;i++)

banyak[i]=0;

for(int j=0;j<n;j++)

if(nilai[i]==nilai[j])

banyak[i]++;
}

//menentukan nilai yang paling sering muncul

for(int i=0;i<n;i++)

if(banyak[i]>k)

k=banyak[i];

//jika modus lebih dari satu

for(int i=0;i<n;i++)

if(x==0) modus[x]=0;

else

modus[x]=modus[x-1];

if(banyak[i]==k)

if(nilai[i]!=modus[x])

modus[x]=nilai[i];

x++;

//Jika Semua angka muncul sama banyak

int z=0;

for(int i=0;i<n;i++)
{

if(banyak[i]==k)

z++;

if(z==n)

{ x=0;

if (x==0)

cout<<"\nD. Tidak Ada Modus!"<<endl;

else

cout<<"\nD. Modus ada "<<x<<" = "<<endl;

for(int i=0;i<x;i++)

cout<<modus[i]<<" ";

cout<<endl;

//Mencari Standar Deviasi jumlahsd=0;

for(int i=1;i<=n;i++)

jumlahsd = jumlahsd + (nilai[i]-rata)*(nilai[i]-rata);

sd=sqrt(jumlah/(n-1));

cout<<"E. Standar Deviasi= "<<sd<<endl;

return 0;

Hasil Running
4. Analisis Hasil Praktikum dan Kesimpulan (50 point)
Praktikum Modul 5

=================1. Penggunaan FOR dalam membuat tabel perkalian======================

#include <iostream>

using namespace std;

main()

int i, batas;

cout<<"Tabel Perkalian Lima"<<endl;

cout<<"Sampai Dengan : ";

cin>>batas;

for(i=1; i<=batas; i++)

cout<<"5 * "<<i<<" = "<<5*i<<endl;

}
Hasil RUNNING

=========================2. Penggunaan perintah WHILE===============================

#include <iostream> using


namespace std;

int main()

int n,i,faktorial{1};

cout<<"Masukan bilangan bulat ;

cin>>n;

cout<<n<<"! = ";

if (n > 1)

i=n;

while (i >= 1)

{
if(i != 1)

cout<<i<<" X ";

Else

cout<<i<<" = ";

faktorial *= i; i--;

cout<<"faktorial";

return 0;

Hasil RUNNING
3. Penggunaan struktur kontrol perulangan dalam mencari nilai frekuensi terbesar

#include <iostream>

using namespace std;

int main()

int idxmax,i;

int tabint[10];

idxmax = 0;

for (i=1; i<10; i++)

if (tabint[i]>tabint[idxmax])

idxmax = i;

cout<<"index nilai maksumum : " <<idxmax<<endl;

return 0;

}
 ANALISIS HASIL PRAKTIKUM DAN KESIMPULAN

Pada struktur FOR, kita harus tahu terlebih dahulu seberapa banyak badan loop
akan di ulang. Struktur ini menggunakan sebuah variabel yang biasa disebut sebagai
loop’s counter, yang nilainya akan naik atau turun selama proses pengulangan.
Struktur WHILE akan mengulang pernyataan pada badan loop sepanjang kondisi
pada while yang bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali di
ulang. Yang penting sepanjang kondisi pada while dipenuhi maka pernyatan pada badan
loop alan di ulang.
Perulangan DO WHILE untuk perulangan dengan jumlah yang pasti. DO akan
dikerjakan lebih dahulu, disusul pengecekan pada kondisi WHILE. Pengecekan dilakukan
di akhir blok.

Anda mungkin juga menyukai