Anda di halaman 1dari 13

LAPORAN UJIAN TENGAH SEMESTER

SEMESTER I
Disusun untuk Memenuhi Mata Kuliah Praktikum Dasar Pemrograman C++
Dibimbing oleh Bapak Achmad Mursyidun Nidhom

Oleh:
Hendra Suharto
140533605316
S1 PTI14 OFF F

UNIVERSITAS NEGERI MALANG


FAKULTAS TEKNIK
JURUSAN TEKNIK ELEKTRO
PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA
Oktober 2014
A. Tujuan
Menguji kemampuan mahasiswa setelah mempelajari C++ mulai dari bab operator
hingga bab perulangan.
B. Soal UTS

Soal 1
Pemrograman C++
Nama Program : Konvensi Desimal - Binner
Bahasa Pemrogramam : C++
Compiler : MinGW Studio
Script program salah :
#include <iostream.h>
#include <conio.h>
int main()
{
int x, y;
cout<<"Banyak bilangan yang akan di ubah : ";
cin>>y;
for(x=1;x<=y;x++){
long des,a,b=1, c, bin=0;
cout<<"Bilangan Desimal [1-7] : "<<x<<"\n";
des=x;
while(des>0)
{
a=des%2;
bin=bin+(a*b);
des=des/2;
b=b*10;
}
cout<<"hasil konversi bit : "<<bin<<"\n\n";
}
getch();
}
Script program benar :
#include <iostream.h> /*header file*/
#include <conio.h>/*header file*/
int main ()/*fungsi main*/
{
int a; /*deklarasi variabel int*/
for (a=0;a<7;a++)/*perulangan for*/
{
int dec, bin[3]={0,0,0}, b=1, c; /*deklarasi variabel int*/
cout<<"=======================================\n";
cout<<"Input bilangan desimal [1-7]: "; /*menampilkan perintah inputan*/
cin>>dec; /*meminta inputan*/
cout<<"---------------------------------------\n";
cout<<"Hasil dari konversi membalik Bit: ";/*menampilkan hasil konvensi*/
while (dec>0)
{
int d; /*deklarasi variabel int*/
for(d=0;d<3;d++) /*perulangan for*/
{
bin[d]=dec%2; /*proses*/
dec=dec/2; /*proses*/
cout<<bin[d]; /*proses*/
}
}
cout<<"\n"; /*menampilkan spasi*/
}
getch();/*perintah agar program tidak langsung tertutup*/
return 0;
}
Output Program :

Algoritma :
1. Strat
2. Deklarasi variabel int a
3. a=0, a<7 lalu di increment a++
4. Deklarasi variabel int dec, bin[3]={0,0,0}, b=1, c
5. Menampilkan perintah untuk menginput angka [1-7], inputan dec
6. Menampilkan hasil konvensi
a. Jika dec>0
b. Deklarasi variabel int d
c. d=0, d<3 lalu di increment d++
d. proses konvensi bin[d]=dec%2 dan dec=dec/2
e. menampilkan bin, bin[d]
f. menampilkan karakter newline
7. End
Flowchart :
Start

Read
a

a=0

Input dec

dec End
a++ >0

Read
a<7
d
d=0,d<
3
bin[d]=dec%2
dec=dec/2

Menampilk
an bin[d]
Penjelasan Program :
Pada script yang salah hanya menampilkan hasil konvensi seperti biasanya. Contohnya binner
dari 1 adalah 001. Sedangkan yang diminta adalah kebalikannya, yaitu jika binner dari 1
adalah 100. Script salah kurang perintah untuk membalik hasil konvensi, yaitu menggunakan
perulangan while seperti pada script benar. Dimana di dalam perulangan while terdapat
perulangan for. Yaitu jika dec>0, maka akan di proses pada perulangan for d=0, d<3 lalu di
increment d++ lalu masuk proses konvensi bin[d]=dec%2 dan dec=dec/2 menampilkan
binnernya, yaitu bin[d]. pada script salah hanya menampilkan hasil secara normalnya.
Sedangkan script benar menampilkan hasil sesuai ketentuan soal uts.
Jalannya program,pembacaan fungsi for, yaitu akan mengulang hingga sampai angka 7
program akan meminta inputan angka antara 1-7 pada user. Lalu akan menampilkan hasil
konvensinya. Proses ini akan berhenti saat user menginputkan angka yang ke-7 dari 1-
7(1,2,3,4,5,6,7). Setelah itu program selesai.
Soal 2
Pemrograman C++
Nama Program : Menampilkan Segitiga Bintang
Bahasa Pemrogramam : C++
Compiler : MinGW Studio
Script program salah :
#include <iostream.h>
#include <conio.h>
int mai()
{
int a,b,c ;
cout<<"Masukkan tingi : ";
cin>>a;
for ( b = 1; b<=a; b++)
{
for (c=1; c<=b; c++)
{
cout<<"*";
}
cout<<""<<endl;
}
getch();
}
Script program benar :
#include <iostream.h> /*header file*/
#include <conio.h> /*header file*/
int main()/*fungsi main*/
{ /*menampilkan identitas*/
cout<<"===============================\n";
cout<<":NAMA/NIM :HENDRA SUHARTO:\n";
cout<<":KELAS/OFFERING:PTI F :\n";
cout<<"===============================\n";

int t; /*deklarasi variabel int*/


cout<<"Masukkan Tinggi : "; /*menampilkan perintah meminta nilai tinggi*/
cin>>t; /*meminta inputan*/
for (int a=1;a<=t/2;a++) /*perulangan for*/
{
cout<<"\t"; /*karakter tab horizontal*/
for (int b=1;b<=a;b++) /*perulangan for*/
{
cout<<"*"; /*menampilkan * */
}
cout<<"\n"; /*karakter newline*/
}
for (int c=1;c<=t/2;c++)/*perulangan for*/
{
cout<<"\t"; /*karakter tab horizontal*/
for (int s=t/2;s>c;s--)/*perulangan for*/
{
cout<<" "; /*menampilkan */
}
for (int d=1;d<=c;d++) /*perulangan for*/
{
cout<<"*"; /*menampilkan * */
}
cout<<"\n"; /*karakter newline*/
}
getch ();/*perintah agar program tidak langsung tertutup*/
return 0;
}
Output Program :
Algoritma :
1. Strat
2. Deklarasi variabel int t
3. Meminta inputan tinggi, input t
4. Segitiga pertama
a. Perulangan for, int a=1; a<=t/2 ;a++
b. Menampilkan karakter tab horizontal
c. Perulangan for, int b=1;b<=a;b++
d. Menampilkan *
e. Menampilkan karakter newline
5. Segitiga kedua
a. Perulangan for, int c=1;c<=t/2;c++
b. Menampilkan karakter tab horizontal
c. Perulangan for, int s=t/2;s>c;s
d. Menampilkan
e. Perulangan for, int d=1;d<=c;d++
f. Menampilkan *
g. Menampilkan karakter newline
6. End
Flowchart :

