PERTEMUAN 17 ( 24 DESEMBER 2025 )

TUGAS MEMANGGIL NAMA TEMAN

#include 
using namespace std;

/* === DEKLARASI PROSEDUR  === */
void devina();
void bagas();
void cesar();
void nisa();
void ajel();
void raja();
void akmal();
void bimo();
void vio();
void dimas();

/* === ISI PROSEDUR === */
void dimas() {
    cout << "Nama saya Dimas" << endl;
}

void vio() {
    cout << "Nama saya Vio" << endl;
    cout << "Ini teman saya, namanya Dimas" << endl;
    dimas();
}

void bimo() {
    cout << "Nama saya Bimo" << endl;
    cout << "Ini teman saya, namanya Vio" << endl;
    vio();
}

void akmal() {
    cout << "Nama saya Akmal" << endl;
    cout << "Ini teman saya, namanya Bimo" << endl;
    bimo();
}

void raja() {
    cout << "Nama saya Raja" << endl;
    cout << "Ini teman saya, namanya Akmal" << endl;
   akmal();
}

void ajel() {
    cout << "Nama saya Ajel" << endl;
    cout << "Ini teman saya, namanya Raja" << endl;
    raja();
}

void nisa() {
    cout << "Nama saya Nisa" << endl;
    cout << "Ini teman saya, namanya Ajel" << endl;
    ajel();
}

void cesar() {
    cout << "Nama saya Cesar" << endl;
    cout << "Ini teman saya, namanya Nisa" << endl;
    nisa();
}

void bagas() {
    cout << "Nama saya Bagas" << endl;
    cout << "Ini teman saya, namanya Cesar" << endl;
    cesar();
}

void devina() {
    cout << "Nama saya Devina" << endl;
    cout << "Ini teman saya, namanya Bagas" << endl;
    bagas();
}

int main() {
    devina(); // hanya satu pemanggilan
    return 0;
}

PERTEMUAN KE 16 ( 17 DESEMBER 2025 )

EXERCISE ! Create a program that allows to input user authentication details, show the inputted data, sorting name data by ascending

#include 
#include 
#include 
using namespace std;

struct User {
    string name;
    string pass;
    string phone;
};

vector users;

void inputData() {
    User u;
    cout << "Name  : ";
    cin >> u.name;
    cout << "Pass  : ";
    cin >> u.pass;
    cout << "Phone : ";
    cin >> u.phone;

    users.push_back(u);
    cout << "New data is added\n";
}

void showData() {
    if (users.empty()) {
        cout << "No data available\n";
        return;
    }

    cout << "No\tName\tPass\tPhone\n";
    for (int i = 0; i < users.size(); i++) {
        cout << i+1 << "\t"
             << users[i].name << "\t"
             << users[i].pass << "\t"
             << users[i].phone << endl;
    }
}

void deleteData() {
    int no;
    showData();
    if (users.empty()) return;

    cout << "Input data number to be deleted: ";
    cin >> no;

    if (no < 1 || no > users.size()) {
        cout << "Invalid number\n";
    } else {
        users.erase(users.begin() + (no - 1));
        cout << "Data is removed\n";
    }
}

bool compareName(User a, User b) {
    return a.name < b.name;
}

void sortingData() {
    sort(users.begin(), users.end(), compareName);
    cout << "Data sorted by name (ascending)\n";
}


int main() {
    int choice;
    do {
        cout << "\n1. Input Data\n";
        cout << "2. Show Data\n";
        cout << "3. Delete Data\n";
        cout << "4. Sorting Data\n";
        cout << "5. Exit\n";
        cout << "Your choice: ";
        cin >> choice;

        switch (choice) {
            case 1: inputData(); break;
            case 2: showData(); break;
            case 3: deleteData(); break;
            case 4: sortingData(); break;
            case 5: cout << "Exit program\n"; break;
            default: cout << "Invalid choice\n";
        }
    } while (choice != 5);

    return 0;
}

PERTEMUAN KE 15 ( 16 DESEMBER 2025 )

 Bubble Sort

  • Also call as sinking sort or exchange sort
  • Ascending : sorting from small to big 
  • Descending : sorting from big to small
  • Value into array
  • Adjacent value compared
  • If increasing, then change to become decreasing
  • At round :
