Anda di halaman 1dari 9

LAPORAN PRAKTIKUM PEMROGRAMAN KOMPUTER

PROGRAM STUDI TEKNIK NUKLIR

NAMA : FUADI NUR AMAL


NIM : 19/446713/TK/49818
KELAS : TEKNIK NUKLIR

HARI, TANGGAL PRAKTIKUM : KAMIS, 12 MARET 2020


HARI, TANGGAL LAPORAN : KAMIS, 19 MARET 2020

ACARA :
MENYUSUN PROGRAM SEDERHANA DENGAN STATEMENT
BERCABANG SEDERHANA

LABORATORIUM KOMPUTASI
DEPARTEMEN TEKNIK NUKLIR DAN TEKNIK FISIKA
FAKULTAS TEKNIK
UNIVERSITAS GADJAH MADA
YOGYAKARTA
2020
1. Masalah
Bagaimana cara membuat program sederhana dengan statement berurutan yang dapat digunakan
dalam keseharian. Pada praktikum kali ini, masalah yang harus diselesaikan, dibagi menjadi tiga :
a. Upah Karyawan: Menentukan upah mingguan pekerja dengan tarif upah Rp.10.000/jam. Jika
jumlah jam kerja mingguan melebihi 40 jam, jumlah jam kelebihannya dihitung lembur dengan
tarif kerja lembur 1,5 kali tarif upah. Namun jika jumlah jam kerja kurang dari 20 jam, upah
dikurangi 20% dari upah seharusnya yang diterima.
b. Konversi Nilai : Membuat program untuk mengkonversi nilai angka (rentang 0-100) menjadi
huruf dengan ketentuan; nilai A(85<= nilai <= 100), B(nilai >= 70 dan nilai < 85), nilai C(nilai
>= 50 dan nilai < 70), D(nilai >= 40 dan nilai < 50), E(nilai < 40).
c. Pemindahan Nilai Terbesar : Membuat program mengubah nilai 5 data agar data yang kelima
adalah data yang nilainya terbesar.

2. Tujuan
a. Praktikan dapat menyusun program sederhana untuk mencari upah/gaji mingguan pekerja.
b. Praktikan dapat menyusun program sederhana untuk menkonversi nilai dengan rentang 0-100
menjadi nilai huruf dengan ketentuan nilai A (nilai ≥ 85), nilai B (nilai 70 dan nilai < 85),
nilai C ( nilai 50 dan nilai < 70), nilai D (nilai 40 dan nilai < 50), dan nilai E (nilai < 40).
c. Praktikan dapat menyusun program sederhana untuk mengubah 5 data agar data yang paling
kanan adalah data dengan nilai yang paling besar.

3. Analisis
Analisis ketiga masalah meliputi Upah Karyawan, Konversi Nilai, dan Pemindahan Nilai Terbesar,
sebagai berikut.
a. Upah Karyawan
1) Informasi
a) Upah mingguan pekerja dengan tarif upah Rp.10.000/jam;
b) Jika jumlah jam kerja mingguan melebihi 40 jam, jumlah jam kelebihannya
dihitung dengan tarif kerja lembur 1,5 kali tarif upah;
c) Jika jumlah jam kerja kurang dari 20 jam, upah dikurangi 20% dari upah
seharusnya yang diterima.
2) Data
jam kerja pekerja (jam), tarif upah pekerja per jam (tarif), tarif kerja lembur pekerja
(tarif_lembur), dan identitas mahasiswa (nama dan nomor mahasiswa).

3) Hubungan Data dan Informasi


Pada masalah pertama ini, upah yang ditetapkan sebesar Rp.10.000/jam
dalam seminggu dengan waktu pekerjaan total sebesar 40 jam, jika karyawan
mengerjakan pekerjaan melebihi 40 jam, jumlah jam lebihnya dihitung lembur dengan
tarif kerja 1.5 kali tarif upah, artinya akan dibayar Rp.15.000/jam-lebihnya. Sedangkan
untuk karyawan dalam seminggu waktu pekerjaannya kurang dari 20 jam, upah
dikurangi 20% dari upah seharusnya, sehingga karyawan akan dibayar 80% dari upah
yang seharusnya diterima.

