TUGAS KASUS DAN LATIHAN ALGORITMA PEMROGRAMAN BAB 4 (PEMILIHAN/KONTOR PROGRAM)

ASSALAMUALAIKUM WR.WB
     Kembali lagi bersama saya GEMA ANTIKA HARADI, yang kata banyak orang saya itu mahasiswa paling ganteng dan gendut di UAD.
malam ini saya akan membuat artikel yang lagi lagi berkaitan dengan tugas kuliah saya yaitu mata kuliah ALGORITMA PEMROGRAMAN yang biasa di singkat ALPRO. ada banyak sekali tugas yang akan saya kerjakan malam ini dan langsung saya UPLOAD. Langsung saja kita membahas soal soal dan langsung saya akan jawab. zzziiiaaaaappp bossquuueeehhhhh...

TUGAS KASUS 4.1 SAMPAI 4.4 HALAMAN 72 SAMPAI 83 DI  Diktat-Alpro-1.pdf

KASUS 4.1
               Tentukan bilangan terbesar antara dua bilangan bulat.
  • ANALISIS : Kita misalkan bilangan bulat yang pertama adalah A dan bilangan bulat yang kedua adalah B, jika kita memasukkan bilangan bulat A = 5 dan bilangan bulat B = 9, makan bilangan bulat yang terbesar adalah B, dikarenakan B>A atau 9>5.
  • ALGORITMA: {Menentukan nilai terbesar antara dua bilangan bulat}
  • DEKLARASI  : a, b : integer (input)
  • DESKRIPSI    : read (a,b)
  •                          if(a>b)then write ("Bilangan terbesar adalah = "a)
  •                          else write("Bilangan terbesar adalah = "b)
RAPTOR/FLOWCHART KASUS 4.1
gambar diatas adalah program dari kasus 4.1 menggunakan raptor. 

C++ KASUS 4.1

gambar diatas adalah program dari kasus 4.1 menggunakan c++.
Berikut dibawah ini adalah codesource dari kasus 4.1 menggunakan bahsa pemrograman c++
#include <iostream>
using namespace std;
class soal{
     friend ostream& operator<<(ostream&, const soal&);
     friend istream& operator>>(istream&, soal&);
private:
    int pertama, kedua;
};
istream& operator>>(istream& in, soal& masukkan)
{
    cout << "masukkan bilangan pertama : ";
    in >> masukkan.pertama;
    cout << "masukkan bilangan kedua : ";
    in >> masukkan.kedua;
}
ostream& operator<<(ostream& out, const soal& keluaran)
{
    out << "bilangan pertama adalah : " << keluaran.pertama << endl;
    out << "bilangan kedua adalah : " << keluaran.kedua<< endl;
      if (keluaran.pertama>keluaran.kedua)
    {
        cout << "Bilangan terbesar adalah :  " << keluaran.pertama << endl;
    }else
    {
        cout << "bilangan terbesar adalah : " <<keluaran.kedua << endl;
    }
}
int main () {
soal l;
cin >> l;
cout << l;
return 0;
}

 

KASUS 4.2
            Tentukan bilangan terbesar antara 3 bilangan bulat.
  • ANALISIS : Kita misalkan bilangan bulat pertama adalah "x" bilangan bulat kedua adalah "y" dan bilangan bulat ketiga adalah "z" . kita misalkan lagi nilai bilangan bulat pertama adalah x = 3 , bilangan bulat kedua adalah y = 9 , dan bilangan bulat ketiga adalah z = 6 . Maka x<y dan y>z , atau 3 < 9 , dan 6<9 . Jadi bilangan bulat terbesar adalah Z.
  • ALGORITMA : Nilai maksimum {Membaca tiga buah bilangan bulat, menentukan bilangan terbesar di antara tiga buah bilangan tersebut dan menampilkannya ke layar}
  • DEKLARASI : x, y, z : integer (input)
  • DESKRIPSI   : read(x,y,z)
  •                        : if(x>y) and (x>z) then write("Bilangan terbesar adalah = "x)
  •                          else if(y>x) and (y>z) then write("Bilangan terbesar adalah = "y)
  •                          else write ("Bilangan terbesar adalah = " z)
  •                          end if
