cpp-problems
cpp-problems
Daftar Isi
1. Percabangan
2. Perulangan
3. Subprogram
4. Array
5. Pointer & Reference
Percabangan
Soal 1: Sistem Grading Nilai
Buatlah program untuk menentukan grade nilai mahasiswa dengan ketentuan
berikut: - Nilai >= 85: Grade A - Nilai 75-84: Grade B - Nilai 65-74: Grade C
- Nilai 45-64: Grade D - Nilai < 45: Grade E
#include <iostream>
using namespace std;
int main() {
int nilai;
return 0;
}
1
#include <iostream>
using namespace std;
int main() {
double angka1, angka2;
char operasi;
switch(operasi) {
case '+':
cout << angka1 + angka2;
break;
case '-':
cout << angka1 - angka2;
break;
case '*':
cout << angka1 * angka2;
break;
case '/':
if(angka2 != 0)
cout << angka1 / angka2;
else
cout << "Error: Pembagian dengan nol";
break;
default:
cout << "Operasi tidak valid";
}
return 0;
}
Perulangan
Soal 3: Pola Segitiga
Buatlah program untuk menampilkan pola segitiga dengan tinggi sesuai input
user.
#include <iostream>
using namespace std;
2
int main() {
int tinggi;
return 0;
}
Soal 4: Faktorial
Buatlah program untuk menghitung faktorial dari sebuah bilangan menggu-
nakan perulangan while.
#include <iostream>
using namespace std;
int main() {
int n;
long long faktorial = 1;
int i = 1;
while(i <= n) {
faktorial *= i;
i++;
}
cout << "Faktorial dari " << n << " adalah " << faktorial;
return 0;
}
Subprogram
Soal 5: Fungsi Rekursif Fibonacci
Buatlah fungsi rekursif untuk menghitung bilangan fibonacci ke-n.
3
#include <iostream>
using namespace std;
int fibonacci(int n) {
if(n <= 1)
return n;
return fibonacci(n-1) + fibonacci(n-2);
}
int main() {
int n;
cout << "Fibonacci ke-" << n << " adalah " << fibonacci(n);
return 0;
}
int main() {
int x = 5, y = 10;
cout << "Sebelum ditukar: x = " << x << ", y = " << y << endl;
tukarNilai(x, y);
cout << "Setelah ditukar: x = " << x << ", y = " << y << endl;
return 0;
}
4
Array
Soal 7: Mencari Nilai Maksimum dan Minimum
Buatlah program untuk mencari nilai maksimum dan minimum dalam array.
#include <iostream>
using namespace std;
int main() {
int n;
cout << "Masukkan jumlah elemen: ";
cin >> n;
int arr[n];
for(int i = 0; i < n; i++) {
cout << "Masukkan elemen ke-" << i+1 << ": ";
cin >> arr[i];
}
return 0;
}
int main() {
int baris, kolom;
int matriks[baris][kolom];
5
int transpose[kolom][baris];
// Input matriks
for(int i = 0; i < baris; i++) {
for(int j = 0; j < kolom; j++) {
cout << "Masukkan elemen [" << i << "][" << j << "]: ";
cin >> matriks[i][j];
}
}
// Proses transpose
for(int i = 0; i < baris; i++) {
for(int j = 0; j < kolom; j++) {
transpose[j][i] = matriks[i][j];
}
}
return 0;
}
int main() {
int n;
cout << "Masukkan jumlah elemen: ";
cin >> n;
// Alokasi dinamis
double *arr = new double[n];
6
// Input elemen
for(int i = 0; i < n; i++) {
cout << "Masukkan elemen ke-" << i+1 << ": ";
cin >> arr[i];
}
// Hitung rata-rata
double sum = 0;
for(int i = 0; i < n; i++) {
sum += arr[i];
}
double rata = sum / n;
// Dealokasi memori
delete[] arr;
return 0;
}
awal++;
akhir--;
}
}
int main() {
char str[100];
7
cout << "Masukkan string: ";
cin.getline(str, 100);
cout << "String sebelum dibalik: " << str << endl;
balikString(str);
cout << "String setelah dibalik: " << str << endl;
return 0;
}
Kesimpulan
Soal-soal di atas mencakup berbagai konsep penting dalam pemrograman C++
seperti: 1. Percabangan (if-else, switch-case) 2. Perulangan (for, while) 3.
Subprogram (fungsi, prosedur, rekursi) 4. Array (1D dan 2D) 5. Pointer dan
Reference
Setiap soal dirancang untuk melatih pemahaman konsep dan kemampuan prob-
lem solving dalam pemrograman C++.