Rabu, 24 April 2013

Refleksi minggu-7 Alpro

Pada pertemuan ke-7, mata kuliah Algoritma pemrograman memasuki materi array. Minggu-7 adalah minggu penutup sebelum UTS.

Minggu ini kami semua sangat kelelahan karena berbagai tugas yang ada, menyebabkan kegiatan belajar mengajar terlihat begitu pasif. Itu sebabnya kami merasa mengecawakan dosen untuk perkuliahan minggu ini.

Seperti yang kita ketahui, Array adalah data terstruktur yang terdiri dari sejumlah komponen yang mempunyai tipe data yang sama. Variabel array dapat di golongkan menjadi tiga yaitu array berdimensi satu, array berdimensi dua, dan array berdimensi tiga.

Menghadapi UTS, dosen memberikan berbagai arahan dan semangat2 tertentu untuk bisa berhasil dalam UTS. Dosen memberi tahu juga sedikit kisi2 dari UTS yang harus kami hadapi nanti. Praktikum minggu ini pun sudah mencapai batas akhir sebelum uts. karena saat UTS praktikum tidak akan diadakan, artinya tidak akan ada praktikum untuk 2 mingggu kedepan.

Ini adalah refleksi terakhir sebelum UTS. karena itu saya minta doanya agar bisa selamat melewati UTS ini. Aaminnn..

Sampai jumpa di refleksi berikutnya!


Raptor "deret aritmatika going down"

Ini adalah raptor dari menentukan suatu deret aritmatika dengan going-down rekursif.Going down rekursif disini berarti parameter menurun nilainya hingga kasusnya berhenti. lalu dari seluruh deret dilakukan penjumlahan.

Contoh:
nilai awal= 2
beda= 1
banyak deret= 5
maka:
6+5+4+3+2=20

Berikut raptornya:

main program



















going down rekursif



















Raptor "Deret aritmatika going up"

Ini adalah raptor dari menentukan suatu deret aritmatika dengan going-up rekursif.Going up rekursif disini berarti parameter menaik nilainya hingga kasusnya berhenti. lalu dari seluruh deret dilakukan penjumlahan.

Contoh:
nilai awal= 2
beda= 1
banyak deret= 5
maka:
2+3+4+5+6=20

Berikut raptornya:
main program




















going up rekursif


















Selasa, 23 April 2013

Raptor menentukan nilai faktorial dengan going down rekursif

Ini adalah raptor dari menentukan nilai faktorial dengan going-down rekursif.
Berbeda dengan going up yg sebelumnya saya posting,
Going down rekursif disini berarti parameter menurun nilainya hingga kasusnya berhenti.
Contoh:
5!
maka:
5!=5x4x3x2x1=120

Berikut raptornya:
Main program


















Going down rekursif

Raptor menentukan nilai faktorial dengan going-up rekursif

Ini adalah raptor dari menentukan nilai faktoria dengan going-up rekursif.
Going up rekursif disini berarti parameter menaik nilainya hingga kasusnya berhenti.
Contoh:
5!
maka:
5!=1x2x3x4x5=120

Berikut raptornya:

Main program



















going up faktorial

Kasus alpro "Menentukan bil. genap dan ganjil, dan menjumlahkannya"

Ini adlaah raptor menentukan bil. genap dan ganjil, dan menjumlahkan masing2 dari genap dan ganjil.
Contoh:
Banyak data=5
Data-1= 3
Data-2=4
Data-3=7
Data-4=2
Data-5= 1

Bilangan genap: 4, 2. Hasil= 4+2=6
Bilangan ganjil: 3,7,1. Hasil= 3+7+1=11

Ini adalah raptornya:

main program




















ganjil_genap(proses)


Alpro, "C++ nilai maksimum dan minimum rekursif"

#include <cstdlib>
#include <iostream> 
using namespace std;
class maxmin
  {      
   public:             
          maxmin();             
          int proses(int n,int max,int min,int jumlah);         
   private:              
          int n, max, min, jumlah, x;
  };

maxmin::maxmin()
{
cout<<"menampilkan maximum, minimum, dan jumlah sejumlah n        bilangan "<<endl;
}

