Materi Algoritma Dan Dasar Pemrograman Java
Materi Algoritma Dan Dasar Pemrograman Java
Algoritma merupakan langkah detail yang ditujukan untuk komputer guna menyelesaikan satu masalah. Namun algoritma berbeda dengan program, karena algoritma bersifat bebas terhadap bahasa pemrograman. Istilah algoritma berasal dari nama seorang pengarang berkebangsaan Arab bernama Abu Jafar Mohammed ibn Musa al Khowarizmi (tahun 790-840), yang sangat terkenal sebagai Bapak Aljabar. Contoh kasus algoritma sederhana: Menghitung nilai keliling persegi panjang Algoritmanya seperti berikut: 1. Peroleh nilai panjang dan lebar persegi panjang. 2. Hitung keliling persegi panjang dengan menggunakan rumus 2 x (panjang + lebar). 3. Tampilkan nilai keliling persegi penjang. Adakalanya suatu algoritma disajikan dalam bentuk diagram alir (flowchart):
mulai
Tampilkan keliling
selesai
Java adalah bahasa pemrograman yang banyak digunakan untuk membangun program, dirilis pertama kali pada tahun 1955 oleh Sun Microsystems. Penciptanya adalah James Gosling. Java berorientasi objek (OOP) yang mana maksuknya adalah suatu pendekatan yang memungkinkan suatu kode yang digunakan untuk menyusun program menjadi lebih mudah untuk digunakan kembali, lebih handal, lebih mudah dipahami. Sebuah contoh program java sederhana cari contoh algoritma di atas:
//Berkas: KelilingPersegiPanjang.java Class KelilingPersegiPanjang{ public static void main(String[]args) { int panjang, lebar, keliling; System.out.println(Menghitung keliling persegi panjang); Panjang=10; Lebar=5; Keliling=2 x (panjang + lebar); System.out.println(Keliling=+keliling);
Tipe-tipe data pada Java: Seperti bahasa pemrograman lainnya, Java mempunyai 8 tipe data primitif, yang mana 4 bertipe integer(bilangan bulat) , 2 bertipe floating-point(bilangan pecahan) dan yang 2 terakhir bertipe boolean dan char.Tipe data tersebut antara lain : Integer 1. byte : Memiliki nilai integer dari -128 sampai +127 dan menempati 1 byte ( 8 bits ) di memori. 2. short : Memiliki nilai integer dari -32768 sampai 32767 dan menempati 2 bytes ( 16 bits ) di memori. 3. int : Memiliki nilai integer dari -2147483648 sampai 2147483647 dan menempati 4 bytes ( 32 bits ) di memori.
4. long : Memiliki nilai dari -9223372036854775808 9223372036854775807 dan menempati 8 bytes ( 64 bits ) di memori.
sampai
Bilangan integer biasanya menggunakan int, dan bukan byte,short maupun long. Bilangan integer juga mengenal nilai positif dan negatif ( signed number ). Tipe data byte dan short hanya digunakanpada aplikasi khusus yang memperhatikan penggunaan memori. Sedangkan long jarang digunakan karena jarang memerlukan bilangan sebesar kapasitas long. Floating Point 1. float : memiliki nilai -3.410(pangkat 8) sampai +3.410(pangkat 8) dan menempati 4 byte di memori 2. double : memiliki nilai -1.710(pangkat 308) sampai +1.710(pangkat 308).
Semua bilangan pecahan atau desimal dalam Java tanpa diakhiri huruf f akan dianggap sebagai double. Sedangkan bilangan yang ingin dikategorikan sebagai float harus diakhiri dengan huruf F. Misalnya : 4.22 F atau 2.314f. Sedangkan untuk bilangan double, bisa menambah dengan huruf D, karena secara default bilangan dengan koma atau pecahan atau desimal akan dianggap sebagai double Boolean Dan Char 1. boolean : Dalam Java dikenal tipe data boolean yang terdiri dari dua nilai saja, yaitu true dan false. Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk menentukan alur program. 2. char : Char adalah karakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan tanda ( petik tunggal ). Char berbeda dengan String, karena String bukan merupakan tipe data primitif, tetapi sudah merupakan sebuah objek.
Variable merupakan container yang digunakan untuk menyimpan suatu nilai pada sebuah program dengan tipe tertentu. Pada dasarnya ada dua macam tipe variabel data dalam bahasa Java, yakni tipe primitif dan tipe reference.
Tipe boolean
Tipe class
Tipe array
Tipe interface
Variabel dalam Java bisa dijadikan konstanta, sehingga nilainya tidak akan dapat diubah-ubah dengan mendeklarasikannya sebagai variabel final seperti ini:
final byte y = 2;
C.
Harus terdiri atas sedereten karakter unicode yang diawali oleh karekter huruf atau garis bawah. Unicode merupakan sistem pengkodean karekter yang dapat dibaca oleh
berbagai bahasa manusia (Jepang, Yunani, Cyrillic, dan Hebrew). ASCII hanya terbatas pada karkter latin.
Tidak boleh berupa keyword (kata yang dicadangkan), null, atau literatur true/false.
Int 8k;
Char null;
String public;
D. Tipe Boolean
Dalam Java, setiap variabel yang bertipe boolean hanya akan memiliki nilai true atau false.
E.
Tipe Numerik
Adapun tipe numerik dalam Java ada tujuh macam seperti yang telah dijelaskan sebelumnya yakni
Nama Type
Ukuran
Range nilai
Byte
8 bit
-128 . 127
Operator
penggunaan
Deskripsi
+ Op1 + Op2
Op1 Op2
Op1 + Op2
Op1 + Op2
Op1 + Op2
Operator
Penggunaan
Deskripsi
++
Op++
++
++Op
Op
Op
-Op
Mengubah nilai Op menjadi negasinya, jika Op positif maka menjadi negatif, jika Op negatif menjadi positif
G. Operator relasional
Operator
Penggunaan
Deskripsi
>
<
>=
<=
Menghasilkan true jika Op1 lebih kecil atau sama dengan Op2
==
Op1 == Op2
!=
Op1 != Op2
H. Operator kondisional
Operator
Penggunaan
Deskripsi
&&
Menghasilkan true jika Op1 dan Op2, keduanya bernilai boolean true
||
Op1 || Op2
Menghasilkan true jika Op1 atau Op2, salah satunya bernilai boolean true
!Op1
&
Bitwise AND, menghasilkan true jika Op1 dan Op2, bernilai true
Op1 | Op2
Bitwise OR, menghasilkan true jika Op1 atau Op2, salah satunya bernilai boolean true
Op1 ^ Op2
Menghasilkan true jika salah satu diantara Op1 atau Op2 bernilai true, namun tidak keduanya.
I. Operator shift
Operator shift dalam Java digunakan untuk manipulasi bit. Operator shift digunakan untuk menggeser bit-bit sesuai dengan yang diinginkan. Ada tiga operator shift dalam Java, yakni:
Penggunaan
Deskripsi
Op1 >> Op2 Menggeser bit Op1 ke kanan sejauh Op2 Op1 << Op2 Menggeser bit Op1 ke kiri sejauh Op2 Op1 >>> Op2 Menggeser bit Op1 ke kanan sejauh Op2
J. Operator bitwise
Operator
Penggunaan
Deskripsi
& | ^
~Op
Bitwise Complement
K. Operator assignment
Operator asignment dalam Java digunakan untuk memberikan sebuah nilai ke sebuah variabel. Operator asignment hanya berupa =, namun selain itu dalam Java dikenal beberapa shortcut asignment operator yang penting, yang digambarkan dalam tabel berikut:
Operator
Penggunaan
Ekivalen dengan
Op1 += Op2 Op1 = Op1 + Op2 Op1 -= Op2 Op1 = Op1 Op2
Op1 *= Op2 Op1 = Op1 * Op2 Op1 /= Op2 Op1 = Op1 / Op2
Op1 %= Op2 Op1 = Op1 % Op2 Op1 &= Op2 Op1 = Op1 & Op2 Op1 != Op2 Op1 ^= Op2 Op1 = Op1 ! Op2 Op1 = Op1 ^ Op2
Op1 <<= Op2 Op1 = Op1 << Op2 Op1 >>= Op2 Op1 = Op1 >> Op2 Op1 = Op1 >>> Op2
Operator-operator yang tidak termasuk dalam golongan operator-operator yang disebutkan diatas adalah :
Operasi-operasi yang menggunakan operator dapat melibatkan lebih dari 1 operator dan 1 operand.
Relational Equality
Bitwise AND & Bitwise exclusive OR ^ Bitwise exclusive OR | Logical AND && Logical OR ||
Array merupakan tipe khusus yang menyatukan sekelompok variabel dengan tipe yang sama. Tipe array bersifat ortogonal terhadap sistem tipe. Maksudnya, array dapat dideklarasikan menjadi array dari beberapa integer dengan menciptakan tipe baru, yaitu array of int. Tipe ini berbeda dengan array of double, sebagai contoh. Tanda kurung siku [ ] digunakan untuk mendeklarasikan tipe array.
Contoh yang menunjukkan deklarasi variabel month_days dengan tipe array of int:
Int month_days[];
Seperti dalam deklarasi variabel lainnya, nilai month_days awalnya diisi dengan nol. Untuk array, ada besaran khusus yang disebut null, yang merepresentasikan array tanpa isi.
Untuk mengisi nilai-nilai array tersebut dapat menggunakan operator khusus new, new digunakan untuk mengalokasikan ruang array. Untuk menggunakan operator new, harus menyediakan sebuah tipe dan bilangan integer positif untuk menyatakan alokasinya. Contoh ini mengalokasikan 12 integer dalam array yang berkaitan dengan month_days.
Jadi sekarang array month_days terdiri dari array 12 buah integer. Tanda kurung siku digunakan untuk menunjuk unsur-unsur array. Diawali dengan nol, setiap unsur array dapat diakses seakan-akan unsur tersebut merupakan tipe yang dideklarasikan ketika array dibuat. Dalam hal ini, setiap unsur array adalah bertipe int.
class array_cara1 {
Jika program ini dijalankan, akan ditampilkan jumlah hari dibulan April. Array Java dimulai dengan nol, jadi jumlah hari di bulan April adalah month_days[3].
Selain menginisialiasi array seperti diatas, dapat juga menginisialiasi array dengan cara yang lebih sederhana yaitu dengan auto array :
class array_cara2 {
int mont_days = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31};
Pada dasarnya tidak ada array multi-dimensi pada Java, array yang ada adalah array dari array, yang sifatnya mirip dengan array multi-dimensi, dengan beberapa perbedaan kecil. Array multi-dimensi biasanya dialokasikan dalam blok. Jika ada matriks XYZ tiga dimensi, maka kapasitas yang diperlukan adalah X kali Y kali Z ukuran tipe yang disimpan pada tiap sel. Pada Java, dapat dideklarasikan variabel sebagai tiga dimensi, tetapi dengan mengabaikan dimensi kedua dan ketiga, lalu mengalokasikan Y dan Z secara terpisah.
Program berikut menghasilkan matriks tradisional 16 buah double, masing-masing diset nol. Secara internal matriks ini diimplementasikan sebagai array dari array double.
Program ini menginisialisasi jumlah memori yang sama, hanya di sini kita melakukan lebih banyak kerja untuk menunjukkan bagaimana dimensi yang berbeda ternyata hanya bersusun (nested array) array.
matriks[3] = { 0, 1, 2, 3 } ;
Program berikut menghasilkan matriks double 44 yang diinisialisasi dengan nilai di diagonal (x==Y) yang dibuat 1, dan sisanya dibuat nol.
class matriks {
double m[][];
m[0][0] = 1 ;
m[1][1] = 1 ;
m[2][2] = 1 ;
m[3][3] = 1 ;
1000
0100
0010
0001
class AutoMatrix {
double m[][] = {
};
0000
0123
0246
0369