#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;
}
Materi Algoritma Pemrograman
Materi pertemuan mata kuliah algoritma pemrograman yang di susun oleh Devina Hindriastika
PERTEMUAN 17 ( 24 DESEMBER 2025 )
PERTEMUAN KE 16 ( 17 DESEMBER 2025 )
#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 :
- 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
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 :
-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
#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 )
#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 )
MetodeFUNGSI & PROSEDUR DALAM C++
PERTEMUAN KE 12 (KUIS)
#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
#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;
}
PERTEMUAN KE-10 ARRAY
Array 1 & 2 Dimensi Dalam Bahasa C++
Array 1 Dimensi
Array 1 Dimensi adalah Kumpulan elemen bertipe sama yang disimpan berurutan dalam memori. Array juga seperti deretan loker atau rak buku.
Deklarasi Array 1 Dimensi
Sintaks
· Tipe_data nama_data [jumlah_data];
· Int nilai [5];
Inisialisasi Array 1 Dimensi
· int nilai [5] = {80,75,90,85,100};
Atau dikosongkan
· int nilai [ ] = {80,75,90,85,100};
Bisa 5 keatas, tapi tidak bisa 4 kebawah
Akses Elemen Array 1 Dimensi
Sintak : nama_data[indek_data];
· cout<<nilai[2];
Perulangan Array 1 Dimensi
for (int i=0; i<5; i++) cout<<nilai[i]<<” “;
Operasi Dasar Array 1 Dimensi
· Mencari rata-rata
· Mencari nilai maksimum/minimum
· Mengurut data
· Mencari data
Jenis Kurung di C++
· ( ) = Argumen
· { } = Blok
· [ ] = Array
Array 2 Dimensi
Array 2 Dimensi adalah struktur data yang menyimpan elemen-elemen dalam format tabel yang terdiri dari baris dan kolom, mirip dengan matriks.
Deklarasi Array 2 Dimensi
· Tipe_data nama_data[jumlah_baris][jumlah_kolom];
· int matriks[3][4];
Inisialisasi Array 2 Dimensi
int matriks [2][5] = {{1,2,3},{4,5,6}};
Akses Elemen Array 2 Dimensi
Cout<<matriks[1][2];
Loop Bersarang Array 2 Dimensi
for (i) for (j) cout<<matriks[[i][j];
PERTEMUAN KE 9 PRAKTEK ( 22 NOVEMBER 2025 )
#include
using namespace std;
int main () {
int jumlah;
cout << " Masukkan jumlah anak ayam : " ;
cin >> jumlah;
cout << " Mulai bernyanyi..." << endl << endl ;
for (int i = jumlah; i >= 1; i--) {
cout << " Tekotek kotek kotek anak ayam turun " << i << endl;
if (i>1)
cout << " Mati satu tinggal " << i - 1 << endl;
else
cout << " Mati satu tinggal induknyan" << endl;
// delay agar tidak terlalu cepat
for ( double j = 1;j <= 100000000; j++) {}
cout << endl;
}
cout << " selesai bernyanyi!" << endl;
return 0;
}
2. GRADE NILAI
#include
using namespace std;
int main () {
int nilai;
//Looping sampai nilai valid ( 0 - 100 ) ;
do {
cout << " Masukkan nilai ( 0 - 100 ):";
cin >> nilai ;
if ( nilai < 0 || nilai > 100 ) {
cout << " X Nilai tidak valid! Harus antara 0 sampai 100.\n";
}
} while ( nilai < 0 || nilai > 100) ;
// Konversi nilai ke huruf
char grade;
if ( nilai >= 85 )
grade = 'A';
else if ( nilai >= 70 )
grade = 'B';
else if ( nilai >= 55 )
grade = 'C';
else if ( nilai >= 40 )
grade = 'D';
else
grade = 'E';
cout << " Nilai huruf kamu :" << grade << endl;
return 0;
}
3. KALKULATOR SEDERHANA
#include
using namespace std;
int main () {
double bil1, bil2, hasil;
int pilihan;
while (true) {
//Tampilkan menu
cout << "n\=== Kalkulator Sederhana ===\n";
cout << "1. Tambah (+)\n";
cout << "2. Kurang (-)\n";
cout << "3. Kali (*)\n";
cout << "4. Bagi (/)\n";
cout << "5. Keluar\n";
cout << " Masukkan pilihan ( 1 - 5 ):";
cin >> pilihan;
if ( pilihan == 5 ) {
cout << " Terima kasih. Program selesai.\n";
break; // keluar dari loop
}
if ( pilihan < 1 || pilihan > 5 ) {
cout << " Pilihan tidak valid. Silakan coba lagi.\n";
continue;
}
// Memasukkan bilangan
cout << " Masukkan bilangan pertama:";
cin >> bil1;
cout << " Masukkan bilangan kedua:";
cin>> bil2;
switch ( pilihan) {
case 1:
hasil = bil1 + bil2 ;
cout << " Hasil: " << bil1 << "+" << bil2 << "=" << hasil << endl;
break;
case 2:
hasil = bil1 - bil2 ;
cout << " Hasil: " << bil1 << "-" << bil2 << "=" << hasil << endl;
case 3:
hasil = bil1 * bil2 ;
cout << " Hasil :" << bil1 << "*" << bil2 << "=" << hasil << endl;
case 4:
if ( bil2 == 0) {
cout << " Kesalahan : Pembagian dengan nol tidak diprbolehkan.\n";
} else {
} hasil = bil1 / bil2 ;
cout << " Hasil" << bil1 << "/" << bil2 << "=" << hasil << endl;
}
break;
}
return 0;
}
4. BILANGAN GENAP
#include
using namespace std;
int main () {
int awal, akhir ;
//Input dari pengguna
cout << " Masukkan angka awal :";
cin >> awal ;
cout << " Masukkan angka akhir :";
cin >> akhir;
//Validasi: pastikan awal <= akhir
if ( awal > akhir ) {
cout << " Angka awal tidak boleh lebih besar dari angka akhir." << endl;
return 1; // keluar dari program dengan kode eror
}
cout<< "\nBilangan genap dari " << awal << " sampai " << akhir << "adalah:\n";
// Perulangan untuk mencetak bilangan genap
for ( int i = awal; i <= akhir; i++) {
if ( i % 2 == 0 ) {
cout << i << "" ;
}
}
cout << endl;
return 0;
}
PERTEMUAN KE-8 LOOPING
- Konsep pemrograman untuk mengulang eksekusi blok kode.
- Digunakan ketika kita perlu melakukan tugas yang sama berulang kali.
- Menghemat waktu dan membuat kode lebih efisien.
- Contoh : Menampilkan angka 1-100 , menghitung total dll.
- Menghitung uanng koin satu persatu.
- Membaca halaman buku dari awal sampai akhir.
- Memasak mie instan ( mengulangi proses tertentu ).
- Mengecek kehadiran mahasiswa.
- Mengetik dokumen yang sama berkali - kali.
1. For loop ( belum diketahui )
2. While loop ( minimal satu kali mengulang )
3. Do - while ( sudah mengetahui mau mengulang berapa kali )
FOR LOOP
- Digunakan ketika jumlah perulangan tidak diketahui
- Memiliki tiga komponen ( inisialisasi, kondisi, increment )
- Sintaks : for ( int ; condition ; increment )
- Contoh : Menampilkan angka 1 - 100 array processing
for ( inisialisasi ; kondisi ; increment / decrement ) {
// blok kode yang diulang
}
contoh : for ( int i =1 ; < = 10 ; i++ ) {
cout << i << endl ;
}
Hati-hati: Infinite Loop
Infinite Loop terjadi ketika:
· Kondisi selalu true
· Tidak ada increment/decrement
· Salah penulisan kondisi
Kontrol Loop: Break dan Continue
Break:
· Menghentikan loop secara paksa
· Keluar dari loop sepenuhnya
Continue:
· Melewati iterasi saat ini
· Langsung ke iterasi berikutnya
Nested Loop (Loop Bersarang)
· Loop di dalam loop
· Digunakan untuk pattern printing, matrix operations
· Contoh: membuat segitiga Bintang
Tips dan Best Practices
· Pilih jenis loop yang sesuai dengan kebutuhan
· Inisialisasi variabel dengan benar
· Pastikan ada kondisi berhenti yang jelas
· Hindari infinite loop
· Gunakan nama variabel yang meaningful
· Test dengan boundary values
· Comment your code untuk penjelasan
· Break down complex loops menjadi bagian sederhana
PERTEMUAN KE-7 KUIS (15 OKTOBER 2025 )
#include
using namespace std;
int main () {
float panjang, lebar, luas ;
cout << " Masukkan panjang: " ;
cin >> panjang;
cout << " Masukkan lebar: " ;
cin >> lebar;
luas = panjang * lebar ;
cout << " Luas persegi panjang= " << luas << endl;
return 0;
}
b. STRUKTUR PERCABANGAN BENTUK PSEUDOCODE " MENENTUKAN NILAI LULUS ATAU TIDAK"
#include
using namespace std;
int main () {
float nilai ;
cout << " Masukkan nilai:" ;
cin >> nilai;
if ( nilai >= 60 ) {
cout << " Lulus:" ;
} else {
cout << " Tidak lulus:" ;
}
return 0;
}
2. a. STRUKTUR SEKUNSIAL ( KASUS MENGHITUNG TOTAL BELANJA )
#include
using namespace std;
int main () {
float harga_barang1, harga_barang2, total_belanja;
cout << " Masukkan harga barang1:";
cin >> harga_barang1 ;
cout << " Masukkan harga barang2:" ;
cin >> harga_barang2 ;
total_belanja = harga_barang1 + harga_barang2 ;
cout << " total_belanja :" << total_belanja << endl ;
return 0;
}
b. STRUKTUR PERCABANGAN ( KASUS MENGECEK SESEORANG DEWASA ATAU BELUM )
#include
using namespace std;
int main () {
int umur;
cout << " Masukkan umur = " ;
cin >> umur ;
if ( umur >= 17 ) {
cout << " Dewasa " << endl ;
} else {
cout << " Belum dewasa " << endl ;
}
return 0 ;
}
3. TULISKAN OUTPUT YANG DIHASILKAN DAN JELASKAN ALUR LOGIKA EKSEKUSI PROGRAM TERSEBUT
#include
using namespace std;
int main () {
int x = 7 ;
if ( x > 10 )
cout << " Besar " ;
else
cout << " Kecil " ;
cout << " Nilai x adalah " << x;
return 0;
}
4. BUAT POTONGAN C++ UNTUK MEMBACA SATU BILANGAN BULAT KEMUDIAN MENAMPILKAN PESAN
#include
using namespace std;
int main () {
int bilangan ;
cout << " Masukkan satu bilangan bulat =" ;
cin >> bilangan ;
if ( bilangan >0 ) {
cout << " Positif " << endl ;
}
else if ( bilangan <0 ) {
cout << " Negatif " << endl ;
}
return 0;
}
5. TULISKAN PROGRAM SEDERHANA MENGGUNAKAN SWITCH-CASE UNTUK MENAMPILKAN NAMA HARI BERDASARKAN NOMOR 1-7
#include
using namespace std;
int main () {
int nomor;
cout << " Masukkan nomor hari ( 1 - 7 ):" ;
cin >> nomor ;
switch ( nomor ) {
case 1 :
cout << " Senin " << endl ;
break ;
case 2 :
cout << " Selasa " << endl ;
break ;
case 3 :
cout << " Rabu " << endl ;
break ;
case 4 :
cout << " Kamis " << endl ;
break ;
case 5 :
cout << " Jumat " << endl ;
break ;
case 6 :
cout << " Sabtu " << endl ;
break ;
case 7 :
cout << " Minggu " << endl ;
break ;
default :
cout << " Nomor hari tidak valid ! Masukkan angka 1 sampai 7 " << endl ; }
return 0;
}
6. BUAT FLOWCHART DAN TULISKAN PROGRAM C++ UNTUK MENGHITUNG TOTAL YANG HARUS DIBAYAR PEMBELI SETELAH DISKON
#include
using namespace std;
int main () {
double total_belanja, total_biaya, total_bayar, diskon ;
cout << " Masukkan total belanja : Rp" ;
cin >> total_belanja ;
if ( total_belanja > 200000) {
diskon = 0.10 * total_belanja, // diskon 10 % ;
total_bayar = total_belanja - diskon;
} else {
total_bayar = total_belanja ; // tanpa diskon
}
cout << " Total yang harus dibayar : Rp" << total_bayar << endl;
return 0 ;
}
7. BUAT FLOWCHART DAN PROGRAM YANG MEMINTA INPUT NILAI TUGAS, NILAI UTS DAN NILAI UAS
#include
using namespace std;
int main () {
double tugas, uts, uas, na ;
char nilai ;
cout << " Masukkan nilai tugas ( 0 - 100 ):" ;
cin >> tugas ;
cout << " Masukkan nilai uts ( 0 - 100 ):" ;
cin >> uts ;
cout << " Masukkan nilai uas ( 0 - 100 ):" ;
cin >> uas ;
//Hitung nilai akhir
na = 0.3 * tugas + 0.3 * uts + 0.4 * uas ;
//Tentukan nilai huruf
if ( na >= 85 )
nilai = 'A';
else if ( na >= 70 )
nilai = 'B';
else if ( na >= 60 )
nilai = 'C';
else if ( na >= 50 )
nilai = 'D' ;
else if ( na >= 40 )
nilai = 'E' ;
cout << "\nNilai akhir:" << na << endl;
cout << " Nilai huruf :" << nilai << endl ;
return 0;
}
8. ANALISIS KESALAHAN KODE
#include
using namespace std;
int main () {
int nilai = 75 ;
if ( nilai >=60 )
cout << " Lulus ";
else
cout << " Tidak lulus :" ;
return 0;
}
9. BUAT PROGRAM UNTUK MENENTUKAN APAKAH SESEORANG DINYATAKAN LULUS, TIDAK LULUS DENGAN KETENTUAN NILAI DAN PERSENTASE KEHADIRAN
#include
using namespace std;
int main () {
double nilai, kehadiran ;
cout << " Masukkan nilai ( 0 - 100 ):" ;
cin >> nilai ;
cout << " Masukkan persentase kehaidran ( 0 - 100 ) :" ;
cin >> kehadiran ;
if ( nilai <60 ) {
cout << " Tidak lulus ( Nilai )" << endl ;
}
else if ( kehadiran <75) {
cout << " Tidak lulus ( kehadiran )" << endl;
}
else {
cout << " Lulus" << endl;
}
return 0;
}
10. BUAT PROGRAM C++ UNTUK SISTEM SEDERHANA PENILAIAN UJIAN MASUK
#include
using namespace std;
int main () {
double logika, bahasa, rata ;
cout << " Masukkan nilai tes logika: ";
cin >> logika ;
cout << " Masukkan nilai tes bahasa :";
cin >> bahasa ;
//Hitung rata-rata
rata = ( logika + bahasa ) / 2;
cout << "n\nRata-rata:" << rata << endl;
if ( rata >=70 ) {
cout << "Lulus" << endl ;
} else {
cout << " Tidak lulus - perlu ditingkatkan" << endl;
return 0;
}
}
PERTEMUAN KE 6 TUGAS (8 OKTOBER 2025)
#include
using namespace std;
int main () {
char opsi;
float angka1, angka2;
cout << "=== Kalkulator sederhana ===" << endl;
cout << " Masukkan angka pertama: ";
cin >> angka1;
cout << "Masukkan angka kedua: ";
cin >> angka2;
cout << "Pilih operasi yang diinginkan :" << endl;
cout << "1. Penjumlahan (+)" << endl;
cout << "2. Pengurangan (-)" << endl;
cout << "3. Perkalian (*)" << endl;
cout << "4. Pembagian (/)" << endl;
cout << " Masukkan pilihan anda (1/2/3/4):";
cin >> opsi;
switch (opsi) {
case '1':
cout << angka1 << " + " << angka2 << " = " << angka1 + angka2;
break;
case '2':
cout << angka1 << " - " << angka2 << " = " << angka1 - angka2;
break;
case '3':
cout << angka1 << " & " << angka2 << " = " << angka1 * angka2;
break;
case '4':
if ( angka2 != 0)
cout << angka1 << " / " << angka2 << " = " << angka1 / angka2;
else
cout << "Error : Pembagian dengan nol tidak diperbolehkan";
break;
default:
cout << " Pilihan tidak valid ";
break;
}
cout << endl;
return 0;
}
2. BULAN DAN MUSIM
#include
#include
using namespace std;
string getMusim(int bulan) {
switch (bulan) {
case 11: case 12: case 1: case 2: case 3:
return "Musim Hujan";
case 4: case 5: case 6: case 7: case 8: case 9: case 10:
return "Musim Kemarau";
default:
return "Bulan tidak valid!";
}
}
string getNamaBulan(int bulan) {
string namaBulan[] = {
"Januari", "Februari", "Maret", "April", "Mei", "Juni",
"Juli", "Agustus", "September", "Oktober", "November", "Desember"
};
if (bulan >= 1 && bulan <= 12)
return namaBulan[bulan - 1];
else
return "Tidak diketahui";
}
int main() {
int bulan;
cout << "=== Program Musim dan Bulan di Indonesia ===" << endl;
cout << "Masukkan nomor bulan (1-12): ";
cin >> bulan;
string nama = getNamaBulan(bulan);
string musim = getMusim(bulan);
cout << "\nBulan: " << nama << endl;
cout << "Musim di Indonesia: " << musim << endl;
return 0;
}
3. NILAI
#include > nilai;
if (nilai >= 90 && nilai <=100) {
cout << "Grade : A" << endl;
}
else if ( nilai >=80) {
cout << "Grade : B" << endl;
}
else if (nilai >=70) {
cout << "Grade : C" << endl;
}
else if (nilai >= 60 ) {
cout << " Grade :D" << endl;
}
else {
cout << " Nilai tidak valid !" << endl;
}
return 0;
}
PERTEMUAN KE - 5 ( SELASA 7 OKTOBER 2025 )
STRUKTUR KONTROL
- STRUKTUR SEKUNSIAL