int maxmin::proses(int n, int max, int min, int jumlah)
{
if(n==0)
  {cout<<"NILAI MAKSIMUM : "<<max<<endl;
   cout<<"NILAI MINIMUM : "<<min<<endl;
   cout<<"jumlah seluruh deret :"<<jumlah<<endl;
   return 0;
  }    

else
 {
   cout<<"masukkan bilangan :";cin>>x;
   jumlah+=x;

   if(x<min)
   {
      min=x;
   }         

   if(x>max)
   {
      max=x;
   }
    return proses(n-1,max,min,jumlah);
 }    


int main(int argc, char *argv[])
{
maxmin x;
x.proses(5,1,1,0);
system("PAUSE");

return EXIT_SUCCESS;
}

C++ nilai maksimum dan minimum rekursif

Studi kasus "Raptor Mencari huruf kapital dalam string yang di inputkan dengan rekursif"

Berikut ini adalah gambar flowchart  dari sebuah studi kasus yang kelompok kami dapatkan dari bab 9 pada ebook untuk alpro.
Kasus yang ada disini adalah bagaimana cara kita untuk mendeteksi/mencari suatu huruf kapital dalam sebuah string yang di inputkan.
Disini diperlukan suatu fungsi dalam raptor, yaitu fungsi length_of yang mengembalikan jumlah karakter dalam sebuah variabel string (juga jumlah elemen dengan sebuah array), contoh : Nama ← “ejha” diikuti dengan Length_Of (Nama) adalah 4.
Berikut adalah raptornya, dengan cara rekursif.


Main program 
konversi(a,i,in,string)
                                    

Sabtu, 20 April 2013

Refleksi Minggu-6 Alpro

Pada pertemuan ke-6, mata kuliah Algoritma pemrograman memasuki materi rekursif(lagi) namun kini secara lebih mendalam lagi dari minggu lalu.

Seperti yang telah diceritakan semuanya bahwa pada minggu-6 kami ditantang dosen untuk mengerjakan kuis lagi. Kelas pun menjadi tenang dan mengerjakan soal kuis dengan prosedur yang sama seperti kemarin. Alhamdulillah saya bisa selesai tepat pada waktunya yang hanya 15 menit.

Dosen pun mulai mendalami rekursif kepada kami dengan memberi berbagai contoh dan cerita. Ditengah perkuliahan kami diminta untuk menyelesaikan 3 study kasus dalam ebook alpro. Kami pun mulai mengerjakan dengan serius, namun hingga akhir perkuliahan hanya dapat menyelesaikan 2 studi kasus. sehingga dosen kami memberi waktu hingga pukul 4 sore untuk menyelesaikan semuanya dan mengirimkan hasil kerja ke emailnya. Begitulah hingga perkuliahan minggu 6 berakhir.

Hasil dari studi kasus akan saya posting pada postingan berikutnya, karena kini kami benar2 disibukkan dengan tugas pemrograman web.Praktikum dan mentoring minggu ini pun berjalan lancar seperti minggu sebelumnya.

Demikianlah refleksi singkat saya...
Sampai ketemu di minggu depan, yang merupakan minggu akhir sebelum UTS. (^o^)

Selasa, 16 April 2013

Refleksi minggu-5 Alpro

Pada pertemuan ke-5, mata kuliah Algoritma pemrograman memasuki materi sub-program.

Sub program dalam suatu pemrograman dapat berupa function. Function sendiri adalah sebuah blok fungsi yang memiliki tugas tersendiri untuk membantu fungsi main, dan mengembalikan "hasil kerja" dari fungsi kepada main.

Pada pertemuan kali ini, kami diberikan kuis sebagai evaluasi untuk pertemuan pertama sampai pada pertemuan ke-empat. Dengan deg-degan kami mengirimkan hasil dari kuis langsung pada email dosen, hanya dalam waktu 15 menit. Dan sejujurnya itu tidak cukup. Tapi mau bagaimana lagi..

Setelah mengirimkan hasil kuis yang belum selesai, kami masuk pada materi sub-program dan rekursif. dimana rekursif sendiri adalah sebuah fungsi yang digunakan dalam suatu program, yang dapat memanggil dirinya sendiri selama masih diperlukan. bisa dibilang seperti pengganti dari loop.

Dosen pun menantang kami untuk diberikan kuis lagi pada minggu depannya. dan dengan gembiranya kami menyambut tantangan dari dosen. Challenge accepted! . Selesai kuliah saya pun langsung menyelesaikan kuis yang tadi belum selesai. Hasilnya bisa dilihat di sini

Praktikum pun berjalan lancar dan baik2 saja....
Masalah hanya muncul pada saat mentoring, karena apa yang saya tanyakan tidak sesuai dengan jawaban dari mentor kami... sepertinya saya harus lebih mendesak mereka... hahaha..

Yaahh....
Demikian untuk refleksi kali ini!

Wassalam!

Kamis, 11 April 2013

Program C++ Relasi himpunan dengan inputan.

Ini adalah program C++ yang dapat melakukan pembentukan suatu himpunan baru dari dua buah himpunan yang datanya harus di inputkan. Dibawah ini ada 4 himpunan, dua himpunan pertama direlasikan tanpa ada syarat, yang berarti tiap satu elemen dari himpunan pertama direlasikan dengan himpunan kedua(A,B). dua himpunan berikutnya direlasikan dengan syarat elemen dari anggota himpunan ketiga yang habis membagi anggota himpunan keempat.(C,D) Sama seperti postingan sebelumnya, hanya saja, yang ini menggunakan inputan. :)
Berikut programnya:

