Selasa, 13 November 2012

coding sembako


Define max : mendfinisikan nilai yang bernama max sepanjang 100
Typedef char string[20] : sebuah karakter sepanjang 20
typedef struct : sebuah data jenis baru yang bernama sembako yg mmpunyai atribut string jenis, string asal, float berat
typedef struct: jenis data baru bernama stack sembako yang memiliki atribut
void int : membuat sebuah stack dengan ktentuan...
void input sembako(): menginputkan sebuah sembako
void push: memasukkan data dr void input sembako kedalam stack sembako. jika nilai top<99 akan="akan" dimasukkan="dimasukkan" jika="jika" maka="maka" output="output" pd="pd" penuh="penuh" sembako="sembako" span="span" stack="stack">
void show: mnampilkan isi dr stack sembako yg sudah di inputkan, jika nilai teratas>-1 mnampilkan isi stack sembako, jika nilai kosong maka output"stack kosong"
void pop: menghapus data teratas dr stack sembako, jika nilai >-1 maka data teratas dihapus apabila stack kosong
float rerata: menghitung rata" isi stack sembako
int banyak paket: menhitung banyaknya jumlah sembako pada stack sembako jika nilai teratas>-1 maka data akan dihitung, apabila stack osong  output "stack kosong"


typedef struct
sebuah data jenis baru yang bernama StackSembako
{
            int top;
            Sembako content[Max];
            float totalBerat;
            int nelemen;
}StackSembako;
Sebuah data yang bernama StackSembako

void init(StackSembako *S) à membuat sebuah stack dengan ketentuan StackSembako * S
{
            (*S).top=-1; è nilai top=-1
            (*S).totalBerat=0;à nilai totalBerat=0
            (*S).nelemen=0;à nilai nelemen=0
}

void inputSembako(Sembako *x, string a, string b, float c)
menginputkan sembako
{
            strcpy((*x).jenis,a);
            strcpy((*x).asal,a);
            (*x).berat=c;

}

void push(StackSembako *S, Sembako x)
memasukkan data dr void input sembako kedalam stack sembako
{
            if((*S).top
            {
                        (*S).top++;
                        strcpy((*S).content[(*S).top].jenis,x.jenis);
                        strcpy((*S).content[(*S).top].asal,x.asal);
                        (*S).content[(*S).top].berat=x.berat;
                        (*S).totalBerat=(*S).totalBerat+x.berat;
                        (*S).nelemen++;
            }
            else
                        printf("\nStack penuh....");
}
jika nilai top<99 akan="akan" dimasukkan="dimasukkan" jika="jika" maka="maka" output="output" pd="pd" penuh="penuh" sembako="sembako" span="span" stack="stack">stack penuh”.

void show(StackSembako S)
menampilkan isi dari stack sembako yang sudah diinputkan,
{
            if(S.top>-1)
            {
                                    while(S.top!=-1)
                                    {
                                                printf("\n\nJenis barang :%s",S.content[S.top].jenis);
                                                printf("\n\nAsal barang :%s",S.content[S.top].asal);
                                                printf("\n\nBerat :%0.2f",S.content[S.top].berat);
                                                S.top--;
                                    }
                                    printf("------------------------------------");
                                    printf("\n\nTotal Berat : %f kg",S.totalBerat);
            }
            else
                        printf("\nStack kosong");

}
jika nilai top/nilai teratas >-1 menampilkan isi stack sembako, jika nilai kosong maka output"stack kosong"

void pop(StackSembako *S)
menghapus data teratas dari stack sembako
{
            Sembako x;
            if((*S).top>-1)
            {
                        x=(*S).content[(*S).top];
                        (*S).totalBerat=(*S).totalBerat-x.berat;
                        (*S).nelemen--;
                        (*S).top--;
                        printf("\nAsal : %s",x.jenis);
                        printf("\nJenis : %s",x.asal);
                        printf("\nBerat : %f",x.berat);
            }
            else
            {
                        printf("\nStack kosong");
            }
}
jika nilai >-1 maka data teratas dihapus apabila nilai <= -1 maka stack kosong

float rerata(StackSembako S)
menghitung rata-rata isi stack sembako
{
            return S.totalBerat/S.nelemen;
}

int banyakPaket(StackSembako S,string a,string b)
menghitung banyaknya jumlah sembako pada stack sembako
{
            int n=0;
            if(S.top>-1)
            {
                        while(S.top!=-1)
                        {
                                    if((strcmpi(S.content[S.top].jenis,a)==0 && (strcmpi(S.content[S.top].asal,b)==0)))
                                    {
                                    n++;
                                    }
                                    S.top--;
                        }
                        return n;
            }
            else
            {
                        printf("\nStack kosong");
                        return 0;
           
            }
}
jika nilai teratas >-1 maka data akan dihitung, apabila stack kosong  output "stack kosong"

Tidak ada komentar:

Posting Komentar