Mencari Nilai IPK

Menginputkan Jumlah dan Data Mahasiswa

Memproses data yang diinputkan

Output hasil Data Mahasiswa dan IPK


Algoritma :

     Mencari nilai IPK mahasiswa berdasarkan nilai yang diiputkan

Deklarasi
    i,n : integer
    nim, nama, fakultas  : char
    prodi, alamat : char 
 
  nilai : float
  nil 1 : string
  nil 2 : string

Deskripsi
   void mahasiswa :: masuk ( )
          for i   <--- 1 to n do
              write (i)
          read (nim)
          read (nama)
         read ( fakultas)
         read (Prodi)
         read (alamat)
     read (mhs[i].nil1)
        if mhs[i]. nil1 <---- A
                 mhs [i] nilai = 4
        else if mhs[i]. nil1 <---B
                mhs[i] nilai = 3
         else if mhs[i]. nil1 <---C
                mhs[i] nilai = 2
         else if mhs[i]. nil1 <---D
                mhs[i] nilai = 1
          else if mhs[i]. nil1 <---E
                mhs[i] nilai = 0


void mahasiswa :: proses ( )
   for  i <--- to n do
          write (nama)
           write (nim)
           write (fakultas)
           write (prodi)
           write (alamat)
           write (mhs nilai/9)




Dengan C ++ :


#include <cstdlib>
#include <iostream>

using namespace std;

class mahasiswa {
 public:

  int i,n;

   struct
   {
      char nim[5];
      char nama[15];
       string nil1;
       string nil2;
        string nil3;
        char fakultas[40];
        char prodi[20];
        char alamat[40];
      float nilai;
   } mhs[80];

 void masuk(int n);
 void proses(int n);

 };

 void mahasiswa::masuk( int n){

  // untuk inputan data terdapar parameter n untuk jumlh mhs
for(i=1; i<=n; i++)
   {  
      cout<<" Data Ke -"<<i<<" "<<endl;
      cout<<" Masukan NIM = "; cin>>mhs[i].nim;
      cout<<" Masukan Nama = "; cin>>mhs[i].nama;
      cout<<" Masukan Fakultas = "; cin>>mhs[i].fakultas;
      cout<<" Masukan Prodi = "; cin>>mhs[i].prodi;
      cout<<" Masukan Alamat = "; cin>>mhs[i].alamat;
      cout<<endl;
 
      cout<<" Masukan Nilai Akhir Algoritma dan Pemrograman 3 sks (A,B,C,D,E) = "; cin>>mhs[i].nil1;
           if(mhs[i].nil1=="A")  // kondisi  jika saat nilai A,B,C,D
      mhs[i].nilai=mhs[i].nilai+4*3;
 
         else if(mhs[i].nil1=="B")
      mhs[i].nilai=mhs[i].nilai+3*3;
 
      else if(mhs[i].nil1=="C")
      mhs[i].nilai=mhs[i].nilai+2*3;
 
             else if(mhs[i].nil1=="D")
      mhs[i].nilai=mhs[i].nilai+1*3;
 
 
      cout<<" Masukan Nilai Akhir B.inggris 3 sks (A,B,C,D) = "; cin>>mhs[i].nil2;
        if(mhs[i].nil2=="A")
      mhs[i].nilai=mhs[i].nilai+4*3;
     
      else  if(mhs[i].nil2=="B")
      mhs[i].nilai=mhs[i].nilai+3*3;
 
       else  if(mhs[i].nil2=="C")
      mhs[i].nilai=mhs[i].nilai+2*3;
 
            else  if(mhs[i].nil2=="D")
      mhs[i].nilai=mhs[i].nilai+1*3;
 

 
      cout<<" Masukan Nilai Akhir kalkullus 3 sks (A,B,C,D) = "; cin>>mhs[i].nil3;
 
        if(mhs[i].nil3=="A")
      mhs[i].nilai=mhs[i].nilai+4*3;
 
      else  if(mhs[i].nil3=="B")
      mhs[i].nilai=mhs[i].nilai+3*3;
 
 
      else  if(mhs[i].nil3=="C")
      mhs[i].nilai=mhs[i].nilai+2*3;
   
      else  if(mhs[i].nil3=="D")
      mhs[i].nilai=mhs[i].nilai+1*3;
 
 
 
 
      cout<<endl;
   }
 }

 void mahasiswa::proses(int n){ // mencetak hasil tdi setelah di kondisi
for(i=1; i<=n; i++)
   {
    cout<<" Data Ke -"<<i<<" "<<endl;
    cout<<" Nama      = "<<mhs[i].nama<<endl;
    cout<<" NIM       = "<<mhs[i].nim<<endl;
    cout<<" Fakultas  = "<<mhs[i].fakultas<<endl;
    cout<<" Prodi     = "<<mhs[i].prodi<<endl;
    cout<<" Alamat    = "<<mhs[i].alamat<<endl;
    cout<<" Nilai IPK = "<<mhs[i].nilai/9<<endl; // merupakan variable penyimpan nilai kemudian di bagi 9 untuk mencari ipk
 
 }
}

