Menampilkan akar persamaan kuadrat dlm java


saya punya soal untuk menghitung akar persamaan kuadrat x^2+3x-4..dengan parameter a,b,c...dan return value X1,X1,D,akarD dalam 1 sub rutin


public static void main(String[] args) {
// TODO code application logic here
double a=1;
double b=3;
double c=-4;


double [] z=persamaan(a,b,c);
System.out.println("nilai D = "+z[0]);
System.out.println("nilai akarD = "+z[1]);
System.out.println("nilai X1 = "+z[2]);
System.out.println("nilai X2 = "+z[3]);
}
public static double [] persamaan(double a,double b, double c){
double [ ] hasil = new double[4];
double D,akarD,X1,X2;
D= (b*b)-(4*a*c);
akarD = Math.sqrt(D);
// if(akarD>=0){
X1= (-b+akarD)/2*a;
X2= (-b-akarD)/2*a;

// }
// else
// {
// double angkaD= Math.abs(D);
// akarD = Math.sqrt(angkaD);
// X1= (-b+akarD)/2*a;
// X2= (-b-akarD)/2*a;
//// 

// }
hasil[0]=D;
hasil[1]=akarD;
hasil[2]=X1;
hasil[3]=X2;

return (hasil) ;

}}
KET :
Kalau ada kejadian:
D= (b*b)-(4*a*c); menghasilkan bilangan negatif

solusinya adalah:
1. nilai c untuk sementara di balik dulu. Kalau c positif balik menjadi negatif, kalau c negatif balik menjadi positif (tergantung situasi).
2. hitung ulang persamaan D= (b*b)-(4*a*c)
3. Kemudian hasilnya di akarkan. Jadi nggak akan ada masalah dengan akar bilangan negatif \:D/ 

Nah, hasil akhirnya, yaitu "D" dipasang ke rumus awal dengan nilai "c" yang asli