Senin, 31 Oktober 2016

Dasar-dasar Java Bagian 2: Tipe, Metode, dan Kondisi

Setelah membahas dasar-dasar java pada postingan sebelumnya kali ini kita akan membahas materi lanjutannya. Yaitu mengenai tipe-tipe data yang lain, apa dan bagaimana metode bekerja dan operasi kondisi. Baik langsung loncat ke pembahasannya.

Indeks Tutorial:

  • Mengenal tipe data secara lebih mendalam
  • Metode
  • Operasi Kondisi

Mengenal tipe data secara lebih mendalam

Pembagian

Untuk melakukan operasi pembagian di Java kita menggunakan simbol "/". Bagaimana cara sebuah operasi pembagian bekerja, berbeda jika diterapkan pada tipe data integer dan double.

Untuk lebih memahaminya mari kita simak contoh operasi berikut ini:

double a = 5.0/2.0;   // a = 2.5
int b = 4/2;   // b = 2
int c = 5/2;   // c = 2
double d = 5/2;   // d = 2.0

Penjelasan:
a bernilai 2.5, karena pada deklarasi variabel a, dilakukan assignment dengan nilai desimal secara eksplisit yaitu 5.0 dan 2.0. Jadi hasil operasinya pun menghasilkan nilai desimal/double yaitu 2.5 (satu titik di belakang koma).

b bernilai 2, sesuai dengan nilai assignmentnya 4/2 = 2.

c bernilai 2, muncul pertanyaan mengapa c tidak bernilai 2.5? Jawabannya adalah karena c bertipe data integer atau bilangan bulat, sehingga bilangan di belakang koma akan diabaikan.

d bernilai 2, muncul pertanyaan mengapa c tidak bernilai 2.5? padahal kan tipe datanya sudah double? Jawabannya adalah karena pada assignment variabel tidak ditulis dalam bilangan double (tidak ditulis bilangan di belakang koma), sehingga ketika operasi pembagian dilakukan nilai masih dianggap integer.


Urutan pengerjaan Operasi Aritmatika

Beberapa aturan yang perlu diperhatikan dalam pengerjaan operasi aritmatika yaitu:
Prioritas pengerjaan seperti pada operasi matematika, dari kiri ke kanan.
Sisi sebelah kanan dari tanda = dikerjakan dahulu
Tanda kurung adalah prioritas tertinggi

Contoh:

double x = 3 / 2 + 1;  //x = 2.0
double y = 3 / (2 + 1);  //y = 1.0

Dari contoh di atas dapat diketahui bahwa adanya tanda kurung dapat mempengaruhi hasil pengerjaan.


Kecocokan Tipe Data

Dalam assignment sebuah variabel, java selalu memastikan bahwa nilai yang dimasukkan ke dalam variabel adalah sesuai dengan tipe datanya.

Contoh:

String five = 5; //ERROR!

Deklarasi variabel di atas akan menghasilkan error di bawah ini:

test.java.2: incompatible types
found: int
required: java.lang.String
String five = 5;

karena terjadi ketidaksesuaian antara tipe data yang seharusnya string tapi dimasukkan variabel 5 yang bertipe integer. Begitu pula sebaliknya, ketika kita melakukan deklarasi variabel bertipe integer kemudian melakukan assignment dengan mengisinya dengan data bertipe string maka akan terjadi error.


Konversi dengan casting

Pada pembahasan sebelumnya sudah kita bahas bahwa tipe variabel dan tipe data yang dimasukkan ke variabel harus sesuai. Nah pada bagian ini kita akan belajar melakukan casting, agar bisa menyesuaikan tipe data yang dimasukkan ke variabel. Agar lebih jelas mari kita lihat contoh di bawah ini:


int a = 2;    // a = 2
double a = 2;   // a = 2.0 (Secara implisit akan dikonversi ke tipe double)

int a = 18.7;   // ERROR
int a = (int)18.7;  // a = 18

double a = 2/3;   // a = 0.0
double a = (double)2/3; // a = 0.6666...

Nah bagi yang belum tahu casting itu yg mana, lihat di bagian sebelah kanan tanda = ada sebuah tipe variabel yang ada di dalam kurung, itulah casting. Jadi tipe variabelnya ditegaskan kembali agar tidak menghasilkan ERROR incompatible type.


Metode / Methods

Method adalah sekumpulan statement yang berguna untuk melakukan tugas tertentu. Mari kita cermati contoh sebuah metode di bawah ini:

