Selasa, 07 Juni 2016

Membuat program menghitung KHS menggunakan STRUCT

asallamualaikum Wr.Wb nah kali ini saya akan membuat program bagaimana cara menghitung IPK semoga dapat membantu ya.
sebelum saya tunjukan program saya akan menunjukan algoritmanya

Algoritma :

Deklarasi : char
nama[50] : char
nim[15] : char
jurusan[50] : char
makul[20] : char
sks : integer
i,jml,x : integer

Deskripsi

struct biodata
{ char nama[50],nim[15],jurusan[50];
  }mhs;
struct nilai
{char makul[20];
 float tugas,kuis,mid,uas,bobot;
 int sks;
 float na;
 } nil[100];

for(i=0;i<jml;i++)
if (nil[i].na>=85)  = A          then  nil[i].bobot=4*nil[i].sks
else if (nil[i].na>70 && nil[i].na<=85) then  nil[i].bobot=3*nil[i].sks
else if (nil[i].na>55 && nil[i].na<=70) then  nil[i].bobot=2*nil[i].sks
else if (nil[i].na>40 && nil[i].na<=55) then  nil[i].bobot=1*nil[i].sks
else if (nil[i].na<=40)         then  nil[i].bobot=0*nil[i].sks
end if
end for
jsks=jsks+nil[i].sks
ipk+=nil[i].bobot
for(i=0;i<jml;i++)
nil[i].sks
nil[i].na
end for

nah di atas itu adalah algoritma dari program yang akan saya tumkukan.
progam yang akan saya tunjukan ber basis C++ ceck it dot.

Program


#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <iomanip>
using namespace std;


struct biodata
{ char nama[50],nim[15],jurusan[50];
  }mhs;


struct nilai
{char makul[20];
 float tugas,kuis,mid,uas,bobot;
 int sks;
 float na;
 } nil[100];


main()
{
int i,jml,x;
float ipk,jsks=0;

cout<<"===============================================================\n";
cout<<"\t\t       KHS MHASISWA \n";
cout<<"===============================================================\n";
cout<<"Nama \t\t: "; gets(mhs.nama);
cout<<"NIM  \t\t: "; gets(mhs.nim);
cout<<"Jurusan \t: ";gets(mhs.jurusan);

cout<<"\n________________________________________________________________";
input:
cout<<"\nBanyak Mata Kuliah = ";cin>>jml;
cout<<endl;
cout<<"\n_________________________________________________________________";

      for(i=0;i<jml;i++)
                {
                                 cout<<"\nMATA KULIAH "<<i+1<<" \t: ";gets(nil[i].makul);
          cout<<"\nSKS \t\t: ";cin>>nil[i].sks;
          cout<<"\nNilai TUGAS \t: ";cin>>nil[i].tugas;
          cout<<"\nNilai KUIS \t: ";cin>>nil[i].kuis;
          cout<<"\nNilai MID \t: ";cin>>nil[i].mid;
          cout<<"\nNilai UAS \t: ";cin>>nil[i].uas;

          nil[i].na=(0.1*nil[i].tugas)+(0.2*nil[i].kuis)+(0.3*nil[i].mid)+
                                                (0.4*nil[i].uas);


          cout<<"_____________________________";
          cout<<"\nNilai Akhir \t: "<<nil[i].na;
          cout<<"\nNilai Huruf \t: ";
                if (nil[i].na>=85)
                                                {cout<<"A";
               nil[i].bobot=4*nil[i].sks;}
                                                else if (nil[i].na>70 && nil[i].na<=85)
                                                {cout<<"B";
                                                                nil[i].bobot=3*nil[i].sks;}
                                                else if (nil[i].na>55 && nil[i].na<=70)
                                                {cout<<"C";
                                                                nil[i].bobot=2*nil[i].sks;}
                                                else if (nil[i].na>40 && nil[i].na<=55)
            {cout<<"D";
                                                                nil[i].bobot=1*nil[i].sks;}
                                                else if (nil[i].na<=40)
            {cout<<"E";
                                                                nil[i].bobot=0*nil[i].sks;}

                jsks=jsks+nil[i].sks;
                ipk+=nil[i].bobot;
          cout<<endl;
          cout<<"_____________________________\n";
      }
     
 cout<<"\n___________________________________________________________________";
cout<<endl;
cout<<"_______________________________________________________________"<<endl;

  cout<<"|          Mata kuliah                  SKS    NILAI    MUTU  |"<<endl;

  cout<<"|_____________________________________________________________|"<<endl;
 
   for(i=0;i<jml;i++)
                {

  cout<<"| Matakuliah "<<i<<"                          "<<"      "<< nil[i].sks<<"        "<< nil[i].na<<"    |"<<endl;

    }

  cout<<"|_____________________________________________________________|"<<endl;

  cout<<"|            Jumlah :                   "<<jsks<<"               "<<"    |"<<endl;

  cout<<"|_____________________________________________________________|"<<endl;




cout<<"\n\t\tNama Mahasiswa \t: "<<mhs.nama;
cout<<"\n\t\tNIM            \t: "<<mhs.nim;
cout<<"\n\t\tJurusan \t: "<<mhs.jurusan;
cout<<"\n\t\tJumlah SKS \t: "<<jsks;
cout<<"\n\t\tIPK anda \t: "<<ipk/jsks;
cout<<endl;
cout<<"\n___________________________________________________________________";
cout<<endl;


getch();}

