Laman

Minggu, 26 Oktober 2014

Program Persamaan Kuadrat Dengan Java

Kali ini saya akan membuat program untuk menghitung persamaan kuadrat dengan rumus ABC. Program ini akan menghitung nilai diskriminan dari suatu persamaan dan menentukan akar-akar dari persamaan kuadrat tersebut.

Berikut adalah rumus ABC :



Rumus Diskriminan :      




Hukum persamaan kuadrat

Untuk ax2 + bx + c = 0, dengan a ≠ 0,

1. Jika D = 0, Memiliki 2 akar berebeda dan keduanya real.
2. Jika D > 0, Memiliki 2 akar berebeda dan keduanya real.
3. Jika D < 0, Akar-akar persamaan imaginer .


Jika D = 0

Jika D > 0

Jika D < 0

Sintaks Program :

import java.util.Scanner;

public class SquareEquationToy {
private double a;
private double b;
private double c;
private double x1;
private double x2;

//private boolean fValid = false;

public SquareEquationToy (double a, double b, double c) {
this.a = a;
this.b = b;
this.c = c;
calcX();
}

private double calcDiscriminant (){
return b*b - 4*a*c;
}

private double imajiner() {
return -b/(2*a);
}

private void calcX() {
double d = calcDiscriminant ();
if (d > 0) {
x1 = (-b + Math.sqrt(d))/(2*a);
x2 = (-b - Math.sqrt(d))/(2*a);
//fValid = true;
}
}



/*public boolean isValid() {
return fValid;
}*/
public double getA() {
return a;
}
public double getB() {
return b;
}
public double getC() {
return c;
}
public double getx1() {
return x1;
}
public double getx2() {
return x2;
}

static void test() {
System.out.println ();
System.out.println ("<==Program mengitung persamaan kuadrat==> ");
System.out.println ("===========================================");
Scanner angka = new Scanner(System.in);
System.out.print("Masukan nilai a : ");
double a = angka.nextDouble();
System.out.println();
System.out.print("Masukan nilai b : ");
double b = angka.nextDouble();
System.out.println();
System.out.print("Masukan nilai c : ");
double c = angka.nextDouble();
System.out.println();


SquareEquationToy s = new SquareEquationToy(a,b,c);
System.out.println("Nilai diskriminan : " +s.calcDiscriminant());
System.out.println();
if (s.calcDiscriminant() > 0){
System.out.println ("Persamaan  "+ s.getA() + "X^2" + " + " + s.getB()  + "X" + " + "+ s.getC()+ " Memiliki 2 akar berebeda dan keduanya real "+ s.getx1() +" atau "+ s.getx2());
}
else if (s.calcDiscriminant() < 0) {
System.out.println ("Persamaan  " + s.getA() + "X^2" + " + " + s.getB()  + "X" + " + "+ s.getC()+ " Akar-akar persamaan imaginer ");
}
else {
System.out.println ("Persamaan  " + s.getA() + "X^2" + " + " + s.getB()  + "X" + " + "+ s.getC()+ " Akar-akar persamaan nyata tetapi kembar, yaitu " + s.imajiner());
}
}
public static void main (String [] args) {
test();
}
}

Sabtu, 18 Oktober 2014

Pengujian Class Math Pada Java

Kali ini saya akan membahas mengenai pengujian fungsi class math pada Java. Apa itu class math? Class math merupakan class yang disediakan oleh Java untuk menghitung perhitungan dasar seperi menghitung nilai Sinus, Sinus, cosinus, tangen, absolut, log, dan sebagainya. Tujuan pengujian sendiri adalah untuk menghindari peluang terjadinya kesalahan pada program yang dapat menyebabkan kerugian, selain itu pengujian juga berfungsi untuk memahami bagaimana seharusnya program digunakan. Perhatikan sintaks di bawah ini, sintaks ini yang digunakan untuk menguji fungsi dari class math.


