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">99>
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”. 99>
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