#include <iostream>
using namespace std;

int main() {

string a[5];
string b[5];

int c[5];
int d[5];

cout << "Masukkan himpunan a (2) : \n";
for(int n=0; n<2; n++) {
cin >> a[n];
}

cout << "Masukkan himpunan b (3) : \n";
for(int m=0; m<3; m++) {
cin >> b[m];
}

cout<<"Hasil penggabungan a dan b :"<<endl<<" { ";
for(int i=0; i<2; i++) {
for(int j=0; j<3; j++) {
cout << "{"<<a[i]<<","<<b[j]<<")";
}
}

cout<<" }"<<endl;


cout << "\nMasukkan anggota himpunan c (angka) : \n" ;
for(int x=0; x<3; x++) {
cin>>c[x];
}
cout << "Masukkan anggota himpunan d (angka) : \n";
for(int y=0; y<5; y++){
cin>>d[y];
}
cout << "Hasil himpunan c habis membagi d : {";
for(int k=0; k<3; k++) {
for(int l=0; l<5; l++) 
if(d[l] % c[k] == 0) {
cout<<"("<< c[k]<< ", " << d[l] << "), ";}
}



cout << "}";

system("PAUSE");
return EXIT_SUCCESS;
}

Program C++ Relasi Himpunan.

Ini adalah program C++ yang dapat melakukan pembentukan suatu himpunan baru dari dua buah himpunan yang telah memiliki data, yang berarti tanpa inputan, dengan syarat tertentu. dibawah ini ada 4 himpunan, dua himpunan pertama direlasikan tanpa ada syarat, yang berarti tiap satu elemen dari himpunan pertama direlasikan dengan himpunan kedua(A,B). dua himpunan berikutnya direlasikan dengan syarat elemen dari anggota himpunan ketiga yang habis membagi anggota himpunan keempat.(C,D)

Berikut programnya:

#include <iostream>
using namespace std;

int main() {

string a[] = {"changmin", "jaejoong"};
string b[] = {"f8291", "n4810", "b0637"};

int c[] = {2, 3, 4};
int d[] = {2, 4, 8, 10, 12};

cout << "Hasil penggabungan a dan b :"<<endl<<"{ ";
for(int i=0; i<2; i++)
{for(int j=0; j<3; j++) {
cout<<"("<<a[i]<<","<<b[j]<<")";
}}


cout << "}" << endl;

cout<<"Hasil himpunan c habis membagi d : \n{";
for(int k=0; k<3; k++) {
for(int l=0; l<5; l++)
if(d[l] % c[k] == 0) {
cout<<"("<< c[k]<< ", " << d[l] << "), ";}
}


cout<<"}"<<endl;
system ("pause");
return 0;
}

