Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Nama : Andik kurniawan
- Kelas : 2B
- NPM : 11.1.03.02.0042
- Matkul : Struktur Data
- void init(stacksembako *s)
- {
- (*s).top=-1;
- (*s).totalberat=0;
- (*s).nelemen=0;
- }
- Prosedur ini berfungsi untuk menginisialisasi 1.(*s).top =- 1 : jumlah max yang sudah ditentukan untuk -1 untuk nilai terbawah.
- 2.(*s).totalberat=0 : menjelaskan nilai total berat dimulai dari 0.
- 3.(*).nelemen=0 : menjelaskan nilai nelemen dimulai dari 0.
- void inputsembako(sembako *x, string a, string b, float c)
- {
- strcpy((*x).jenis,a);
- strcpy((*x).asal,b);
- (*x).berat=c;
- }
- Prosedur inputsembako adalah prosedur yang digunakan untuk memasukkan data yang diinput dengan rumus (sembako *x, string a, string b, float c)
- strcpy((*x).string,variable); untuk mengambil string, x.berat=c; untuk memberikan nilai pada berat.
- Tanda * di gunakan untuk mengakses ataupun mengedit semua nilai yang ada dalam struktur
- void push(stacksembako *s, sembako x)
- {
- if((*s).top<max-1)
- {
- (*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("\nStadk Penuh...");
- }
- Prosedur push di gunakan untuk mengambil semua elemen yang sudah dimasukkan kedalam struktur sembako
- Stacksemabako *s digunakan untuk akses ke dalam struktur stacksembako,
- Sembako x di gunakan untuk akses ke dalam struktur sembako.
- Top++ digunakan untuk menambah tumpukan,
- Nelemen++ digunakan untuk menampung semua elemen yang sudah diinput.
- void show(stacksembako s)
- {
- if(s.top>-1)
- {
- while(s.top!=-1)
- {
- printf("\n\nJenis Barang : s",s.content[s.top].jenis);
- printf("\nAsal Barang : %s",s.content[s.top].asal);
- printf("\nBerat : %0.2f",s.content[s.top].berat);
- s.top--;
- }
- printf("\n---------------------------------------------");
- printf("\n\nTotal Berat : %0.2f kg",s.totalberat);
- }
- else
- printf("\nStack Kosong");
- }
- Prosedur show di gunakan untuk menampilkan nilai yang ada di dalam stacksembako s, s digunakan untuk akses ke dalam nilai stacksembako
- %s digunakan untuk memanggil string sedangkan %0.2f digunakan untuk memanggil float dengan batasan 2 angka di belakang koma.
- void pop(stacksembako *s)
- {
- 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.asal);
- printf("\nJenis : %s",x.jenis);
- printf("\nBerat : %0.2f",x.berat);
- }
- else
- {
- printf("\nStack Kosong");
- }
- }
- Prosedur pop digunakan untuk mengambil nilai dari stack teratas stack dengan rumus
- 1.nelemen- - : untuk mengurangi jumlah elemen
- 2.top- - : untuk mengambil dilai teratas dari stack
- float rerata(stacksembako s)
- {
- return s.totalberat/s.nelemen;
- }
- Fungsi rerata untuk mencari nilai rata dari semua nilai berat yang sudah dimasukkan.
- int banyakpaket(stacksembako s, string a, string b)
- {
- 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;
- }
- }
- Fungsi banyak paket digunakan untuk mencari paket yang kita inginkan dengan memasukkan jenis dan asal paket,
- Jika jenis dan asal paket di elemen top dan elemen di bawahnya sama maka akan terjadi penambahan (n++),
- Jika tidak sama maka top akan di buang (s.top--) dan elemen dibawahnya menjadi top dan akan di periksa lagi
Advertisement
Add Comment
Please, Sign In to add comment