hasil runningan:



Senin, 16 Mei 2016

Tugas Insertion Sort

- Permasalahan
Bagaimana cara kita supaya dapat mengurutkan angka dengan menggunakan cara insertion sort. Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan.

- Analisi
 Insertion sort adalah sebuah algoritma pengurutan yang membandingkan dua elemen data pertama, mengurutkannya, kemudian mengecek elemen data berikutnya satu persatu dan membandingkannya dengan elemen data yang telah diurutkan.
 
contoh pengerjaan :
 
4  7  6  5  8
4  9  7  6  5  8
4  7  9  6  5  8
4  6  7  9  5  8
4  5  6  7  9  8
4  5  6  7  8  9

- Input dan Output

    input = 9  4  7  6  5  8
    output = 4  5  6  7  8  9
- Algoritma
Deklarasi
a,c,d, e, f, g        : integer
temp                   : integer
data[]                  : integer
Deskripsi
 
for(f=1;f<=a;f++)
temp <= data[f]
 g <= f-1
while(data[g]>temp && g>=0)
data[j+1] <- data[ j ]
data[j+1] <- temp
end while
end for
end
 
 
- Program
 

#include <iostream>
#include <conio.h>

using namespace std;

int data[10],data2[10];
int a;
void ganti(int c, int d){
int e;
e=data[d];
data[d]=data[c];
data[c]=e;}
void sort(){
int temp,f,g;
for(f=1;f<=a;f++){
temp = data[f];
g = f -1;
while(data[g]>temp && g>=0){
data[g+1] = data[g];
g--;}
data[g+1] = temp;}
}
int main(){
cout<<"  "<<endl;
cout<<"banyak data : ";cin>>a;
cout<<"inputkan angka  "<<endl;
for(int f=1;f<=a;f++){
cout<<"input "<<f<<" : ";
cin>>data[f];
data2[f]=data[f];
}
sort();
cout<<"Data Inserting Sort : ";
for(int f=1; f<=a; f++){
cout<<" "<<data[f];}
getch();
return 0;
}

Blog Ahmad Rizaldo
 
Blog Awang Ginanjar
 

Kasus 8.7 Alpro

Algoritma :
Deklarasi
       i, j, p : integer
Deskripsi
       p <-- data[(L+R) div 2]
       i <-- L
      j <--R
     { mulai membuat partisi }
      while (i<=j) do
               while (data[i] < p) do i <-- i+1 endwhile
               while (data[j] > p) do j <-- j -1 endwhile
         if (i<=j) then
              tukar(data[i], data[j])
              i <-- i+1
              j <-- j-1
        endif
     endwhile
     if (L < j) then quick_sort(data,L,j) endif
     if (i < R) then quick_sort(data,i,R) endif

Kasus 8.5 Alpro

Algoritma :
Deklarasi
       i, t : integer
Deskripsi
      for i <-- 1 to n do
            minimum(A, i, n, t);
            tukar(A[i], A[t]); {tukar tempat elemen saat ini j dengan elemen terkecil yang ditemukan t}
    endfor

Kasus 8.4 Alpro

Algoritma :
Deklarasi
       k, j, temp : integer
Deskripsi
       for k <-- 2 to n do
            temp := data [k];
            j := k-1;
       while (temp <= data [j]) and (j > 1) do
               data [j+1] := data [j];
               j := j-1;
       endwhile
       if (temp >= data [j]) then data [j+1] := temp
       else
             data [j+1] := data [j];
             data [j] := temp;
        endif
   endfor

Kasus 8.3 Alpro

Algoritma :
Deklarasi
       larik = array [1..100] of integer
       i, a : byte
       k : larik
       j, bantu : integer
Deskripsi
       for i <-- 1 to n-1 do
          for j <-- i+1 to n do
             if x[i] > x[j] then
                tukar(x[i], x[j])
             endif
          endfor
      endfor

Kasus 8.2 Alpro

Algoritma :
Deklarasi
       ketemu : boolean
       i, middle : integer
Deskripsi
       ketemu <-- false
       while (low <= high) and (not ketemu) do
           middle <-- (low+high) div 2
           if (kunci = aray[middle]) then ketemu <-- true { data pencarian = data di tengah }
           else if (kunci < aray[middle]) then high <-- middle – 1 {data akan dicari lagi di sebelah kiri}
           else low <-- middle + 1 {data akan dicari lagi di sebelah kanan}
           endif
       endwhile
       if ketemu then pencarianBiner := middle
       else pencarianBiner := -1;
      endif