Lembar Jawaban Kombinasi Variabel Pada C++
Disusun guna memenuhi tugas mata kuliah
BAHASA DAN PEMROGRAMAN KOMPUTER
Dosen Pengampu :
Adiratna Ciptanigrum, S.T., M.T
Disusun Oleh
RIMBA MAULANA AKBAR (244308116)
KELAS TKA 1D
PROGRAM STUDI TEKNIK PERKERETAAPIAN
POLITEKNIK NEGERI MADIUN
2024
KATA PENGANTAR
Puji syukur kami panjatkan kepada Tuhan Yang Maha Esa, karena atas limpahan
rahmatnya penyusun dapat menyelesaikan laporan ini tepat waktu tanpa ada halangan yang
berarti dan sesuai dengan harapan.
Ucapan terima kasih kami sampaikan kepada Ibu Adiratna Ciptanigrum, S.T., M.T
sebagai dosen pengampu mata kuliah Bahasa dan Pemrograman Komputer yang telah membantu
memberikan arahan dan pemahaman dalam penyusunan laporan ini.
Kami menyadari bahwa dalam penyusunan laporan ini masih banyak kekurangan karena
keterbatasan kami. Maka dari itu penyusun sangat mengharapkan kritik dan saran untuk
menyempurnakan makalah ini. Semoga apa yang ditulis dapat bermanfaat bagi semua pihak
yang membutuhkan.
Madiun, 18 September 2024
Rimba Maulana Akbar
BAB I
PENDAHULUAN
1.1 Latar Belakang
Kombinasi variabel dalam C++ sering kali terkait dengan pengelolaan data dan algoritma yang
melibatkan penggabungan elemen-elemen dari suatu kumpulan. Dalam konteks ini, kombinasi berarti
memilih elemen dari suatu set tanpa memperhatikan urutan. Contoh aplikasinya bisa dilihat dalam
pemecahan masalah kombinatorial, seperti pemilihan item, perhitungan peluang, atau analisis data.
Kombinasi adalah pemilihan subset dari sekumpulan objek di mana urutan tidak diperhatikan. Misalnya,
kombinasi dari {A, B, C} dengan 2 elemen adalah {A, B}, {A, C}, dan {B, C}. Dalam banyak aplikasi, seperti
pengambilan keputusan, pengoptimalan, dan analisis statistik, memahami cara mengkombinasikan
variabel menjadi krusial. Kombinasi membantu dalam menganalisis berbagai kemungkinan dan solusi.
C++ menawarkan berbagai struktur data (seperti vector dan array) dan algoritma (seperti rekursi atau
penggunaan library STL) untuk membantu dalam mengimplementasikan kombinasi. Penggunaan
template dan fungsi dapat meningkatkan fleksibilitas dan efisiensi. Kombinasi digunakan dalam banyak
bidang, seperti pemrograman permainan, analisis risiko, dan pengolahan data, di mana pemilihan
elemen yang tepat dari kumpulan data sangat penting. Dengan memahami dasar-dasar kombinasi dalam
C++, pengembang dapat memecahkan masalah kompleks dengan lebih efisien dan efektif.
1.2 Rumusan Masalah
1. Buatlah program yang menghitung faktorial dari suatu bilangan menggunakan fungsi rekursif dan
analisis.
2. Buatlah program yang mengurutkan array menggunakan metode bubble sort dan analisis.
3. Buatlah program sederhana untuk mengelola data mahasiswa (nama, NIM, nilai) menggunakan struktur
dan analisis.
BAB II
PEMBAHASAN
1. Buatlah program yang menghitung faktorial dari suatu bilangan menggunakan fungsi rekursif dan
analisis.
Pembahasan :
#include <iostream>
using namespace std;
// Fungsi rekursif untuk menghitung faktorial
int hitungFaktorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * hitungFaktorial(n - 1);
int main() {
int angka;
cout << "Masukkan angka: ";
cin >> angka;
cout << "Faktorial dari " << angka << " adalah " << hitungFaktorial(angka) << endl;
return 0;
}
2. Buatlah program yang mengurutkan array menggunakan metode bubble sort dan analisis.
Pembahasan:
#include <iostream>
using namespace std;
// Fungsi untuk mengurutkan array menggunakan Bubble Sort
void bubbleSort(int arr[], int n) {
for (int i = 0; i < n - 1; i++) {
for (int j = 0; j < n - i - 1; j++) {
if (arr[j] > arr[j + 1]) {
// Tukar elemen jika tidak dalam urutan yang benar
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
// Fungsi untuk menampilkan array
void tampilkanArray(int arr[], int n) {
for (int i = 0; i < n; i++) {
cout << arr[i] << " ";
cout << endl;
}
int main() {
int arr[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(arr) / sizeof(arr[0]);
cout << "Array sebelum diurutkan: ";
tampilkanArray(arr, n);
bubbleSort(arr, n);
cout << "Array setelah diurutkan: ";
tampilkanArray(arr, n);
return 0;
}
3. Buatlah program sederhana untuk mengelola data mahasiswa (nama, NIM, nilai) menggunakan
struktur dan analisis.
#include <stdio.h>
#define MAX_MAHASISWA 100
// Struktur untuk menyimpan data mahasiswa
typedef struct {
char nama[50];
char nim[15];
float nilai;
} Mahasiswa;
// Fungsi untuk menambah data mahasiswa
void tambahMahasiswa(Mahasiswa *mhs, int *jumlah) {
if (*jumlah >= MAX_MAHASISWA) {
printf("Data mahasiswa penuh!\n");
return;
printf("Masukkan nama: ");
scanf(" %[^\n]", mhs[*jumlah].nama);
printf("Masukkan NIM: ");
scanf(" %[^\n]", mhs[*jumlah].nim);
printf("Masukkan nilai: ");
scanf("%f", &mhs[*jumlah].nilai);
(*jumlah)++;
// Fungsi untuk menampilkan data mahasiswa
void tampilkanMahasiswa(Mahasiswa *mhs, int jumlah) {
printf("\nData Mahasiswa:\n");
for (int i = 0; i < jumlah; i++) {
printf("Nama: %s, NIM: %s, Nilai: %.2f\n", mhs[i].nama, mhs[i].nim, mhs[i].nilai);
// Fungsi untuk menghitung rata-rata nilai mahasiswa
void rataRataNilai(Mahasiswa *mhs, int jumlah) {
if (jumlah == 0) {
printf("Tidak ada data mahasiswa.\n");
return;
}
float total = 0;
for (int i = 0; i < jumlah; i++) {
total += mhs[i].nilai;
printf("Rata-rata nilai: %.2f\n", total / jumlah);
int main() {
Mahasiswa mhs[MAX_MAHASISWA];
int jumlahMahasiswa = 0;
int pilihan;
do {
printf("\nMenu:\n");
printf("1. Tambah Mahasiswa\n");
printf("2. Tampilkan Mahasiswa\n");
printf("3. Rata-rata Nilai\n");
printf("4. Keluar\n");
printf("Pilih: ");
scanf("%d", &pilihan);
switch (pilihan) {
case 1:
tambahMahasiswa(mhs, &jumlahMahasiswa);
break;
case 2:
tampilkanMahasiswa(mhs, jumlahMahasiswa);
break;
case 3:
rataRataNilai(mhs, jumlahMahasiswa);
break;
case 4:
printf("Keluar dari program.\n");
break;
default:
printf("Pilihan tidak valid!\n");
} while (pilihan != 4);
return 0;