- 1, array at 1 ( index 0 ) is a smallest value

- 2, array at 2 ( index 1) is a second smallest value

- n-1. array at n ( index n-1 ) is  a biggest value

  • Number of round = n - 1
Prosedur swap

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

    int temp = a 

a = b;

b = temp;

Bubble sort

void bubbleSort ( int arr[], int n) {

 for ( int i = 0; i < n - 1; i++ ) {

  for ( int j= n-1; j > i; j-- ) { //Mulai dari belakang

    if (arr [j] < arr [j - 1] {

     swap ( arr [j], arr [j - 1 ]);

    }

   }

  }

}

main

int main () {

   int arr[] = {5 ,1, 4, 2, 8};

   int n = sizeof(arr) / siozeof(arr[o]);

   bubbleSort ( arr, n );

   for ( int i = 0; i < n, i++ ) {

      cout << arr[i] << "";

   }

   cout << endl;

   return 0;

}

Kode Lengkap

#include <iostream>

using namespace std;

void bubbleSort ( int arr[], int n ) {

  for ( int i = 0; i< n-1 1; i++) {

    for (int j = n -1; j < i; j--) { //Mulai dari belakang

     if ( arr[j] < arr [j - 1 ] ){ 

      swap (arr [j] < arr [ j -1 ];

    }

   }

  }

}

int main () {

   int arr [] = { 5, 1, 4, 2, 8 };

   int n = sizeoff (arr) / sizeof (arr[0]);

   bubbleSort (arr , n );

   for (int i = 0; i < n; i++) {

     cout << arr [i] << "";

}

cout << endl;

return 0;

}

Selection Sort

  • Value sent into array 
  • Search for the biggest value put at the end of arrray
  • At round :
          - 1, array at 1 ( index 0 ) is a small value

          -2. array at 2 ( index 1 ) is a second small value

          - n -1, array at n ( index n-1 ) is a biggest value number of round = n -1   

Kode selectionSort

void selectionSort ( int arr [], int n ) {

  for ( int i = n -1; i > =0; i--) {

   int maxldx = 0;

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

     if ( arr [j] > arr { maxldx]) {

       maxldx = j;

   }

  }

// Tukar elemen terbesar dengan elemen di posisi i swap ( arr [maxldx], arr [i]);

   }

}

main

int main () {

  int arr [] = { 64, 25 , 12, 22, 11 };

  int n = sizeof(arr)/ sizeof(arr[0]);


  cout << " Array sebelum sorting:";

 for ( int i = 0;i < n; i++ ) {

   cout << arr [i] << "";

}

cout << endl;

selectionSort (arr,n);

cout << " Array setelah sorting descending:";

for ( int i=0; i< n; i++) {

   cout << arr[i] << "";

}

cout << endl;

return 0;

}

Insertion Sort

  • Value sent into array
  • Using helper container
  • Value compared with index previously
  • Every round did not produce the biggest value or the smallest value,
  • Number of round = n -1
Kode Lengkap

#include <iostream>

using namespace std;

void insertionSort (int arr[], int n)  {

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

    int key = arr[i];

    int j = i - 1;

   // Geser elemen yang lebih besar dari key ke kanan 

    while (j >= 0 && arr [j] > key) {

      arr [ j + 1 ] = arr [j];

     j-;

   }

    // Sisipkan key di posisi yang tepat

     arr [ j + 1 ] = key;

  }

}

int main () {

  int arr [] = { 12, 11, 13, 5, 6 };

  int n = sizeof (arr) / sizeof ( arr[0]);

  cout << " Array sebelum sorting:";

  for ( int i = 0; i < n; i++) {

   cout << arr [i] << "";

}

cout << endl;

insertionSort (arr,n);

cout << " Array setelah sorting:";

for ( int i= 0; i < n; i++ ) {

  cout << arr [i] << "";

}

cout << endl;

return 0;

}

Merge Sort

  • Value sent into array
  • divided data become two based on index
  • Each one sorted
  • Re-Merge data