Rabu, 10 April 2013

Menghitung deret aritmatika dengan rekursif

Berikut adalah  program C++ dari menghitung jumlah total dari suatu deret aritmatika yang diberi batas awal, beda, dan batas akhir.

Ini adalah program c++ untuk program menghitung deret aritmatika pada praktikum alpro.

#include <cstdlib>
#include <iostream>

using namespace std;

class deret{
      public :
             deret();
             int tampil(int x,int b,int n);
      private:
              int x,b,n;
              };
             
deret::deret()
{cout<<"penjumlahan deret aritmatika"<<endl;
}
int deret::tampil(int x,int b,int n){
   
   
    if(n==0){
             return 0;
             }
    else {
         return ((x+(n-1)*b)+tampil(x,b,n-1));
         }
}
             
     
int main(int argc, char *argv[])
{
    int p,q,r;
    deret i;
    cout<<"Masukkan batas awal=";cin>>p;
    cout<<"Masukkan beda=";cin>>q;
    cout<<"Masukkan banyak deret:";cin>>r;
    for(int s=0;s<r;s++)
    {
          
    cout<<p+s*q<<" ";
    }
    cout<<"\nJumlah dari seluruh deretnya: "<<i.tampil(p,q,r)<<endl;;

    system("PAUSE");
    return EXIT_SUCCESS;
}

Senin, 08 April 2013

Quiz Alpro "Menyebutkan angka yang di inputkan dalam bentuk huruf"

Berikut adalah jawaban dari quiz alpro yang diberikan oleh dosen pada hari sabtu kemarin. Karena waktu dan kegugupan, belum saya selesaikan di kelas.... -_-'' menyebalkan..
Ini adalah raptor untuk menyebutkan angka yang di inputkan dalam bentuk huruf/kata.
Contoh:
Input: 123
Output: seratus dua puluh tiga.

Program Raptornya dapat didownload disini: http://www.ziddu.com/download/21971913/QuizAlpro.zip.html

Ini adalah output saat menginputkan "123" dan juga saat menginputkan "536"



Sabtu, 06 April 2013

Refleksi Minggu-4 Alpro

Pada minggu-4 mata kuliah Alpro, Memasuki materi Perulangan/Loop.


Komputer mempunyai kemampuan untuk menghitung perulangan dengan sangat cepat dan tidak mengenal
lelah. Kadang diperlukan suatu kondisi untuk menghitung dengan perulangan sampai presisi tertentu.

Pada kehidupan sehari-hari juga sering melakukan kegiatan perulangan, contohnya seperti yang dilakukan semua mahasiswa untuk menuju lantai 2 atau 3 di kampus. Mereka menaiki tangga satu demi satu, berulang-ulang hingga mencapai lantai berikut, yang berarti perulangan "melangkah di tiap anak tangga" selesai. Kasus-kasus dan latihan telah kelompok kami kerjakan.

Perkuliahan minggu-4 cukup membuat saya frustasi pada awal masuk, karena kertas berisi tanda tangan dosen sebagai bukti tidak terlambat milik saya terselip di buku catatan, dan buku tersebut ketinggalan di laboratorium komputasi dasar saat praktikum hari kamis sebelumnya. Berhubung Alpro adalah kuliah yang paling pagi, jadi laboratorium belum buka pagi itu. Takut nilai bonus hilang, saya mencoba bicara tentang masalah itu pada dosen alpro, dan alhamdulillah beliau mengerti dan mengijinkan untuk menunggu sampai laboratorium buka agar tanda tangan dari beliau bisa saya dapatkan. Hehehe,, terima kasih pak..

Untuk Kasus-kasus dan latihan pun sudah di selesaikan. Akan diposting untuk yang berikutnya. sekian untuk refleksi kali ini. . Semoga minggu depan bisa menjalani kuis dengan lancaar.. aminn...

Jumat, 05 April 2013