RAPTOR/FLOWCHART KASUS 4.2

gambar diatas adalah program kasus 4.2 menggunakan raptor.

C++ KASUS 4.2



gambar diatas adalah program kasus 4.2 menggunakan C++
         Dibawah ini adalah code source kasus 4.2.
#include <iostream>
#include <string>

using namespace std;

class nilaiterbesar{

 friend ostream& operator<<(ostream&, const nilaiterbesar&);
 friend istream& operator>>(istream&, nilaiterbesar&);

public:
    void hitung();
private:
int x, y, z;
};
 istream& operator>>(istream& in, nilaiterbesar& masukan)
{
cout << "masukkan bilangan bulat pertama : ";
in >> masukan.x;
cout << "masukkan bilangan bulat kedua : ";
in >> masukan.y;
cout << "masukkan bilangan bulat ketiga : ";
in >> masukan.z;
   return in;
 };
 ostream& operator<<(ostream& out, const nilaiterbesar& keluaran){
out << "Bilangan bulat pertama adalah = " << keluaran.x << endl;
out << "Bilangan bulat kedua adalah = "<< keluaran.y << endl;
out << "Bilangan bulat ketiga adalah = " << keluaran.z << endl;
 if (keluaran.x>keluaran.y && keluaran.x>keluaran.z)
   {
      cout << "Bilangan Terbesar adalah " << keluaran.x << endl;   }
   else
   {
      if (keluaran.y>keluaran.z && keluaran.y>keluaran.x)
      {
         cout << "Bilangan terbesar adalah "<<keluaran.y << endl;      }
      else
      {
         cout << "Bilangan terbesar adalah "<<keluaran.z << endl;      }
   }
 }
int main()
{
    nilaiterbesar x;
    cin >> x;
    cout << x;
   return 0;
}



KASUS 4.3 
             Carilah akar akar persamaan kuadrat.
  • ANALISIS : Persamaan kuadrat adalah bentuk umum Ax^2+Bx+c=0, dan tentu saja A ≠ 0. Akar persamaan kuadrat diperoleh dengan rumus : x(1,2)=(-b土√(b^2-4ac))/2a. Bila b^2-4ac < 0 akan diperoleh akar imajiner. 
  • ALGORITMA : a,b,c    : integer (input) {koefisien-koefisien persamaan}
  •                            disk     : float {nilai diskriminan}
  •                            x1, x2  : float {nilai-nilai akar untuk disk>=0} 
  • DESKRIPSI    : read(a,b,c)
  •                           disk ← b*b-4*a*c
  •                          if(a=0) then write("Bukan persamaan kuadrat")
  •                          else if (disk>0) then
  •                                        x1←(-b+sqrt(disk))/2*a
  •                                        x2←(-b-sqrt(disk))/2*a
  •                                        write("Akar akarnya adalah x1 ="x1)
  •                                        write("Akar akarnya adalah x2 ="x2)
  •                          else write("Akar imajiner")
  •                          end if
  •                          write(x1,x2)
RAPTOR/FLOWCHART KASUS 4.3

 gambar diatas adalah program kasus 4.3 megunakan raptor.


C++ KASUS 4.3
gambar diatas adalah program kasus 4.3 menggunakan c++
        Dibawah ini adalah codesource kasus 4.3 menggunakan  bahasa pemrograman C++