start

Inpu
tt
Rea
da
a=
1 a++

Read
a<
b=1
=t/
2
b< Tampil
*
=a
Rea b+
dc +
c=1
C+
+
c< Read
=t/ s=t/2

end
s> Tampil
c
Read d=1

s--

d< Tampil
*
=c

d+
+

Penjelasan Program :
Pada script salah, hanya menampilkan satu segitiga yang tersusun dari *, karena masih kurang
proses perulangan untuk memproses segitiga kedua. Pada script benar, di tambahkan
perulangan for (int a=1;a<=t/2;a++), t/2 artinya tinggi satu segitiga adalah stengah tinggi yang
di inputkan. Lalu di dalam perulangan tersebut ada for (int b=1;b<=a;b++) untuk
menampilkan segitiga pertama. Sedangkan segitiga kedua menggunakan perulangan yang
sama,namun jika yang pertama output segitiganya * . maka yang kedua, akan menampilkan
segitiga dengan dan spasi * seperti pada perulangan for (int d=1;d<=c;d++). Maka akan
menampilkan segitiga seperti pada output program.
Jalannya program , user akan di minta menginputakan nilai tinggi. Lalu proses for (int
a=1;a<=t/2;a++), jika a lebih dari t/2, maka proses segitiga pertama sudah selesai. Dilanjutkan
proses segitiga kedua for (int c=1;c<=t/2;c++) di dalam perulangan tersebut terdapat 2
perulangan lagi yaitu untuk for (int s=t/2;s>c;s--), dan untuk *for (int d=1;d<=c;d++).
Setelah terpenuhi maka program akan menampilkan outputan seperti pada output program.