Kasus 4.2 "Algoritma mencetak bilangan ganjil dari 0 sampai 10"

Masalah:
  • Buatlah Algoritma mencetak bilangan ganjil dari 0 sampai 10
Deklarasi:
  • i : Integer{Input,Output}
Deskripsi
  • read(i=0)
  • for i<-0 to 10 do
     if(i mod 2=1)
     then write(i)
     endif
    endfor
 
Gambar Flowchart:

Kasus 4.1 "Mencetak bilangan 1-4"

Masalah:


  • Buatlah Algoritma mencetak bilangan 1-4
Analisis:
  • Input: a
  • Proses: mengecek nilai a memenuhi syarat if (a<=4)
  • Output: a

  • a : Integer{Input}
  • a : Integer{Output}
Deskripsi

  • for a<-1 to 4 do write(a)
    endfor
Gambar Flowchart:

Rabu, 03 April 2013

Perulangan rekursif "Menghitung nilai faktorial"

Rekursif adalah perulangan yang lebih ke arah menggunakan fungsi Berikut ini adalah program c++ menghitung nilai dari faktorial:

#include <cstdlib>
#include <iostream>

using namespace std;


class rekursif{
      public:
             rekursif();
             int faktorial(int x);
      private:
              int x;
     
      };
     
rekursif::rekursif(){
                     cout<<"perulangan rekursif"<<endl;
                     }

int rekursif::faktorial(int x){
   
   
    if(x==0){
             return 0;
             }
    else if(x==1){
         return 1;
         }
    else{
    return (x*faktorial(x-1));
}

}

int main(int argc, char *argv[])
{
    int a;
   
 rekursif p;
 cout<<"Masukkan faktorial=";cin>>a;
    cout<<"hasil="<<p.faktorial(a);
    cout<<endl;

    system("PAUSE");
    return EXIT_SUCCESS;
}
.

Praktikum 3"Menghitung deret aritmatika"

Ini adalah program c++ untuk program menghitung deret aritmatika pada praktikum alpro ke-3.

#include <cstdlib>
#include <iostream>

using namespace std;

int main(int argc, char *argv[])
{
    int a,b,n,jumlah;
  
    cout<<"Menghitung deret aritmatika"<<endl;
     cout<<"Masukkan nilai suku awal=";cin>>a;
     cout<<"Masukkan nilai beda=";cin>>b;
     cout<<"Masukkan banyak suku=";cin>>n;
    
    
    cout<<a<<","<<a+b<<",";
    for(int i=0;i<a;i++)
    {
           
    cout<<a+(n-1)*b;
    n+=1;
    }
    system("PAUSE");
    return EXIT_SUCCESS;
}

Rabu, 27 Maret 2013

Program Class C++ Menghitung Nilai KPK dan FPB

Ini adalah program C++ menghitung KPK dan FPB dengan menerapkan sistem class pada proses KPK maupun FPB nya. .
Lumayan sulit, tapi akhirnya berhasil saya buat.
Langsung saja, ini source codenya:

#include <iostream>

using namespace std;
class kpk
{
    
      public:
             void keluar();
             int proses();
      private:
              int a,b,kpk;
};
   
      void kpk::keluar()
      {
           cout<<"Menghitung KPK"<<endl;
           cout<<"Masukkan Bilangan pertama : "; cin>>a;
           cout<<"Masukkan Bilangan kedua : "; cin>>b;
      }

      int kpk::proses()
      {
        kpk=0;


           for(int i=1;i<=b;i++)
            {
               kpk=kpk+a;

                if(kpk % b==0)
                   {cout<<"KPK Antara "<<a<<" dan "<<b<<" adalah "<<kpk;break;}
            }
      }
     
class fpb
{
      public:
        int proses();
      private:
        int a,b,fpb;
};
       
        int fpb::proses()
        {
          cout<<"Menghitung FPB"<<endl;
          cout<<"Masukkan Bilangan pertama: "; cin>>a;
          cout<<"Masukkan Bilangan kedua: "; cin>>b;
          cout<<"Nilai FPB dari "<<a<< " dan " <<b<< " adalah ";
          fpb=a%b;
          while (fpb !=0)
           {
             a=b;
             b=fpb;
             fpb=a%b;
           }
       
          cout<<b<<endl;
         
        }
