Berikut ini adalah pertanyaan dari lobyxjr2 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
using namespace std;
int perkalian(int a, int b);
int main()
{
int a, b, hasil, awal;
cout << "Masukan angka pertama: ";
cin >> a;
cout << "Masukan angka ke dua: ";
cin >> b;
hasil = perkalian(a,b);
cout << "\nHasilnya adalah: ";
cout << hasil << endl;
cin.get();
return 0;
}
int perkalian(int a, int b){
if (b <= 0)
{
cout << a;
return b;
}
else
{
cout << a << "+";
return a + perkalian(a,(b - 1));
}
}
dapat dilihat bahwa pertambahannya akan menguang sebanyak 11 kali, tetapi dengan hasil yang benar. Jika saya menghapus cout di bagian if maka pertambahan nya akan berakhir pada "+" bukan pada angka. Tolong di bantu
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Jawaban:
Permasalahan pada kode yang Anda berikan adalah karena ada penggunaan cout yang seharusnya tidak ada pada bagian if statement. Jika Anda menghapus cout di bagian if, maka output yang dihasilkan hanya akan berupa tanda "+" dan tidak ada angka.
Untuk mengatasi hal ini, Anda bisa memindahkan penggunaan cout ke dalam blok else statement, sehingga nantinya output angka akan ditampilkan setelah dilakukan operasi perkalian. Berikut adalah contoh kode yang telah diperbaiki:
Code:
#include <iostream>
using namespace std;
int perkalian(int a, int b);
int main()
{
int a, b, hasil, awal;
cout << "Masukan angka pertama: ";
cin >> a;
cout << "Masukan angka ke dua: ";
cin >> b;
hasil = perkalian(a,b);
cout << "\nHasilnya adalah: ";
cout << hasil << endl;
cin.get();
return 0;
}
int perkalian(int a, int b)
{
if (b <= 0)
{
return 0;
}
else
{
int hasil = a + perkalian(a, (b - 1));
if (b == 1)
{
cout << a;
}
else
{
cout << a << "+";
}
return hasil;
}
}
Pada kode di atas, penggunaan cout dipindahkan ke dalam blok else statement pada fungsi perkalian. Selain itu, perhitungan yang awalnya dimulai dari 1, diubah menjadi dimulai dari 0 pada if statement agar tidak menghasilkan tanda "+" pada output. Terakhir, hasil perhitungan disimpan pada variabel lokal dan di-return agar dapat ditampilkan pada output. Semoga membantu!
Semoga dengan pertanyaan yang sudah terjawab oleh azzaalhanifa dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Wed, 21 Jun 23