26 Jul 2015

Fungsi dalam bahasa c adalah sub-program atau perancangan tugas yang diberikan agar program menjadi lebih terstruktur dan dapat mengurangi penulisan ulang program. Fungsi ada dua, yaitu fungsi bawaan seperti printf, scanf, dan lain-lain, sedangkan lainnya adalah fungsi buatan, fungsi yang dibuat oleh kita / programmer. Ada 3 tahapan dalam membuat fungsi yaitu :

1. Membuat Prototipe
Prototipe dibuat diluar (atas) fungsi main dan ditujukan untuk menjelaskan kepada compiler tentang tipe data, tipe keluaran dan jumlah parameter. Contoh nya : void full (char);

2.  Membuat Fungsi
Fungsi dibuat dengan melakukan inisialisasi dan penugasan. Fungsi ini juga dibuat di luar main, contohnya :
void full(char biaya)
{
    int paket;
    paket = 600000;
    printf("\nTotal Biaya Paket Rp. %d", paket, biaya);
 
 3. Membuat Pemanggilan Fungsi
Pemanggilan fungsi cukup sederhana, pemanggilan fungsi tetap ada didalam main. contohnya full(biaya);

Jika masih belom jelas ini merupakan contoh program kasus kost-kostan :

#include <stdio.h>
#include <conio.h>
#include <string.h>

void full(char);
void full2(char);
void nonfull(char);

void full(char biaya)
{
    int paket;
    paket = 600000;
    printf("\nTotal Biaya Paket Rp. %d", paket, biaya);
}
void full2(char biaya2)
{
    int paket, sarapan, srp;
    printf("\nBerapa jumlah sarapan pagi yang ingin di pesan ?\t:\t");scanf("%d", &srp);
    sarapan = 150000;
    paket   = (srp*10000)+(600000-150000);
    printf("\nTotal Biaya Paket Rp. %d", paket, biaya2);
}
void nonfull(char biaya3)
{
    int paket, kamar, ac, internet, cuci, srp;
    char sarapan;
    printf("\nBerapa kamar yang ingin di pesan ?\t\t\t:\t");scanf("%d", &kamar);
    printf("Berapa AC yang ingin di pesan ?\t\t\t\t:\t");scanf("%d", &ac);
    printf("Berapa paket internet yang ingin di pesan ?\t\t:\t");scanf("%d", &internet);
    printf("Apakah anda ingin menggunakan layanan cuci pakaian ?\t:\t");scanf("%d", &cuci);
    printf("Paket sarapan yang anda ingin pesan ?[H/B]\t\t:\t"); scanf("%s", &sarapan);
    if(sarapan == 'H' || sarapan == 'h')
    {
        printf("Berapa jumlah sarapan pagi yang ingin di pesan ?\t:\t");scanf("%d", &srp);
        srp = srp*10000;
    }
    else if(sarapan == 'B' || sarapan == 'b')
    {
        srp = 150000;
    }
    paket =    (kamar*250000) + (ac*150000) + (internet*150000) + (cuci*100000) + (srp);
    printf("\n\nTotal Biaya adalah %d", paket);       
}
main()
{
    int pilih;
menu:
    printf("\t\tDaftar Fasilitas\t\t\n");
    printf("\n1. Kamar\t\t:Rp. 250.000,-\n2. AC\t\t\t:Rp. 150.000,-\n3. Internet\t\t:Rp. 150.000,-");
    printf("\n4. Cuci Pakaian\t\t:Rp. 100.000,-\n5. Sarapan Pagi/bulan\t:Rp. 150.000,-\n6. Sarapan Pagi Harian\t:Rp.  10.000,-\n\n");   
    printf("\t\t  Daftar Paket\t\t\n");
    printf("\n1. Paket Full\n2. Paket Non-Full\n");
    printf("\nMasukkan Pilihan\t:\t");scanf("%d", &pilih);
   
    switch(pilih)
    {
        case 1:
            {
                char bf, biaya, biaya2;
                printf("Apakah anda ingin mengambil paket sarapan/bulan ?[Y/N]\t:\t");
                scanf("%s", &bf);
                if(bf == 'y' || bf == 'Y')
                {
                    full(biaya);
                    getch();
                    return 0;
                }
                else if(bf == 'n' || bf == 'N')
                {
                    full2(biaya2);
                    getch();
                    return 0;
                }
            }
        case 2:
            {
                char biaya3;
                nonfull(biaya3);
                getch();
                return 0;
            }
        default:
            printf("Tidak Ada Dalam Pilihan !!!"); getch();
            system("cls"); goto menu;
    }
}