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 , yang sangat terkenal sebagai Bapak Aljabar. Contoh kasus algoritma sederhana Menghitung nilai keliling persegi panjang Algoritmanya seperti berikut . Peroleh nilai panjang dan lebar persegi panjang. . Hitung keliling persegi panjang dengan menggunakan rumus x panjang lebar. . Tampilkan nilai keliling persegi penjang. Adakalanya suatu algoritma disajikan dalam bentuk diagram alir flowchart mulai Panjang lt dan lebar lt Kel lt x panjang lebar Tampilkan keliling selesai Java adalah bahasa pemrograman yang banyak digunakan untuk membangun program, dirilis pertama kali pada tahun 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 mainStringargs int panjang, lebar, keliling System.out.printlnMenghitung keliling persegi panjang Panjang Lebar Keliling x panjang lebar System.out.printlnKelilingkeliling Tipetipe data pada Java Seperti bahasa pemrograman lainnya, Java mempunyai tipe data primitif, yang mana bertipe integerbilangan bulat , bertipe floatingpointbilangan pecahan dan yang terakhir bertipe boolean dan char.Tipe data tersebut antara lain Integer . byte Memiliki nilai integer dari sampai dan menempati byte bits di memori. . short Memiliki nilai integer dari sampai dan menempati bytes bits di memori. . int Memiliki nilai integer dari sampai dan menempati bytes bits di memori. . long Memiliki nilai dari dan menempati bytes 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 . float memiliki nilai .pangkat sampai .pangkat dan menempati byte di memori . double memiliki nilai .pangkat sampai .pangkat . 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 . F atau .f. 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 . 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. . 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. A. Variable dalam Java 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. Adapun tipe primitif meliputi Tipe boolean Tipe numeric Byte, Short, Int, Long, Char, Float, Double Tipe data variabel reference terdiri Tipe class Tipe array Tipe interface B. Konstanta dalam Java Variabel dalam Java bisa dijadikan konstanta, sehingga nilainya tidak akan dapat diubahubah dengan mendeklarasikannya sebagai variabel final seperti ini final int dataInt final char charData u final float x , final byte y C. Penamaan variabel dan scope variabel dalam java 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. Harus unik dalam suatu scope Contoh pendeklarasian variabel yang salah Int k / salah, karena nama variabel diawali dengan angka / Char null / salah, karena nama variabel null / String public / salah, karena public merupakan keyword dalam Java / 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 bit . Short bit Int bit Long bit Char bit .. u uffff Float bit IEEE Double bit IEEE F. Operator Aritmatika Operator penggunaan Deskripsi Op Op Menambahkan Op dengan Op Op Op Mengurangkan Op dengan Op Op Op Mengalikan Op dengan Op / Op Op Membagi Op dengan Op Op Op Menghasilkan sisa hasil bagi antara Op dengan Op Operator Penggunaan Deskripsi Op Op dinaikkan nilainya setelah dilakukan operasi pada Op Op Op dinaikkan nilainya sebelum dilakukan operasi pada Op Op Op diturunkan nilainya setelah dilakukan operasi pada Op Op Op diturunkan nilainya sebelum dilakukan operasi pada Op Op Mengubah nilai Op menjadi negasinya, jika Op positif maka menjadi negatif, jika Op negatif menjadi positif G. Operator relasional Operator relasional digunakan untuk membandingkan antara dua variabel data. Operator Penggunaan Deskripsi gt Op gt Op Menghasilkan true jika Op lebih besar dari Op lt Op lt Op Menghasilkan true jika Op lebih kecil dari Op gt Op gt Op Menghasilkan true jika Op lebih besar atau sama Op lt Op lt Op Menghasilkan true jika Op lebih kecil atau sama dengan Op Op Op Menghasilkan true jika Op sama dengan Op Op Op Menghasilkan true jika Op tidak sama dengan Op H. Operator kondisional Operator kondisional dalam Java ada enam macam Operator Penggunaan Deskripsi ampamp Op ampamp Op Menghasilkan true jika Op dan Op, keduanya bernilai boolean true Op Op Menghasilkan true jika Op atau Op, salah satunya bernilai boolean true Op Menghasilkan true jika Op bernilai boolean true amp Op amp Op Bitwise AND, menghasilkan true jika Op dan Op, bernilai true Op Op Bitwise OR, menghasilkan true jika Op atau Op, salah satunya bernilai boolean true Op Op Menghasilkan true jika salah satu diantara Op atau Op bernilai true, namun tidak keduanya. I. Operator shift Operator shift dalam Java digunakan untuk manipulasi bit. Operator shift digunakan untuk menggeser bitbit sesuai dengan yang diinginkan. Ada tiga operator shift dalam Java, yakni Operator gtgt ltlt gtgtgt Penggunaan Deskripsi Op gtgt Op Menggeser bit Op ke kanan sejauh Op Op ltlt Op Menggeser bit Op ke kiri sejauh Op Op gtgtgt Op Menggeser bit Op ke kanan sejauh Op J. Operator bitwise Operator Penggunaan Deskripsi amp Op amp Op Op Op Op Op Bitwise AND Bitwise OR Bitwise XOR 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 / amp ltlt gtgt Op Op Op Op Op Op Op Op Op Op Op Op Op Op Op Op / Op Op Op / Op Op Op Op Op Op Op amp Op Op Op amp Op Op Op Op Op Op Op Op Op Op Op Op ltlt Op Op Op ltlt Op Op gtgt Op Op Op gtgt Op Op Op gtgtgt Op gtgtgt Op gtgtgt Op L. Operator lain Operatoroperator yang tidak termasuk dalam golongan operatoroperator yang disebutkan diatas adalah operator ini merupakan operator pendek untuk pernyataan if..else. M. Urutan Precedence Operator Operasioperasi yang menggunakan operator dapat melibatkan lebih dari operator dan operand. Postfix operators Unary operators Creation or cast Multiplicative / Additive Shift . params expr expr expr expr expr expr New typeexpr ltltgtgt gtgtgt ltgt lt gt instanceof Relational Equality Bitwise AND amp Bitwise exclusive OR Bitwise exclusive OR Logical AND ampamp Logical OR Conditional Assignment N. Array / amp ltlt gtgt gtgtgt 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 monthdays dengan tipe array of int Int monthdays Seperti dalam deklarasi variabel lainnya, nilai monthdays awalnya diisi dengan nol. Untuk array, ada besaran khusus yang disebut null, yang merepresentasikan array tanpa isi. Untuk mengisi nilainilai 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 integer dalam array yang berkaitan dengan monthdays. monthdays new int Jadi sekarang array monthdays terdiri dari array buah integer. Tanda kurung siku digunakan untuk menunjuk unsurunsur array. Diawali dengan nol, setiap unsur array dapat diakses seakanakan unsur tersebut merupakan tipe yang dideklarasikan ketika array dibuat. Dalam hal ini, setiap unsur array adalah bertipe int. Contoh berikut menghasilkan array jumlah hari dalam satu bulan class arraycara public static void mainString args int monthdays new int monthdays monthdays monthdays monthdays monthdays monthdays monthdays monthdays monthdays monthdays monthdays monthdays System.out.printlnBulan April monthdays hari. Jika program ini dijalankan, akan ditampilkan jumlah hari dibulan April. Array Java dimulai dengan nol, jadi jumlah hari di bulan April adalah monthdays. Selain menginisialiasi array seperti diatas, dapat juga menginisialiasi array dengan cara yang lebih sederhana yaitu dengan auto array class arraycara public static void main String args int montdays , , , , , , , , , , , System.out.printlnBulan April monthdays hari. Program ini menghasilkan keluaran yang sama seperti program sebelumnya. O. Array Multi Dimensi Pada dasarnya tidak ada array multidimensi pada Java, array yang ada adalah array dari array, yang sifatnya mirip dengan array multidimensi, dengan beberapa perbedaan kecil. Array multidimensi 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 buah double, masingmasing diset nol. Secara internal matriks ini diimplementasikan sebagai array dari array double. double matrix new 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. double matriks new double matriks new double matriks new double matriks new double matriks , , , Program berikut menghasilkan matriks double yang diinisialisasi dengan nilai di diagonal xY yang dibuat , dan sisanya dibuat nol. class matriks public static void mainString args double m m m m m System.out.printlnm m m m System.out.printlnm m m m System.out.printlnm m m m System.out.printlnm m m m Jika program dijalankan, akan keluar tampilan seperti ini. Berikut contoh lain dalam penginisialisasi array class AutoMatrix public static void mainString args double m ,,,, ,,,, ,,,, ,,,, System.out.printlnm m m m System.out.printlnm m m m System.out.printlnm m m m System.out.printlnm m m m Program tersebut akan menghasilkan keluaran berikut