Kamis, 13 Desember 2012

Hitung Nilai Mahasiswa

STUDI KASUS

Seorang Dosen ingin melihat nilai akhir mahasiswanya dengan masukkan nilai yaitu Tugas1, Tugas2, UTS dan UAS. Untuk Nilai Tugas 15%;untuk Nilai UTS 35%;Untuk Nilai UAS 50%


Kode Program

/*
 * Date 12 December 2012 00:12:00
 * Aplikasi Hitung Nilai Mahasiswa
 * Dibuat Oleh Firmansyah Maulana
 * http://edukasifirman.blogspot.com/2012/12/hitung-nilai-mahasiswa.html
 */

#include <stdio.h>

typedef int angka;

/* Inisialisasi Struct */
struct {
char nim[20];
char nama[50];
float nilai1;
float nilai2;
float uts;
float uas;
float total;
}Data[0]; //Inisialisasi Data[0]; Sebagai Array dan Sebagai Parameter Struct

float hitungNilai(float Nilai1, float Nilai2)
{
  return (((Nilai1+Nilai2)/2)*15)/100;
}

float hitungUTS(float UTS)
{
  return (UTS*35)/100;
}

float hitungUAS(float UAS)
{
  return (UAS*50)/100;
}

//Program Utama
int main() {
angka i, jumKelas;
printf("APLIKASI NILAI MAHASISWA\n");
printf("--------------------------------\n");

printf("Tentukan Jumlah Mahasiswa: "); scanf("%i", &jumKelas);
printf("--------------------------------\n");

for(i=0;i<jumKelas;i++)
{
printf("Masukkan NIM          : "); scanf("%s", Data[i].nim);
printf("Masukkan Nama         : "); scanf("%s", Data[i].nama);
printf("Masukkan Nilai Tugas1 : "); scanf("%f", &Data[i].nilai1);
printf("Masukkan Nilai Tugas2 : "); scanf("%f", &Data[i].nilai2);
printf("Masukkan UTS          : "); scanf("%f", &Data[i].uts);
printf("Masukkan UAS          : "); scanf("%f", &Data[i].uas);
Data[i].total = hitungNilai(Data[i].nilai1, Data[i].nilai2) + hitungUTS(Data[i].uts) + hitungUAS(Data[i].uas);
printf("--------------------------------\n");
}

printf("Data Hasil Input\n");
printf("--------------------------------\n");

for(i=0;i<jumKelas;i++)
{
printf("NIM          : %s\n", Data[i].nim);
printf("Nama         : %s\n", Data[i].nama);
printf("Nilai Tugas1 : %.f\n", Data[i].nilai1);
printf("Nilai Tugas2 : %.f\n", Data[i].nilai2);
printf("UTS          : %.f\n", Data[i].uts);
printf("UAS          : %.f\n", Data[i].uas);
printf("Nilai Akhir  : %.f\n", Data[i].total);
}
return 0;
}

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