int main(int argc, char *argv[])
{
mahasiswa k;
int n;
cout<<" Masukan Jumlah Mahasiswa = ";cin>>n;
 k.masuk(n);
 k.proses(n);

system("pause");
return 0;
}


Outputnya :


Program Sortinng Dengan Metode Insertion

Dengan Dev C++:

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

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;
class Sorting {
      friend istream& operator>>(istream& in, Sorting& a);
      friend ostream& operator<<(ostream& out, Sorting& a);
public:
       void baca_data();
       void cetak_data();
       void buble_sort();
       void insertion_sort();
       void selection_sort();
private:
        void minimum(int , int, int&);
        void tukar (int&, int&);
        int data[10], n;
};
  istream& operator>>(istream& in, Sorting& a) {
    cout<<"Banyak data : ";
    in>>a.n;
    for (int i = 0; i < a.n; i++) {
    cout<<"Data ke-" <<i+1<< " : ";
    in>>a.data[i];
}
  return in;
}
  ostream& operator<<(ostream& out, Sorting& a) {
    for (int i = 0; i < a.n; i++)
    out<<a.data[i] << " ";
    out<<"\n";
  return out;
}
  void Sorting::tukar (int &a, int &b){
       int temp;
       temp = a;
       a = b;
       b = temp;
  }
  void Sorting::insertion_sort(){
       int i, j, temp;
       cout<<"Data pertama sudah ada ditangan kiri, yaitu : " << data[0] << '\n';
       for(j = 1; j < n; j++){
           temp = data[j];
           cout<<"\nData ke-" << j+1 << " yaitu " << data[j] << " diambil dari meja\n";
           cout<<"Dilakukan penggeseran elemen :\n";
       for(i = j - 1; (i >= 0) && (data[i] > temp); i--){
           cout<<"data pd posisi ke-[" << i+1 << "] digeser ke posisi [" << i+2 << "]\n";
           data[i+1] = data[i];
       }
        cout<<"Data baru masuk pada posisi ke-[" << i+2 << "]\n";
        data[i+1] = temp; //Insert key into proper position
        cout<<"Data saat ini adalah : ";
        for (int k=0; k<=j; k++) cout << data[k] << " ";
            getch();
            }
  }
int main(int argc, char** argv) {

Sorting angka;
    cin>>angka;
    angka.insertion_sort();
    cout<<"\nHasil akhir adalah : \n";
    cout<<angka;

return 0;
}

Hasil Compilenya :



Algoritma :

procedure insertion_sort(input/output data:larik; input n:integer)

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 6.4. BUATLAH ALGORITMA UNTUK MENENTUKAN NILAI MAKSIMUM DAN MINIMUM DARI N BILANGAN

 Algoritma :

  1. compile program C++nya 
  2. Masukkan bilangan pertama yang akan dimasukan 
  3. kemudian program akan menentukan bilangan minimum dan maksimum dari bilangan yang kita inputkan
  4. tekan enter untuk  mengakhirinya
Berikut adalah program C++ dari kasus diatas :





Berikut adalah outputnya :


Dan berikut inii adalah program flowchartnya :



Dan berikut adalah gambar hasil dari program flowchartnya :


KASUS 6.3. BUATLAH ALGORITMA UNTUK MENENTUKAN NILAI MAKSIMUM DARI N BILANGAN


Algoritma;

  1.  langkah pertama kita harus menjalankan atau mengcompile program
  2.  kita harus menentukan berapa banyak data yang kita inginkan
  3. lalu masukkan data yamg ada kedalamm perintah dalam program
  4. kemudian tekan enter jika akan mengetahui berapa nilai maksimumnya dari sebuah bilangan tersebut.
  5. jika sudah mengetahuinya maka tekan enter untuk mengakhiri program tersebut.
Berikut adalah program C++ dari kasus  diatas:
 



Berikut adalah hasil output dari program diatas:


dan berikut adalah program flowchart dari program diatas :



Dan berikut adalah hasil outputnya :

SLIDE PERTEMUAN 7 KASUS 6 C++

Kasus 6.1
Program :

#include <iostream>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

class HitungRata{
      friend ostream& operator<<(ostream&, HitungRata&);
      friend istream& operator>>(istream&, HitungRata&);
public:
       float rata();
private:
        int n;
        int A[20];
        };
        istream& operator>>(istream& in,HitungRata& a){
                 cout<<"Banyaknya data : ";
                 in>>a.n;
                 for(int i=0;i<a.n;i++){
                         cout<<"Masukkan data ke-: "<<i+1<<">";
                 in>>a.A[i];
                 }
        return in;
        }
