SlideShare uma empresa Scribd logo
1 de 9
Baixar para ler offline
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 :

Mais conteúdo relacionado

Mais procurados

Dasar-dasar c++
Dasar-dasar c++Dasar-dasar c++
Dasar-dasar c++
aks247
 

Mais procurados (19)

Function c++
Function c++Function c++
Function c++
 
Pertemuan V
Pertemuan VPertemuan V
Pertemuan V
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
 
Pengenalan Teknologi Informasi 7 - Input Output
Pengenalan Teknologi Informasi   7 - Input OutputPengenalan Teknologi Informasi   7 - Input Output
Pengenalan Teknologi Informasi 7 - Input Output
 
Lapopran praktikum struktur data pertemuan 3 Merge_Sort
Lapopran praktikum struktur data pertemuan 3 Merge_SortLapopran praktikum struktur data pertemuan 3 Merge_Sort
Lapopran praktikum struktur data pertemuan 3 Merge_Sort
 
Materi operator java
Materi operator javaMateri operator java
Materi operator java
 
Dasar-dasar c++
Dasar-dasar c++Dasar-dasar c++
Dasar-dasar c++
 
sns_paper complement_r010110
sns_paper complement_r010110sns_paper complement_r010110
sns_paper complement_r010110
 
Bab ii
Bab iiBab ii
Bab ii
 
207 p05
207 p05207 p05
207 p05
 
Dts x dicoding #3 memulai pemrograman kotlin
Dts x dicoding #3 memulai pemrograman kotlinDts x dicoding #3 memulai pemrograman kotlin
Dts x dicoding #3 memulai pemrograman kotlin
 
Dts x dicoding #4 memulai pemrograman kotlin
Dts x dicoding #4 memulai pemrograman kotlinDts x dicoding #4 memulai pemrograman kotlin
Dts x dicoding #4 memulai pemrograman kotlin
 
Lapopran praktikum struktur data pertemuan 2 Sorting
Lapopran praktikum struktur data pertemuan 2 SortingLapopran praktikum struktur data pertemuan 2 Sorting
Lapopran praktikum struktur data pertemuan 2 Sorting
 
Procedur
ProcedurProcedur
Procedur
 
Lapopran praktikum struktur data pertemuan 1 Tipe Data
Lapopran praktikum struktur data pertemuan 1  Tipe DataLapopran praktikum struktur data pertemuan 1  Tipe Data
Lapopran praktikum struktur data pertemuan 1 Tipe Data
 
Rangkaian Logika
Rangkaian LogikaRangkaian Logika
Rangkaian Logika
 
Topik 10 Fungsi
Topik 10 FungsiTopik 10 Fungsi
Topik 10 Fungsi
 
Dasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliahDasar Pemrograman materi kuliah
Dasar Pemrograman materi kuliah
 
Pratikum operator
Pratikum operatorPratikum operator
Pratikum operator
 

Semelhante a Tugas C++ - Dian Aditya - 2009/2010

Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++
Nurdin Al-Azies
 
Asyiknya belajar struktur data di planet c++
Asyiknya belajar struktur data di planet c++Asyiknya belajar struktur data di planet c++
Asyiknya belajar struktur data di planet c++
Ilan Surf ﺕ
 

Semelhante a Tugas C++ - Dian Aditya - 2009/2010 (20)

modul algoritma Bab 5
modul algoritma Bab 5modul algoritma Bab 5
modul algoritma Bab 5
 
Cc++
Cc++Cc++
Cc++
 
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur1. Algoritma, Struktur Data dan Pemrograman Terstruktur
1. Algoritma, Struktur Data dan Pemrograman Terstruktur
 
modul algoritma Bab 4
modul algoritma Bab 4modul algoritma Bab 4
modul algoritma Bab 4
 
Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++
 
Asyiknya belajar struktur data di planet c++
Asyiknya belajar struktur data di planet c++Asyiknya belajar struktur data di planet c++
Asyiknya belajar struktur data di planet c++
 
Pengenalan bahasa c++
Pengenalan bahasa c++Pengenalan bahasa c++
Pengenalan bahasa c++
 
Pt6 pt-loop komplek
Pt6 pt-loop komplekPt6 pt-loop komplek
Pt6 pt-loop komplek
 
ALOGARITMA 4
ALOGARITMA 4ALOGARITMA 4
ALOGARITMA 4
 
Penjelasan Program
Penjelasan ProgramPenjelasan Program
Penjelasan Program
 
Penggunaan loop sebagai kerangka dasar algoritma
Penggunaan loop sebagai kerangka dasar algoritma Penggunaan loop sebagai kerangka dasar algoritma
Penggunaan loop sebagai kerangka dasar algoritma
 
Algoritma
AlgoritmaAlgoritma
Algoritma
 
Wirman algoritma
Wirman algoritmaWirman algoritma
Wirman algoritma
 