PERTEMUAN KE 14 ( 3 DESEMBER 2025 )

BUAT PROGRAM MENU UNTUK MEMANGGIL SEMUA FUNGSI YANG TELAH ANDA BUAT.

#include 
#include 
using namespace std;

// ========================
//       PROSEDUR BIODATA
// ========================
void biodata() {
    cout << "=== BIODATA SAYA ===\n";
    cout << "Nama   : Devina Hindriastika\n";
    cout << "NPM	: 20251310007\n";
    cout << "Kelas  : A1\n";
    cout << "=====================\n\n";
}

// ========================
//        FUNGSI MENU
// ========================

// 1. detik ? menit & jam
void detik_ke_menit_jam() {
    int detik;
    cout << "Masukkan detik: ";
    cin >> detik;

    int menit = detik / 60;
    int jam = detik / 3600;

    cout << "Menit : " << menit << endl;
    cout << "Jam   : " << jam << endl;
}

// 2. jam & menit ? detik
void jam_menit_ke_detik() {
    int jam, menit;
    cout << "Masukkan jam   : ";
    cin >> jam;
    cout << "Masukkan menit : ";
    cin >> menit;

    int detik = (jam * 3600) + (menit * 60);
    cout << "Total detik    : " << detik << endl;
}

// 3. Celcius ? Fahrenheit
float celcius_ke_fahrenheit(float c) {
    return (c * 9/5) + 32;
}

// 4. Rata-rata 5 bilangan
float rata5() {
    float a,b,c,d,e;
    cout << "Masukkan 5 bilangan:\n";
    cin >> a >> b >> c >> d >> e;
    return (a+b+c+d+e)/5;
}

// 5. Keliling persegi panjang
int keliling_pp(int p, int l) {
    return 2 * (p + l);
}

// 6. Keliling lingkaran
float kel_lingkaran(float r) {
    return 2 * 3.14 * r;
}

// 7. Volume balok
float volume_balok(float p, float l, float t) {
    return p * l * t;
}

// 8. Volume bola
float volume_bola(float r) {
    return (4.0/3.0) * 3.14 * pow(r,3);
}

// 9. Volume kerucut
float volume_kerucut(float r, float t) {
    return (3.14 * r * r * t) / 3;
}

// 10. Volume tabung
float volume_tabung(float r, float t) {
    return 3.14 * r * r * t;
}

// 11. Mengecek cuaca
void cek_cuaca() {
    int suhu;
    cout << "Masukkan suhu saat ini: ";
    cin >> suhu;

    if(suhu < 25) 
        cout << "Cuaca berpotensi hujan.\n";
    else
        cout << "Cuaca cerah.\n";
}

// 12. Lulus / tidak
void cek_lulus() {
    int nilai;
    cout << "Masukkan nilai: ";
    cin >> nilai;

    if(nilai >= 75)
        cout << "Status: Lulus\n";
    else
        cout << "Status: Tidak lulus\n";
}

// 13. Positif / negatif
void cek_bilangan() {
    int x;
    cout << "Masukkan bilangan: ";
    cin >> x;

    if(x > 0) cout << "Bilangan positif\n";
    else if(x < 0) cout << "Bilangan negatif\n";
    else cout << "Bilangan nol\n";
}

// 14. Tes logika & bahasa
void tes_logika_bahasa() {
    string kata;
    int angka;
    cout << "Masukkan kata: ";
    cin >> kata;
    cout << "Masukkan angka: ";
    cin >> angka;

    if(kata == "AI" && angka == 10)
        cout << "Logika benar!\n";
    else
        cout << "Logika salah.\n";
}

// 15. No hari
void hari_ke_nama() {
    int hari;
    cout << "Masukkan nomor hari (1-7): ";
    cin >> hari;

    switch(hari) {
        case 1: cout << "Senin\n"; break;
        case 2: cout << "Selasa\n"; break;
        case 3: cout << "Rabu\n"; break;
        case 4: cout << "Kamis\n"; break;
        case 5: cout << "Jumat\n"; break;
        case 6: cout << "Sabtu\n"; break;
        case 7: cout << "Minggu\n"; break;
        default: cout << "Hari tidak valid!\n";
    }
}

