Program Penentuan Jenis Bangunan dengan Kondisi Tertentu

 

Algoritma untuk Menentukan Kategori Bangunan Berdasarkan Parameter Tertentu

Nama: Rizky Delfa Ramadhani
NIM: A11.2024.15687
Universitas: Universitas Dian Nuswantoro (UDINUS)
URL Blog: Eksplorasi Rizky
Tanggal: 16 Januari 2025

1. Latar Belakang dan Tujuan Program

Seringkali dalam kehidupan sehari-hari, kita dihadapkan pada situasi di mana kita perlu mengidentifikasi jenis bangunan berdasarkan dimensi yang diberikan. Dalam hal ini, kita perlu mengetahui apakah sebuah objek merupakan bangun datar (seperti persegi atau persegi panjang) atau bangun ruang (seperti kubus atau balok). Dengan menggunakan program komputer, kita dapat mempermudah proses ini sehingga pengguna dapat mendapatkan hasil yang cepat dan akurat.

Tujuan utama dari program ini adalah untuk menentukan jenis bangunan berdasarkan dimensi yang dimasukkan oleh pengguna. Program ini akan mengidentifikasi beberapa jenis bangunan, seperti:

  • Kubus
  • Balok
  • Persegi
  • Persegi panjang
  • Segitiga sama sisi
  • Segitiga sama kaki
  • Segitiga siku-siku
  • Segitiga sembarang

2. Deskripsi Masalah

Masalah yang ingin diselesaikan oleh program ini adalah:

  1. Menentukan jenis bangunan 3D seperti kubus dan balok berdasarkan panjang sisi atau dimensi lainnya.
  2. Mengidentifikasi apakah suatu bangun datar adalah persegi atau persegi panjang.
  3. Menentukan jenis segitiga berdasarkan panjang sisi-sisinya, apakah segitiga tersebut sama sisi, sama kaki, siku-siku, atau sembarang.

Dengan memasukkan dimensi bangunan atau sisi segitiga, program ini akan memberikan hasil yang langsung dan akurat.

3. Solusi yang Diberikan Program

Program ini dirancang menggunakan bahasa pemrograman C++ dan memiliki struktur menu interaktif. Solusi yang ditawarkan adalah:

  1. Menu interaktif: Pengguna memilih jenis bangunan yang ingin diperiksa dari menu.
  2. Fungsi untuk pemeriksaan jenis bangunan: Setiap jenis bangunan memiliki fungsi yang memeriksa dimensi yang diberikan dan memberikan hasil yang sesuai.
  3. Hasil langsung: Program akan menampilkan jenis bangunan atau segitiga berdasarkan input dimensi yang diberikan oleh pengguna.
  4. Opsi keluar: Pengguna dapat memilih untuk keluar dari program setelah selesai.

4. Kode Program Lengkap

