Anda di halaman 1dari 13

BAB I

PENDAHULUAN

1.1 Latar Belakang


Pemrograman Dasar adalah pemrograman yang memberikan dasar-dasar logika dimana
sintak-sintak yang diberikan bersifat universal dan lebih mengedepankan pembentukan pola
pikir seseorang tentang bagaimana membuat sebuah program yang efektif dan efisien.

Dalam makalah ini berisikan tentang bagaimana kami dapat membuat sebuah program
yang bertemakan Penggajian dengan judul program Slip Penggajian Karyawan PT Budi
Luhur .

Program yang kami buat untuk menampilkan contoh penggajian karyawan dengan
menggunakan prosedur judul, label, looping, dan proses percabangan majemuk. Dimana akan
dioperasikan oleh perusahaan atau kantor untuk menghitung gaji para karyawannya.

Program ini dibuat untuk memudahkan perusahaan atau kantor untuk menghitung gaji
karyawannya di perusahaan atau kantornya masing-masing tanpa harus menghitung gaji secara
manual.

1.2 Tujuan

Tujuan disusunnya makalah ini adalah untuk menyelesaikan salah satu tugas mata
pelajaran yang khususnya mata pelajaran Dasar Pemrograman I sekaligus tugas pengganti
UTS dan akan dikembangkan lagi untuk tugas akhir semester.

Selain itu, penulis berharap dibuatnya makalah ini tidak hanya untuk tugas semata tetapi
bisa mempelajari ilmu pengetahuan yang khususnya Dasar Pemrograman I ini. Harapan penulis
yaitu semoga makalah ini tidak hanya bermanfaat bagi penulis akan tetapi sangat-sangat
bermanfaat khususnya juga bagi para pembaca atau kita semua yang membutuhkan untuk
referensi ataupun salah satu 2 sarana untuk menambah wawasan dalam hal ilmu pengetahuan
yang khususnya Dasar Pemrograman I Semoga makalah ini bisa bermanfaat bagi penulis
khsususnya dan kita semua amiin.

1
BAB II
LANDASAN TEORI
2.1 Pengertian C++

C++ adalah bahasa pemrograman komputer yang di buat oleh (Bjarne Stroustrup)
merupakan perkembangan dari bahasa c dikembangkan di Bell Labs (Dennis Ritchie) pada
awal tahun 1970-an, bahasa itu diturunkan dari bahasa sebelumnya, yaitu bcl, pada awalnya,
bahasa tersebut dirancang sebagai bahasa pemrograman yang dijalankan pada sistem unix,
pada perkembangannya, versi ANSI (american national standart institute) bahasa
pemrograman c menjadi versi dominan, meskipun versi tersebut sekarang jarang dipakai dalam
pengembangan sistem dan jaringan maupun untuk sistem embedded, Bjarne Stroustrup pada
Bell Labs pertama kali mengembangkan c++ pada awal 1980-an, untuk mendukung fitur-fitur
pada c++, dibangun efisiensi dan sistem support untuk pemrograman tingkat rendah (low level
coding). Pada c++ ditambahkan konsep-konsep baru seperti class dengan sifat-sifatnya seperti
inheritance dan overloading. salah satu perbedaan yang paling mendasar dengan bahasa c
adalah dukungan terhadap konsep pemrograman berorientasi objek (object oriented
programming).
Perbedaan antara bahasa pemrograman c dan c++ meskipun bahasa-bahasa tersebut
menggunakan sintaks yang sama tetapi mereka memiliki perbedaan, c merupakan bahasa
pemrograman prosedural, dimana penyelesaian suatu masalah dilakukan dengan membagi -
bagi masalah tersebut kedalam submasalah yang lebih kecil, selain itu, c++ merupakan bahasa
pemrograman yang memiliki sifat pemrograman berorientasi objek, untuk menyelesaikan
masalah, c++ melakukan langkah pertama dengan menjelaskan class-class yang merupakan
anak class yang dibuat sebelumnya sebagai abstraksi dari object-object fisik, class tersebut
berisi keadaan object, anggota-anggotanya dan kemampuan dari object-nya, setelah beberapa
class dibuat kemudian masalah dipecahkan dengan class.
2.2 Tipe Data C++
Didalam program yang kami buat, kami hanya menggunakan beberapa tipe data saja
diantaranya adalah char, int, const, dan string yang akan kami jelaskan secara singkat dibawah
ini.
2.2.1 Tipe data char
Digunakan untuk menampung data sebuah karakter. Untuk menuliskan tipe char,
karakter perlu ditulis di dalam tanda petik tunggal ().
Contoh:
A karakter berupa huruf A
1 karakter berupa angka 1
* karakter simbol *