public static void main(String[] args)
{
 System.out.println("hai"); 
}

void adalah tipe nilai return dari method tersebut. Jadi method ada yang mengembalikan nilai ada yang tidak, nah jika tidak mengembalikan nilai maka memakai void. Menyesuaikan saja, kalau kembaliannya berupa angka ya memakai int atau double kalau teks ya memakai String.

main adalah nama dari method tersebut, method main sendiri adalah method utama yang harus ada disetiap program. karena compiler akan memanggil method main terlebih dahulu dalam eksekusi program.

String[] args adalah parameter yang dilewatkan ke method, parameter terdiri dari tipe data dan nama variabel. Pada contoh ini tipe datanya String[] dan nama variabelnya args.

tanda kurung kurawal "{}" menandai scope dari method tersebut, jadi semua statement yang ada dalam kurung kurawal adalah milik dari method tersebut.

Membuat method

berikut ini adalah contoh pembuatan method

public static void namaMethod(){
  STATEMENTS
}

Untuk memanggil sebuah method kita hanya perlu memanggil nama dari method tersebut, misalnya untuk memanggil method di atas yaitu dengan:

namaMethod();

Contoh yang lain:

class Lines{
 public static void newLine(){
  System.out.println(""); //mencetak 1 baris baru
 }
 
 public static void threeLines(){
  newLine(); newLine(); newLine(); //mencetak 3 baris baru
 }
 
 public static void main(String[] arguments){
  System.out.println("Line 1");
  threeLines();    //memanggil method threeLines()
  System.out.println("Line 2");
 }
}


Penjelasan:
Pada method newLine() berisi statement untuk mencetak 1 baris baru.
Method threeLines() berisi statement yang memanggil method newLine() sebanyak 3 kali. Jadi nanti akan mencetak baris baru sebanyak tiga kali.
Kemudian pada method utama/main dipanggil method threeLines(), yang fungsinya seperti telah dijelaskan mencetak tiga baris baru.


Parameter

Parameter adalah variabel yang dilewatkan ke dalam method untuk diproses, untuk mendeklarasikan parameter kita harus menulis tipe data kemudian diikuti dengan nama variabelnya.

Contoh:

public static void namaMethod(TIPE NAMA){
 STATEMENTS
}

Cara memanggil method yang memiliki parameter adalah:

namaMethod(EXPRESSION);

EXPRESSION disini bisa berupa nilai, variabel, objek, atau yang lain yang intinya harus bertipe sama dengan tipe parameter yang telah kita tentukan ketika deklarasi method.

Contoh penggunaan parameter:

class Square{
 public static void printSquare(int x){
  System.out.println(x*x);
 }
 
 public static void main(String[] args){
  int value = 2;
  printSquare(value);
  printSquare(3);
  printSquare(value*2);
 }
}

Sintaks di atas akan menghasilkan output sbb:
4
9
16

Contoh penggunaan parameter 2:

class Square2{
 public static void printSquare(int x){
  System.out.println(x*x);
 }
 
 public static void main(String[] args){
  printSquare("hello");
  printSquare(5.5);
 }
}

Silakan compile sintaks di atas, dan amati bagaimana hasilnya. Jika menghasilkan error kira-kira apa penyebabnya?

Contoh penggunaan parameter 3:

class Square3{
 public static void printSquare(double x){
  System.out.println(x*x);
 }
 
 public static void main(String[] args){
  printSquare(5);
 }
}

Multiple Parameters

Jumlah parameter yang dilewatkan di suatu argument tidak dibatasi jumlahnya. Kita bisa meletakkan lebih dari satu paremeter.

Contoh:

[...] namaMethod(TIPE namaParameter1, TIPE namaParameter2){
 STATEMENTS
}

Untuk memanggil method tersebut caranya dalah sbb:

namaMethod(argument1, argument2);


Contoh:

class Multiply{
 public static void times(double a, double b){
  System.out.println(a * b);
 }
 
 public static void main(String[] args){
  times(2, 2);
  times(3, 4);
 }
}

Jika dijalankan maka sintaks di atas akan menghasilkan out sbb:
4.0
12.0


Return Value

Sebuah method bisa mengembalikan suatu nilai setelah method tersebut dijalankan. Nah tipe data dari nilai kembalian tersebut harus dijadikan tipe dari methodnya.

Contoh:

public static TYPE NAME(){
 STATEMENTS
 return EXPRESSION 
}