Soal 3
Pemrograman C++
Nama Program : Menhitung Gaji Pegawai
Bahasa Pemrogramam : C++
Compiler : MinGW Studio
Script program salah :
#include <iostream.h>
#include <conio.h>
int main ()
{
int a,c,d;
char b[20];
cout<<"==============================="<<endl;
cout<<"|NAMA/NIM: HENDRA/140533605316|\n";
cout<<"|KELAS/OFFERING: F |\n";
cout<<"==============================="<<endl;
cout<<"Masukkan nomor pegawai :";
cin>>a;
cout<<"Masukkan nama :";
cin>>b;
cout<<"Gaji Pokok pegawai :";
cin>>c;
cout<<"jumlah jam lembur :";
cin>>d;
cout<<"===============================\n"<<endl;
int e=c*0.05;
int f=c*0.2;
int g=c+e+f;
cout<<"==============================="<<endl;
cout<<" ....::::GAJI PEGAWAI::::...."<<endl;
cout<<"==============================="<<endl;
cout<<"Nama :"<<b<<endl;
cout<<"NO Pegawai :"<<a<<endl;
cout<<"Gaji Pokok :"<<c<<endl;
cout<<"Tunjangan :"<<f<<endl;
cout<<"Uang lembur:"<<e<<endl;
cout<<"total gaji :"<<g<<endl;
cout<<"=============================="<<endl;
getch();
}
Script program benar :
#include <iostream.h> /*header file*/
#include <stdlib.h> /*header file*/
int main ()/*fungsi main*/
{
int a,c,d,e,f,g; /*deklarasi variabel int*/
char b[20],ulang; /*deklarasi variabel char*/
do /*perulangan do*/
{
system ("cls"); /*membersihkan layar*/
/*identitas mawasiswa*/
cout<<"==============================="<<endl;
cout<<"|NAMA/NIM: HENDRA/140533605316|\n";
cout<<"|KELAS/OFFERING: F |\n";
cout<<"==============================="<<endl;
cout<<"Masukkan nomorpegawai :";/*menampilkanMasukkan nomorpegawai*/
cin>>a; /*meminta inputan*/
cout<<"Masukkan nama :"; /*menampilkan Masukkan nama*/
cin>>b; /*meminta inputan*/
cout<<"Gaji Pokok pegawai :";/*menampilkanMasukkan Gaji pokok*/
cin>>c; /*meminta inputan*/
cout<<"jumlah jam lembur :"; /*menampilkanJumlah jam lembur*/
cin>>d; /*meminta inputan */
cout<<"===============================\n"<<endl;
e=c*0.05*d; /*proses uang lembur*/
f=c*0.2; /*proses tunjangan*/
g=c+e+f; /*proses gaji total*/
/*menampilkan judul*/
cout<<"==============================="<<endl;
cout<<" ....::::GAJI PEGAWAI::::...."<<endl;
cout<<"==============================="<<endl;
cout<<"Nama :"<<b<<endl; /*menampilkan nama*/
cout<<"NO Pegawai :"<<a<<endl; /*menampilkan no pegawai*/
cout<<"Gaji Pokok :"<<c<<endl; /*menampilkan gaji pokok*/
cout<<"Tunjangan :"<<f<<endl; /*menampilkan tunjangan*/
cout<<"Uang lembur:"<<e<<endl; /*menampilkan uang lembur*/
cout<<"total gaji :"<<g<<endl; /*menampilkan gaji total*/
cout<<"=============================="<<endl;
cout<<"\nAnda Ingin Mengulang[Y/N]?"; /*menampilkan pilihan ulang [Y/N]*/
cin>>ulang; /*meminta inputan*/
}
while(ulang=='y' || ulang=='Y'); /*perulangan while*/
}
Output Program :
Algoritma :
1. Strat
2. Deklarasi variabel int a,c,d,e,f,g
3. Deklarasi variabel char b[20],ulang
4. Perulangan do, menampilkan :
a. Identitas mahasiswa pembuat program
b. Meminta inputan nomor pegawai, inputan a
c. Meminta inputan nama, inputan b
d. Meminta inputan gaji pokok, inputan c
e. Meminta inputan jumlah jam lembur, inputan d
f. Proses uang lembur e=c*0.05*d
g. Proses tunjangan f=c*0.2
h. Proses gaji total g=c+e-f
i. Menampilkan judul
j. Menampilkan nama ,inputan b
k. Menampilkan no pegawai ,inputan a
l. Menampilkan gaji pokok ,inputan c
m. Menampilkan tunjangan , proses f=c*0.2
n. Menampilkan uang lembur ,proses e=c*0.05*d
o. Menampilkan total gaji , proses g=c+e-f
5. Menampilkan Anda Ingin Mengulang[Y/N]?"
6. Jika inputan y atau Y, maka program mengulang lagi dari perulangan do
7. Selain itu program berhenti
8. End
Flowchart :

Start

Input int a,c,d


Input char b[20]

Proses e=c*0.05*d
f=c*0.2
g=c+e-f

Tampilkan
b,a,c,f,e,g
Input ulang

Y
ulang=='
y' ||
N
ulang=='
Y'

End

Penjelasan Program :
Pada script program salah terdapat kesalahan pada proses perhitungan uang lembur dan total
gaji. Pada script salah proses perhitungan uang lembur adalah e=c*0.05, seharusnya
e=c*0.05*d dan perhitungan total gaji adalah g=c+e+f, seharusnya g=c+e-f. selain perbaikan
proses perhitungan, saya menambahkan perulangan do-while pada script yang benar.
Jalannya program dimulai dari menampilkan identitas pembuat, lalu menampilkan perintah
untuk menginput No pegawai, nama, gaji pokok, dan uang lembur. Lalu akan masuk ke proses
perhitungan , uang lembur e=c*0.05*d, tunjangan f=c*0.2, dan gaji total g=c+e-f. lalu akan
menampilkan nama, no pegawai, gaji pokok, tunjangan, uang lembur, dan total gaji.
KESIMPULAN
1. Pada UTS semester 1 ini menggunakan perintah dari bab 1 hingga 5.
2. Bab 1 yaitu pengenalan system dan algoritma pemograman
3. Bab 2 yaitu dasar-dasar pemograman
4. Bab 3 yaitu operator
5. Bab 4 yaitu kondisi
6. Bab 5 yaitu perulangan
7. Pada soal UTS terdapat kelima bab tersebut.
8. Pada saat membuat program, kita harus memperhatikan setiap perintah yang akan kita
buat.
9. Selain penguasaan materi, kita harus mampu mengerjakannya secara teliti.
10. Penggunaan logika berfikir juga membantu saat membuat program.

Anda mungkin juga menyukai