2
2.2.2 Tipe data string
merupakan sekumpulan dari beberapa karakter, yang banyaknya berubah-ubah sesuai
kebutuhan,besarnya 1 s/d 255 karakter. Pemberian nilai String diapit dengan tanda petik ganda
().
Bentuk umum penulisan tipe data ini adalah :
tipe_data pengenal [panjang] ;
pengenal = nama variabel
panjang = bilangan bulat yg menunjukan jumlah karakter
Contoh : char nama[15] ;
2.2.3 Tipe data integer (int)
Tipe data yang nilainya tidak memiliki titik desimal.

Type Batas Nilai Ukuran Memory

Short int -32768....327672 2 Byte

Int -32768....327672 4 Byte

-2147483678 ...
Long 4 Byte
2147283647

Unsigned Integer 0-65535 2 Byte

2.2.4 Tipe data konstanta (const)


Sebuah variabel dengan tipe data tertentu dan memiliki nilai data yang akan selalu tetap
didalam program.
contoh: float phi;
const phi = 3.14;

3
2.3 Operator aritmatika
Operator Aritmatik &
ARTI
Matematik

Pow Pemangkatan

Sqrt Menghitung akar

Sisa hasil bagi


%
(Modulus)
Perkalian ,
* , /
pembagian
Penjumlahan ,
+,-
pengurangan

Operator Keterangan
= Sama dengan (assignemnt)
!= Tidak sama dengan
> Lebih besar
< Lebih kecil
== Sama dengan (bukan assignment)
=> Lebih besar atau sama dengan
<= Lebih kecil atau sama dengan

2.4 Seleksi Kondisi

2.4.1 Perintah IF tunggal


Sintak dari bentuk if tunggal adalah sebagai berikut:

if (kondisi)
{ pernyataan;}

Bentuk ini menunjukkan bahwa jika kondisi tersebut dipenuhi, maka pernyataan dalam
if akan dijalankan, sebaliknya jika kondisi tersebut tidak dipenuhi maka pernyataan dalam if
juga tidak akan dijalankan. Berikut ini contoh penggunaan bentuk if tunggal:

2.4.2 Bentuk if else


Sintak dari bentuk if else adalah sebagai berikut :

if (kondisi)
{pernyataan1;}
else
{pernyataan2;}

Jika kondisi di dalam if dipenuhi,maka pernyataan1 dijalankan. Sebaliknya jika kondisi


if tidak dipenuhi maka pernyataan2 baru dijalankan.

4
2.4.3 Bentuk if else majemuk

Penyeleksian akan dilakukan mulai dari kondisi yang pertama (kondisi1). Jika kondisi
ini dipenuhi maka pernyataan yang mengikuti akan dijalankan (pernyataan1) dan seleksi
kondisi dihentikan (kondisi-kondisi yang lain tidak akan diperiksa).

Namun jika kondisi1 tidak dipenuhi maka seleksi kondisi langsung dilanjutkan ke
kondisi2. Jika kondisi2 dipenuhi maka pernyataan2 dijalankan,namun jika tidak maka seleksi
dilanjutkan ke kondisi3. Begitu seterusnya. jika semua kondisi tidak ada yang bernilai benar
maka pernyataan yang ada di else yang akan dijalankan. Bentuk else sendiri bersifat
optional,dapat tidak digunakan.

Bentuk ini disebut juga sebagai bentuk bertingkat. Sintak dari bentuk ini adalah sebagai
berikut:
if (kondisi1)

{pernyataan_1;}

else if (kondisi2)

{pernyataan_2;}

else if (kondisi3)

{ pernyataan_3;}
...
else
{pernyataan_n;}

2.5 Statment go to (label)

Dalam bahasa pemrograman c++ memiliki statement goto yang digunakan agar
program melompat ke baris yang telah ditentukan. Untuk menggunakan statement goto, maka
diperlukan juga label untuk menandakan kemana program tersebut akan melompat. Label
tersebut dapat di tulis seperti LABEL: atau nama-nama yang lain. Statement goto dapat di
ditempatkan dimana saja sesuai dengan kebutuhan program.

2.6 Perulangan (looping)

Struktur pengulangan digunakan untuk mengulang suatu perintah sebanyak yang


diinginkan. Untuk melakukan perintah dengan melakukan banyak perulangan akan lebih
efisien apabila kita menggunakan perulangan. Ada beberapa perulangan dalam C++ yaitu :
for,nested for,goto,while,do..while.

5
BAB III
PEMBAHASAN

3.1 Rancangan masukan

SLIP PENGGAJIAN KARYAWAN