Ingat! Jika tipe nya adalah void berarti tidak mempunyai tipe return value, berarti suatu method tidak mengembalikan return value.

Contoh method yang tidak mengembalikan nilai / tidak mempunyai return value:

class Square4{
 public static void printSquare(double x){
  System.out.println(x*x);
 }
 
 public static void main(String[] args){
  printSquare(5);
 }
}

Jika dijalankan maka sintaks di atas akan menghasilkan out sbb:
25.0

Sedangkan di bawah ini adalah contoh method yang mempunyai return value bertipe double:

class Square5{
 public static double Square(double x){
  return x*x;
 }
 
 public static void main(String[] args){
  System.out.println( square(5) );
  System.out.println( square(2) );
 }
}


Jika dijalankan maka sintaks di atas akan menghasilkan out sbb:
25.0
4.0


Variable Scope / Jangkauan Variabel

Penggunaan variabel hanya dibolehkan dilingkup dimana ia dideklarasikan, yaitu didalam blok ({}). Kemudian parameter dalam sebuah method, berlaku layaknya mendeklarasikan variabel baru dalam sebuah method.

Contoh:

class SquareChange{
 public static void printSquare(int x){
  System.out.println("printSquare x = + x");
  x = x * x;
  System.out.println("printSquare x = + x");
 }
 
 public static void main(String[] args){
  int x = 5;
  System.out.println("main x = " + x);
  printSquare(5);
  System.out.println("main x = " + x);
 }
}

Jika sintaks di atas dijalankan maka outputnya adalah sbb:
main x = 5
printSquare x = 5
printSquare x = 25
main x = 5

Dapat dilihat bahwa method printSquare() memproses angka 5 (variabel x) sehingga menghasilkan angka 5 dan 25 ketika method tsb dipanggil. Namun nilai dari variabel x pada method main tidak berubah nilainya karena nilai x yang diolah oleh method printSquare adalah sebuah parameter (variabel yang hanya berlaku di dalam method printSquare() ).

class Scope{
 public static void main(){
  int x = 5;
  if(x == 5){
   int x = 6;    //error duplikasi deklarasi variabel x
   int y = 72;
   System.out.println("x = " + x + " y = " + y);
  }
  System.out.println("x = " + x + " y = " + y); //error variabel y tidak dikenali
 }
}

Jika sintaks di atas dijalankan maka kan menghasilkan error, bahwa variabel y tidak dikenali karena varibel y hanya hidup di dalam statement if(). Kemudian deklarasi variabel x di dalam statement if juga error karena variabel x sudah dideklarasikan sebelumnya.


Metode = Membangun Blok

Beberapa konsep tentang metode:

Program yang besar dibangun dari kumpulan method kecil.
Method dapat dikembangkan, diuji, dan digunakan secara individual.
Pengguna tidak perlu tahu bagaimana sebuah method bekerja, yang terpenting method dapat berjalan dengan baik.
Dalam Ilmu Komputer, ini disebut abstraction/abstraksi.


Beberapa fungsi Matematika yang ada di Java:

Math.sin(x)   //Untuk mencari nilai sinus.
Math.cos(x)   //Untuk mencari nilai cosinus.
Math.pow(x, y)  //Untuk mencari nilai bilangan berpangkat.
Math.PI    //Untuk menulis nilai phi (3.14).
Math.log(x)   //Untuk mencari nilai log.


Operasi Kondisi

Operasi kondisi adalah sebuah operasi yang dijalankan apabila syarat tertentu terpenuhi.

Statement if

Statement di dalam statement if dijalankan jika konsdisinya bernilai benar/true.

Bentuknya adalah sbb:

if(KONDISI){
 STATEMENT
}

Contoh:

class kondisi{
 public static void test(int x){
  if(x > 5){ //apakah x lebih besar dari 5
   System.out.println(x + "is > 5"); //jalankan statement jika kondisi bernilai true
  }
 }
 
 public static void main(){
  test(6);
  test(5);
  test(4);
 }
}

Jalankan sintaks di atas dan analisa apa yang terjadi.


Operator Perbandingan

Operator Perbandingan adalah operator yang digunakan untuk membandingkan 2 nilai.

x > y : x lebih besar dari y
x < y : x lebih kecil dari y
x <= y : x lebih kecil atau sama dengan y
x >= y : x lebih besar atau sama dengan y

x == y : x sama dengan y

Perlu diperhatikan jika == adalah operator perbandingan sedangkan = adalah operator assignment (untuk memberikan nilai).