/*
  * MathExploreToy.java
  *
  * Created on October 15, 2014, 2:02 PM
  */

 public class MathExploreToy {

/** Creates a new instance of MathExploreToy */

public MathExploreToy() {
}

static void test() {
testE();
testPI();
testAbs();
}

static void betterTest(){

testIntAbs();
}

static void testE() {
System.out.println ("Testing untuk Math.E");
System.out.println ("Math.E = "+Math.E);
System.out.println (" ");
}

static void testPI() {

System.out.println ("Testing untuk Math.PI");
System.out.println ("Math.PI = "+Math.PI);
System.out.println (" ");
}

static void testAbs() {

System.out.println ("Testing untuk Math.abs()");
System.out.println ("Math.abs(-23.7) = "+Math.abs(-23.7));
System.out.println ("Math.abs(0.0) = "+Math.abs(0.0));
System.out.println ("Math.abs(23.7) = "+Math.abs(23.7));
System.out.println ("Double.MIN_VALUE = "+Double.MIN_VALUE);
System.out.println ("Math.abs (Double.MIN_VALUE) = "+Math.abs(Double.MIN_VALUE));
System.out.println ("Math.abs (-Double.MIN_VALUE) = "+Math.abs(-Double.MIN_VALUE));
System.out.println ("Double.MAS_VALUE = "+Double.MAX_VALUE);
System.out.println ("Math.abs (Double.MAX_VALUE) = "+Math.abs(Double.MAX_VALUE));
System.out.println ("Math.abs (-Double.MAX_VALUE) = "+Math.abs(-Double.MAX_VALUE));
System.out.println (" ");
}

static void testIntAbs() {
System.out.println ("Cara pengujian yang lebih baik mendukung otomatisasi!");
System.out.println ("Testing untuk Math.abs() bagi bilangan bulat");
if (Math.abs(-23) !=23) System.out.println("Math(-23) :: Error! Hasil harus 23");
else System.out.println("Math(-23) :: Correct!");
if (Math.abs(0) !=0) System.out.println("Math(0) :: Error! Hasil harus 0");
else System.out.println("Math(0) :: Correct!");
if (Math.abs(23) !=23) System.out.println("Math(23) :: Error! Hasil harus 23");
else System.out.println("Math(23) :: Correct!");

System.out.println("Integer.MIN_VALUE = "+Integer.MIN_VALUE);
System.out.println("Math.abs(Integer.MIN_VALUE) =                                         "+Math.abs(Integer.MIN_VALUE));
System.out.println("Integer.MAX_VALUE = "+Integer.MAX_VALUE);
if(Math.abs(Integer.MIN_VALUE) != (-Integer.MIN_VALUE))
System.out.println("Math(Integer.MIN_VALUE) :: Error!");
else System.out.println("Math(Integer.MIN_VALUE) :: Correct!");

if(Math.abs(Integer.MIN_VALUE) < 0)
System.out.println("Math(Integer.MIN_VALUE) :: Error! Hasil harus > 0");
else System.out.println("Math(Integer.MIN_VALUE) :: Correct!");

if(Math.abs(Integer.MAX_VALUE) != (-Integer.MAX_VALUE))
System.out.println("Math(Integer.MAX_VALUE) :: Error!");
else System.out.println("Math(Integer.MAX_VALUE) :: Correct!");

System.out.println("\n\nPERHATIAN!");
System.out.println("Pengujian menunjukan hasil yang tidak sesuai dengan matematika!!!\n"+
"Pengujian otomatis kadang tidak dapat menemukannya secara benar karena dibatasi juga\n"+
"oleh kemampuan bahasa itu sendiri bila kesalahan adalah pada spesifikasi bahasa itu sendiri!\n"+
"Pengujian otomatis akan benar ditangan yang ahli, pengujian dapat ditambah sbb : \n"+
"Berdasarkan kenyataan bahwa hasil fungsi abs tidak boleh kurang dari nol");

System.out.println(
"\n"+
"Di Java, Math.abs(Integer MIN.VALUE) justru menghasilkam bilangan negatif. \n"+
"Melanggar runus matematika dimana hasil fungsi absolut selalu bernilai positif. \n"+
"Hasil ini dapat ditelusuri karena representasi int adalah two's complement \n"+
"Versi yang dipakai penulis :: JDK 1.7" );
}
static void testAcos() {
System.out.println("Math.acos(0.9) = " +Math.acos(0.9));
}
static void testCeil() {
}

static void testCos() {
}

static void testExp() {
}

static void testFloor() {
}

static void testLog() {
}

static void testMax() {
}

static void testMin() {
}

static void testPow() {
}

static void testSin() {
}

static void testSqrt() {
}

static void testTan() {
}

public static void main (String [] args){
test();
betterTest();
}
}

Hasilnya akan seperti di bawah ini :





Dengan menggunakan class math kita dapat mengetahui nilai E yang dapat digunakan untuk nilai ekponensial dan dapat mengetahui nilai PI. Fungsi lain dari class math, kita dapat mencari nilai absolute dari suatu bilangan. Dengan menggunakan class math dengan method .abs (absolute), contohnya dapat dilihat pada hasil di atas nilai absolute dari -23.7 adalah 23.7.

Fungsi sintaks di atas juga untuk mencari nilai maksimum dan minimum dari suatu tipe data, dengan menggunakan fungsi MIN_VALUE dan MAX_VALUE. Seperti contoh di atas, dalam pengujian ini saya mencari nilai maksimum dan minimun dr tipe data Double dan Integer. Dapat dilihat nilai minimal dari tipe Double adalah 4.9E-324, selain mencari nilai min, saya juga mencari nilai absolutenya. Yang didalat adalah sama, karena nilai absolute pasti bernilai positif.


Bagaimana dengan yang ini?


Sudah terlihat dimana letak keanehannya? Yaa nilai minimal integer adalah -2147483648 dan nilai absolutenya ko tetap -2147483648?
Pada kasus ini batas nilai Java tidak sesuai definisi matematika untuk fungsi absolute. Fungsi math ini memang sangat membatu karena mudah dan otomatis, tapi untuk para penguji haruslah teliti dan pintar agar hasil sesuai dengan konstrain yang berlaku di Matematika, jangan hanya menandalkan yang disediakan oleh bahasa. 