float HitungRata::rata(){
      float total=0;
      for(int i=0;i<n;i++)total=total+A[i];
      return(total/n);
      }
     
      ostream& operator<<(ostream& out,HitungRata& a){
               out<<"Rata-rata dari "<<a.n<<" bilangan adalah : "<<a.rata()<<endl;
      return out;
      }
     

main()
{
      HitungRata run;
      cin>>run;
      cout<<run;
    return 0
;
}

Outputnya :



Kasus 6.2
Program :

#include <iostream>
#include <math.h>
using namespace std;

class HitungStatistik{
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);

 float rata();
 float STD();

 long sqr(int n) { return(n*n);}
 int n;
 int A[20];
};

istream& operator>>(istream& in, HitungStatistik& a)
{
 cout<<"Banyaknya data : ";
 cin>>a.n;
 for (int i = 0; i < a.n; i++)
    {
  cout<<"Masukan data ke- :"<<i+1<<">";
  cin>>a.A[i];
}
return in;
 }
 float HitungStatistik::rata()
 {
 float total=0;
 for (int i = 0; i<n; i++) total = total + A[i];
 return(total/n);
 }

 float HitungStatistik::STD ()
 { float rerata = rata();
 float jumlah=0.0;
 for (int i = 0; i<n; i++)
 jumlah = jumlah + sqr(A[i] - rerata);
 return(sqrt (jumlah/(n-1)));
 }
 ostream& operator<<(ostream& out, HitungStatistik& a) {
 cout << "Rata-rata dari " << a.n
 << " bilangan adalah : " << a.rata() << endl;
 cout << "Standar deviasi= " << a.STD();
 return out;
 }

 main() {
 HitungStatistik run;
 cin >> run;
 cout << run<<endl;
 return 0;
 }
Outputnya :


Kasus 6.3
Program :

#include <iostream>
 #include <math.h>
 using namespace std;
 class HitungStatistik {
 friend ostream& operator<<(ostream&, HitungStatistik&);
 friend istream& operator>>(istream&, HitungStatistik&);
 public:
 int maksimum();
 private:
 int maksimum2(int, int);
 int n; // banyaknya data
 int A[20]; // array untuk menyimpan data
 };

 istream& operator>>(istream& in, HitungStatistik& a)
 {
 cout << "Banyaknya data : ";
 in >> a.n;
 for (int i = 0; i < a.n; i++)
 {
 cout << "Data ke- : " << i+1 << " > ";
 in >> a.A[i];
 }
 return in;
 }

 int HitungStatistik::maksimum2(int a, int b)
 { if (a>b) return(a);
 else return(b);
 }

 int HitungStatistik::maksimum()
 { int temp = A[0];
 for (int i = 1; i<n; i++)
 temp = maksimum2(temp, A[i]);
 return(temp);
 }

 ostream& operator<<(ostream& out, HitungStatistik& a) {
 out << "Nilai terbesar: " << a.maksimum();
 return out;
 }

 main() {
 HitungStatistik run;
 cin >> run;
 cout << run;
 return 0;
 }

Outputnya :


Kasus 6.4
Program :

#include <iostream>
#include <math.h>

/* run this program using the console pauser or add your own getch, system("pause") or input loop */
using namespace std;

class HitungStatistik {
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
public:
void maks_min();
private:
int m1, m2; // m1 untuk maksimum, m2 untuk min
int n; // banyaknya data
int A[20]; // array untuk menyimpan data
};

istream& operator>>(istream& in, HitungStatistik& a)
{
cout << "Banyaknya data : ";
in >> a.n;
for (int i = 0; i < a.n; i++)
{
cout << "Data ke- : " << i+1 << " > ";
in >> a.A[i];
}
return in;
}

void HitungStatistik::maks_min()
{ m1 = m2 = A[0];
for (int i=1; i<n; i++)
{
if (A[i] > m1) m1 = A[i];
if (A[i] < m2) m2 = A[i];
}
}

ostream& operator<<(ostream& out, HitungStatistik& a) {
a.maks_min();
out << "Nilai terbesar : " << a.m1 << endl;
out << "Nilai terkecil : " << a.m2;
return out;
}

main() {
HitungStatistik run;
cin >> run;
return 0;
}

Outputnya :



Kasus 6.5
Program :

#include <cstdlib>
#include <iostream>
#include <math.h>
using namespace std;