Boolean Operator / Operator Logika

Adalah operator untuk mengetahui nilai kebenaran.

&& : logika AND (bernilai benar jika kedua pernyataan bernilai benar)
|| : logika OR (bernilai benar jika salah satu pernyataan bernilai benar)

Contoh:

if(x > 6){
 if(x < 9){
  ...
 }
}

Sintaks di atas sama dengan sintaks berikut ini:

if(x > 6 && x < 9){
 ...
}

Dengan menggunakan sintaks kedua ini kita bisa lebih menghemat baris kode, dari pada memeriksa dua kali mending digabungkan saja dengan operator AND.


else

Kondisi else adalah kondisi yang dipasangkan dengan kondisi if, jika kondisi if tidak terpenuhi maka statement milik kondisi else yang dijalankan.

Bentuknya adalah sbb:

if(KONDISI){
 STATEMENT
} else {
 STATEMENT
}

Contoh:

class kondisi{
 public static void test(int x){
  if(x > 5){
   System.out.println(x + " is > 5");
  } else {
   System.out.println(x + " is not > 5");
  }
 }

 public static void main(String[] args){
  test(6);
  test(5);
  test(4);
 }
}



else if

Jika kita ingin menggunakan beberapa kondisi maka else if lah jawabnnya.

Bentuk dari operasi kondisi else if adalah sbb:

if(KONDISI){
 STATEMENT
} else if(KONDISI) {
 STATEMENT
} else if(KONDISI) {
 STATEMENT
} else {
 STATEMENT
}

Contoh:

class kondisi{
 public static void test(int x){
  if(x > 5){
   System.out.println(x + " is > 5");
  } else if(x == 5) {
   System.out.println(x + " is equals 5");
  } else {
   System.out.println(x + " is not > 5");
  }
 }

 public static void main(String[] args){
  test(6);
  test(5);
  test(4);
 }
}


Method untuk Konversi Tipe Data
int ke String:
String five = 5;   //ERROR!
String five = integer.toString(5);
String five = "" + 5;  //five = "5"

String ke int:
int foo = "18";    //ERROR!
int foo = Integer.parseInt("18"); //foo = 18

Catatan:
Jangan pernah menggunakan operator == ke variabel bertipe double!


Studi kasus: Foo Corporation

Buatlah fungsi untuk mencetak gaji berdasarkan gaji pokok dan jam kerja.
Lembur: Lebih dari 40 jam, gajinya menjadi 1.5 dari gaji pokok.
Gaji minimum: Rp.100.000/jam
Jam kerja maksimal: 60 jam per minggu

Jawaban: (Jawaban bisa bermacam-macam tergantung bagaimana cara kita masing-masing)

class hitungGaji{
 public static void gaji(int jamKerja){
  int gajiPokok = 100000;
  
  if(jamKerja > 60){
   System.out.println("Anda melebihi jam Kerja!");
  } else if (jamKerja > 40){
   System.out.println("Jam kerja Anda : " + jamKerja + ", Gaji Anda adalah Rp." + ( (gajiPokok * jamKerja)*1.5) );
  } else {
   System.out.println("Jam kerja Anda : " + jamKerja + ", Gaji Anda adalah Rp." + (gajiPokok * jamKerja) );
  }
 }

 public static void main(String[] args){
  gaji(40);
  gaji(45);
  gaji(66);
 } 
}

Jika sintaks di atas dijalankan akan menghasilkan output sbb:

Jam kerja Anda : 40, Gaji Anda adalah Rp.4000000
Jam kerja Anda : 45, Gaji Anda adalah Rp.6750000.0
Anda melebihi jam Kerja!


Sekian tutorial kali ini semoga bermanfaat, jika ada pertanyaan maupun saran silakan tulis di kolom komentar :)

Referensi:
Sumber

Sabtu, 29 Oktober 2016

Dasar-dasar Java : Tipe, Variabel, dan Operator

Setelah sekian lama tidak aktif nge-blog kali ini saya ingin berbagi tutorial mengenai pengenalan bahasa pemrograman Java. Yah sekalian belajar kembali untuk mempertajam ingatan hehe, karena yang namanya ilmu itu akan luntur kalau tidak pernah dipakai. Baik, tutorial ini sebenarnya saya ambil dari tutorial milik Massachusetts Institute of Technology dan digabung dengan posting-an salah seorang di web dreamincode.net. Ya walaupun cuma modal copas dan translate tapi kan enak sudah jadi bahasa Indonesia yang lebih mudah kita cerna, karena setau saya sebagian dari kita alergi bahasa Inggris :p wkwk. Oke langsung aja kita menuju ke tutorialnya cekibrot!!!