// Judul : Menentukan Jenis Bangunan dengan Kondisi Tertentu // Tannggal : 02 - 12 - 2024 // Pembuat : Rizky Delfa Ramadhani // NIM : A11.2024.15687 // Tempat : Dirumah #include <iostream> using namespace std; // Kamus int pilihan; string CekJenisBangunan(int sisi1, int sisi2 = 0, int sisi3 = 0){ // Function No.1 if (sisi2 == 0 && sisi3 == 0){ return "Bujur Sangkar"; }else if(sisi3 == 0){ return "Persegi Panjang"; }else{ if (sisi1 == sisi2 && sisi2 == sisi3){ return "Kubus"; }else{ return "Balok"; } } } string CekJenisBangun(double panjang, double lebar){ // Function No.2 if (panjang == lebar){ return "Persegi"; }else{ return "Persegi Panjang"; } } string CekJenisSegitiga(int sisi1, int sisi2, int sisi3){ if ((sisi1 <= 0 || sisi2 <= 0 || sisi3 <= 0) || // Bukan Segitiga (sisi1 + sisi2 <= sisi3) || (sisi1 + sisi3 <= sisi2) || (sisi2 + sisi3 <= sisi1)) { return "Bukan Segitiga"; } else if ((sisi1 == sisi2) && (sisi2 == sisi3) && (sisi3 == sisi1)) // Segitiga Sama Sisi { return "Segitiga Sama Sisi"; } else if ((sisi1 == sisi2) || (sisi2 == sisi3 ) || (sisi1 == sisi3)) // Segitiga Sama Kaki { return "Segitiga Sama Kaki"; } else if ((sisi1 * sisi1) + (sisi2 * sisi2) == (sisi3 * sisi3) || // Segitiga Siku Siku (sisi1 * sisi1) + (sisi2 * sisi2) == (sisi3 * sisi3) || (sisi1 * sisi1) + (sisi2 * sisi2) == (sisi3 * sisi3)) { return "Segitiga Siku Siku"; } else { return "Segitiga Semabarang"; } } // Deskripsi int main(){ while (1){ cout << " \n " << endl; cout << "Pilih menu yang akan dijalankan (1 - 4):" << endl; cout << "1. Menentukan Jenis Benda" << endl; cout << "2. Menentukan Persegi atau Persegi Panjang" << endl; cout << "3. Menentukan Jenis Segitiga" << endl; cout << "4. Keluar" << endl; cout << "Masukkan pilihan (1-4): "; cin >> pilihan; switch (pilihan){ case 1:{ cout << endl; int sisi1, sisi2, sisi3; cout << "MENENTUKAN JENIS BANGUNAN :"<< endl; cout << "Masukan Sisi Pertama :"; cin >> sisi1; cout << "Masukan Sisi Kedua :"; cin >> sisi2; cout << "Masukan Sisi Ketiga :"; cin >> sisi3; string hasil=CekJenisBangunan(sisi1, sisi2, sisi3); cout << "Berikut Hasil Jenis Bangun :" << hasil << endl; break; } case 2:{ cout << endl; double panjang, lebar; cout << "MENENTUKAN JENIS BANGUNAN :"<< endl; cout << "Masukan Panjang :"; cin >> panjang; cout << "Masukan Lebar :"; cin >> lebar; string hasil=CekJenisBangun(panjang, lebar); cout << "Berikut Hasil Jenis Bangun :" << hasil << endl; break; } case 3:{ cout << endl; int sisi1, sisi2, sisi3; cout << "Menentukan jenis segitiga" << endl; cout << "Masukkan panjang sisi1: "; cin >> sisi1; cout << "Masukkan panjang sisi2: "; cin >> sisi2; cout << "Masukkan panjang sisi3: "; cin >> sisi3; string hasil=CekJenisSegitiga(sisi1, sisi2, sisi3); cout << "Berikut Jenis Segitiga :" << hasil << endl; break; } case 4:{ cout << "GOOD BYE"; return 0; break; } default :{ cout << "pilihan tidak valid" << endl; break; } } } }

5. Penjelasan Kode Program

Berikut adalah penjelasan rinci mengenai bagian-bagian kode program:

Header dan Kamus Variabel

#include <iostream> using namespace std; int pilihan;
  • #include <iostream>: Library ini digunakan untuk input-output di C++.
  • using namespace std;: Ini memungkinkan kita untuk menggunakan objek dan fungsi standar tanpa menuliskan std:: setiap kali.
  • int pilihan;: Variabel ini menyimpan pilihan menu yang dimasukkan oleh pengguna.

Fungsi CekJenisBangunan

string CekJenisBangunan(int sisi1, int sisi2 = 0, int sisi3 = 0) { if (sisi2 == 0 && sisi3 == 0) { return "Bujur Sangkar"; } else if (sisi3 == 0) { return "Persegi Panjang"; } else { if (sisi1 == sisi2 && sisi2 == sisi3) { return "Kubus"; } else { return "Balok"; } } }
  • Tujuan: Fungsi ini digunakan untuk menentukan jenis bangunan berdasarkan sisi-sisinya.
  • Parameter: sisi1, sisi2, dan sisi3 adalah dimensi bangunan.
  • Logika:
    • Jika hanya satu sisi yang diberikan, maka bangunan dianggap sebagai bujur sangkar.
    • Jika dua sisi diberikan, maka bangunan dianggap sebagai persegi panjang.
    • Jika tiga sisi diberikan dan semuanya sama, bangunan dianggap sebagai kubus. Jika tidak sama, maka bangunan tersebut adalah balok.

Fungsi CekJenisBangun