class HitungStatistik {
friend ostream& operator<<(ostream&, HitungStatistik&);
friend istream& operator>>(istream&, HitungStatistik&);
public:
HitungStatistik();
void hitung_modus();
private:
void maksimum();
void frekuensi();
int maks, item;
int n;
int A[20];
int f[11];
};

HitungStatistik::HitungStatistik()
{ for (int i=0; i<20; i++) f[i] = 0; }

istream& operator>>(istream& in, HitungStatistik& a) {
cout << "Banyaknya data : ";
cin >> a.n;
for (int i = 0; i < a.n; i++) {
cout << "Data ke- : " << i+1 << " > ";
cin >> a.A[i];
}
return in;
}

void HitungStatistik::maksimum()
{
maks = f[0];
item = 1;
for (int i=0; i<n; i++)
if (f[i] > maks) {
maks = f[i];
item = i;
}
cout << "Modus = " << item;
}

void HitungStatistik::frekuensi()
{
for (int i=1; i<n; i++) ++f[A[i]];
}

void HitungStatistik::hitung_modus() {
cout << "Frekuensi running\n";
frekuensi();
maksimum();
}

ostream& operator<<(ostream& out, HitungStatistik& a) {
cout << "Mulai ...\n";
a.hitung_modus();
cout << "Nilai modus : " << a.item<endl;
return out;
}

main() {
HitungStatistik run;
cin >> run;
cout << run<<endl;
system("pause");
return 0;
}

Outputnya :



Kasus 6.6
Program :

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

using namespace std;

class Palindrom {
friend ostream& operator<<(ostream&, Palindrom&);
friend istream& operator>>(istream&, Palindrom&);
public:
int cek_palindrom();
private:
char *s;
};
ostream& operator<<(ostream& out, Palindrom& a) {
if (a.cek_palindrom())
cout << a.s << " adalah palindrom";
else out << a.s << " bukan palindrom";
return out;
};
istream& operator>>(istream& in, Palindrom& a) {
cout << "Masukkan sebuah kalimat : ";
cin >> a.s;
return in;
};

int Palindrom::cek_palindrom()
{ int i, pj;
pj = strlen(s);
for (i=0; i<=pj/2 ;i++)
if (s[i] != s[pj-i-1]) return 0;
return 1;
}

main() {
Palindrom kata;
cin >> kata;
cout << kata;
getch();
return 0;
}

Outpute :



PROBLEM SOLVING 538

Tugas Ebok 538 :

MASALAH
Membentuk string yang berisi huruf kapital semua yang ditemukan dalam string lain.
ANALISIS
Sama seperti dalam masalah menghitung kejadian dari huruf tertentu dalam sebuah string, rekursi akan memungkinkan kita untuk memecahkan masalah ini dengan hanya bekerja apa yang harus dilakukan dengan
huruf pertama string dan kemudian menggabungkan pengolahan ini dengan penanganan panggilan rekursif
sisa string. Misalnya, jika string tersebut adalah "Franklin Delano
Roosevelt ", menemukan huruf di" franklin Delano Roosevelt "akan memberi kita
string "DR". Ini adalah masalah sederhana untuk menggabungkan string ini dengan modal 'F' untuk membentuk
hasil penuh. Tentu saja, string sederhana di mana untuk mencari sesuatu adalah kosong
string, jadi memeriksa kasus sederhana ini memberikan kita kondisi terminating diperlukan

algoritma
1. jika str adalah string kosong
2. Toko string kosong di topi (string tanpa huruf tidak memiliki ibukota).
lain
3. jika huruf awal dari str adalah huruf kapital
4. Simpan dalam topi surat ini dan huruf kapital dari sisa str.
lain
5. Simpan dalam topi huruf kapital dari sisa str.



 Program :

#include <iostream>
#include <string.h>
#include <conio.h>
using namespace std;
int main()
{
int i,jum;

char string[100];

cout<<"Masukan sembarang kalimat:\n";
cin.getline(string,100); //membaca spasi

//mengubah huruf awal menjadi huruf kapital
if((string[0]>='a')&& (string[0]<='z'))
string[0]=(char)string[0]-32;


//mengubah huruf setelah huruf awal menjadi huruf kecil
jum=1;int d=0;
for(i=0;i<(int)strlen(string);i++)
{
if(i%2==0){
if((string[jum]>='A')&& (string[jum]<='Z'))
string[jum]=(char)string[jum]+32;
jum++;}
}

//mengubah huruf setelah spasi menjadi huruf kapital
for(i=1;string[i]!='\0';i++)
{
if(string[i]==' ') d++;
if((i-1-d)%2==0)
{
if(string[i+1]>='a' && string[i+1]<='z')
string[i+1]=(char)(string[i+1]-32);
}
}


cout<<"Hasil Akhir : "<<string<<endl;
getch();
}

Outputnya :