Pembahasan pada Tutorial ini terdiri dari beberapa poin antara lain:
  • Java dan Komputer
  • Program pertama dan strukturnya
  • Tipe variabel yang biasa dijumpai
  • Penugasan/assigment pada variabel
  • Operator dasar
  • Rangkaian+ String 
  • Program pertama kita

Java dan Komputer



Gambar di atas menampilkan bagaimana sebuah informasi diolah. Cara CPU membaca informasi berbeda dengan manusia, Ketika kita mau menambahkan angka, kita akan menambahkannya dengan cara seperti ini x + y = z, nah kalau CPU akan memproses penambahan tersebut dengan cara seperti ini:

z = x + y //Baca lokasi x
   //Baca lokasi y
   //Tambahkan
   //Tulis ke lokasi z

Hal ini perlu diperhatikan dan diingat karena ini akan menjadi dasar bagaimana kita akan melakukan penugasan di program kita nantinya.
Bahasa pemrograman lebih mudah dimengerti oleh manusia daripada bahasa yang digunakan oleh CPU. Oleh karena itu dibuatlah bahasa pemrograman, tapi pada akhirnya bahasa pemrograman apapun harus ditranslasikan ke bahasa yang dimengerti oleh CPU. Lalu muncu sebuah pertanyaan, kenapa harus memilih Java?

Java itu:
  1. Bahasa pemrograman yang paling populer
  2. Dijalankan di "Virtual Machine" (JVM)
  3. Lebih kompleks dari sebagian bahasa pemrograman (misalnya Python)
  4. Lebih sederhana daripada bahasa pemrograman lain (misalnya C++)
 

 Gambar di atas menunjukkan bagaimana Java di-compile. Pertama-tama tulis kode Java
 di sebuah teks editor, kemudian simpan file-nya dengan ekstensi .java. Source code tersebut kemudian di-compile oleh sebuah Java Compiler, dan kemudian disimpan sebagai file byte-code atau lebih dikenal sebagai file class. File class kemudian dijalankan melalui JVM (Java Virtual Machine) yang ada di Sistem Operasi kita.

Inilah alasan mengapa Java sangat populer. Kita tidak perlu menulis sintaks kode yang berbeda untuk Sistem Operasi yang berbeda-beda. Satu sintaks kode akan dapat dijalankan pada berbagai macam Sistem Operasi melalui JVM.

Baik sekarang marilah kita menuju program pertama kita dan membahas bagaimana strukturnya!


Program Pertama dan Strukturnya

Hello World! Ini adalah program standard yang diketik oleh semua programmer di awal mempelajari suatu bahasa pemrograman. Hampir setiap tutorial pasti memulai dengan menulis program ini. Baiklah silakan salin dan jalankan sintaks di bawah ini:

class Hello{
 public static void main(String[] args){
  //Program akan mengeksekusi bagian ini
  System.out.println("Hello World!");
 }
}

Output yang tampil di console akan seperti ini:
Hello World!

Mari kita cermati strukturnya dari sintaks di atas

class NAMAKELAS{
 public static void main(String[] args){
  STATEMENT
 }
} 


Cukup sederhana kan, jadi NAMAKELAS di program kita adalah Hello, dan pada bagian STATEMENT adalah bagian yang akan diproses oleh program dalam hal ini kita melakukan pencetakan pesan Hello World! ke sistem.

Tipe Variabel yang Biasa Dijumpai

Sebuah variabel adalah bagaimana kita menampung data yang akan disimpan di memori yang kemudian diproses oleh CPU.

Beberapa tipe variabel antara lain:

boolean: nilai kebenaran. (True dan False)
int: Integer. (0, 1, -47)
double: Bilangan Riil. (3.14, 1.0, -2.0)
String: Teks. ("hello", "example")

Itulah beberapa tipe variabel yang sering dipakai.  Jika ingin mengetahui lebih banyak mengenai tipe variabel yang lain mudahnya googling saja dan kamu akan menemukan semua tipe variabel yang tersedia di Java.


Penugasan pada Variabel

Setelah mempelajari beberapa tipe variabel, sekarang saatnya belajar bagaimana mengisikan nilai ke sebuah variabel. Ketika kita mengisikan nilai ke sebuah variabel, variabel tsb akan dipanggil lalu mengambil nilai tersebut dan kemudian diletakkan ke memori yang dialokasikan untuk variabel tsb.