Sekian penjelasan tentang fungsi class math pada Java, semoga bermanfaat.
Terimakasih sudah membaca.

Flowchart Lift 2 pintu

Flowchart atau diagram alir merupakan sebuah diagram dengan simbol-simbol grafis yang menyatakan aliran algoritma atau proses yang menampilkan langkah-langkah yang disimbolkan dalam bentuk kotak, beserta urutannya dengan menghubungkan masing masing langkah tersebut menggunakan tanda panah.

Di bawah ini merupakan flowchart tentang bagaimana langkah lift bekerja.



Penjelasan :
Pada flowchart di atas lift memiliki 2 pintu dan berada di sebuah bangunan yang memiliki 3 lantai. Cara kerja lift :

1. Lift akan membaca input dari pengguna yang menekan tombol lift
2. Lift yang terdekat dengan posisi pengguna akan merespon permintaan sedangkan lift           satunya akan menunggu jika ada permintaan dari lantai lain
3. Pintu lift terbuka
4. Setelah itu masuk kedalam lift dan tekan tombol tujuan. Dalam flowchart ini lantai tujuan       kami beri variabel n
5. Lift akan naik/turun sesuai dengan tujuan.

Aggota kelompok :
- Fauzi Nugraha 
- Risky Permana Putra

Selasa, 07 Oktober 2014

JAVA

Bahasa pemrograman Java awalnya dikembangkan oleh Sun Mycrosystems yang diciptakan oleh James Gosling dan dirilis tahun 1995 sebagai komponen inti Sun Microsystems Java Platform. 
Java merupakan bahasa pemrograman tingkat tinggi yang sudah sangat populer dikalangan progammer, ini dikarenakan kemampuan Java yang tidak diragukan lagi. Salah satunya yaitu kemampuan cross platform, dengan kemampuan ini program yang dibuat menggunakan bahasa Java dapat berjalan di beberapa OS yang berbeda. Selain itu Java juga sudah mendukung OOP, seperti kebanyakan bahasa tingkat tinggi lainnya. Berikut macam-macam kemampuan yang dimiliki oleh Java :
  • Object Oriented : Dalam Java, semuanya adalah objek. Source code dalam Java dapat dengan mudah dirombak, karena semua sudah

  • Platform independent : Tidak seperti bahasa pemrograman lainnnya termasuk C dan C++, Ketika Java dikompilasi, scouce code tidak dikompilasi ke dalam  mesin tertentu, melainkan ke dalam kode byte independen. Kode byte ini didistribusi melalui web dan diinterpretasi oleh mesin virtual (JVM) pada platform manapun yang sedang berjalan.

  • Simpel : Java didesain agar mudah untuk dipelajari. Jika sudah mengerti konsep OOP, maka akan lebih mudah untuk mengusai Java.

  • Aman : Dengan fitur kemanan Java memungkinkan untuk mengembangkan software yang bebas dari virus dan pembajakan. Karena tehnik autetikasi yang digunakan adalah berdasarkan public-key encryption.

  • Arsitektur netral : Kompiler Java menghasilkan sebuah objek file yang berformat arsitektur netral. Dimana hal tersebut menyebabkan kode yang dikompilasi dapat dieksekusi pada beberapa prosesor, dengan kehadiran Java Runtime System.
  • Peforma tinggi : Java memiliki peforma yang tinggi karena Java menggunakan “Just-In-Time” kompiler.

  • Terdistribusi : Java didesain untuk lingkungan terdistribusi dalam internet.

  • Dinamik : Java dianggap lebih dinamis daripada C atau C ++ karena dirancang untuk beradaptasi dengan lingkungan yang berkembang. Program Java dapat membawa jumlah luas informasi run-time yang dapat digunakan untuk memverifikasi dan menyelesaikan akses ke objek pada run-time.


SEJARAH SINGKAT

James Gosling memulai proyek bahasa Java pada Juni 1991 untuk digunakan dalam salah satu proyek miliknya. Bahasa ini awalnya bernama Oak, Gosling menamainya Oak karena terinspirasi dari pohon Oak yang berada di depan kantornya. Setelah itu sempat berganti menjadi Green, hingga pada akhirnya Gosling menamai bahasa ini dengan Java karena terinspirasi dari tempat asal kopi yang ia suka, yaitu kopi tubruk yang berasal dari pulau Jawa.

Sun microsystem merilis Java 1.0 pada 1995. Dengan selogannya “Write Once, Run Anywhere” (WORA), maksud selogan ini adalah dengan menulis satu kali sebuah program, maka program tersebut dapat berjalan di platform manapun.Pada 13 November 2006, Sun merilis banyak Java secara gratis dan open source dibawah ketentuan GNU. Pada 8 May 2007, Sun menyelesaikan prosesnya dan membuat semua versi java mejadi gratis dan open source.




Sumber : E-Book Java Tutorial, http://www.tutorialspoint.com/java/java_tutorial.pdf