PT. BUDI LUHUR
============================

Masukan nama karyawan :


Masukan NIP :
Status Nikah (Y/T) :
Golongan (1/2/3) :
Lama kerja :
Jumlah hari masuk kerja :

3.2 Pseudocode program

1. Masukan nama karyawan,


2. Masukan NIP nya,
3. Input status nikahnya, jika sudah menikah pilih Y, jika belum menikah pilih T,
4. Input jenis golongan karyawannya, jika ia golongan 1 maka pilih 1, jika ia golongan
2 maka pilih 2, jika ia golongan 3 maka pilih 3,
5. Setelah itu, masukan berapa lama karyawan tersebut sudah bekerja untuk perusahaan,
6. Masukan jumlah hari karyawan tersebut hadir dalam sebulan bekerja,
7. Hitung total gaji = gaji pokok + tunjangan status nikah + tunjangan golongan +
tunjangan trasnportasi + tunjangan dedikasi,
8. Cetak total gaji,
9. Selesai.

3.3 Rancangan keluaran

Karyawan bernama :
Dengan NIP :

Gaji yang diterima

Gaji pokok : Rp.


Tunjangan jabatan : Rp.
Tunjangan transportasi : Rp.
Tunjangan keluarga : Rp.
Tunjangan dedikasi : Rp.

Total gaji : Rp.

6
3.4 Ketentuan program
SLIP PENGGAJIAN KARYAWAN
PT. BUDI LUHUR
Nama : >>inputan
NIP : >>inputan
Status Nikah (Y/T) :>>inputan
Golongan (1/2/3) : >>inputan
Lama kerja : >>inputan
Jumlah hari masuk kerja :>>inputan
Ketentuan :
1. Menggunakan prosedur judul, label, looping dan proses percabangan majemuk.
2. Gaji pokok karyawan Rp. 1.500.000,-.
3. Masukan nilai tunjangan status nikah:
- jika sudah menikah, maka mendapatkan tunjangan sebesar Rp. 500.000,-.
- jika belum menikah, maka tidak mendapatkan tunjangan.
4. Masukan tunjangan golongan dan tunjangan trasnportasi, untuk tiap golongan:
- Jika golongan 1
- Maka tunjangan golongan 5% dari gaji pokok,
- Maka tunjangan transportasi Rp.10000,- * jumlah hari masuk kerja.
- Jika golongan 2
- Maka tunjangan golongan 10% dari gaji pokok,
- Maka tunjangan transportasi Rp.20000,- * jumlah hari masuk kerja.
- Jika golongan 3
- Maka tunjangan golongan 15% dari gaji pokok,
- Maka tunjangan transportasi Rp.25000,- * jumlah hari masuk kerja.
5. Masukan tunjangan dedikasi dengan ketentuan :
- Jika lama kerjanya = 0 tahun maka tidak mendapatkan tunjangan dedikasi dari
perusahaan,
- jika lama kerjanya 1 tahun maka mendapatkan tunjangan dedikasi sebesar
10% dari total gaji pokok.
6. Jadi total gaji = gaji pokok+tunjangan golongan+tunjangan transportasi+ tunjangan
status nikah+ tunjangan dedikasi atau disingkat total gaji= gaji+tgol+tt+tsn+tlk.
Nama : <<output
NIP : <<output
Status Nikah (Y/T) : <<output
Golongan (1/2/3) : <<output
Lama kerja : <<output
Jumlah hari masuk kerja : <<output
Karyawan bernama : <<output
Dengan NIP : <<output
Gaji yang diterima
Gaji pokok : Rp. <<output
Tunjangan jabatan : Rp. <<output
Tunjangan transportasi : Rp. <<output
Tunjangan keluarga : Rp. <<output
Tunjangan dedikasi : Rp. <<output

Total gaji : Rp. <<output

7
3.5 Listing program

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

judul ()

cout<<"********************************************************************
*";
cout<<"\n SLIP GAJI KARYAWAN \n";
cout<<"\n\t PT. BUDI LUHUR \n";
cout<<"********************************************************************
*";
}

main ()

char nama[99],sn,lk, pilih, status, atas;


int gol, tsn, total, tgol, tlk, tt,tb, hr, nip;
const gaji=1500000;

atas:
judul();
cout<<"\n";
cout<<"\n";
cout<<"Nama karyawan : ";gets(nama);
cout<<"Masukan nomor induk karyawan : ";cin>>nip;
cout<<"Status nikah (Y/T) : ";cin>>sn;
cout<<"Golongan (1/2/3) : ";cin>>gol;
cout<<"Lama kerja : ";cin>>lk;
cout<<"Jumlah hari masuk kerja : ";cin>>hr;
cout<<"\n";
clrscr();
//--------------------------------keluarga--------------------------------------
if(sn=='y'|| sn=='Y'){
tsn=500000;
}
else if(sn=='t'|| sn=='T'){
tsn=0;
}
else {
cout<<" salah ";

8
return(0);
}

