Last Updated on 14 years by Mas Herdi
Program ini secara total melibatkan 9 buah file .java
, yang dibagi menjadi tiga kategori class, yaitu :
- Class Bangun Geometri (7 files)
- Class TestDrive (1 file)
- Class Menu/ Main Class (1 file)
Gambaran UML diagram secara kasar :
Fungsi dari program ini kurang sama lebih sama seperti program pencari luas atau volume dari suatu bangun geometri yang saya buat sebelumnya. Hanya saja, program ini lebih terstruktur susunan kelasnya dan di program ini pengguna bisa bebas memasukkan nilai dari suatu variabel, misal nilai panjang, lebar dan sebagainya.
- Classes Bangun Geometri
Kelas ini berisi primitif dari objek-objek bangun ruang, berisi variabel-variabel seperti panjang luas, tinggi, dan fungsi-fungsi setter/getter sepertigetPanjang(
),setLuas()
. Tergantung dari jenis bangun geometrinya. Total ada tujuh bangun geometri di dalam tujuh file., namun disini saya hanya akan memberikan contoh dua bangun, bangun Balok dan Tabung.
Berikut ini adalah algoritma dari file Balok.java:class Balok { private int panjang, lebar, tinggi, volume, luasPermukaan; public void setPanjang(int p) { panjang = p; } public void setLebar(int l) { lebar = l; } public void setTinggi(int t) { tinggi = t; } public void setVolume() { volume = panjang * tinggi * lebar; } public void setLuasPermukaan() { luasPermukaan = 2 * panjang * lebar + 2 * panjang * tinggi + 2 * lebar * tinggi; } public int getPanjang() { return panjang; } public int getLebar() { return lebar; } public int getTinggi() { return tinggi; } public int getVolume() { return volume; } public int getLuasPermukaan() { return luasPermukaan; } }
file Tabung.java:
import java.lang.Math; import java.text.DecimalFormat; class Tabung { DecimalFormat df = new DecimalFormat("#.##"); private int tinggi, jarijari; private double volume, luasPermukaan; public void setTinggi(int t) { tinggi = t; } public void setJariJari(int r) { jarijari = r; } public void setVolume() { volume = Math.PI * Math.pow(jarijari, 2) * tinggi; } public void setLuasPermukaan() { luasPermukaan = 2 * Math.PI * jarijari * (jarijari + tinggi); } public int getJariJari() { return jarijari; } public int getTinggi() { return tinggi; } public double getVolume() { return volume; } public double getLuasPermukaan() { return luasPermukaan; } }
- Class TestDrive
Kelas ini berfungsi untuk mengolah objek yang diwariskan dari kelas-kelas bangun geometri, seperti menghitung luas permukaan, volume, mengeset nilai panjang, lebar, jari-jari, dan sebagainya. Tergantung dari objek yang diolah.
TestDrive.javaimport java.util.Scanner; class TestDrive { private static Scanner s = new Scanner(System.in); public static void balokTestDrive() { int p,l,t; Balok B = new Balok(); System.out.println("Bangun Balok"); System.out.println("Masukkan panjang balok :"); p = s.nextInt(); System.out.println("Masukkan lebar balok: "); l = s.nextInt(); System.out.println("Masukkan tinggi balok : "); t = s.nextInt(); B.setPanjang(p); B.setLebar(l); B.setTinggi(t); B.setVolume(); B.setLuasPermukaan(); System.out.println("Panjang balok = "+ B.getPanjang()); System.out.println("Lebar balok = " + B.getLebar()); System.out.println("Tinggi balok = "+ B.getTinggi()); System.out.println("Volume balok = "+ B.getVolume()); System.out.println("Luas permukaan balok = "+ B.getLuasPermukaan()); } public static void belahKetupatTestDrive() { System.out.println("Bangun Belah Ketupat"); BelahKetupat B = new BelahKetupat(); int sisi, d1; System.out.println("Masukkan panjang sisi :"); sisi = s.nextInt(); System.out.println("Masukkan panjang diagonal satu: "); d1 = s.nextInt(); B.setSisi(sisi); B.setDiagonalSatu(d1); B.setDiagonalDua(); B.setLuas(); B.setKeliling(); System.out.println("Sisi Belah Ketupat = " + B.getSisi()); System.out.println("Diagonal1 Belah ketupat = " + B.getDiagonalSatu()); System.out.println("Diagonal2 Belah Ketupat = " + B.df.format(B.getDiagonalDua())); System.out.println("Luas Belah Ketupat = " + B.df.format(B.getLuas())); System.out.println("Keliling Belah Ketupat = "+ B.getKeliling()); } public static void kubusTestDrive() { Kubus K = new Kubus(); int sisi; System.out.println("Bangun Kubus"); System.out.println("Masukkan panjang sisi :"); sisi = s.nextInt(); K.setSisi(sisi); K.setVolume(); K.setLuasPermukaan(); System.out.println("Panjang sisi kubus = "+ K.getSisi()); System.out.println("Volume kubus = "+ K.getVolume()); System.out.println("Luas permukaan kubus = "+ K.getLuasPermukaan()); } public static void lingkaranTestDrive() { System.out.println("Bangun Lingkaran"); Lingkaran L = new Lingkaran(); int jarijari; System.out.println("Masukkan panjang jari jari :"); jarijari = s.nextInt(); L.setJariJari(jarijari); L.setDiameter(); L.setLuas(); L.setKeliling(); System.out.println("Jari-jari lingkaran = " + L.getJariJari()); System.out.println("Diameter lingkaran = " + L.getDiameter()); System.out.println("Luas lingkaran = " + L.df.format(L.getLuas())); System.out.println("Keliling lingkaran = " + L.df.format(L.getKeliling())); } public static void segiEmpatTestDrive() { SegiEmpat S = new SegiEmpat(); int p,l; System.out.println("Bangun Segi Empat"); System.out.println("Masukkan panjang :"); p = s.nextInt(); System.out.println("Masukkan lebar: "); l = s.nextInt(); S.setPanjang(p); S.setLebar(l); S.setLuas(); S.setKeliling(); System.out.println("Panjang Segi Empat = "+S.getPanjang()); System.out.println("Lebar Segi Empat = "+S.getLebar()); System.out.println("Luas Segi Empat = " + S.getLuas()); System.out.println("Keliling Segi Empat = " + S.getKeliling()); } public static void segitigaSikuSikuTestDrive() { System.out.println("Bangun Segitiga Siku Siku"); SegiTigaSikuSiku S = new SegiTigaSikuSiku(); int a,t; System.out.println("Masukkan alas :"); a = s.nextInt(); System.out.println("Masukkan tinggi: "); t = s.nextInt(); S.setAlas(a); S.setTinggi(t); S.setMiring(); S.setLuas(); S.setKeliling(); System.out.println("Alas Segitiga = " + S.getAlas()); System.out.println("Tinggi Segitiga = " + S.getTinggi()); System.out.println("Luas Segitiga Siku-Siku = " + S.getLuas()); System.out.println("Sisi miring Segitiga = " + S.getMiring()); System.out.println("Keliling Segitiga Siku Siku = "+ S.getKeliling()); } public static void tabungTestDrive() { Tabung T = new Tabung(); int jarijari, t; System.out.println("Bangun Tabung"); System.out.println("Masukkan panjang jari jari :"); jarijari = s.nextInt(); System.out.println("Masukkan tinggi: "); t = s.nextInt(); T.setJariJari(jarijari); T.setTinggi(t); T.setVolume(); T.setLuasPermukaan(); System.out.println("Jarijari tabung = "+ T.getJariJari()); System.out.println("Tinggi tabung = "+ T.getTinggi()); System.out.println("Volume tabung = "+ T.df.format(T.getVolume())); System.out.println("Luas permukaan tabung = "+ T.df.format(T.getLuasPermukaan())); } }
- Class Menu/Main Class
Kelas menu berperan sebagai kelas utama yang akan memanggil bangun yang akan diolah atau dihitung luas permukaan atau volumenya, kelas ini hanya berisi daftar menu dari bangun-bangun yang ada.
Menu.javaimport java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Scanner; class Menu { public static void main(String[] args) { try { System.out.println("Pengolahan Bangun Geometri"); InputStreamReader r = new InputStreamReader(System.in); BufferedReader input = new BufferedReader(r); TestDrive test = new TestDrive(); String pil; int p = 9; while(p!=0) { System.out.println("Menu"); System.out.println("[1] Segitiga Siku-siku"); System.out.println("[2] Lingkaran"); System.out.println("[3] Belah Ketupat"); System.out.println("[4] Segi Empat"); System.out.println("[5] Tabung"); System.out.println("[6] Kubus"); System.out.println("[7] Balok"); System.out.println("Masukkan angka pilihan"); pil = input.readLine(); p = Integer.parseInt(pil); switch(p) { case 1: test.segitigaSikuSikuTestDrive(); break; case 2: test.lingkaranTestDrive(); break; case 3: test.belahKetupatTestDrive(); break; case 4: test.segiEmpatTestDrive(); break; case 5: test.tabungTestDrive(); break; case 6: test.kubusTestDrive(); break; case 7: test.balokTestDrive(); break; } System.out.println("Lanjutgan?(O = keluar/1 = tidak)"); pil = input.readLine(); p = Integer.parseInt(pil); } } catch(IOException e) { System.out.println("Error tidak dikenali"); } } }
Untuk menjalankannya, pastikan semua file berada di dalam satu folder. Kemudian eksekusi perintah terminal
javac Menu.java
java Menu
Dan, ini adalah contoh output dari program~ Enjoy!
bagus infonya , bisa kirim semua source code nya ke email saya mas.. saya butuh banget ini program.
aku newbie, pengen belajar bnyak tentang java
Hm… Bukankah ini sendiri adalah source code-nya? ^^
Tinggal di copy paste saja.
parwitotkj@gmail.com
ini mailnya
Langsung di copy-paste saja.
Thanks
thanks ya mas tas codding javanya…tapi ada yg masih error mas (System.out.println (“Bangun Belah Ketupat”); Belah Ketupat B = new Belah Ketupat();).apa bisa diperbaiki mas agar bisa running ^_^ .
Saya andi,saya baru semester 1 dan pengen belajar bnyk soal java…klo ngga keberatan saya ada kasus/soal UTS kemarin mas…soalnya sbb:
* Penjualan barang pada kasus waralaba Indomaret (syaratnya: dengan menggunakan super class, Menggunakan fasilitas input, Minimal data yang diinput 4 record, dan Untuk tampilan, ada proses Input dan Output.
mohon pencerahannya/penyelesaiannya ya mas. TQ & GBU
Nb. klo ngga keberatan,minta tolong coddingnya ya mas dikirim by email (email: andhy212@yahoo.com)
Kamu pasti langsung copy paste dari kode di atas ya? Itu belah ketupat error karena kelas belah ketupat memang sengaja belum dibikin, :p coba yang di kelas TestDrive kamu kurangi objeknya jadi cuma Balok dan Tabung saja.
Regards, TWOH
Well, kalo untuk soal itu, mungkin bisa coba kirimin spesifikasi programnya ke email saya.
Thanks, TWOH
info yang bagus mas, owh iya mau nanya nih, itu ga ad main’a, apa harus buat lagi?
saya masih kurang paham nih sama java 😀
Ada main class-nya, coba baca di bagian Class Menu/Main class