string CekJenisBangun(double panjang, double lebar) { if (panjang == lebar) { return "Persegi"; } else { return "Persegi Panjang"; } }
  • Tujuan: Fungsi ini digunakan untuk menentukan apakah suatu bangunan adalah persegi atau persegi panjang.
  • Parameter: panjang dan lebar adalah dimensi bangunan tersebut.
  • Logika: Jika panjang dan lebar sama, maka bangunan adalah persegi. Jika tidak sama, maka bangunan adalah persegi panjang.

Fungsi CekJenisSegitiga

string CekJenisSegitiga(int sisi1, int sisi2, int sisi3) { if ((sisi1 <= 0 || sisi2 <= 0 || sisi3 <= 0) || (sisi1 + sisi2 <= sisi3) || (sisi1 + sisi3 <= sisi2) || (sisi2 + sisi3 <= sisi1)) { return "Bukan Segitiga"; } else if ((sisi1 == sisi2) && (sisi2 == sisi3)) { return "Segitiga Sama Sisi"; } else if ((sisi1 == sisi2) || (sisi2 == sisi3) || (sisi1 == sisi3)) { return "Segitiga Sama Kaki"; } else { return "Segitiga Sembarang"; } }
  • Tujuan: Fungsi ini digunakan untuk menentukan jenis segitiga berdasarkan panjang sisi.
  • Parameter: sisi1, sisi2, dan sisi3 adalah sisi segitiga.
  • Logika:
    • Jika salah satu sisi tidak valid atau tidak memenuhi syarat segitiga, maka hasilnya adalah "Bukan Segitiga".
    • Jika semua sisi sama panjang, maka hasilnya adalah "Segitiga Sama Sisi".
    • Jika dua sisi sama panjang, hasilnya adalah "Segitiga Sama Kaki".
    • Jika tidak ada sisi yang sama panjang, maka hasilnya adalah "Segitiga Sembarang".

Menu Utama dan Switch-Case

switch (pilihan) { case 1: // Menentukan jenis bangunan break; case 2: // Menentukan persegi atau persegi panjang break; case 3: // Menentukan jenis segitiga break; case 4: // Keluar break; default: cout << "Pilihan tidak valid" << endl; break; }
  • Tujuan: Menu utama dengan opsi yang memungkinkan pengguna memilih jenis pemeriksaan yang diinginkan.
  • Case 1: Menjalankan fungsi CekJenisBangunan.
  • Case 2: Menjalankan fungsi CekJenisBangun.
  • Case 3: Menjalankan fungsi CekJenisSegitiga.
  • Case 4: Mengakhiri program.
  • Default: Menampilkan pesan jika input pilihan tidak valid.

6. Implementasi dan Output

Berikut adalah langkah-langkah implementasi program:

  1. Jalankan program dan tampilkan menu utama.
  2. Pilih menu yang diinginkan sesuai jenis bangunan atau segitiga yang ingin diperiksa.
  3. Masukkan dimensi bangunan atau sisi segitiga sesuai pilihan menu.
  4. Program akan menampilkan hasil sesuai input pengguna.

Contoh Output:

  • Input: sisi1=5, sisi2=5, sisi3=5 (Case 1)
    Output: "Kubus".

  • Input: panjang=4, lebar=6 (Case 2)
    Output: "Persegi Panjang".

  • Input: sisi1=3, sisi2=4, sisi3=5 (Case 3)
    Output: "Segitiga Siku-Siku".

7. Kesimpulan

Program ini menawarkan solusi yang efektif untuk menentukan jenis bangunan berdasarkan dimensi yang diberikan. Keunggulan dari program ini antara lain:

  • Pengguna dapat dengan mudah menentukan jenis bangunan atau segitiga hanya dengan memasukkan dimensi yang relevan.
  • Fungsi-fungsi modular yang digunakan menjadikan kode program lebih terstruktur dan mudah untuk dikembangkan.
  • Menu interaktif memberikan pengalaman pengguna yang lebih baik.

Program ini juga dapat diperluas dengan menambahkan jenis bangunan atau fitur lain, seperti menghitung luas atau volume bangunan, sesuai dengan kebutuhan pengguna.

Komentar

Postingan populer dari blog ini

TUGAS TABUNG DAN JAM

Dokumentasi Beberapa Dari Penjelasan Bahasa Pemrograman C++.