b. Konversi Nilai
1) Informasi
a) nilai A(nilai >= 85 dan nilai <= 100);
b) nilai B(nilai >= 70 dan nilai < 85);
c) nilai C(nilai >= 50 dan nilai < 70);
d) nilai D(nilai >= 40 dan nilai < 50);
e) nilai E(nilai < 40).
2) Data
Nilai yang akan dikonversikan.
3) Hubungan Data dan Informasi
Menginputkan nilai yang akan dikonversikan ke suatu varibel “nilai”,
kemudian dikonversi sehingga termasuk dari salah satu dari kelima kategori A, B, C,
D, atau E.

c. Pemindahan Nilai Terbesar


1) Informasi
memindahkan bilangan paling besar dari 5 bilangan sehingga bilangan pada urutan
kelima adalah bilangan paling besar.
2) Data
masukan 5 bilangan (a),(b),(c),(d),(e).
3) Hubungan Data dan Informasi
Menginpukan bilangan sebanyak lima, kemudian bilangan paling besar ditempatkan
pada urutan kelima.

4. Algoritma dan Flowchart


a. Algoritma
1) Upah Karyawan :
a. Mulai
b. Deklarasi variabel upah, tarif lembur(t_lembur), tarif
c. Hitung tarif lembur (t_lembur)
d. Input jam kerja per minggu (jam)
e. Hitung upah:
i. jam kerja > 40 : upah=40×tarif+(jam-40)×t_lembur
ii. jam kerja <=40 : upah=jam ×tarif
f. tampilkan upah yang diterima perminggu (upah)
g. selesai

2) Konversi Nilai :
a. Mulai
b. Deklarasi variabel nilai
c. Input nilai ke variabel nilai
d. Konversi nilai ke salah satu dari 5 kelas nilai (A, B, C, D, atau E)
e. Tampilkan hasil konversi tersebut berupa kelas nilai ke layar
f. Selesai

3) Pemindahan Nilai Terbesar :


a. Mulai
b. Inputkan data pertama (a)
c. Inputkan data kedua (b)
d. Inputkan data ketiga (c)
e. Inputkan data keempat (d)
f. Inputkan data kelima (e)
g. Mengurutkan data
i. Jika maks = a ; b<<c<<d<<e<<a
ii. Jika maks = b ; c<<d<<e<<a<<b
iii. Jika maks = c ; d<<e<<a<<b<<c
iv. Jika maks = d ; e<<a<<b<<c<<d
v. Jika maks = e ; a<<b<<c<<d<<e
h. Tampilkan output dengan data paling kanan adalah nilai terbesar
i. Selesai
b. Flowchart
1. Kasus menghitung upah mingguan
2. Kasus mengkonversi nilai
3. Kasus mengurutkan nilai
5. Listing Program

#include<iostream>
#include<iomanip>
#include<conio.h>

using namespace std;

void identitas(){
cout<<"\n\n\n";
cout<<"\t\t\t\t DEPARTEMEN TEKNIK NUKLIR DAN TEKNIK FISIKA \n";
cout<<"\t\t\t\t================================================\n";
cout<<"\t\t\t\t\t NAMA : FUADI NUR AMAL\n";
cout<<"\t\t\t\t\t NIM\t : 19/446713/TK/ 49818\n";
cout<<"\t\t\t\t\t PRODI : TEKNIK NUKLIR\n";
cout<<"\t\t\t\t================================================\n\n\n";
}