Sebuah variabel adalah lokasi penempatan nilai dari suatu tipe data tertentu yang diberi nama.

Bentuknya adalah sbb:

TIPE NAMA;

Contoh:

String foo; //String adalah tipe variabel sedangkan foo adalah namanya.


Gunakan tanda = untuk memberikan nilai pada sebuah variabel.

Contoh:

String foo;
foo = "Phi 3.14"; //Maksudnya kita mengatur foo agar bertipe String, kemudian memberikan nilai "Phi 3.14" pada variabel foo.


Kita juga bisa langsung mengisikan nilai ke variabel bersamaan dengan deklarasi variabelnya.

Misalnya:

double badPI = 3.14;
boolean isJanuary = true;

Berikut ini adalah contoh programnya:

class Hello{
 public static void main(String[] args){
  String foo = "Phi 3.14";
   System.out.println(foo);
  foo = "Contoh yang lain";
   System.out.println(foo);
 }
}


Dan keluaran dari program di atas adalah:

Phi 3.14
Contoh yang lain


Macam-macam Operator

Operator adalah simbol yang berguna untuk menerapkan operasi aritmatika pada variabel. Berikut ini adalah macam-macam operator yang dapat digunakan:

Penugasan: =
Penambahan: +
Pengurangan: -
Perkalian: *
Pembagian: /

Urutan pengerjaan dari operator adalah sederhana layaknya pengerjaan soal matematika.

Mengikuti aturan standard matematika:
  1. Tanda kurung
  2. Perkalian dan Pembagian
  3. Penambahasan dan Pengurangan
Pastikan untuk menggunakan aturan di atas. jika tidak amaka kamu akan mendapati logic error di perhitunganmu. Logic error berarti kamu tidak akan menemukan errornya ketika program dijalankan, tetapi kamu tidak akan mendapati output seperti yang kamu inginkan. Error jenis adalah error yang sulit untuk diidentifikasi.

Berikut ini adalah contoh dari penggunaan operator di java:

class operasiMatematika{
 public static void main(String[] args){
  double skor = 1.0 + 2.0 * 3.0;
   System.out.println(skor);
  skor = score / 2.0;
   System.out.println(skor);
 }
}

Outputnya akan seperti ini:

7.0
3.5


String Concatenation(+) atau Penggabungan String

Penggabungan String adalah penambahan string pada sebuah string. Ini sangat sederhana seperti contoh di bawah ini:

String text = "Hello " + "World!" //Hello World!
text = text + 1000 + " Programmers"; //Hello World! 1000 Programmers

Sangat simpel kan? Sekarang kamu pasti sudah paham bagaimana cara memberikan nilai pada sebuah variabel.


Studi kasus

Penghitung Gravitasi: Hitung posisi dari sebuah objek yang jatuh x(t) = 0.5 * a(t2) + Vi(t) + xi

a Percepatan(m/s2) nilainya = -9.81
t Waktu (s) nilainya = 10
vi kecepatan awal (m/s) nilainya = 0
xi posisi awal nilainya = 0

Modifikasi kode berikut ini agar bisa menghitung posisi dari sebuah objek yang sedang jatuh selama 10 detik, dan menghasilkan output berupa posisi yang berukuran meter.

class PenghitungGravitasi {
 public static void main(String[] arguments){
  double gravitasi = -9.81; //Gravitasi bumi dalam m/s^2
  double kecepatanAwal = 0.0;
  double waktu = 10.0;
  double posisiAwal = 0.0;
  double posisiAkhir = 0.0;
  System.out.println("Posisi objek setelah " + waktu + " detik adalah " + posisiAkhir + " m.");
 }
}


Petunjuk: hasil akhir yang benar adalah -490.5 m. Java mungkin tidak akan menampilkan angka desimal tergantung dari bagaimana kita meng-compile program tersebut, tapi untuk sekarang itu tidak akan dibahas lebih dalam.


Dan jawaban dari studi kasus di atas adalah

public class PenghitungGravitasi {
 public static void main(String args[]){
  double gravitasi = -9.81; //Gravitasi bumi dalam m/s^2
  double kecepatanAwal = 0.0;
  double waktu = 10.0;
  double posisiAwal = 0.0;
  double posisiAkhir = 0.5 * (-9.81)*(waktu*waktu) + 0 + 0;
  System.out.println("Posisi objek setelah " + waktu + " detik adalah " + posisiAkhir + " m.");
 }
}


