Minggu, 06 Juli 2014

Project Semester Saat Kuliah di Politeknik Caltex Riau

Anak IT tidak akan pernah jauh dari yang nama nya pemograman, setiap yang berhubungan dengan anak IT pasti orang sudah berpikir bahwa anak IT itu hebat dalam bahasa pemograman, tapi saya tidak begitu fameliar dengan bahasa pemograman. 

Sedikit penjelasan tentang code block, Apa itu Code Block??
Code Block itu adalah suatu program lingkungan pengembangan terpadu bebas, nirlaba,bersumber terbuka dan lintas platform. Program yang ditulis dalam C++ beserta Widgets untuk GUI-nya ini bisa digunakan bersama dengan berbagai macam kompilator, contohnya GCC, Bahasa C dan Visual C++. Peralatannya yang tersedia tergantung dari "plugin" yang ada dipasang. intinya code block ini sebuah aplikasi pendukung untuk membuat pemograman baik menggunakan bahasa pemograman C atau yang lainnya.

Kali ini saya membahas bahasa pemograman C yang akan dijalankan di aplikasi Code Block ini. sesuai dengan tugas project yang diberikan dosen saya maka saya membuat  data Karyawan menggunakan bahasa CODEBLOCK. untuk code programnya sudah saya lampirkan dibawah ini.

semoga bermanfaat.
Sekian dan terimakasih.


#include<stdio.h>
#include<stdlib.h>

#define SATU_RECORD 1

typedef struct{
    char NIK[10];
    char nama[25];
    char jk;
    struct{
        char kota[20];
        char tgl[8];
    }lahir;
    char gol[2];
    char jabatan[15];
    char alamat[50];
    char tlp[15];
    char pdk[10];
    struct{
        float gajiPokok;
        char jumlahAnak;
        char jml_Jamlembur;
        float potongan;
        float tunjangan;
        float uangLembur;
        float gajiBersih;
    }komponen_gaji;
}KARYAWAN;

void tulis(KARYAWAN *);
void tambah(KARYAWAN *);
void baca(KARYAWAN *);
void ubah(KARYAWAN *);

void main(void)
{
    FILE *pf;
    KARYAWAN damai;
    char pilih;
menu:
    system("cls");
    printf("PT. DAMAI SENTOSA\n");
    printf("-----------------\n");
    printf("Pilihan:\n");
    printf("1. Tulis ke file\n");
    printf("2. Menambah data\n");
    printf("3. Membaca data\n");
    printf("4. Mengubah data\n");
    printf("5. Keluar\n");
    printf("Pilih: ");
    fflush(stdin);scanf("%c",&pilih);

    if(pilih=='1') tulis(&damai);
    else if(pilih=='2') tambah(&damai);
    else if(pilih=='3') baca(&damai);
    else if(pilih=='4') ubah(&damai);
    else if(pilih=='5')
    {
        printf("\nTerima kasih.....\n");
        printf("Tekan sebarang tombol untuk mengakhiri\n");
        getch();
        exit(1);
    }
    else{
        printf("Anda salah pilih, ulangi!\n");
        getch();
    }
    goto menu;
}

void tulis(KARYAWAN *pt)
{
    FILE *pf;
    char jawaban;
    int sudah_benar;

    if((pf = fopen("karyawan.dat", "wb")) == NULL){
        printf("File tidak dapat diciptakan!\n");
        exit(1);
    }

    printf("Membuat file baru karyawan\n");
    printf("Data karyawan lama akan ditimpa\n");
    do{
        fflush(stdin); /* hapus isi penampung keyboard */
        printf("NIK          : ");gets(pt->NIK);
        fflush(stdin);
        printf("Nama         : ");gets(pt->nama);
        fflush(stdin);
        printf("Jenis kelamin: ");pt->jk=getchar();
        fflush(stdin);
        printf("Tempat lahir : ");gets(pt->lahir.kota);
        fflush(stdin); /*hapus isi penampung keyboard */
        printf("Tanggal lahir: ");gets(pt->lahir.tgl);

        /* rekam sebuah data bertipe struktur */
        fwrite(pt, sizeof(*pt), 1, pf);

        do{
            printf("\nMau merekam data lagi [Y/T]? ");
            fflush(stdin);
            jawaban = getchar();
            sudah_benar = ((jawaban == 'Y')  || (jawaban == 'y') || (jawaban == 'T') || (jawaban == 't'));
        }while(!sudah_benar);

        printf("\n");
    }while(jawaban == 'Y' || jawaban == 'y');

    fclose(pf); /* tutup file */
}

