際際滷

際際滷Share a Scribd company logo
Dian Wahyu Aditya

3 RPA



Kasus 1
Menampilkan deret angka dengan urutan genap  genap  ganjil  ganjil.
Jika user menginputkan nilai 10 maka program akan menulis deret bilangan seperti
berikut :


                              0 2 1 3 4 6 5 7 8 10


Pemecahan Masalah
Source :

            #include <iostream>
            using namespace std;

            void jalankan(int input) {
                int index = 0;

                for(int i=0;i<input;i++) {
                    index++;
                    switch (index) {
                        case 1 : printf("%d   ",   i); break;
                        case 2 : printf("%d   ",   i+1); break;
                        case 3 : printf("%d   ",   i-1); break;
                        case 4 : printf("%d   ",   i); index = 0; break;
                    }
                }
            }

            int main() {
                int input = 0;

                do {
                    cout << "Input : ";
                    scanf("%d", &input);
                    jalankan(input);
                    cout << "n";
                } while (input > 0);

                return 0;
            }
Penjelasan program :
        Pertama pada baris function main() terdapat sebuah perulangan yang akan
meminta inputan selama inputan lebih dari (>) 0 (nol). Jika inputan memenuhi syarat,
maka program akan melempar inputan ke procedure jalankan(int input). Maka sekarang
inputan yang dimasukkan oleh user telah disimpan dalam variable input yang ada dalam
procedure jalankan. Selanjutnya skema penulisan deret bilangan adalah sebagai
berikut :
       Terdapat variable index bertipe integer yang bernilai 1.
       Selanjutnya dilakukan perulangan, yang menampilkan deret bilangan sebanyak
        inputan.
       Selama i kurang dari (<) inputan maka nilai i akan terus ditambah 1, begitu pula
        dengan nilai index, akan tetapi yang berbeda adalah nilai maksimum index
        hanya sampai 4, jika nilai index = 4 maka nilai index akan dikembalikan ke nilai
        awal yaitu satu, sehingga skema perulanganya jika i dan index ditulis adalah
        sebagai berikut :



            i      0        1   2    3     4     5     6      7    8    9

        index      1        2   3    4     1     2     3      4    1    2



       Untuk menghasilkan deret bilangan genap  genap  ganjil  ganjil maka skema
        yang dijalankan disini adalah ketika i berada pada index tertentu maka yang nilai
        yang dicetak adalah sebagai berikut :
                   o   Jika index = 1 maka cetak nilai i.
                   o   Jika index = 2 maka cetak nilai i+1.
                   o   Jika index = 3 maka cetak nilai i-1.
                   o   Jika index = 4 maka cetak nilai i kemudian kembalikan nilai
                       index menjadi 1.
Dan hasil outputnya adalah sebagai berikut :



          i        0    1       2        3   4      5   6    7      8   9

                       +1       -1                 +1   -1              +1

        Hasil      0    2       1        3   4      6   5    7      8   10

       index       1    2       3        4   1      2   3    4      1   2



Screen Capture :




Kasus 2
Mengkonversi bilangan desimal mulai dari nol hingga inputan menjadi bilangan biner.
Kemudian menghitung total angka nol yang ada. Contoh jika user menginputkan nilai
5 maka proses program adalah sebagai berikut :



                       Desimal Biner             Jumlah angka nol
                            0        0                  1
                            1        1                  0
                            2        10                 1
                            3        11                 0
                            4        100                2
                            5        101                1
                                     Total              5
Pemecahan Masalah
Source :

               #include <iostream>
               using namespace std;

               int run(int input){
                   int hasil = 0;

                   while(input > 1) {
                       if((input % 2) == 0) hasil++;
                       input = input / 2;
                   }

                   return hasil;
               }

               int mainx(int input) {
                   int hasil = 0;

                   while(input > 0){
                       hasil += run(input);
                       cout << input << " : " << run(input) << "n";
                       input--;
                   }

                   cout << "0 : 1" << "n";

                   return hasil+1;
               }

               int main() {
                   int input = 0;

                   do {
                       cout << "Input : ";
                       scanf("%d", &input);
                       cout << "Hasil : " << mainx(input) << "n";
                   } while (input > 0);

                   return 0;
               }