Referensi:
Sumber 1
Sumber 2

Senin, 22 September 2014

Berbagai Software Premium dan Alternatifnya

Kali ini saya akan membahas tentang aplikasi Alternatif dari aplikasi-aplikasi Premium yang biasa kita pakai. Diakui atau tidak, sebagian besar dari kita memakai sistem operasi Windows bajakan :D yang diikuti dengan aplikasi bajakan lainnya :p Terkadang saking terlalu mainstreamnya aplikasi yang terinstal di komputer kita, kita sampai tidak sadar bahwa di luar sana banyak aplikasi gratis/free yang memiliki fungsionalitas sama dengan aplikasi premium yang kita pakai. Daripada susah-susah cari serial number atau crack, mending kita pakai aplikasi yang gratis. Berikut ini akan saya sajikan beberapa aplikasi Premium beserta alternatifnya:


Bayar : Connectify Me
Gratis : MyPublicWifi

Jenis software ini biasanya dipakai untuk sharing koneksi internet melalui wireless device atau bisa juga hanya untuk sekedar sharing IP Address (biasanya untuk main game dalam LAN). Untuk dapat menggunakan Connectify, kita harus punya serial numbernya. Sedangkan MyPublicWifi bisa langsung kita install tanpa bingung dengan serial number. Pemakaian MyPublicWifi juga cukup mudah dan tidak menyulitkan pengguna, namun OS yang digunakan harus Windows 7 atau Windows 8 dan versi terbaru selanjutnya. Aplikasi MyPublicWifi sudah saya pernah coba di Windows XP dan ternyata tidak support.

Bayar : Internet Download Manager (IDM)
Gratis : Internet Download Accelerator (IDA)

Download sudah menjadi kegiatan yang lumrah jika berhubungan dengan dumay. Sebagai alat bantu kita biasanya memakai IDM. IDM adalah aplikasi freemium dengan masa trial 30 hari, setelah itu dia akan meminta kita untuk memasukkan lisensi agar IDM dapat terus digunakan. Menjengkelkan sekali ketika peringatan "IDM has fake serial number " muncul, banyak diantara teman-teman saya selalu ribet masalah serial number ini. Biasanya IDM terdeteksi palsu kalau tombol update mingguan tak sengaja di klik oleh user :P dan terpaksa kita harus crack lagi. Berbeda dengan IDM yang berbayar, IDA atau Internet Download Accelerator adalah gratis. Fungsi-fungsi pada IDA juga layaknya aplikasi Downloader premium dan tidak kalah dengan IDM.

Bayar : VMware
Gratis : VirtualBox

Software ini digunakan untuk menjalankan komputer virtual (guest) di komputer kita (host). Kalau saya biasanya memanfaatkan software ini untuk testing saat konfigurasi server linux, karena komputer kita juga (host) dapat berkomukasi dengan komputer (guest) layaknya komputer yang terhubung dalam jaringan. VirtualBox dapat kita gunakan secara gratis dengan fungsi yang powerful tidak kalah dengan VMware.

Bayar : Adobe Photoshop
Gratis : GIMP

Ini software yang tidak lepas dari kita-kita(Kita?) yang hobi edit foto/gambar. Meski memiliki tampilan yang berbeda dari Photoshop, GIMP dibekali dengan fungsi yang setara dengan Photoshop. Dengan sedikit penyesuaian maka GIMP pun bisa menjadi aplikasi edit foto yang handal.

Bayar : Adobe Audition
Gratis : Audacity

Pernahkan kita mengedit audio seperti: memotong, menggabungkan dan memberikan efek suara? Fungsi-fungsi tersebut terdapat dalam Audacity, dan ada banyak fungsi lainnya yang bisa kita dapatkan dengan menginstal plug-in yang tersedia di internet.

Bayar : TuneUp Utility
Gratis : CCleaner + IObit Uninstaller

