Pembahasan Soal UTS Alpro dan Strukdat II
by panji • October 27, 2011 • Lain-lain • 0 Comments
saatnya kita membahas soal UTS Algoritma Pemrograman dan Struktur Data II , yuk yuk ..
#1
public class ResponsiAlpro {
public static void main(String[] args)
{
int i = 0;
i = test(i);
System.out.println(i);
test2(i);
System.out.println(i);
i = test3(i);
System.out.println(i);
String a = "expelliarmus";
String b = "eXpelliarmus";
String c = new String(a);
System.out.println(a.equals(b));
System.out.println(a.equalsIgnoreCase(b));
System.out.println(a==c);
}
public static int test(int i)
{
i = 30;
return i;
}
public static void test2(int i)
{
i = 10;
}
public static int test3(int i)
{
return i = 10;
}
}
Nah dari source code diatas hasilnya bakalan berupa berikut :
30
30
10
false
true
false
yang pertama mengeluarkan 30, karena methodnya mengeluarkan nilai 30 dan i menampung nilai tersebut
yang kedua mengeluarkan 30 juga, karena method test2 ga ngapa-ngapain, alias cuma ada nilai i = 10, namun nilai tersebut hanya ada di method itu saja
yang ketiga mengeluarkan nilai 10, karena…seperti nomor 1
yang keempat mengeluarkan false, karena di string kedua ada huruf X yang besar
yang kelima mengeluarkan true, karena huruf besar dan huruf kecil diabaikan
yang keenam mengeluarkan false, karena dia membandingkan a dengan c adalah objek yang sama atau tidak
boolean ex1 = “Texas” instanceof String;
System.out.println(ex1);
yang diatas ini mengeluarkan true karena “Texas” yang diapit oleh tanda ” kutip adalah String
Object pt = new Point(10, 10);
boolean ex2 = pt instanceof String;
System.out.println(ex2);
yang diatas jelas false karena udah jelas jelas itu pt adalah point bukan String..
——————————————————————————–
#2
public class UTS_No2 {
public static void main (String[] args)
{
BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
String input = "";
System.out.println("Masukin nilai gih : ");
try {
input = dataIn.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
int nilai = Integer.parseInt(input);
if(nilai>=50)
{
System.out.println"Marvelous");
}
else if(nilai {
System.out.println("Ouch.. :( kampret");
}
}
}
}
yang pengen ditonjolin sih cara pengambilan input, sama pemakaian if dan else if
————————————————————————————-
#3
yang ini kelas segitiga nya..
public class Segitiga {
private int a;
private int t;
private double luas;
private int keliling;
public Segitiga(int a, int t)
{
this.a = a;
this.t = t;
luas = hitungLuas();
keliling = hitungKelilng();
}
public int getA() {
return a;
}
public void setA(int a) {
this.a = a;
}
public int getT() {
return t;
}
public void setT(int t) {
this.t = t;
}
public double getLuas() {
return luas;
}
public int getKeliling() {
return keliling;
}
public double hitungLuas(){
luas = a * t / 2;
return luas;
}
public int hitungKelilng(){
keliling = a*3;
return keliling;
}
}
yang ini cara penggunaannya…
public class SegitigaExample {
public static void main (String[] args)
{
Segitiga a = new Segitiga(100, 50);
System.out.println(a.getLuas() + " " + a.getKeliling());
}
}
—————————————————————————
#4
ini dia listing program lengkapnya, perhatikan method isPalindrome
public class Palindrome {
public static void main (String[] args)
{
BufferedReader dataIn = new BufferedReader(new InputStreamReader(System.in));
String kata = "";
System.out.println("Masukin kata gih : ");
try {
kata = dataIn.readLine();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println(isPalindrome(kata));
}
public static boolean isPalindrome(String kata)
{
boolean isPalindrome = true;
int j = kata.length() - 1;
for(int i = 0; i < j; i++)
{
if(kata.charAt(i)!=kata.charAt(j))
{
isPalindrome = false;
break;
}
j--;
}
return isPalindrome;
}
}
—————————————————————————
#5
nah sekarang kita ke soal bonus, method buat ngecek bilangan prima !
kalo gampangnya sih begini :
boolean isPrime(int n) {
for(int i=2;2*i<n;i++) {
if(n%i==0)
return false;
}
return true;
}
tapi bayangin kalo n nya itu 112312983719287419 mau ngecek sampe kapan?
boolean isPrime(int n) {
if (n%2==0) return false;
for(int i=3;i*i<=n;i+=2) {
if(n%i==0)
return false;
}
return true;
}
nah kalo yang diatas bakal lebih cepat, kenapa? karena kita ngecek apakah dia bilangan genap atau tidak,
jika ya maka false
jika tidak, maka kita cukup mengecek dengan bilangan-bilangan ganjil saja
jika ada pertanyaan lebih lanjut, bisa hubungi saya via e-mail
yahoo messenger
facebook
twitter
google plus
ketemu langsung sambil traktir :P