Penjelasan program :
       Dalam baris kode di atas terdapat beberapa function antara lain :
      Function run(int input), yaitu function yang mengembalikan nilai integer berupa
       jumlah karakter 0 dari inputan yang terlebih dahulu dikonversi menjadi
       bilangan biner.
      Function mainx(int input), merupakan procedure yang akan menghitung total
       karakter 0 dari nol (0) sampai inputan yang tentunya dikonversikan oleh
       function run.
   Function main() merupakan function utama yang akan menjalankan procedure
    mainx selama inputan lebih dari nol (0).


    Berikut cara kerja dari masing-masing function :
   Function run
       o   Ada variable hasil bertipe integer yang akan menampung jumlah
           karakter 0 sementara sebelum function mengembalikan nilai.
       o Selama inputan > 1 maka program akan terus melakukan perulangan.
       o   Jika sisa hasil bagi dari inputan = 0 maka hasil = hasil+1.
       o   Nilai inputan = inputan / 2. Tipe data integer selalu bernilai bulat,
           contoh: 5/2=2, sehingga semua bilangan jika dibagi 2 secara terus
           menerus akan berhenti pada nilai 1 yang artinya menghentikan
           perulangan.
       o   Setelah perulangan berhenti function akan mengembalikan nilai hasil
           yang berupa jumlah karakter 0.
   Function mainx
       o   Function ini juga memiliki variable hasil untuk menyimpan sementara
           total dari angka nol dari deret nilai 0 hingga n inputan.
       o   Perulangan akan dilakukan mulai dari i yang bernilai nol hingga n
           inputan.
       o   Selama perulangan, function akan memasukkan nilai i ke dalam function
           run, kemudian menambahkan variable hasil dengan nilai yang
           dikembalikan oleh function run.
       o   Setelah perulangan selesai function akan mengembalikan nilai berupa
           total karakter 0 dari deret bilangan 0 hingga n inputan.
   Function main
    Function ini bertugas meminta inputan selama user menginputkan nilai > 0.
    Kemudian inputan user tersebut di kirim ke function mainx dan hasil return dari
    mainx akan dicetak sebagai total karakter 0 dari deret bilangan desimal 0
    hingga n inputan yang dikonversi menjadi bilangan biner.
Screen Capture :




Kasus 3
Menentukan inputan string kata apakah merupakan Palyndrome atau bukan. Contoh
kata-kata palyndrome : katak, kasur rusak.


Pemecahan Masalah
Source :

                    #include <iostream>
                    #include <string>

                    using namespace std;

                    string check(string kata) {
                        int len = kata.length();
                        int setengah = len/2;
                        int loop = 0;
                        bool auth = true;

                         while(loop < setengah) {
                             if(kata[loop] != kata[len-1]){
                                 auth = false;
                                 break;
                             }

                             loop++;
                             len--;
                         }

                         if(auth) {
                             return "Palyndrome";
                         } else {
                             return "Bukan Palyndrome";
                         }
}


                     int main() {
                         string a = "";

                          cout << "Input : ";
                          getline(cin, a);
                          cout << check(a) << "n";

                          return 0;
                     }




Penjelasan program :
       Program dimulai dari function main(). Pada function ini program akan meminta
inputan berupa string. Setelah inputan didapatkan inputan akan dikirim ke function
check(string kata) dan kemudian program akan mencetak nilai string yang
dikembalikan yaitu Palyndrome atau Bukan Palyndrome. Sebenarnya seluruh
proses pemeriksaan kata terdapat pada function check. Berikut cara kerjanya :
      Dalam function ini terdapat beberapa variable antara lain :
           o   Integer len, berisi panjang karakter dari string inputan.
           o   Integer setengah, bernilai len/2.
           o   Integer loop, bernilai 0;
           o   Boolean auth, bernilai benar (true).
      Proses pengecekan, selama nilai loop < setengah maka lakukan proses berikut :
           o   Jika karakter inputan yang ke loop  karakter yang ke len-1 (karakter
               yang terakhir) maka auth = false, hentikan perulangan secara paksa
               karena sudah dapat dipastikan bahwa kata tersebut bukan merupakan
               palyndrome.
           o   loop = loop + 1.
           o   len = len  1.
      Setelah perulangan selesai sekarang pengecekan dilakukan pada boolean auth.
       Jika perulangan diatas tidak dihentikan secara paksa (menggunakan break) maka
       auth akan tetap bernilai default yaitu true yang artinya function akan
       mengembalikan kata Palyndrome. Begitu pula sebaliknya, jika auth bernilai
       false maka function akan mengembalikan kata Bukan Palyndrome.