int main(int argc, char *argv[]) {

kpk l;
fpb k;
int p;
cout<<"Masukan Pilihan anda:\n";
cout<<"1. Menentukan KPK\n";
cout<<"2. Menentukan FPB\n";
cout<<"3. Exit\n";
cout<<"Pilihan=";cin>>p;

switch (p)
{
case 1:
    l.keluar();
    l.proses();
    cout<<endl;
    break;

case 2:
    k.proses();
    break;

return 0;
}
}

Refleksi Minggu-3 Alpro

Pada minggu-3, Mata kuliah Algoritma Pemrograman memasuki materi PEMILIHAN, atau control program.

Komputer memiliki kemampuan untuk melakukan pemilihan/pengambilan keputusan berdasarkan kondisi/syarat yang dimiliki.

Dalam kehidupan sehari-hari, kita melalui berbagai proses yang melibatkan tentang pengambilan keputusan. Saat membeli sepatu misalnya, kita dihadapkan pada berbagai pilihan sepatu dengan berbagai merek dan berbagai model. Pada saat memilih, setiap orang memiliki "syarat" tertentu yang dipenuhi oleh sepatu untuk dibeli oleh kita. Misalnya saya memiliki "syarat" bahwa sepatu itu harus  tahan lama, dan memiliki harga dibawah 100.000. Sepatu yang memenuhi syarat diatas maka akan dibeli. Jika tidak memenuhi maka sepatu itu tidak akan dibeli.

Berikut adalah operator yang digunakan dalam proses pemilihan/control program. yaitu OPERATOR RELASIONAL.
Operator Relasional
Contoh-contoh kasus menggunakan pemilihan dapat dilihat di Kasus 3.1 , Kasus 3.2 , Kasus 3.3 , Kasus 3.4 , Kasus 3.5

Kesulitan yang dirasakan hanya pada kurang pahamnya saya dalam membaca soal latihan. Saya merasa kurang bisa untuk menemukan "Target" dari soal. Untuk itu saya merasa perlu untuk terus berlatih.
Selain itu minggu ini adalah minggu pertama mentoring kami. Mungkin karena baru pertama mentoring, sehingga saya dan teman-teman merasa agak canggung saat bertanya, dan kurang bisa mengerti penjelasan dari mentor. Selain itu minggu ini juga awal praktikum alpro kami. Pretest berupa pengetikan 10 jari tanpa melihat keyboard cukup menyulitkan. Namun Alhamdulillah saya berhasil mencapai target pretest. Dengan asisten praktikum yang begitu baik dan mengerti keadaan kami. yaitu mas Arif Budiarti dan mas Iman Fadlian. Juga dosen kami, bapak wahyu memberikan bonus lain untuk kecepatan dalam mengerjakan post test kurang dari 30 menit.  Alhamdulillah.. semoga kedepannya bisa jauh dan jauh lebih baik lagi. Saya merasa seperti sedang berkompetisi dengan teman-teman lainnya dalam merebut bonus. dan dengan berkompetisi, hidup menjadi lebih bersemangat!

Sabtu, 23 Maret 2013

Kasus 3.5 "Algoritma Konversi Hari"


Masalah:
  • Konversikan hari ke 1 adalah hari senin sampai dengan hari ke-7 adalah hari minggu
Analisis:
  • Input: hari_ke
  • Proses: mengkonversi nilai angka menjadi nama hari
  • Output: Hasil konversi angka menjadi hari
Deklarasi:
  • hari_ke : integer{Input}
  • hari : string{Output}
Deskripsi:
  • read(hari_ke)
  • pilih(hari_ke) untuk
    1:hari<--"Senin"
    2:hari<--"Selasa"
    3:hari<--"Rabu"
    4:hari<--"Kamis"
    5:hari<--"Jum'at"
    6:hari<--"Sabtu"
    else hari<--"Minggu"
    end{pilih}
  • write(hari)