Kelompok 2.4
Kelompok 2.4Kelompok 2.4
Kelompok 2.4
 
Kelompok 2.4
Kelompok 2.4Kelompok 2.4
Kelompok 2.4
 
Algoritma Perulangan
Algoritma PerulanganAlgoritma Perulangan
Algoritma Perulangan
 
Laporan praktikum modul ii & iii
Laporan praktikum modul ii & iiiLaporan praktikum modul ii & iii
Laporan praktikum modul ii & iii
 
tugas presentasi materi operator pada java
tugas presentasi materi operator pada javatugas presentasi materi operator pada java
tugas presentasi materi operator pada java
 
E1 e117049 nurfadhila fahmi_tugas3
E1 e117049 nurfadhila fahmi_tugas3E1 e117049 nurfadhila fahmi_tugas3
E1 e117049 nurfadhila fahmi_tugas3
 
Sequence
SequenceSequence
Sequence
 

Mais de Dian Aditya (6)

Tugas C++ (Matriks) - Dian Aditya - 2009/2010
Tugas C++ (Matriks) - Dian Aditya - 2009/2010Tugas C++ (Matriks) - Dian Aditya - 2009/2010
Tugas C++ (Matriks) - Dian Aditya - 2009/2010
 
Laporan Prakerin - Dian Aditya - 2008/2009
Laporan Prakerin - Dian Aditya - 2008/2009Laporan Prakerin - Dian Aditya - 2008/2009
Laporan Prakerin - Dian Aditya - 2008/2009
 
Implementasi AI - Google Prediction API
Implementasi AI - Google Prediction APIImplementasi AI - Google Prediction API
Implementasi AI - Google Prediction API
 
Sistem Berbasis Pengetahuan dan Sistem Pakar
Sistem Berbasis Pengetahuan dan Sistem PakarSistem Berbasis Pengetahuan dan Sistem Pakar
Sistem Berbasis Pengetahuan dan Sistem Pakar
 
Marvin Image Processing Framework
Marvin Image Processing FrameworkMarvin Image Processing Framework
Marvin Image Processing Framework
 
RESTFul WebApp Concept
RESTFul WebApp ConceptRESTFul WebApp Concept
RESTFul WebApp Concept
 

Último

Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
JarzaniIsmail
 

Último (20)

MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR IPAS KELAS 3 KURIKULUM MERDEKA.pdf
 
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptxDEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
DEMONSTRASI KONTEKSTUAL MODUL 1.3 CGP 10.pptx
 
Konseptual Model Keperawatan Jiwa pada manusia
Konseptual Model Keperawatan Jiwa pada manusiaKonseptual Model Keperawatan Jiwa pada manusia
Konseptual Model Keperawatan Jiwa pada manusia
 
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR BAHASA INDONESIA KELAS 6 KURIKULUM MERDEKA.pdf
 
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAYSOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
SOAL PUBLIC SPEAKING UNTUK PEMULA PG & ESSAY
 
MODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 3 KURIKULUM MERDEKA.pdf
 
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
PELAKSANAAN (dgn PT SBI) + Link2 Materi Pelatihan _"Teknik Perhitungan TKDN, ...
 
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
RENCANA & Link2 Materi Pelatihan_ "Teknik Perhitungan TKDN, BMP, Preferensi H...
 
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
BAHAN PAPARAN UU DESA NOMOR 3 TAHUN 2024
 
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
PELAKSANAAN + Link2 Materi BimTek _PTK 007 Rev-5 Thn 2023 (PENGADAAN) & Perhi...
 
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat  UI 2024
Tim Yang Lolos Pendanaan Hibah Kepedulian pada Masyarakat UI 2024
 
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdfMODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL AJAR MATEMATIKA KELAS 6 KURIKULUM MERDEKA.pdf
 
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMKAksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
Aksi Nyata Disiplin Positif Keyakinan Kelas untuk SMK
 
Aksi Nyata PMM Topik Refleksi Diri (1).pdf
Aksi Nyata PMM Topik Refleksi Diri (1).pdfAksi Nyata PMM Topik Refleksi Diri (1).pdf
Aksi Nyata PMM Topik Refleksi Diri (1).pdf
 
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdfAksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
Aksi Nyata Sosialisasi Profil Pelajar Pancasila.pdf
 
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptxPendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
Pendidikan-Bahasa-Indonesia-di-SD MODUL 3 .pptx
 
Pengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, FigmaPengenalan Figma, Figma Indtroduction, Figma
Pengenalan Figma, Figma Indtroduction, Figma
 
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdfSalinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
Salinan dari JUrnal Refleksi Mingguan modul 1.3.pdf
 
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHANTUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
TUGAS RUANG KOLABORASI 1.3 PRAKARSA PERUBAHAN
 
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdfMODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
MODUL PENDIDIKAN PANCASILA KELAS 6 KURIKULUM MERDEKA.pdf
 

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