Cara pemeriksaan di atas jika digambarkan secara sederhana adalah sebagai
berikut :




                                    Input         : kasur rusak
                                    Len           : 11
                                    Setenga       : 5
                                    h




loop        0       1       2           3   4      5

            k       a       s           u   r            r    u         s       a       k

                                                   5     6    7         8       9       10   len-1




                k       a       s       u     r          r   u      s       a       k
Screen Capture :

More Related Content

Tugas C++ - Dian Aditya - 2009/2010

  • 1. Dian Wahyu Aditya 3 RPA Kasus 1 Menampilkan deret angka dengan urutan genap genap ganjil ganjil. Jika user menginputkan nilai 10 maka program akan menulis deret bilangan seperti berikut : 0 2 1 3 4 6 5 7 8 10 Pemecahan Masalah Source : #include <iostream> using namespace std; void jalankan(int input) { int index = 0; for(int i=0;i<input;i++) { index++; switch (index) { case 1 : printf("%d ", i); break; case 2 : printf("%d ", i+1); break; case 3 : printf("%d ", i-1); break; case 4 : printf("%d ", i); index = 0; break; } } } int main() { int input = 0; do { cout << "Input : "; scanf("%d", &input); jalankan(input); cout << "n"; } while (input > 0); return 0; }
  • 2. Penjelasan program : Pertama pada baris function main() terdapat sebuah perulangan yang akan meminta inputan selama inputan lebih dari (>) 0 (nol). Jika inputan memenuhi syarat, maka program akan melempar inputan ke procedure jalankan(int input). Maka sekarang inputan yang dimasukkan oleh user telah disimpan dalam variable input yang ada dalam procedure jalankan. Selanjutnya skema penulisan deret bilangan adalah sebagai berikut : Terdapat variable index bertipe integer yang bernilai 1. Selanjutnya dilakukan perulangan, yang menampilkan deret bilangan sebanyak inputan. Selama i kurang dari (<) inputan maka nilai i akan terus ditambah 1, begitu pula dengan nilai index, akan tetapi yang berbeda adalah nilai maksimum index hanya sampai 4, jika nilai index = 4 maka nilai index akan dikembalikan ke nilai awal yaitu satu, sehingga skema perulanganya jika i dan index ditulis adalah sebagai berikut : i 0 1 2 3 4 5 6 7 8 9 index 1 2 3 4 1 2 3 4 1 2 Untuk menghasilkan deret bilangan genap genap ganjil ganjil maka skema yang dijalankan disini adalah ketika i berada pada index tertentu maka yang nilai yang dicetak adalah sebagai berikut : o Jika index = 1 maka cetak nilai i. o Jika index = 2 maka cetak nilai i+1. o Jika index = 3 maka cetak nilai i-1. o Jika index = 4 maka cetak nilai i kemudian kembalikan nilai index menjadi 1.
  • 3. Dan hasil outputnya adalah sebagai berikut : i 0 1 2 3 4 5 6 7 8 9 +1 -1 +1 -1 +1 Hasil 0 2 1 3 4 6 5 7 8 10 index 1 2 3 4 1 2 3 4 1 2 Screen Capture : Kasus 2 Mengkonversi bilangan desimal mulai dari nol hingga inputan menjadi bilangan biner. Kemudian menghitung total angka nol yang ada. Contoh jika user menginputkan nilai 5 maka proses program adalah sebagai berikut : Desimal Biner Jumlah angka nol 0 0 1 1 1 0 2 10 1 3 11 0 4 100 2 5 101 1 Total 5
  • 4. Pemecahan Masalah Source : #include <iostream> using namespace std; int run(int input){ int hasil = 0; while(input > 1) { if((input % 2) == 0) hasil++; input = input / 2; } return hasil; } int mainx(int input) { int hasil = 0; while(input > 0){ hasil += run(input); cout << input << " : " << run(input) << "n"; input--; } cout << "0 : 1" << "n"; return hasil+1; } int main() { int input = 0; do { cout << "Input : "; scanf("%d", &input); cout << "Hasil : " << mainx(input) << "n"; } while (input > 0); return 0; } Penjelasan program : Dalam baris kode di atas terdapat beberapa function antara lain : Function run(int input), yaitu function yang mengembalikan nilai integer berupa jumlah karakter 0 dari inputan yang terlebih dahulu dikonversi menjadi bilangan biner. Function mainx(int input), merupakan procedure yang akan menghitung total karakter 0 dari nol (0) sampai inputan yang tentunya dikonversikan oleh function run.
  • 5. Function main() merupakan function utama yang akan menjalankan procedure mainx selama inputan lebih dari nol (0). Berikut cara kerja dari masing-masing function : Function run o Ada variable hasil bertipe integer yang akan menampung jumlah karakter 0 sementara sebelum function mengembalikan nilai. o Selama inputan > 1 maka program akan terus melakukan perulangan. o Jika sisa hasil bagi dari inputan = 0 maka hasil = hasil+1. o Nilai inputan = inputan / 2. Tipe data integer selalu bernilai bulat, contoh: 5/2=2, sehingga semua bilangan jika dibagi 2 secara terus menerus akan berhenti pada nilai 1 yang artinya menghentikan perulangan. o Setelah perulangan berhenti function akan mengembalikan nilai hasil yang berupa jumlah karakter 0. Function mainx o Function ini juga memiliki variable hasil untuk menyimpan sementara total dari angka nol dari deret nilai 0 hingga n inputan. o Perulangan akan dilakukan mulai dari i yang bernilai nol hingga n inputan. o Selama perulangan, function akan memasukkan nilai i ke dalam function run, kemudian menambahkan variable hasil dengan nilai yang dikembalikan oleh function run. o Setelah perulangan selesai function akan mengembalikan nilai berupa total karakter 0 dari deret bilangan 0 hingga n inputan. Function main Function ini bertugas meminta inputan selama user menginputkan nilai > 0. Kemudian inputan user tersebut di kirim ke function mainx dan hasil return dari mainx akan dicetak sebagai total karakter 0 dari deret bilangan desimal 0 hingga n inputan yang dikonversi menjadi bilangan biner.
  • 6. Screen Capture : Kasus 3 Menentukan inputan string kata apakah merupakan Palyndrome atau bukan. Contoh kata-kata palyndrome : katak, kasur rusak. Pemecahan Masalah Source : #include <iostream> #include <string> using namespace std; string check(string kata) { int len = kata.length(); int setengah = len/2; int loop = 0; bool auth = true; while(loop < setengah) { if(kata[loop] != kata[len-1]){ auth = false; break; } loop++; len--; } if(auth) { return "Palyndrome"; } else { return "Bukan Palyndrome"; }
  • 7. } int main() { string a = ""; cout << "Input : "; getline(cin, a); cout << check(a) << "n"; return 0; } Penjelasan program : Program dimulai dari function main(). Pada function ini program akan meminta inputan berupa string. Setelah inputan didapatkan inputan akan dikirim ke function check(string kata) dan kemudian program akan mencetak nilai string yang dikembalikan yaitu Palyndrome atau Bukan Palyndrome. Sebenarnya seluruh proses pemeriksaan kata terdapat pada function check. Berikut cara kerjanya : Dalam function ini terdapat beberapa variable antara lain : o Integer len, berisi panjang karakter dari string inputan. o Integer setengah, bernilai len/2. o Integer loop, bernilai 0; o Boolean auth, bernilai benar (true). Proses pengecekan, selama nilai loop < setengah maka lakukan proses berikut : o Jika karakter inputan yang ke loop karakter yang ke len-1 (karakter yang terakhir) maka auth = false, hentikan perulangan secara paksa karena sudah dapat dipastikan bahwa kata tersebut bukan merupakan palyndrome. o loop = loop + 1. o len = len 1. Setelah perulangan selesai sekarang pengecekan dilakukan pada boolean auth. Jika perulangan diatas tidak dihentikan secara paksa (menggunakan break) maka auth akan tetap bernilai default yaitu true yang artinya function akan mengembalikan kata Palyndrome. Begitu pula sebaliknya, jika auth bernilai false maka function akan mengembalikan kata Bukan Palyndrome.
  • 8. Cara pemeriksaan di atas jika digambarkan secara sederhana adalah sebagai berikut : Input : kasur rusak Len : 11 Setenga : 5 h loop 0 1 2 3 4 5 k a s u r r u s a k 5 6 7 8 9 10 len-1 k a s u r r u s a k