int upah(){
float upah,tarif = 10000,t_lembur;
int jam;

tarif = 10000;
t_lembur = tarif*1.5;

cout<<fixed<<showpoint<<setprecision(2);
cout<<"Jumlah jam kerja mingguan\t\t = "; cin>>jam;

if (jam>=40) upah = 40*tarif+(jam-40)*t_lembur;


else if (jam<20) upah = jam*tarif-(jam*tarif* 0.2);
else upah = jam*tarif;

cout<<"Upah mingguan yang didapat pekerja adalah = Rp."<<setw(3)<<upah<<endl;


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

return 1000;
}
int konversi_nilai(){
float nilai;

cout<<"\nNilai yang kamu dapatkan adalah = "; cin>>nilai;

if (nilai>=85 && nilai<=100){


cout<<"Nilaimu adalah\t\t\t= A\n";
} else if (nilai>100){
cout<<"Tidak dapat menampilkan nilai, retang harus [1-100]";
} else if (nilai<85 && nilai>=70){
cout<<"Nilaimu adalah\t\t\t= B\n";
} else if (nilai<70 && nilai>=50){
cout<<"Nilaimu adalah\t\t\t= C\n";
} else if (nilai<50 && nilai>=40){
cout<<"Nilaimu adalah\t\t\t= D\n";
} else{
cout<<"Nilaimu adalah\t\t\t= E\n";
}
return 1000;
}

int ditukar(){
cout<<"\nMasukan 5 Data yang ingin diurutkan"<<endl;
int a,b,c,d,e,maks;

cout<<"Masukan Nilai Pertama :";


cin>>a;
cout<<"Masukan Nilai Kedua :";
cin>>b;
cout<<"Masukan Nilai Ketiga :";
cin>>c;
cout<<"Masukan Nilai Keempat :";
cin>>d;
cout<<"Masukan Nilai Kelima :";
cin>>e;
maks=max(a,max(b,max(c,max(d,e))));

if(maks==a)
{cout<<"\n"<<b<<","<<c<<","<<d<<","<<e<<","<<a<<endl<<endl;}
if(maks==b)
{cout<<"\n"<<c<<","<<d<<","<<e<<","<<a<<","<<b<<endl<<endl;}
if(maks==c)
{cout<<"\n"<<d<<","<<e<<","<<a<<","<<b<<","<<c<<endl<<endl;}
if(maks==d)
{cout<<"\n"<<e<<","<<a<<","<<b<<","<<c<<","<<d<<endl<<endl;}
if(maks==e)
{cout<<"\n"<<a<<","<<b<<","<<c<<","<<d<<","<<e<<endl<<endl;}

int main(){
identitas();
upah();
konversi_nilai();
ditukar();

system("pause");
return 1000;
}

6. Output Eksekusi Program


7. Catatan
Pada Program ini bisa menghitung upah mingguan pekerja dengan mengekelompokan Jam
kerja mingguan menjadi 3 kelompok yang tiap-tiap kelompok memiliki hitungan yang berbeda untuk
mendapatkan nilai upah dengan menggunakan jam kerja dalam seminggu sebagai data. Program
sederhana ini menggunakan fungsi If dan juga setw.
Fungsi setw digunakan agar nilai akhir yang didapatkan menjadi lebih rapih. Setw merupakan
satu fungsi manipulator yang digunakan untuk mengatur lebar tampilan dilayar dari suatu nilai
variable.
Pada Program kedua ini dibuat untuk mengkonversi nilai angka ( 0≤Nilai≤100) menjadi nilai
huruf menggunakan pengelompokan nilai angka dengan adanya 5 kelompok yang mempunyai rentang
masing – masing.
Pada program terakhir adalah program sederhana yang mengurutkan 5 data acak dan
menjadikan data ke 5 adalah nilai terbesar menggunakan fungsi Max dibantu fungsi If.
Max adalah nilai terbesar atau tertinggi dari sebuah fungsi, baik dalam kisaran tertentu atau
diseluruh domain dari fungsi.

Anda mungkin juga menyukai