Untuk menjaga kinerja komputer, kita biasanya harus membersihkan sampah file di komputer kita/men-defrag hardisk agar akses nya cepat. Biasanya software yang umum digunakan adalah TuneUp Utility yang notabene adalah aplikasi berbayar. Sebagai alternatif kita bisa memakai CCleaner untuk membersihkan sampah file dan juga Registry pada Windows. CCleaner juga memiliki fungsi untuk mengatur Startup Program dan Juga Software Uninstaller. Fungsi CCleaner yang telah saya sebutkan tadi merupakan fungsi-fungsi yang terdapat pada TuneUp Utility. Untuk mendefrag Hardisk kita bisa menggunakan utility bawaan Windows yaitu Disk Defragmenter. Nah dengan demikian kita sudah memiliki aplikasi yang memadai untuk menyamai TuneUp Utility. Sebagai tambahan kita install juga aplikasi IObit Uninstaller yang berfungsi untuk meng-Uninstall sebuah aplikasi secara menyeluruh (Tanpa menyisakan sisa file). IObit Uninstaller juga bisa menjadi solusi jika sebuah software sulit untuk di-uninstall.

Bayar : Microsoft Office
Gratis : Libre Office/WPS Office

Dalam kehidupan sehari-hari kita tidak lepas dari aplikasi Office, baik untuk mengerjakan tugas, menulis laporan, dll. Untuk keperluan tersebut, biasanya kita memakai Microsoft Office. Sebagai alternatif kita bisa menggunakan LibreOffice yang memiliki fitur yang lengkap dan memadai hampir sama dengan Microsoft Office. LibreOffice memiliki tampilan yang mirip dengan Microsoft Office 2003. Selain LibreOffice, aplikasi Office lainnya adalah WPS Office. WPS Office memiliki tampilan yang mirip seperti Microsoft Office 2007, yang pastinya sangat membantu kita tang sudah terlanjur familiar dengan Microsoft Office. Namun, kendalanya kedua software alternatif tersebut, terkadang mempunyai kelemahan pada masalah pada saat membaca format file Microsoft Office. Biasanya spasinya berubah, tipe font berganti, pengaturan paragraf yang menjadi tidak beraturan. Namun masalah tersebut jarang sekali ditemui. Masalah yang masih belum ada solusinya sebenarnya 1, yaitu Macro pada PowerPoint tidak akan berjalan pada kedua software alternatif tersebut.

Bayar : Microsoft Visual Studio
Gratis : Microsoft Visual Studio Express

Microsoft Visual Studio adalah IDE yang berguna untuk membangun aplikasi berbasis C#, C++, Visual Basic, Visual F#, JavaScript, dll. Disediakan dalam dua versi, versi yang gratis disebut dengan Microsoft Visual Studio Express. Fungsinya sama namun perbedaannya, versi Express dimaksudkan untuk keperluan edukasi dan hanya mendukung 1 bahasa pemrograman untuk setiap tipenya, misalnya Versi Express untuk C# saja atau Visual Basic saja.

Bayar : Power ISO / Ultra ISO
Gratis : Default ISO mounter Windows 8/Windows Explorer

Biasanya file installer sebuah Game berukuran sangat besar dan jika melebihi ukuran DVD maka akan dibagi lagi menjadi beberapa part. Karena filenya besar biasanya disimpan dalam format .ISO. Banyak yang belum tahu bahwa Windows 8 memiliki fungsi sebagai ISO mounter, caranya mudah yaitu: Klik kanan file berektensi .ISO > Open with > Pilih Windows Explorer. Taraa, akan muncul sebuah device DVD virtual untuk me-mount file ISO tersebut.

Bayar : YouWave
Gratis : Bluestacks

Kalau software ini sih dulu saya pakai sebelum punya Hp android :D. Fungsinya adalah untuk memainkan aplikasi android/menjalankan sebuah Virtual Android di komputer kita. Youwave adalah berbayar, sedangkan Bluestacks gratis. Dalam Bluestacks kita hanya bisa menginstal aplikasi-aplikasi android, berbeda dengan Youwave yang menyerupai device Android sesungguhnya. Namun secara fungsionalitas Bluestacks juga sudah mencukupi dan bisa menggantikan Youwave.

Bayar : Corel
Gratis : InkScape

Jenis software ini berguna untuk membuat gambar vektor, biasanya digunakan untuk membuat logo, banner, sampul, dll. Sebagai pengganti Corel InkScape mempunyai fitur yang cukup memadai dan handal. :D

Demikian beberapa software alternatif yang pernah saya pakai, mudah-mudah bermanfaat dan bisa mengurangi angka pembajakan software di muka bumi ini. Jika ingin mencari alternatif untuk sebuah software premium cari saja di Google dengan kata kunci "Nama_software_premium Alternatives". Hampir semua software ada penggantinya kok santai :D jangan putus asa untuk mencari jalan alternatif karena seperti kata pepatah "seribu jalan menuju Roma".