//-----------------------------jabatan--------------------------------------
if(gol==1){
tgol=0.05*gaji;
tt=10000*hr;
}
else if(gol==2){
tgol=0.1*gaji;
tt=20000*hr;
}
else if(gol==3){
tgol=0.15*gaji;
tt=25000*hr;
}
else {
cout<<" salah ";
return(0);
}

//--------------------------lama kerja--------------------------------------
if(lk==0){
tlk=0;
}
else if(lk>1){
tlk=0.1*gaji;
}
else {
cout<<" salah ";
return(0);
}

//---------------------------------------------------------------------------

judul();

cout<<"\n";
cout<<"Nama karyawan : "<<(nama);
cout<<"\nNIP : "<<nip;
cout<<"\nStatus nikah : "<<sn;
cout<<"\nGolongan : "<<gol;
cout<<"\nLama kerja : "<<lk<< " tahun ";
cout<<"\nJumlah hari masuk kerja : "<<hr<<" hari ";
cout<<"\n+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
++++++++++++\n";
cout<<"\n";
cout<<"\t\tKaryawan yang bernama : "<<nama<<endl<<endl;
cout<<"\t\tDengan NIP : "<<nip<<endl<<endl;
cout<<"\t\tGaji Yang Diterima"<<endl<<endl;

9
cout<<"\t\tGaji Pokok :Rp."<<gaji<<endl;
cout<<"\t\tTunjangan golongan :Rp."<<tgol<<endl;
cout<<"\t\tTunjangan Transportasi :Rp."<<tt<<endl;
cout<<"\t\tTunjangan Keluarga :Rp."<<tsn<<endl;
cout<<"\t\tTunjangan dedikasi :Rp."<<tlk<<endl;
total=gaji+tsn+tgol+tt+tlk;
cout<<"\n\t\tTotal gaji = Rp. "<<total<<endl;
cout<<"++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++";
cout<<endl<<endl;

cout<<"\nMau input lagi[Y/T]???";cin>>pilih;


if(pilih=='Y' || pilih=='y')
{clrscr();
goto atas;}
else
{return(0);}

getch ();

10
3.6 Tampilan

Gambar 3.6.1 Input gaji karyawan

Gambar 3.6.2 Output gaji karyawan

11
BAB IV
PENUTUP
4.1 Kesimpulan

Adapun beberapa kesimpulan yang dapat diambil adalah :

1. Dalam bahasa C++ semua hal yang berhubungan dengan sintaks harus diperhatikan
secara seksama,hal ini dikarenakan sebuah program tidak akan bias running apabila salah satu
sintaks itu missing.

2. Dalam membangun program kita harus memperhatikan huruf reverse


word,variable,konstanta,dan lain-lain karena program C++ bersifat case sensitive (huruf kecil
dan besar dianggap berbeda).

3. Struktur Data merupakan salah satu bahan dasar dasar pembuatan program. Pemakaian
struktur data yang tepat didalam proses pemograman akan menghasilkan algoritma yang jelas
dan tepat sehingga menjadikan program secara keseluruhan lebih sederhana.

4.2 Saran

1. Semoga makalah ini menjadi sebuah titik pendorong bagi pemula yang ingin belajar
bahasa C++ secara mendalam.

2. Semoga makalah ini menjadi pegangan pembaca dalam memahami setiap sintaks
umum yang ada pada bahasa C++.

3. Diharapkan makalah ini berguna dan dapat menjadi sarana pembelajaran oleh pembaca
dan menjadi lebih paham mengenai program dan aplikasi lain pendukungnya.

12
REFERENSI
1. ZeinSoldier, Apa itu C++ ? .
http://zeinsoldieralgo17.blogspot.co.id/p/tipe-data.html ( Diakses pada tanggal 2 November
2017 ).

2. Silvyaningrum, Rizka Putri. Pendahuluan, pembahasan, penutup dan daftar pustaka


Makalah Algoritma dan Pemrograman .
https://www.slideshare.net/rizkaputrisnr/pendahuluan-pembahasan-penutup-dan-
daftar-pustaka-pembelian ( diakses pada tanggal 31 Oktober 2017 )

3. Ruang Mahasiswa BSI. 2017. Modul logika & algoritma pertemuan 3 tentang Konsep
Tipe Data. Bogor: Bina Sarana Informatika.

13