Kamis, 15 April 2010

Penjumlahan Biner java

Menghitung penjumlahan bilangan biner menggunakan Java ini program sederhana untuk menghitung penjumlahan biner jadi bilangan biner bilangan yang hanya terdiri dari 2 digit yaitu 1 dan 0.yang mana logikanya jika
0+0=0
1+0=1
1+1=1

begitupula sebaliknya. Oke disini ada 2 kelas yang digunakan yaitu class main dan class prosesnya


#class proses
public class proses {
static String[] lookupTable = { //membandingkan data yang dimasukan
"0+0+0=00",
"0+0+1=01",
"0+1+0=01",
"0+1+1=10",
"1+0+0=01",
"1+0+1=10",
"1+1+0=10",
"1+1+1=11",};

static String lookup(char b1, char b2, char c) {
String formula = String.format("%c+%c+%c=", b1, b2, c);
for (String s : lookupTable) {
if (s.startsWith(formula)) { //method dalam string utk memulai dari awal yang dimulai dg “startsWith(formula)”
return s.substring(s.indexOf("=") + 1);
} }
throw new IllegalArgumentException(); }

/*method untuk membuat padding agar penambahan data yang beda bisa sama cthnya 1100+110 yg menambahkankan sbnyk n di bagian depannya shg datanya bisa dijumlahkan 1100+0110*/
static String zeroPad(String s, int length) {
while (s.length() < s = "0" length =" Math.max(s1.length()," s1 =" zeroPad(s1," s2 =" zeroPad(s2," result = "" carry =" '0';" i =" length">= 0; i--) {
String columnResult = lookup(s1.charAt(i), s2.charAt(i), carry);
result = columnResult.charAt(1) + result;
carry = columnResult.charAt(0); }
if (carry == '1') {
result = carry + result; }
return result; }
}

Oke disini class mainnya yang mana akan memanggil kelas prosesnya
#Class main
import java.util.Scanner;
class main{
static Scanner sc=new Scanner(System.in);
public static void main(String args[]) {

System.out.println("masukan bilangan biner 1 =");
String s1=sc.next(); //data yng dimasukan berupa string sehingga masukannya lebih besar
System.out.println("masukan bilangan biner 2 =");
String s2=sc.next();
proses Aku=new proses(); //memanggil kelas proses dengan operator new

System.out.println("hasilnya adalah"+proses.add(s1,s2));
} }

Hasilnya:

1 komentar:

Anonim mengatakan...

kk msih ad yg error gmna tuh