My javanote03

download My javanote03

of 17

  • date post

    23-Jun-2015
  • Category

    Education

  • view

    1.344
  • download

    0

Embed Size (px)

description

Membuat program untuk menghitung determinan dan akar-akar persamaan kuadrat. Mampu menampilkan hasil dalam bentuk bilangan imajiner maupun bilangan real.

Transcript of My javanote03

  • 1. TriSaptoAdji BCCManokwari MembuatAplikasiHitungAkarPersamaanKuadratSetelahpadapembahasansebelumnyakitamembahasmengenaiaplikasiKonverterSuhu(JKonverter),yangmengkonversikannilaisuhuantarsatuanCelcius,Fahrenheit,KelvindanReamur, sekarang kita akan mencoba meningkatkan level pembahasan kita padaperhitungan yang sedikit lebih kompleks. Dikatakan lebih kompleks, karena melibatkanperhitungan akar kuadrat dan pemangkatan. Java tidak memiliki operator yang dapatmenghitung akar kuadrat ataupun operator pemangkatan dari suatu bilangan. Tetapimemiliki fungsifungsi (metoda) yang dapat melakukan hal tersebut, yakni fungsiMath.sqrt()danMath.pow().Sekarangmarikitamemulairancanganprogramkita.Kitaakanmembuatsebuahprogramyangdapatmenghitungnilaiakardandeterminandaripersamaanakarkuadratax2+bx+c=0.Programiniakanmengolahinputnilaia,b,dancyangdimasukkanolehuserberupabilang bulat, kemudian mengolah input tersebut dan memberikan hasil berupa nilaideterminan,akarpertamadanakarkeduayangmerupakanbilangandesimal(pecahan). Memproses nilai a, b, cuntuk menghasilkan Output nilai :Input nilai a, b, cnilai determinan,determinan (D),akar pertama dan kedua akar pertama (x1) dan dari persamaan akar kuadrat :akar kedua (x2)ax2 + bx + c = 0INPUT PROSES OUTPUTProsesyangdilakukanadalah: 1. Menghitungnilaideterminandenganrumus: 2D=b 4 ac 2. Menghitungnilaiakarpertamadenganrumus: b+ Dx 1= 2a 3. Menghitungnilaiakarkedua: b Dx 2= 2aWorkshopJavaBag.3 MembuatAplikasiMenghitungAkarPersamaanKuadrat halaman 1/17