// 16. Menentukan grade nilai
char grade(int n) {
    if(n >= 85) return 'A';
    else if(n >= 75) return 'B';
    else if(n >= 65) return 'C';
    else if(n >= 50) return 'D';
    else return 'E';
}

// 17. Harga setelah diskon
float diskon(float harga, int persen) {
    return harga - (harga * persen / 100);
}

// 18. Nilai grade (versi lain)
string nilai_grade(int n) {
    if(n >= 90) return "Sangat Baik";
    else if(n >= 75) return "Baik";
    else if(n >= 60) return "Cukup";
    else return "Kurang";
}

// 19. Kalkulator
void kalkulator() {
    float a, b;
    char op;
    cout << "Masukkan angka 1 : "; cin >> a;
    cout << "Masukkan operator (+ - * /): "; cin >> op;
    cout << "Masukkan angka 2 : "; cin >> b;

    switch(op) {
        case '+': cout << "Hasil: " << a + b << endl; break;
        case '-': cout << "Hasil: " << a - b << endl; break;
        case '*': cout << "Hasil: " << a * b << endl; break;
        case '/': 
            if(b != 0) cout << "Hasil: " << a / b << endl;
            else cout << "Error: pembagian nol\n";
            break;
        default: cout << "Operator tidak valid!\n";
    }
}

// 20. Cetak bilangan genap
void cetak_genap(int a, int b) {
    for(int i = a; i <= b; i++) {
        if(i % 2 == 0)
            cout << i << " ";
    }
    cout << endl;
}

// ===============================
//          PROGRAM UTAMA
// ===============================
int main() {
    int pilihan;

    do {
        biodata();

        cout << "=== MENU PROGRAM ===\n";
        cout << "1. Detik ke menit & jam\n";
        cout << "2. Jam & menit ke detik\n";
        cout << "3. Celcius ke Fahrenheit\n";
        cout << "4. Rata-rata 5 bilangan\n";
        cout << "5. Keliling persegi panjang\n";
        cout << "6. Keliling lingkaran\n";
        cout << "7. Volume balok\n";
        cout << "8. Volume bola\n";
        cout << "9. Volume kerucut\n";
        cout << "10. Volume tabung\n";
        cout << "11. Cek cuaca\n";
        cout << "12. Lulus / tidak\n";
        cout << "13. Positif / negatif\n";
        cout << "14. Tes logika & bahasa\n";
        cout << "15. Nomor hari\n";
        cout << "16. Grade nilai\n";
        cout << "17. Harga diskon\n";
        cout << "18. Nilai grade (versi lain)\n";
        cout << "19. Kalkulator\n";
        cout << "20. Cetak bilangan genap\n";
        cout << "0. Keluar\n";
        cout << "Pilih menu: ";
        cin >> pilihan;

        cout << endl;

        switch(pilihan) {
            case 1: detik_ke_menit_jam(); break;
            case 2: jam_menit_ke_detik(); break;
            case 3: {
                float c;
                cout << "Masukkan Celcius: ";
                cin >> c;
                cout << "Fahrenheit = " << celcius_ke_fahrenheit(c) << endl;
                break;
            }
            case 4: cout << "Rata-rata = " << rata5() << endl; break;
            case 5: {
                int p,l;
                cout << "Panjang: "; cin >> p;
                cout << "Lebar  : "; cin >> l;
                cout << "Keliling = " << keliling_pp(p,l) << endl;
                break;
            }
            case 6: {
                float r;
                cout << "Jari-jari: "; cin >> r;
                cout << "Keliling = " << kel_lingkaran(r) << endl;
                break;
            }
            case 7: {
                float p,l,t;
                cout << "Panjang Lebar Tinggi : ";
                cin >> p >> l >> t;
                cout << "Volume = " << volume_balok(p,l,t) << endl;
                break;
            }
            case 8: {
                float r;
                cout << "Jari-jari: ";
                cin >> r;
                cout << "Volume bola = " << volume_bola(r) << endl;
                break;
            }
            case 9: {
                float r,t;
                cout << "Jari-jari dan tinggi: ";
                cin >> r >> t;
                cout << "Volume kerucut = " << volume_kerucut(r,t) << endl;
                break;
            }
            case 10: {
                float r,t;
                cout << "Jari-jari dan tinggi: ";
                cin >> r >> t;
                cout << "Volume tabung = " << volume_tabung(r,t) << endl;
                break;
            }
            case 11: cek_cuaca(); break;
            case 12: cek_lulus(); break;
            case 13: cek_bilangan(); break;
            case 14: tes_logika_bahasa(); break;
            case 15: hari_ke_nama(); break;
            case 16: {
                int n;
                cout << "Masukkan nilai: ";
                cin >> n;
                cout << "Grade = " << grade(n) << endl;
                break;
            }
            case 17: {
                float h; int d;
                cout << "Harga: "; cin >> h;
                cout << "Diskon (%): "; cin >> d;
                cout << "Harga setelah diskon = " << diskon(h,d) << endl;
                break;
            }
            case 18: {
                int n;
                cout << "Masukkan nilai: ";
                cin >> n;
                cout << nilai_grade(n) << endl;
                break;
            }
            case 19: kalkulator(); break;
            case 20: {
                int a,b;
                cout << "Awal dan akhir: ";
                cin >> a >> b;
                cetak_genap(a,b);
                break;
            }
            case 0: cout << "Program selesai.\n"; break;
            default: cout << "Menu tidak valid!\n";
        }

        cout << "\nTekan ENTER untuk kembali ke menu...";
        cin.ignore(); cin.get();

    } while(pilihan != 0);

    return 0;
}

