Praktikum 5 SA :

#include <cstdlib>
#include <iostream>

using namespace std;
class knapsack{
      public:
             void hitung();
             void inisialisasi();
             void output();
      private:
              int w;
              int P[20];
              int X[20];
              int W[20];
              int TotalUntung;
              int n;
              double kapasitas;
              bool MasihMuatUtuh;
              };
             
             
void knapsack::inisialisasi(){
      cout<<"masukkan angka :";
                  cin>>n;
      cout<<"batas =";
      cin>>w;
              for (int i=0; i<n; i++){
                 cout<<"weight ke - "<<i<<":";
                 cin>>W[i];
                 }
                
                 for (int i=0; i<n; i++){
                 cout<<"profit ke - "<<i<<":";
                 cin>>P[i];
                 }
 
                
     }
    
    
void knapsack::hitung(){
    
    
     for (int i=1; i<n; i++){
        X[i]=0;
        }
       
        kapasitas=w;
        TotalUntung=0;
        int i=1;
        MasihMuatUtuh=true;
       
       
     while (i<=n && MasihMuatUtuh==true) {
           if (W[i]<=kapasitas){
              X[i]=1;
              TotalUntung=TotalUntung + P[i];
              kapasitas=kapasitas - W[i];
              i=i+1;
              }
           else{
           MasihMuatUtuh=false;
           }
          
           }
           if (i<=n){
                     X[i]=kapasitas/W[i];
                     TotalUntung=TotalUntung + X[i]*P[i];
                     }
                     }
void knapsack::output(){
     cout<<"untung ="<<TotalUntung;
     }
       
int main(int argc, char *argv[])
{
    knapsack z;
    z.inisialisasi();
    z.hitung();
    z.output();
    system("PAUSE");
    return EXIT_SUCCESS;
}