Soal Jawab Prosedur dan Fungsi
Soal: Buatlah sebuah prosedur yang menerima dua parameter bilangan bulat start
dan end
, lalu menampilkan semua bilangan genap di antara kedua bilangan tersebut.
Jawaban:
#include <iostream>
using namespace std;
// Prosedur untuk mencetak bilangan genap
void printEvenNumbers(int start, int end) {
cout << "Bilangan genap dari " << start << " hingga " << end << ": ";
for (int i = start; i <= end; i++) {
if (i % 2 == 0) {
cout << i << " ";
}
}
cout << endl;
}
int main() {
int start, end;
cout << "Masukkan awal dan akhir rentang: ";
cin >> start >> end;
printEvenNumbers(start, end); // Memanggil prosedur
return 0;
}
Soal 2: Hitung Pangkat dengan Fungsi
Soal: Buat fungsi bernama power
yang menerima dua parameter base
dan exponent
untuk menghitung hasil base^exponent
(basis pangkat eksponen).
Jawaban:
#include <iostream>
using namespace std;
// Fungsi untuk menghitung pangkat
int power(int base, int exponent) {
int result = 1;
for (int i = 1; i <= exponent; i++) {
result *= base;
}
return result;
}
int main() {
int base, exponent;
cout << "Masukkan basis dan eksponen: ";
cin >> base >> exponent;
cout << base << " pangkat " << exponent << " adalah: " << power(base, exponent) << endl;
return 0;
}
Soal 3: Konversi Suhu
Soal: Buat program yang memiliki dua fungsi:
celsiusToFahrenheit
untuk mengonversi suhu dari Celsius ke Fahrenheit.fahrenheitToCelsius
untuk mengonversi suhu dari Fahrenheit ke Celsius.
Jawaban:
#include <iostream>
using namespace std;
// Fungsi untuk konversi Celsius ke Fahrenheit
float celsiusToFahrenheit(float celsius) {
return (celsius * 9/5) + 32;
}
// Fungsi untuk konversi Fahrenheit ke Celsius
float fahrenheitToCelsius(float fahrenheit) {
return (fahrenheit - 32) * 5/9;
}
int main() {
float temperature;
int choice;
cout << "Pilih konversi suhu:\n1. Celsius ke Fahrenheit\n2. Fahrenheit ke Celsius\n";
cin >> choice;
cout << "Masukkan suhu: ";
cin >> temperature;
if (choice == 1) {
cout << "Suhu dalam Fahrenheit: " << celsiusToFahrenheit(temperature) << "°F" << endl;
} else if (choice == 2) {
cout << "Suhu dalam Celsius: " << fahrenheitToCelsius(temperature) << "°C" << endl;
} else {
cout << "Pilihan tidak valid!" << endl;
}
return 0;
}
Soal 4: Menentukan Bilangan Prima
Soal: Buat sebuah fungsi bernama isPrime
yang menerima satu parameter bilangan bulat n
dan mengembalikan true
jika n
adalah bilangan prima, atau false
jika bukan.
Jawaban:
#include <iostream>
using namespace std;
// Fungsi untuk mengecek bilangan prima
bool isPrime(int n) {
if (n <= 1) return false; // 1 atau kurang bukan bilangan prima
for (int i = 2; i * i <= n; i++) {
if (n % i == 0) return false;
}
return true;
}
int main() {
int number;
cout << "Masukkan sebuah bilangan: ";
cin >> number;
if (isPrime(number)) {
cout << number << " adalah bilangan prima." << endl;
} else {
cout << number << " bukan bilangan prima." << endl;
}
return 0;
}
Soal 5: Perhitungan Gaji Karyawan
Soal: Buat program yang memiliki prosedur untuk menghitung dan mencetak gaji karyawan berdasarkan jam kerja dan upah per jam. Jika jam kerja lebih dari 40, jam kerja tambahan dihitung sebagai lembur (upah lembur adalah 1.5 kali upah normal).
Jawaban:
#include <iostream>
using namespace std;
// Prosedur untuk menghitung dan mencetak gaji
void calculateSalary(int hoursWorked, float hourlyRate) {
float totalSalary;
if (hoursWorked > 40) {
int overtimeHours = hoursWorked - 40;
totalSalary = (40 * hourlyRate) + (overtimeHours * hourlyRate * 1.5);
} else {
totalSalary = hoursWorked * hourlyRate;
}
cout << "Total gaji: Rp" << totalSalary << endl;
}
int main() {
int hoursWorked;
float hourlyRate;
cout << "Masukkan jumlah jam kerja: ";
cin >> hoursWorked;
cout << "Masukkan upah per jam: ";
cin >> hourlyRate;
calculateSalary(hoursWorked, hourlyRate); // Memanggil prosedur
return 0;
}
Soal 6: Hitung Luas dan Keliling Lingkaran
Soal: Buat dua fungsi:
calculateArea
untuk menghitung luas lingkaran.calculateCircumference
untuk menghitung keliling lingkaran.
Gunakan nilai konstanta π (3.14159
).
Jawaban:
#include <iostream>
using namespace std;
const float PI = 3.14159;
// Fungsi untuk menghitung luas lingkaran
float calculateArea(float radius) {
return PI * radius * radius;
}
// Fungsi untuk menghitung keliling lingkaran
float calculateCircumference(float radius) {
return 2 * PI * radius;
}
int main() {
float radius;
cout << "Masukkan jari-jari lingkaran: ";
cin >> radius;
cout << "Luas lingkaran: " << calculateArea(radius) << endl;
cout << "Keliling lingkaran: " << calculateCircumference(radius) << endl;
return 0;
}
Soal 7: Mengurutkan Angka
Soal: Buat sebuah fungsi sortNumbers
yang menerima tiga bilangan bulat, kemudian mengurutkan bilangan tersebut dalam urutan menaik (ascending).
Jawaban:
#include <iostream>
using namespace std;
// Fungsi untuk mengurutkan tiga angka
void sortNumbers(int &a, int &b, int &c) {
if (a > b) swap(a, b);
if (a > c) swap(a, c);
if (b > c) swap(b, c);
}
int main() {
int x, y, z;
cout << "Masukkan tiga angka: ";
cin >> x >> y >> z;
sortNumbers(x, y, z); // Mengurutkan angka
cout << "Angka setelah diurutkan: " << x << ", " << y << ", " << z << endl;
return 0;
}