#include <iostream>
#include <string>
#include <cmath>
using namespace std;
class rumusabc{
friend ostream& operator<<(ostream&, const rumusabc&);
friend istream& operator>>(istream&, rumusabc&);
public :
    void rumus();
private :
    float a, b, c;
    float disk;
    float x1, x2;
};
istream& operator>>(istream& in, rumusabc& masuk)
{
    cout << "Masukkan a : ";
    in >> masuk.a;
    cout << "Masukkan b : ";
    in >> masuk.b;
    cout << "Masukkan c : ";
    in >> masuk.c;
return in;
}
ostream& operator<<(ostream& out, const rumusabc& keluar)
{
    if(keluar.a==0)
    {
        out<< "Bukan persamaan kuadrat " << endl;
    }else
    {
        if(keluar.disk>0)
        {
            out << "Akar akar x1 = " << keluar.x1 << endl;
            out << "Akar akar x2 = " << keluar.x2 << endl;
        }
        else
    {
        out << "Akar imajiner " << endl;
    }
}
}
void rumusabc::rumus()
{
    disk=b*b-4*a*c;
    x1=(-b+sqrt(disk))/2*a;
    x2=(-b-sqrt(disk))/2*a;
}
int main()
{
    rumusabc y;
    cin >> y;
    y.rumus();
    cout << y;
   return 0;
}

KASUS 4.4 
             Konversikan nilai angka menjadi nilai huruf dengan ketentuan sebagi berikut :
nilai angaka 0 - 20 nilai hurufnya E, 21 - 40 nilai hurufnya D, 41 - 60 nilai hurufnya C, 61 - 80 nilai hurufnya B, 81 - 100 nilai hurufnya A.
  • ANALISIS : Dengan ketentuan yang sudah ada yaitu jika kita memasukkan sebuah Nilai angka maka Nilai angka itu akan di konversikan menjadi nilai huruf dengan ketentuan jika
    nilai angaka 0 - 20 nilai hurufnya E, 21 - 40 nilai hurufnya D, 41 - 60 nilai hurufnya C, 61 - 80 nilai hurufnya B, 81 - 100 nilai hurufnya A.Misalkan kita memasukkan nilai angka 70 maka nilai angka itu memiliki nilai huruf B.
     
  •  ALGORITMA :  Konversi nilai {Mengkonversikan nilai angka menjadi nilai huruf.}
  • DEKLARASI   : nilai : integer (input)
  •                             nilai_huruf (char)
  • DESKRIPSI      :
  •                       read(nilai)
  •                       if (nilai>0) and (nilai <=20) then nilai_huruf ← 'E'
  •                       if (nilai>20) and (nilai <=40) then nilai_huruf ← 'D'
  •                       if (nilai>40) and (nilai <=60) then nilai_huruf ← 'C'
                          if (nilai>60) and (nilai <=80) then nilai_huruf ← 'B' 
                          if (nilai>80) and (nilai <=100) then nilai_huruf ← 'A'
    end if
    write(nilai_huruf)
       
RAPTOR/FLOWCHART KASUS 4.4
 gambar diatas adalah program kasus 4.4 menggunakan raptor.


C++ KASUS 4.4
gambar diatas adalah program kasus 4.4 menggunakan bahasa C++ 
           Dibawah ini adalah codesource kasus 4.4 menggunakan bahasa pemrograman C++
#include <iostream>
#include <string>

using namespace std;

class konversi{

 friend ostream& operator<<(ostream&, const konversi&);
 friend istream& operator>>(istream&, konversi&);

public:
    void konversikan();
private:
    int nilai;
    char nilai_huruf;
};

 istream& operator>>(istream& in, konversi& masukan){
    cout << "Masukkan nilai : ";
    in >> masukan.nilai;
   return in;
 };

 ostream& operator<<(ostream& out, const konversi& keluaran){
        out << "nilainya adalah " << keluaran.nilai_huruf;
         }

void konversi::konversikan(){
    if (nilai ==0 && nilai<=20)
    {
        nilai_huruf='E';
    }else if (nilai >20 && nilai<=40)
    {
        nilai_huruf='D';
    }else if (nilai >40 && nilai<=60)
    {
        nilai_huruf='C';
    }else if (nilai >60 && nilai<=80)
    {
        nilai_huruf='B';
    }else if(nilai >80 && nilai <=100)
    {
        nilai_huruf='A';
    }
}
int main()
{
    konversi x;
    cin >> x;
    x.konversikan();
    cout << x;

   return 0;
}