Gambar Flowchart:



Program C++ Konversi hari:

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

main(){
int hari_ke;
char *hari;
cout<<"Masukkan hari ke-";cin>>hari_ke;

switch(hari_ke){
case 1: strcpy(hari, "Senin");break;
case 2: strcpy(hari, "Selasa");break;
case 1: strcpy(hari, "Rabu");break;
case 1: strcpy(hari, "Kamis");break;
case 1: strcpy(hari, "Jumat");break;
case 1: strcpy(hari, "Sabtu");break;
default: strpy(hari, "Minggu");break;
}

cout<<"Hari ke-"<<hari_ke<<"Adalah"<<hati<<endl;

return 0;
}

Kasus 3.4 "Konversi Nilai"

Masalah:
  • Konversikan nilai angka menjadi nilai huruf, sesuai ketentuan dibawah ini:
Nilai Angka            Nilai Huruf
    0-20                          A
   20-40                         B
   40-60                         C
   60-80                         D
   80-100                       E

Analisis:

  • Input: nilai
  • Proses: mengkonversi nilai angka menjadi nilai huruf.
  • Output: Hasil konversi nilai
Deklarasi:

  • nilai : integer{Input}
  • nilai_huruf : char{Output}
Deskripsi:

  • read(nilai)
  • if (nilai>0) and (nilai<=20) then nilai_huruf<--'E'
    else if(nilai>20) and (nilai<=40) then nilai_huruf<--'D'
    else if(nilai>40) and (nilai<=60) then nilai_huruf<--'C'
    else if(nilai>60) and (nilai<=80) then nilai_huruf<--'B'
    else then nilai_huruf<--'A'
    endif
  • write(nilai_huruf)
Gambar Flowchart:


Program C++ Konversi nilai angka ke nilai huruf:


#include<iostream.h>
using namespace std;

main(){
int nilai;
char nilai_huruf;
cout<<"Masukkan nilai angka=";cin>>nilai;

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 nilai_huruf='A';

cout<<"Nilai huruf="<<nilai_huruf;

return 0;
}

Kasus 3.3 "Algoritma Menghitung akar-akar persamaan kuadrat"

Masalah:
  • Buatlah algoritma mencari akar-akar persamaan kuadratnya
Analisis:
  • Input: a,b,c
  • Proses: mencari akar-akar persamaan kuadrat.
  • Output: akar-akar kuadrat
Deklarasi:
  • a,b,c : integer{Input}
  • disk : longint{output}
  • x1,x2 : real{output}
Deskripsi:
  • read(a,b,c)
  • disk<--b*b-4a*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
    else if disk=0 then
      x1<---(-b)/2*a
      x2<---x1
    else write('Akar Imajiner')
    end if
  • write(x1,x2)


Gambar Flowchart:


Program C++ Menghitung akar-akar persamaan kuadrat:

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

class persamaan{

public:
void persamaan_kuadrat();
float rumus();
private:
int x,y,z;
float x1,x2;
float disk;
};

void persamaan::persamaan_kuadrat(){
cout<<"masukkan nilai A :";
cin>>x;
cout<<"masukkan nilai B :";
cin>>y;
cout<<"masukkan nilai C :";
cin>>z;

}
float persamaan::rumus(){
disk=y*y-4*x*z;

if (disk>0)
{
cout<<"Diskriminan="<<disk<<" Maka akar-akarnya adalah:"<<endl;
x1=(-y+(sqrt(disk)))/(2*x);
cout<<"x1 :"<<x1;
cout<<endl;
x2=(-y-(sqrt(disk)))/(2*x);
cout<<"x2 :"<<x2;
}
else if(disk=0)
{
cout<<"Diskriminan="<<disk<<" Maka akar-akarnya adalah:"<<endl;
x1=-y/2*x;
cout<<"x1 :"<<x1;
cout<<endl;
x2=x1;
cout<<"x2 :"<<x2;
}
else
cout<<"akar imajiner";

}

int main(int argc, char *argv[])

{
persamaan X;
X.persamaan_kuadrat();
X.rumus();

return 0;

}