PERTEMUAN KE-13 ( 2 Desember 2025 )

FUNGSI & PROSEDUR DALAM C++

Metode 
 Adalah cara atau langkah-langkah yang digunakan di dalam sebuah fungsi untuk menyelesaikan suatu tugas tertentu. Misal :
1. Membuat nasi goreng ( nama fungsi )
2. () kurung argumen
3. {  untuk mengikat
4. return 0;  untuk pengembalian 
}
5. wadah
// deklarasi data 

Fungsi
Fungsi merupakan sekelompok statement yang digabung untuk melakukan suatu pekerjaan.
Setiap program C++ pasti minimal memiliki satu fungsi "main()".

Deklarasi Fungsi
Deklarasi fungsi membutuhkan nama fungsi, tipe kembalian, dan parameter.

Definisi Fungsi
tipe_balikan nama_fungsi  (daftar parameter)
{
//kode Fungsi

return nilai_balikan;
}

Bagian dari Fungsi
Tipe balikan: Sebuah fungsi boleh mempunyai nilai balikan. tipe_balikan merupakan tipe data dari nilai tersebut.
Nama fungsi: Nama yang digunakan untuk pemanggilan fungsi.

Cara memanggil penambahan
#include <iostream>
using namespace std;

int penambahan ( int a , int b ) {
   return  a+ b ;
}
int main () {
   int b,c;
   cout << " Masukkan bilangan pertama ";
   cin >> b;
   cout << " Masukkkan bilangan kedua";
   cin >> c;
   int a = penambahan ( b, c );
   cout << a ;

   return 0;
}

Contoh pemanggilan fungsi 
int x = 10;
int y = 20;
int hasil = penambahan ( x, y );

Prosedur 
Prosedur merupakan fungsi yang tidak mempunyai nilai balikan. Nilai balikannya didefinisikan "void"

Contoh Prosedur
void cetak3(string a) {
cout << a <<< endl;
cout << a <<<< endl;
cout << a <<< endl;
}

Mengirim Array sebagal Parameter (Ukuran Terpisah)
#include <iostream>
using namespace std;

// Fungsi menerima array dan ukurannya

void printArray(int arr[], int size) {
 for (int i=0; i < size; i++) {
cout << arr[i] <<"";
}
cout << endl;
}
int main() {

int data[] = [10, 20, 30, 40, 50);
 int n = sizeof(data)/sizeof(data[0]):

printArray(data, n); // pemanggilan fungsi

return 0;
}

Mengirim Array sebagai Parameter dengan Pointer
#include <iostream>
using namespace std;

