0% menganggap dokumen ini bermanfaat (0 suara)
43 tayangan

cpp-problems

1

Diunggah oleh

mzitsme26
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
43 tayangan

cpp-problems

1

Diunggah oleh

mzitsme26
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 8

10 Soal Problem Solving C++

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;

cout << "Masukkan nilai: ";


cin >> nilai;

if (nilai >= 85) {


cout << "Grade A";
} else if (nilai >= 75) {
cout << "Grade B";
} else if (nilai >= 65) {
cout << "Grade C";
} else if (nilai >= 45) {
cout << "Grade D";
} else {
cout << "Grade E";
}

return 0;
}

Soal 2: Kalkulator Sederhana


Buatlah program kalkulator sederhana yang dapat melakukan operasi +, -, *, /
dengan menggunakan switch-case.

1
#include <iostream>
using namespace std;

int main() {
double angka1, angka2;
char operasi;

cout << "Masukkan angka pertama: ";


cin >> angka1;
cout << "Masukkan operasi (+,-,*,/): ";
cin >> operasi;
cout << "Masukkan angka kedua: ";
cin >> angka2;

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;

cout << "Masukkan tinggi segitiga: ";


cin >> tinggi;

for(int i = 1; i <= tinggi; i++) {


for(int j = 1; j <= i; j++) {
cout << "* ";
}
cout << endl;
}

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;

cout << "Masukkan bilangan: ";


cin >> n;

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 << "Masukkan nilai n: ";


cin >> n;

cout << "Fibonacci ke-" << n << " adalah " << fibonacci(n);

return 0;
}

Soal 6: Prosedur Tukar Nilai


Buatlah prosedur untuk menukar nilai dua variabel menggunakan parameter
reference.
#include <iostream>
using namespace std;

void tukarNilai(int &a, int &b) {


int temp = a;
a = b;
b = temp;
}

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];
}

int max = arr[0], min = arr[0];


for(int i = 1; i < n; i++) {
if(arr[i] > max) max = arr[i];
if(arr[i] < min) min = arr[i];
}

cout << "Nilai maksimum: " << max << endl;


cout << "Nilai minimum: " << min << endl;

return 0;
}

Soal 8: Matriks Transpose


Buatlah program untuk melakukan transpose matriks 2D.
#include <iostream>
using namespace std;

int main() {
int baris, kolom;

cout << "Masukkan jumlah baris: ";


cin >> baris;
cout << "Masukkan jumlah kolom: ";
cin >> 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];
}
}

// Output hasil transpose


cout << "\nHasil Transpose:\n";
for(int i = 0; i < kolom; i++) {
for(int j = 0; j < baris; j++) {
cout << transpose[i][j] << " ";
}
cout << endl;
}

return 0;
}

Pointer & Reference


Soal 9: Alokasi Dinamis Array
Buatlah program untuk membuat array dinamis menggunakan pointer dan
menghitung rata-ratanya.
#include <iostream>
using namespace std;

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;

cout << "Rata-rata: " << rata << endl;

// Dealokasi memori
delete[] arr;

return 0;
}

Soal 10: Manipulasi String dengan Pointer


Buatlah program untuk membalik string menggunakan pointer.
#include <iostream>
#include <cstring>
using namespace std;

void balikString(char *str) {


int panjang = strlen(str);
char *awal = str;
char *akhir = str + panjang - 1;

while(awal < akhir) {


char temp = *awal;
*awal = *akhir;
*akhir = temp;

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++.

Anda mungkin juga menyukai