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:
celsiusToFahrenheituntuk mengonversi suhu dari Celsius ke Fahrenheit.fahrenheitToCelsiusuntuk 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:
calculateAreauntuk menghitung luas lingkaran.calculateCircumferenceuntuk 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;
}