Minggu, 09 Desember 2012

Aplikasi Gaji Karyawan

Nama Kelompok:
- 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