Sabtu, 26 Maret 2016

Program Perkalian dengan Perulangan

Assalamualaikum sobat blogger...
Jika pada postingan sebelumnya saya membuat program tanpa library math.h, kali ini sama, ya saya juga tidak memakai library math.h, garing. Program yang akan saya buat kali ini adalah program perkalian dengan menggunakan perulangan, sederhana saja, jika 6 dikali 5 berarti angka 6 di tambah 6 begitu seterusnya sampai berjumlah 5 buah angka 6, di jumlahkan lalu muncul hasilnya 30.
Tapi di sisi lain ada sebuah bugs sederhana seperti pada soal tugas berikut :
Kasus 4.8 : Hitunglah axb dengan metode penjumlahan
Analisis :
  • a x b = a + a + … + a (sebanyak b kali)
  • Ini berlaku untuk a positif maupun negative
  • Bagaimana bila b negatif ?
  • Karena loop “tidak pernah negatif” maka harus dimanipulasi perulangan yang “selalu” positif.
  • Untuk itu nilai b menjadi abs(b)
  • Kemudian khusus untuk b < 0, jumlah yang sudah diperoleh dinegatifkan
  • Ingat : ax(-b) = ax(-1)xb = -axb

Jadi bugsnya adalah bagaimana jika bilangan pengalinya negatif ? apa mungkin perulangan memunculkan perulangan negatif ? Solusi terdapat pada bagaimana cara kita untuk mendapatkan nilai positif apabila variabel pengali menyimpan nilai negatif, yaitu menggunakan statement “abs” atau bisa juga di sebut absolut, jadi fungsi dari statement ini adalah untuk mendapat hasil yang selalu positif sehingga nilai data yang masuk pada variabel pengali akan selalu positif.
Kendalanya statement “abs” tidak bisa hanya menggunakan library iostream, dan setelah mencoba berbagai macam library termasuk math.h, saya menemukan library agar statement “abs” tadi bisa terbaca yaitu library cstdlib. Untuk lebih jelasnya berikut saya sertakan source code dari program di atas :
#include <iostream>
#include <cstdlib>
using namespace std;
int main(int argc, char** argv)
{              int a,b,c,d,e=0;
                cout<<"Masukkan angka yang ingin dikali : ";
                cin>>a;
                cout<<"Masukkan angka yang dijadikan pengali : ";
                cin>>b;
                for(d=1; d<=abs(b); d++)
                                e=e+a;
                if(b<0)
                                e=-e;
                cout<<a<<" x "<<b<<" = "<<e;
                return 0;              }
Untuk tambahan, dari program ini juga saya tahu bahwa untuk variabel yang nantinya di jadikan sebagai variabel hasil, sebaiknya pada saat pendeklarasian tipe data, variabel tersebut ada baiknya dideklarasikan terlebih dahulu dengan nilai nol (0), karena saya liat pada beberapa kasus, apabila tidak dideklarasikan terlebih dahulu dengan nilai nol (0) maka nantinya program akan membaca variabel tersebut dengan nilai yang tidak seharusnya, entah nilai apa yang terdeklarasi pada variabel tersebut berasal darimana. Nah, selanjutnya langsung saja saya sertakan source code di atas dalam tampilan compiler dev-c++ : 
Setelah di jalankan :
Dan flowchartnya dalam raptor :
Sekian pembahasan mengenai tugas “Program Perkalian dengan Perulangan” silahkan tinggalkan kritik dan dan saran jika ada kesalahan dalam postingan saya, semoga bermanfaat, terimakasih wassalamualaikum wr,wb.

1 komentar


Emoticon Emoticon