- 1110511028 Firmansyah Maulana
- 1110513041 Aminatuzzahra
STUDI KASUS
Sebuah
Perusahaan, kesulitan dalam menghitung gaji setiap karyawannya. gaji
dapat dilihat berdasarkan pertahun dan perbulan kemudian bonus
didapat bila kurang dari 3 tahun bonus 1 kali gaji bila lebih dari 3
tahun 2 kali gaji dan lebih dari 5 tahun 3 kali gaji. gaji didapat
berdasarkan golongan; gologan 1: 1000000, golongan 2: 2000000,
golongan 3: 3000000; kemudian report yang dihasilkan adalah seluruh
data karyawan dapat terlihat.
KETENTUAN
ADT; Stuct; Array;
Function;
PENYELESAIAN
Pseudecode:
Mulai
Mendefinisikan
typedef int angka;
typedef float pecahan;
typedef double uang;
typedef char huruf;
struct {
huruf nip[20], nama[50];
angka golongan, lamaKerja;
pecahan gajiPokok, bonus;
}
Set array Identitas[100];
Definisi fungsi gaji untuk mendapatkan gaji
Definisi fungsi bonus untuk mendapatkan bonus
Input jumlah data Karyawan yang akan di Input
Lakukan perulangan sebanyak data Karyawan yang telah diinput
Input data Karyawan ke array
input nip
input nama
input golongan
input lama kerja
Panggil fungsi gaji
return gaji
Panggil fungsi bonus
return bonus
tutup perulangan
Lakukan perulangan sebanyak data Karyawan yang telah diinput
Cetak data yang tersimpan pada array
Tutup perulangan
Selesai
Kode Program:
#include <stdio.h>
//definisi tipe variabel buatan
typedef int angka;
typedef float uang;
typedef char huruf;
//definisi struct
struct {
huruf nip[20], nama[50];
angka golongan, lamaKerja;
uang gajiPokok, bonus;
}Identitas[100];
//sub program untuk mendapatkan gaji berdasarkan golongan
void getGaji(angka golongan, angka i)
{
switch(golongan)
{
case 1:
Identitas[i].gajiPokok = 1000000;
break;
case 2:
Identitas[i].gajiPokok = 2000000;
break;
case 3:
Identitas[i].gajiPokok = 3000000;
break;
default:
Identitas[i].gajiPokok = 0;
break;
}
}
//sub program untuk mendapatkan bonus dari lama kerja
void getLamaKerja(angka lamaKerja, angka i)
{
if (lamaKerja > 5)
{
Identitas[i].bonus = Identitas[i].gajiPokok*3;
}
else if (lamaKerja > 3 && lamaKerja <= 5)
{
Identitas[i].bonus = Identitas[i].gajiPokok*2;
}
else if (lamaKerja <= 3)
{
Identitas[i].bonus = Identitas[i].gajiPokok;
}
else
{
Identitas[i].bonus = 0;
}
}
int main()
{
angka i, batas;
printf("APLIKASI GAJI KARYAWAN\n");
printf("--------------------------------------\n");
printf("Tentukan Data Karyawan : "); scanf("%i", &batas);
printf("--------------------------------------\n");
//Input Data sebanyak i
for(i=0;i<batas;i++)
{
printf("Masukkan NIP : "); scanf("%s", Identitas[i].nip);
printf("Masukkan Nama : "); scanf("%s", Identitas[i].nama);
printf("Masukkan Golongan (1-3) : "); scanf("%i", &Identitas[i].golongan);
printf("Masukkan Lama Kerja (Tahun) : "); scanf("%i", &Identitas[i].lamaKerja);
getGaji(Identitas[i].golongan, i);
getLamaKerja(Identitas[i].lamaKerja, i);
printf("--------------------------------------\n");
}
printf("Hasil Data Karyawan : \n");
printf("--------------------------------------\n");
//Cetak Hasil sebanyak i
for(i=0;i<batas;i++)
{
printf("NIP : %s\n", Identitas[i].nip);
printf("Nama : %s\n", Identitas[i].nama);
printf("Golongan : %i\n", Identitas[i].golongan);
printf("Lama Kerja : %i (Tahun)\n", Identitas[i].lamaKerja);
printf("Gaji Pokok : %.f\n", Identitas[i].gajiPokok);
printf("Bonus : %.f\n", Identitas[i].bonus);
printf("Total Gaji (Tahun) : %.f\n", (Identitas[i].gajiPokok*12)+Identitas[i].bonus);
printf("--------------------------------------\n");
}
return 0;
}
Hasil Program:
Download Document
Tidak ada komentar:
Posting Komentar