void printArray(int *arr, int size) (
for (int i = 0; i < size; i++) {
cout << arr[i] <<<"";
}
cout << endl;
}
int main() {
int data[] = (5, 7, 9, 11);
printArray(data, 4); // array otomatis decay menjadi pointer

return 0;

}

Fungsi jumlah
#include <iostream>
using namespace std;
 int jumlah(int a, int b) (

return a + b;
}
int main() 1
{
cout << jumlah(2, 3);

return 0;
}

PERTEMUAN KE 12 (KUIS)

Soal Kasus 1: Pengelolaan Nilai Mahasiswa Sebuah program akan digunakan untuk mengelola nilai mahasiswa dalam satu kelas. Program harus mampu: Menerima input jumlah mahasiswa (maksimal 50 orang). Harus diuji. Untuk setiap mahasiswa, input: a. Nama (string) b. Nilai tugas, UTS, dan UAS (tipe float) Hitung nilai akhir dengan rumus: NilaiAkhir = 0.3 × Tugas + 0.3 × UTS + 0.4 × UAS dimana: A : > 85 B : 70 – 84 C : 55 – 69 D : 40 – 54 E : < 40 Tampilkan daftar mahasiswa dalam bentuk tabel: No | Nama | Nilai Akhir | Grade -------------------------------- 1 | Andi | 83.5 | B 2 | Budi | 90.2 | A ... Hitung dan tampilkan: Rata-rata nilai akhir seluruh mahasiswa Jumlah mahasiswa yang lulus (grade A, B, C) dan tidak lulus (D, E) Materi yang diuji: Tipe data: string, float, integer Percabangan: menentukan grade dan status kelulusan Pengulangan: input data mahasiswa dan perhitungan rata-rata Array: menyimpan nilai mahasiswa

#include 
#include 
using namespace std;

int main() {
    const int MAX = 50;
    string nama[MAX];
    float tugas[MAX], uts[MAX], uas[MAX], nilaiAkhir[MAX];
    char grade[MAX];

    int jumlah;
    int lulus = 0, tidakLulus = 0;
    float totalNilai = 0;

    // Input jumlah mahasiswa (validasi)
    do {
        cout << "Masukkan jumlah mahasiswa (maksimal 50): ";
        cin >> jumlah;
        if (jumlah <= 0 || jumlah > MAX) {
            cout << "Input tidak valid, coba lagi!\n";
        }
    } while (jumlah <= 0 || jumlah > MAX);

    // Input data mahasiswa
    for (int i = 0; i < jumlah; i++) {
        cout << "\nMahasiswa ke-" << i + 1 << endl;
        cout << "Nama        : ";
        cin >> nama[i];
        cout << "Nilai Tugas : ";
        cin >> tugas[i];
        cout << "Nilai UTS   : ";
        cin >> uts[i];
        cout << "Nilai UAS   : ";
        cin >> uas[i];

        // Hitung nilai akhir
        nilaiAkhir[i] = 0.3 * tugas[i] + 0.3 * uts[i] + 0.4 * uas[i];
        totalNilai += nilaiAkhir[i];

        // Tentukan grade
        if (nilaiAkhir[i] > 85) {
            grade[i] = 'A';
            lulus++;
        } else if (nilaiAkhir[i] >= 70) {
            grade[i] = 'B';
            lulus++;
        } else if (nilaiAkhir[i] >= 55) {
            grade[i] = 'C';
            lulus++;
        } else if (nilaiAkhir[i] >= 40) {
            grade[i] = 'D';
            tidakLulus++;
        } else {
            grade[i] = 'E';
            tidakLulus++;
        }
    }

    // Tampilkan tabel
    cout << "\n============================================\n";
    cout << "No  Nama        Nilai Akhir   Grade\n";
    cout << "============================================\n";

    for (int i = 0; i < jumlah; i++) {
        cout << setw(2) << i + 1 << "  "
             << setw(10) << nama[i] << "      "
             << fixed << setprecision(2) << nilaiAkhir[i] << "        "
             << grade[i] << endl;
    }

    cout << "============================================\n";

    // Rata-rata
    cout << "Rata-rata nilai akhir : " << totalNilai / jumlah << endl;
    cout << "Jumlah lulus          : " << lulus << endl;
    cout << "Jumlah tidak lulus    : " << tidakLulus << endl;

    return 0;
}