KASUS 4.5
        Buatlah algoritma, flowchart , dan program untuk mengkonversi hari ke-1 adalah hari senin sampai dengan hari ke-7 adalah minggu. Misalkan dimasukkan nilai 5, outputnya adalah hari jum'at.
  • ANALISIS : dalam seminggu itu terdapat 7 hari, yaitu senin, sampai minggu . hair senin itu nilainya 1, selasa nilainya 2 sampai minggu nilainya 3, juka user memasukkan nilai 5 makan 5 itu akan menjadi hari jumat.
  • ALGORITMA :
    Algoritma menentukan_hari
    { masukan integer 1 sampai 7, akan ditentukan hari apa yang sesuai }.
    •  Deklarasihari_ke : integer;
    hari : string: 
    • Deskripsiread(hari_ke);
    case (hari_ke) of
    1 : hari
    Å 'Senin'
    2 : hari
    Å 'Selasa';
    3 : hari
    Å 'Rabu';
    4 : hari
    Å 'Kamis';
    5 : hari
    Å 'Jum''at';
    6 : hari
    Å 'Sabtu';
    else hari
    Å 'Minggu';
    endcase
    write(hari)
      
    RAPTOR/FLOWCHART KASUS 4.5 
     gambar diatas adalah program kasus 4.5 menggunakan raptor.


    C++ KASUS 4.5

     gambar diatas adalah program c++ dari kasus 4.5
    Dibawah ini adalah code source dari kasus 4.5 menggunakan c++
    #include <iostream>
    #include <conio.h>
    using namespace std;
    class Kalender {
        friend ostream& operator<<(ostream&, Kalender&);
            friend istream& operator>>(istream&, Kalender&);
    public:
        Kalender() {};
        void adalah();
    private:
        int hari_ke;
        char *hari;
    };
    void Kalender::adalah() {
        switch (hari_ke) {
        case 1: hari = "Senin"; break;
        case 2: hari = "Selasa";break;
        case 3: hari = "Rabu"; break;
        case 4: hari = "Kamis"; break;
        case 5: hari = "Jum'at";break;
        case 6: hari = "Sabtu"; break;
        default: hari = "Minggu";break;
    }
    }
    istream& operator>>(istream& in, Kalender& masukan) {
        cout << "Masukkan hari ke-";
        in >> masukan.hari_ke;
    return in;
    }
    ostream& operator<<(ostream& out, Kalender& keluaran) {
        out << "Hari ke- " << keluaran.hari_ke << " adalah "<< keluaran.hari << endl;
    return out;
    }
    int main() {
    Kalender tanggal;
    cin >> tanggal;
    tanggal.adalah();
    cout << tanggal;

    return 0;
    }





  Tugas latihan dari Diktat-Alpro-1.pdf halaman
1. Buatlah flowchart dan translasi program dari algoritma 3.2.b. di atas.
  • ANALISIS DAN ALGORITMA 
  • FLOWCHART/RAPTOR DARI SOAL DIATAS.
  
  • PROGRAM C++ DARI SOAL DIATAS
 
  
2. Sempurnakan algoritma 3.3. dengan akar imajiner berbentuk :
                                            a + bi
dengan a dan b bilangan real dan bila harga b^2-4ac<0 .
Perhatikan bahwa nilai a dan b dihitung terpisah.
Rumus menghitung nilai a :
Rumus menghitung nilai b :
Operator Overloading untuk output :
  • ANALISIS DAN ALGORITMA
\
  • PROGRAM RAPTOR DARI SOAL DIATAS.
  
  • PROGRAM C++ DARI SOAL DIATAS
 
 

 
3. Buatlah program dari algoritma 3.4. menggunakan case … of.
  • ANALISIS DAN ALGORITMA

  • PROGRAM RAPTOR SOAL DIATAS 
  •  PROGRAM C++ DARI SOAL DIATAS MENGGUNAKAN CASE ..... OF.


  • code source c++ dari soal diatas menggunakan case....of