void tambah(KARYAWAN *pta)
{
    FILE *pf;
    char jawaban;
    int sudah_benar;

    if((pf = fopen("karyawan.dat", "ab")) == NULL){
        printf("File tidak dapat diciptakan!\n");
        exit(1);
    }

    printf("Menambah data karyawan\n");
    printf("----------------------\n");
    do{
        fflush(stdin); /* hapus isi penampung keyboard */
        printf("NIK          : ");gets(pta->NIK);
        fflush(stdin);
        printf("Nama         : ");gets(pta->nama);
        fflush(stdin);
        printf("Jenis kelamin: ");pta->jk=getchar();
        fflush(stdin);
        printf("Tempat lahir : ");gets(pta->lahir.kota);
        fflush(stdin); /*hapus isi penampung keyboard */
        printf("Tanggal lahir: ");gets(pta->lahir.tgl);

        /* rekam sebuah data bertipe struktur */
        fwrite(pta, sizeof(*pta), 1, pf);

        do{
            printf("\nMau merekam data lagi [Y/T]? ");
            fflush(stdin);
            jawaban = getchar();
            sudah_benar = ((jawaban == 'Y')  || (jawaban == 'y') || (jawaban == 'T') || (jawaban == 't'));
        }while(!sudah_benar);

        printf("\n");
    }while(jawaban == 'Y' || jawaban == 'y');

    fclose(pf); /* tutup file */
}

void baca(KARYAWAN *pb)
{
    FILE *pf;
    int i=1;

    /* buka file */
    if((pf = fopen("karyawan.dat", "rb")) == NULL){
        printf("File tidak dapat dibuka!\n");
        exit(1);
    }

    printf("Membaca data karyawan\n");
    printf("---------------------\n");
    while(fread(pb, sizeof(*pb), 1, pf) == 1){
        printf("Data ke-%d\n",i++);
        printf("----------\n");
        printf("NIK          : %s\n",pb->NIK);
        printf("Nama         : %s\n",pb->nama);
        printf("Jenis kelamin: %c\n",pb->jk);
        printf("Tempat lahir : %s\n",pb->lahir.kota);
        printf("Tanggal lahir: %s\n\n",pb->lahir.tgl);
        getch();
    }

    fclose(pf); /* tutup file */
}

void ubah(KARYAWAN *pu)
{
    FILE *pf; /* pointer ke FILE */
    char jawab,pilih;
    int no_record, sudah_benar, hasil_baca;
    long int offset_byte;

    /* buka file yg berisi data buku */
    if((pf = fopen("karyawan.dat", "rb+")) == NULL){
        printf("File tidak dapat dibuka!\n");
        exit(1);
    }

    printf("Mengubah data karyawan\n");
    printf("----------------------\n");
    /* baca record secara random */
    do{
        printf("Nomor record dari data yang akan diubah: ");
        scanf("%d", &no_record);

        /* atur penunjuk posisi-file ke record tersebut */
        offset_byte = (no_record-1) * sizeof(*pu);
        fseek(pf, offset_byte, SEEK_SET);

        /* baca record yg ditunjuk oleh penunjuk posisi_file */
        hasil_baca = fread(pu, sizeof(*pu), SATU_RECORD, pf);
        if(hasil_baca == 0)
            printf("Nomor record tidak dikenali!\n");
        else{
            printf("Data ke-%d\n",no_record);
            printf("----------\n");
            printf("a. NIK          : %s\n",pu->NIK);
            printf("b. Nama         : %s\n",pu->nama);
            printf("c. Jenis kelamin: %c\n",pu->jk);
            printf("d. Tempat lahir : %s\n",pu->lahir.kota);
            printf("f. Tanggal lahir: %s\n\n",pu->lahir.tgl);
            fflush(stdin);
            printf("Data yang ingin diubah (a/b/c/d/e/f): ");pilih=getchar();

            fflush(stdin);
            if(pilih=='a'){
                printf("NIK          : ");
                gets(pu->NIK);}
            else if(pilih=='b'){
                printf("Nama         : ");
                gets(pu->nama);}
            else if(pilih=='c'){
                printf("Jenis kelamin: ");
                pu->jk=getchar();}
            else if(pilih=='d'){
                printf("Tempat lahir : ");
                gets(pu->lahir.kota);}
            else if(pilih='e'){
                printf("Tanggal lahir: ");
                gets(pu->lahir.tgl);}
            else printf("Anda salah pilih field!\n\n");
        }

        /* atur penunjuk posisi-file ke posisi sebelumnya */
        fseek(pf, offset_byte, SEEK_SET);
        /* rekam ulang */
        fwrite(pu, sizeof(*pu), SATU_RECORD, pf);

        printf("\nMau mengubah lagi (Y/T)? ");
        do{
            /*baca jawaban dari keyboard */
            jawab = getchar();
            sudah_benar = ((jawab == 'Y') || (jawab == 'y') || (jawab == 'T') || (jawab == 't'));
        }while(!sudah_benar);
    }while (jawab == 'y' || jawab == 'Y');

    printf("\n");
    fclose(pf); /* tutup file */
}


SEKIAN DAN TRIMAKASIH :)

Tidak ada komentar:

Posting Komentar