PERTEMUAN KE-11

1. LATIHAN MEMBUAT CODE PROGRAM ARRAY 2D ( Input nilai dan hitung rata - rata )

#include 
#include   //untuk setw dan setprecision
using namespace std;

int main (){
	int jumlahSiswa, jumlahNilai;
	char ulang_mhs, ulang;
	
	cout << " ===Program Nilai Siswa ( Array 2D )=== " << endl;
	cout << " ==========Devina Hindriastika==========\n" << endl;
	
	do{
		do{
			
			cout << " Masukkan Jumlah Siswa:";
			cin >> jumlahSiswa;
			cout << " Masukkan Jumlah Nilai per Siswa:";
			cin >> jumlahNilai;
			
			cout << "\nApakah Anda Ingin Menambah Siswa? (y/n):";
			cin >> ulang_mhs;
			
		}while ( ulang_mhs == 'y' || ulang_mhs == 'Y');
	
	string nama[jumlahSiswa];
	float nilai[jumlahSiswa][jumlahNilai];
	float rata[jumlahSiswa];
	
	// Input Data Siswa
	for ( int i=0; i < jumlahSiswa; i++ ){
		cout << "\nMasukkan Nama Siswa ke- " << i+1 << " : ";
		cin >> nama [i];
		
		float total = 0;
		for ( int j=0 j < jumlahNilai; j++ ){
			cout << "Nilai ke- " << j+1 << " : ";
			cin >> nilai[1][j];
			total += nilai[i][j]; 
		}
		rata[i] = total / jumlahNilai;
	}
	
	// Cetak Hasil
	cout << "\n====Daftar Nilai Siswa====\n"<< endl;
	cout << left << setw(15) << "Nama";
	
	//Kolom Nilai Dibuat Otomatis
	for ( int j=0; j> u;ang;
	
	}while ( ulang == 'y' || ulang == 'Y');
	cout << "\nProgram Selesai! Terima Kasih";
	
	return 0;
}
2. HITUNG STANDAR DEVIASI

#include 
#include  // untuk sqrt() dan pow()
using namespace std;

int main(){
    int n;
    double jumlah = 0, rata, jumlah_selisih_kuadrat = 0, std_dev;
    char ulang;

    cout << "====Program Menghitung Standar Deviasi====" << endl;
    cout << "===========Devina Hindriastika============\n" << endl;

    do{
        cout << "\nMasukkan jumlah data: ";
        cin >> n;

        double data[n];

        // Input data dan simpan ke array
        cout << "Masukkan data:" << endl;
        for(int i = 0; i < n; i++){
            cout << "Data ke-" << i + 1 << ": ";
            cin >> data[i];
            jumlah += data[i];
        }

        // Hitung rata-rata
        rata = jumlah / n;

        // Hitung jumlah selisih kuadrat
        for(int i = 0; i < n; i++){
            jumlah_selisih_kuadrat += pow(data[i] - rata, 2);
        }

        // Hitung standar deviasi
        std_dev = jumlah_selisih_kuadrat / (n - 1);

        // Cetak hasil
        cout << "\nRata-Rata: " << rata << endl;
        cout << "Standar Deviasi: " << std_dev << endl;

        cout << "\nApakah Anda Ingin Mengulang? (y/n): ";
        cin >> ulang;

    } while (ulang == 'y' || ulang == 'Y');

    cout << "\nProgram selesai. Terima kasih!";

    return 0;
}
3. HITUNG JUMLAH 2 MATRIKS

#include 
using namespace std;

int main(){
    int matriks1[2][2], matriks2[2][2], hasil[2][2];
    char ulang;

    cout << "===Program Penjumlahan Dua Matriks 2x2===" << endl;
    cout << "===========Devina Hindriastika============\n" << endl;

    do{
        // Input Matriks 1
        cout << "\nMasukkan Elemen Matriks 1: " << endl;
        for(int i = 0; i < 2; i++){
            for(int j = 0; j < 2; j++){
                cout << "Matriks1[" << i + 0 << "][" << j + 1 << "]: ";
                cin >> matriks1[i][j];
            }
        }

        // Input Matriks 2
        cout << "\nMasukkan Elemen Matriks 2: " << endl;
        for(int i = 0; i < 2; i++){
            for(int j = 0; j < 2; j++){
                cout << "Matriks2[" << i + 0 << "][" << j + 1 << "]: ";
                cin >> matriks2[i][j];
            }
        }

        // Penjumlahan Matriks
        for(int i = 0; i < 2; i++){
            for(int j = 0; j < 2; j++){
                hasil[i][j] = matriks1[i][j] + matriks2[i][j];
            }
        }

        // Cetak Hasil
        cout << "\nHasil Penjumlahan Matriks: " << endl;
        for(int i = 0; i < 2; i++){
            for(int j = 0; j < 2; j++){
                cout << hasil[i][j] << "\t";
            }
            cout << endl;
        }

        cout << "\nApakah Anda Ingin Mengulang? (y/n): ";
        cin >> ulang;

    } while (ulang == 'y' || ulang == 'Y');

    cout << "\nProgram selesai. Terima kasih!";

    return 0;
}
4. TRANPOS MATRIKS

#include 
using namespace std;

int main(){
    int baris, kolom;
    char ulang;

    cout << "===Program Transpos Matriks===" << endl;
    cout << "======Devina Hindriastika=======\n" << endl;

    do{
        cout << "\nMasukkan Jumlah Baris: ";
        cin >> baris;
        cout << "Masukkan Jumlah Kolom: ";
        cin >> kolom;

        int matriks[10][10];   // batas maksimum 10x10 hanya contoh
        int transpos[10][10];

        cout << "\nMasukkan Elemen Matriks: " << endl;
        for(int i = 0; i < baris; i++){
            for(int j = 0; j < kolom; j++){
                cout << "Data [" << i + 0 << "][" << j + 1 << "]: ";
                cin >> matriks[i][j];
            }
        }

        // Proses Transpos
        for(int i = 0; i < baris; i++){
            for(int j = 0; j < kolom; j++){
                transpos[j][i] = matriks[i][j];
            }
        }

        // Cetak Matriks Awal
        cout << "\nMatriks Awal: " << endl;
        for(int i = 0; i < baris; i++){
            for(int j = 0; j < kolom; j++){
                cout << matriks[i][j] << "\t";
            }
            cout << endl;
        }

        // Cetak Transpos
        cout << "\nHasil Transpos Matriks: " << endl;
        for(int i = 0; i < kolom; i++){
            for(int j = 0; j < baris; j++){
                cout << transpos[i][j] << "\t";
            }
            cout << endl;
        }

        cout << "\nApakah Anda Ingin Mengulang? (y/n): ";
        cin >> ulang;

    } while (ulang == 'y' || ulang == 'Y');

    cout << "\nProgram Selesai! Terima Kasih";

    return 0;
}
5. MATRIKS IDENTITAS

#include 
using namespace std;

int main() {
    const int n = 20;   // batas maksimum ukuran matriks
    int ukuran;
    char ulang;

    cout << "==== Program Matriks Identitas ====" << endl;
    cout << "====== Devina Hindriastika ======\n" << endl;

    do {
        do {
            cout << "Masukkan ukuran matriks (n): ";
            cin >> ukuran;

            if (ukuran <= 0 || ukuran > n) {
                cout << "Nilai n tidak valid. Maksimal " << n << ". Coba lagi!\n\n";
            }
        } while (ukuran <= 0 || ukuran > n);

        // Cetak matriks identitas
        cout << "\nMatriks identitas " << ukuran << " x " << ukuran << ":\n";
        for (int i = 0; i < ukuran; i++) {
            for (int j = 0; j < ukuran; j++) {
                cout << (i == j ? 1 : 0) << " ";
            }
            cout << "\n";
        }

        cout << "\nApakah Anda ingin mengulang? (y/n): ";
        cin >> ulang;
        cout << endl;

    } while (ulang == 'y' || ulang == 'Y');

    cout << "Program Selesai! Terima Kasih.";
    return 0;
}