2. TriSaptoAdjiBCCManokwariUntukmewujudkanprosesperhitungantersebut,kitaakanmembuatsebuahkelasbernamaAkarKuadrat.javaberisikodeberikut://Berkas AkarKuadrat.java//Author : Tri Sapto Adji//@Manokwari, Papua Baratpublic class AkarKuadrat {//awal blok kelas AkarKuadrat dimulaiprivate int a;private int b;private int c;double x1;double x2;double determinan;public AkarKuadrat(int a, int b, int c) {//awal blok konstruktor kelas AkarKuadratthis.a = a;this.b = b;this.c = c;double d = Math.pow(this.b, 2) - 4*this.a*this.c;this.determinan = d;double x1 = ((-1*(this.b)) + Math.sqrt(this.determinan))/(2*this.a);this.x1 = x1;double x2 = ((-1*(this.b)) - Math.sqrt(this.determinan))/(2*this.a);this.x2 = x2;}//akhir blok konstruktor kelas AkarKuadratint nilaiA() {return this.a;}int nilaiB() {return this.b;}int nilaiC() {return this.c;}}//Akhir blok kelas AkarKuadrat, Akhir berkas AkarKuadrat.javaWorkshopJavaBag.3 MembuatAplikasiMenghitungAkarPersamaanKuadrathalaman 2/17 3. TriSaptoAdji BCCManokwariPerhatikansourcecodetersebut,pertamatamakitamendeklarasikan6buahvariabelyaknia,b,c,x1,x2dandeterminan.Tiga(3)variabelpertamayangakanmenampungnilaiinputdariuserdiberimodifierprivate.Artinyaketigavariabeltersebuttertutupbagikelaslain,danhanyabisadiaksesdidalamkelasAkarKuadrat.Sedangkantiga(3)variabellainnyamemilikimodifierdefault(Andatidakperlumendeklarasikanmodifierinisecaraeksplisit).ArtinyaketigavariabeltersebutdapatdiaksesolehkelaslaindalampaketataudalamdirektoriyangsamadimanakelasAkarKuadratberada:private int a;private int b;private int c;double x1;double x2;double determinan;Selanjutnya,konstruktorkelasAkarKuadratdidefinisikandengan3buahparameter,yangmanamasingmasingnilaiparametertersebutakankitagunakanuntukmengisinilaidarivariabela,b,cyangtelahdideklarasikansebelumnya:public AkarKuadrat(int a, int b, int c) {this.a = a;this.b = b;this.c = c;Pernyataanthis.a = a;berartinilaidarivariabelayangmenjadiparameterkonstruktorkelasAkarKuadratdigunakanuntukmengisinilaidarivariabelasebelumnyayangmerupakanvariabelkelas.Untukmembedakanantaravariabelayangmenjadiparameterdarikonstruktordenganvariabelayangmenjadivariabelkelasdigunakankatathis.didepanvariabelayangmerupakanvariabelkelas.Halyangsamaberlakuuntukpernyataanthis.b = b; danthis.c = c;Selanjutnyaadalahprosesmenghitungnilaideterminan,akarpertamadanakarkedua:double d = Math.pow(this.b, 2) - 4*this.a*this.c;WorkshopJavaBag.3 MembuatAplikasiMenghitungAkarPersamaanKuadrat halaman 3/17 4. TriSaptoAdjiBCCManokwarithis.determinan = d;double x1 = ((-1*(this.b)) + Math.sqrt(this.determinan))/(2*this.a);this.x1 = x1;double x2 = ((-1*(this.b)) - Math.sqrt(this.determinan))/(2*this.a);this.x2 = x2;Perhatikan bahwa terdapat variabel d bertipe double yang belum dideklarasikansebelumnya. Variabel ini bersifat lokal dan hanya dikenal dalam blok konstruktorAkarKuadratsaja.Variabeldinidigunakanuntukmenampungnilaidari D=b24 ac ,yangdalamsyntaxbahasajavaditulissebagai:double d = Math.pow(this.b, 2) - 4*this.a*this.c;Kemudiannilaivariabel d inikitagunakanuntukmengisinilaidarivariabelkelas,yaknivariabeldeterminanyangtelahdideklarasikansebelumnya,denganpernyataan: this.determinan = d;Demikianpuladenganvariabelx1danx2diberinilaisetelahmelaluiprosespenghitungan b+ D b Dx 1= dan x 1=yangdalambahasajavaditulissebagai: 2a2adouble x1 = ((-1*(this.b)) + Math.sqrt(this.determinan))/(2*this.a);double x2 = ((-1*(this.b)) - Math.sqrt(this.determinan))/(2*this.a);Kemudianhasilnyadigunakanuntukmengisinilaidarivariabelkelasyaknivariabelx1danx2 (yang namanyasama,oleh karena ituAnda harusmenambahkankata this. didepanvariabelkelasuntukmembedakandenganvariabellokalx1danx2):this.x1 = x1;this.x2 = x2;Karena ketiga variabelkelas tersebut (determinan, x1 dan x2) memiliki modifier default,WorkshopJavaBag.3 MembuatAplikasiMenghitungAkarPersamaanKuadrathalaman 4/17 5. TriSaptoAdjiBCCManokwarimakaketigavariabeltersebut,jikanantinyadiperlukan,dapatAndaaksesmelaluikelaslaindaridalamdirektoriyangsamadimanakelasAkarKuadrattersebutberada.Lalubagaimanadengantigavariabelkelasyanglainnyayaknia,bdancyangAndaberimodifierprivate?TentunyaAndatidakbisamengaksesnyadariluarkelastersebut.UntukdapatmengaksesnyaAndadapatmembuatmasingmasingsebuahmetodeuntukmengaksesnilainya,yakni:int nilaiA() {return this.a;}int nilaiB() {return this.b;}int nilaiC() {return this.c;}Metode nilaiA(), nilaiB() dan nilaiC() yangbertipeinteger dapatAndagunakandariluarkelasAkarKuadrattersebutuntukmemperolehnilaivariabela,bdanc.KompilasiberkasAkarKuadrat.javainidenganperintah: javac AkarKuadrat.javadaridalamdirektorikerja(direktoridimanaberkasAkarKuadrat.javatersebutberada).Jika tidakadapesankesalahanmakaakanterbentukfileAkarKuadrat.class.PerhatikanbahwakelasAkarKuadrattersebuttidakmemilikimetodemain,karenanyatidakdapatdieksekusisebagaisebuahprogram.Kitaakanmembuatlagisebuahkelasyangberisimetodemain.KelasiniakankitagunakanuntukmengaksesnilainilaivariabeldanmetodemetodedarikelasAkarKuadratyangtelahkitabuatsebelumnya.Kelasyangakankitabuatini merupakan program berbasis konsol/terminal (Dalam pembahasan lain, kita akanmembuat kelas yang akan menampilkan program basis GUI untuk menghitung nilaideterminandanakarakarpersamaankuadrat).WorkshopJavaBag.3 MembuatAplikasiMenghitungAkarPersamaanKuadrathalaman 5/17 6. TriSaptoAdji BCCManokwariAdabeberapakondisiyangmempengaruhinilaidarihasilperhitungan,misalnya: harusadainputuntuknilaidarivariabela,b,danc(3buahinputdata), nilaivariabelatidakboleh0,jikanilaideterminanhasilperhitunganternyatakurangdari0makamenghasilkanakarimajiner,jikanilaib=0,makanilai0tersebuttidakperluditampilkanpadapenulisanakarimajiner.Karenanyaperludibuatkanalgoritmauntukmemperjelasalurprogramyangakankitabuatberdasarkankondisikondisitersebut.Start Masukkan 3 argumen untuk mengisi variabel a, b, ctidak banyaknya argumen = 3 ?Tampilkan keteranganyaharus ada 3 buah argumen,masing-masing adalah nilai ya untuk variabel a, b, c. a=0?tidak D=b^2-4acTampilkan keterangana tidak boleh = 0tidak D=0, maka :}else { System.out.println("Determinan D = " + ak.determinan); System.out.println("Akar pertama x1 = " + ak.x1); System.out.println("Akar kedua x2 = " + ak.x2);}//membuat sebuah baris kosongSystem.out.println("");WorkshopJavaBag.3 MembuatAplikasiMenghitungAkarPersamaanKuadrat halaman 9/17 10. TriSaptoAdjiBCCManokwari//jika input argumen bukan berupa angka}catch(NumberFormatException nfe) {System.err.println("nAnda memasukan argumen yang bukan berupa angka..!");System.err.println("Sintaks penulisan yang benar adalah : javaHitungAkarKuadrat nNilai , , harus berupa angka!");System.err.println("Contoh : java HitungAkarKuadrat 1 -12 32n");System.exit(3);}}}//Akhir Berkas HitungAkarKuadrat.javaKompilasiberkasHitungAkarKuadrat.javainidenganperintah: javac HitungAkarKuadrat.java.Kemudianjalankandenganmengetikpadaterminal:java HitungakarkuadratAnda akan melihat bahwa program akan menampilkan pesan bahwa Anda belummemasukkantigabuahargumenyangakanmengisinilaivariabela,b,c.JikaAndamengetik:java HitungAkarKuadrat 1 -12 32programtersebutakanmemberikanoutputberupanilaideterminan,akarpertamadanakarkedua.WorkshopJavaBag.3 MembuatAplikasiMenghitungAkarPersamaanKuadrat halaman 10/17 11. TriSaptoAdjiBCCManokwariAtaujikaAndamengetik:java HitungAkarKuadrat 1 -12 32Akanditampilkanhasilnya:Programinijugadirancanguntukmampumenampilkanhasiljikanilaideterminankurangdari 0 (yang berarti memiliki akar negatif) dalam format bilangan imaginer i dengan iadalahakardari1(i= 1 ).MisalnyajikaAndamengetik:WorkshopJavaBag.3 MembuatAplikasiMenghitungAkarPersamaanKuadrat halaman 11/17 12. TriSaptoAdjiBCCManokwarijava HitungAkarKuadrat 1 -12 64Akanmenampilkanhasilsebagaiberikut:Jika akar imajiner ini memiliki nilai variabel b=0, maka program ini akan meniadakanpenulisannilaivariablelb(0)itupadanilaiakarx1danx2.Tetapijika0menjadinilaibagivariabela,programakanberhentidanmenampilkanpesan:WorkshopJavaBag.3 MembuatAplikasiMenghitungAkarPersamaanKuadrathalaman 12/17 13. TriSaptoAdji BCCManokwariJikaternyataAndasalahmenginputdatayangbukanbilangan,programinipunmampumengatasinyadenganmenyampaikanpesanbahwaterjadikesalahaninputdatayangbukanbertipeangka,danmemberikancontohcarainputdatayangbenar.Programinidapatdidownloaddi:http://db.tt/shTQdNCo.Setelah berhasil membuat program berbasis konsol (terminal) untuk menghitung akarpersamaankuadrat,kitaakanmeneruskandenganprogrambasisGUIyangmemili