Lompat ke konten Lompat ke sidebar Lompat ke footer

Soal Jawab Prosedur dan Fungsi

Soal 1: Menampilkan Bilangan Genap

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:

  1. celsiusToFahrenheit untuk mengonversi suhu dari Celsius ke Fahrenheit.
  2. 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:

  1. calculateArea untuk menghitung luas lingkaran.
  2. 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;
}