#include <iostream>
#include <string>

using namespace std;

class konversi{
 friend ostream& operator<<(ostream&, const konversi&);
 friend istream& operator>>(istream&, konversi&);
public:
    void konversikan();
private:
    int nilai;
    char nilai_huruf;
};
 istream& operator>>(istream& in, konversi& masukan){
    cout << "Masukkan nilai : ";
    in >> masukan.nilai;
   return in;
 };
 ostream& operator<<(ostream& out, const konversi& keluaran){
        switch(keluaran.nilai_huruf)
        {
            case 1:
            out << "Nilai hurufnya E ";
            break;

            case 2:
            out << "Nilai hurufnya D ";
            break;

            case 3:
            out << "Nilai hurufnya C ";
            break;

            case 4:
            out << "Nilai hurufnya B ";
            break;

            case 5:
            out << "Nilai hurufnya A ";
            break;
        }
         }
void konversi::konversikan(){
    if (nilai ==0 && nilai<=20)
    {
        nilai_huruf=1;
    }else if (nilai >20 && nilai<=40)
    {
        nilai_huruf=2;
    }else if (nilai >40 && nilai<=60)
    {
        nilai_huruf=3;
    }else if (nilai >60 && nilai<=80)
    {
        nilai_huruf=4;
    }else if(nilai >80 && nilai <=100)
    {
        nilai_huruf=5;
    }
}
int main()
{
    konversi x;
    cin >> x;
    x.konversikan();
    cout << x;

   return 0;
}
 




4. Buatlah algoritma, flowchart dan peogram untuk mengecek apakah pemakai  memasukkan bilangan bulat atau bilangan real.
  • ANALISIS : Bilangan real adalah bilangan antara bilangan rasional dan bilangan irasional sendiri, contoh bilangan real 0, 1 , 1.34 , 1/3  dll.  Bilangan bulat adalah bilanagn yang terdiri dari bilangan negatif, nol, dan bilangan positif, contoh bilangan bulat, -1, -2, 0, 1, 4, 7, dll. jadi jika user memasukkan suatu bilangan yang bernilai 1.45 maka bilangan tersebut bisa dikatakan bilangan real, tapi jika user memasukkan bilangan yang bernilai 7 bisa dikatakan bilangan tersebut adalah bilangan bulat.
  • ALGORITMA : Algoritma menentukan bilangan bulat atau real dari input yang di masukkan.
  • DEKLARASI  : a, b : float (input)
  • DESKRIPSI    : b←floor(a) 
  •                            if(b=a)them write (a" Adalah bilangan bulat")
  •                            else write(a" Adalah bilangan real")
  •                            endif
  •                            write(a).
RAPTOR/FLOWCHART DARI SOAL LATIHAN DIATAS .
gambar diatas adalah program latihan 4 menggunakan raptor


PROGRAM LATIHAN 4 MENGGUNAKAN C++

 gambar diatas adalah program latihan 4 menggunakan c++.
Dibawah ini adalah code source latihan 4 menggunakan c++.
#include <iostream>
#include <string>
#include <cmath>

using namespace std;
class menentukan{

 friend ostream& operator<<(ostream&, const menentukan&);
 friend istream& operator>>(istream&, menentukan&);

public:
    void rumus();
private:
float a, b;

};
 istream& operator>>(istream& in, menentukan& masukan){

cout << "Masukkan bilangan : ";
in >> masukan.a;

   return in;
 };

 ostream& operator<<(ostream& out, const menentukan& keluaran){
 if (keluaran.a==keluaran.b)
   {
      out << keluaran.a<<" Adalah bilangan bulat" << endl;   }
   else
   {
      cout << keluaran.a<<" Adalah bilangan real" << endl;   }

 }

void menentukan::rumus(){
 b=floor(a);

}
int main()
{
    menentukan x;
    cin >> x;
    x.rumus();
    cout << x;

   return 0;
}
                          







Komentar

Posting Komentar