PERTEMUAN I PENGENALAN JAVA TUJUAN PRAKTIKUM 1. Praktikan mengetahui sejarah perkembangan bahasa pemrograman Java. 2. Praktikan mengetahui fitur-fitur penting yang terdapat pada Java. 3. Praktikan mengerti konsep dan struktur bahasa pemrograman Java. 4. Praktikan mengerti konsep variabel, tipe data, dan operator pada Java. 5. Praktikan dapat membuat program sederhana dengan menggunakan bahasa pemrograman Java. 1.1 Sejarah Singkat Java Pada tahun 1991, sekelompok insinyur SUN yang dipimpin Patrick Naughton dan James Gosling ingin merancang bahasa komputer untuk perangkat consumer seperti cable Tv box. Karena perangkat itu tidak mempunyai banyak memori, bahasa harus berukuran kecil dan menghasilkan kode yang liat, maka bahasa harus bebas dari arsitektur manapun. Proyek ini diberi nama kode Green. Kebutuhan kecil, liat dan kode netral terhadap platform mengantar tim mempelajari implementasi Pascal yang pernah dicoba. Niklaus Wirth, pencipta bahasa Pascal telah merancang bahasa portable yang menghasilkan kode antara untuk mesin hipotesis. Karena orang-orang di proyek Green berbasis C++ bukan pascal maka kebanyakan sintaks di ambil dari C++, serta mengadopsi orientasi objek bukan procedural. Produk pertama proyek Green adalah “*7”, sebuah kendali jauh yang sangat cerdas. Pada tahun 1995, Netscape memutuskan membuat browser yang dilengkapi dengan Java. Setelah itu diikuti IBM, Symantec, Inspire, bahkan Microsoft. Bahasa Java merupakan karya Sun Microsystem Inc. Rilis resmi dilakukan pada Nopember 1995. Maskot Java adalah Duke. Dua bulan berikutnya Netscape menjadi perusahaan pertama yang memperoleh lisensi bahasa Java dari Sun. Pada tahun 1996, Sun mengeluarkan JSDK (Java Software Development Kit), kemudian secara berturut-turut: Lab. Teknik Informatika - FTI Universitas Gunadarma 1 Versi 1.02 Versi 1.1 Versi 1.2 Versi 1.3 Versi 1.4 Java telah berkembang dari semula ditujukan untuk pemrograman applet yang berjalan di web browser menjadi bahasa pemrograman kelas duni a untuk pengembangan aneka ragam aplikasi komputer yang berjalan di bermacam-macam perangkat mulai dari handheld devices seperti, handphone, PDA (Personal Digital Assistant) sampai aplikasi tersebar skala enterprise di beragam komputer server. Java adalah bahasa berorientasi objek yang dapat digunakan untuk pengembangan aplikasi mandiri, aplikasi berbasis internet maupun intranet, serta aplikasi untuk perangkatperangkat cerdas yang dapat berkomunikasi lewat internet atau jaringan komunikasi. 1.2 Pengenalan Java Dalam Java ada 2 jenis program berbeda, yaitu aplikasi dan applet. Keduanya merupakan bagian dari execute, dimana execute merupakan salah satu fase kelima dalam siklus program Java. Aplikasi adalah program yang biasanya disimpan dan di eksekusi dari komputer lokal. Applet adalah program yang biasanya disimpan pada komputer yang jauh,yang dikoneksikan pemakai lewat web browser. Komputer jauh menjalankan web server yang memberi layanan terhadap permintaan web browser. Kebanyakan bahasa pemrograman modern berdiri di atas pustaka-pustaka kelas yang telah ada untuk mendukung fungsionalitas bahasanya. Pada bahasa Java, kelompok-kelompok kelas yang berkaitan erat dimasukkan dalam satu paket, bervariasi sesuai edisi Java. Java adalah bahasa yang dapat dijalankan dimanapun dan di sembarang platform apapun, di beragam lingkungan: Internet, intranets, consumer electronic products, dan computer applications. Untuk beragam aplikasi yang dibuat dengan bahasa Java, Java dipaketkan dalam edisi-edisi berikut: 1. Java 2 Standar Edition (J2SE), J2SE menyediakan lingkungan pengembangan yang kaya fitur, stabil, aman, dan cross-platform. Edisi ini mendukung konektivitas basis data, rancangan user interface, masukkan/ keluaran (input/ output), dan pemrograman jaringan (network programming), dan termasuk sebagai paket-paket dasar bahasa Java. Lab. Teknik Informatika - FTI Universitas Gunadarma 2 2. Java 2 Enterpise Edition (J2EE), J2EE menyediakan tempat untuk membangun dan menjalankan multitier enterprise editions. J2EE berisi paketpaket di J2SE ditambah paket-paket untuk mendukung pengembangan Enterprise JavaBeans, Java Servlets, JavaServer Pages, XML, dan kendali transaksi yang fleksibel. 3. Java 2 Micro Edition (J2ME), J2ME selain menyedikan bahasa Java yang sama, unggul dalam portabilitas (kemampuan dapat dijalankan dimanapun), safe network delivery, seperti J2SE dan J2EE. Aplikasi-aplikasi dapat diskalakan (dimampukan) agar dapat bekerja dengan J2SE dan J2EE. J2ME adalah untuk beragam consumer electronic product, seperti pager, smart card, cell phone, handheld PDA, dan set-top box. Ada 3 kombinasi kunci yang membuat Java menjadi teknologi yang secara fundamental berbeda dari yang lain, yang ada saat ini. Pertama, semua orang dapat menggunakan applet yang kecil, aman, dinamik, lintas-platform, aktif, dan siap dijalankan di jaringan sejak awal. Kedua, Java adalah bahasa pemrograman yang ampuh, memiliki kekuatan desain berorientasi objek dengan sintaks yang sederhana dan mudah dikenal. Ketiga, Java adalah kumpulan class object yang ampuh, yang melayani programmer dengan uraian yang jelas untuk banyak fungsi sistem umum, seperti pembuatan window, penggunaan jaringan, dan input/ output. Beberapa Fitur-fitur Penting Dalam Bahasa Java Bahasa sederhana Java dirancang untuk mudah dipelajari dan digunakan dengan secara efektif. Java tidak mendukung fitur-fitur rumit seperti: 1. Explicit pointer manipulation 2. Implicit type casting 3. Structures atau union 4. Operator overloading 5. Templates 6. Header files 7. Multiple inheritance Rancangan bahasa Java telah berdasar teknologi yang telah terbukti dan dikembangkan di bahasa-bahasa pemrograman lainnya. Lab. Teknik Informatika - FTI Universitas Gunadarma 3 Bahasa berororientasi objek Java bukan turunan langsung dari bahasa pemrograman manapun, juga sama sekali tidak kompatibel dengan semuanya. Model objek Java adalah sederhana dan mudah dikembangkan, namun sejalan dengan itu, nilangan dan tipe data sederhana lain dianggap sebagai non-objek berkinerja tinggi. OOP (object oriented programming) adalah cara ampuh dalam pengorganisasian dan pengembangan perangkat lunak. Pada OOP, program komputer sebagai sekelompok objek yang saling berinteraksi. Objek-objek ini ada secara secara independent yang mempunyai aturan-aturan berkomunikasi dengan objek lain dan untuk memerinthakan objek lain guna meminta informasi tertentu atau meminta objek lain mengerjakan sesuatu. Bahasa statically typed Semua objek dideklarasikan terlebih dahulu sebelum digunakan. Melalui fitur ini kode program lebih dapat dioptmasi untuk menghasilkan program berkinerja tinggi. Bahasa dikompilasi Sebelum menjalankan program di bahasa Java, program dikompilasi menggunakan Java Compiler. Kompilais akan menghasilkan file “bytecode” yang serupa fungsinya dengan file kode mesin. Program “bytecode” yang dihasilkan dapat di eksekusi di sembarang Java Interpreter. Java Interpreter membaca file “bytecode” dan menterjemahkan perintah “bytecode” menjadi perintah-perintah bahasa mesin yang dapat di eksekusi mesin. Bahasa yang aman Java menggunakan model pengamanan 3 lapis untuk melindungi sistem dari Untrusted Java Code. 1. Bytecode verifier membaca bytecode sebelum dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar bahasa Java 2. Class loader menangani pemuatan kelas Java ke runtime interpreter. 3. Manajer keamanan menangani keamanan tingkat aplikasi dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem file, port jaringan, proses eksternal dan sistem windowing. Selain itu Java menyediakan beragam teknik pengaman, yaitu: Lab. Teknik Informatika - FTI Universitas Gunadarma 4 1. Bahasa dirancang untuk mempersulit eksekusi kode perusak 2. Program Java dikompilasi menajdi serangkaian bytecode. 3. Java mempunyai pengamanan terhadap applet. Bahasa indpenden terhadap platform Platform independence merupakan kemampuan program bekerja di sistem operasi atau sistem komputer berbeda. Bahasa Java adalah bahasa yang secara sempurna tidak bergantung platform. Bahasa multithreading Thread adalah menyatakan program komputer melakukan lebih dari satu tugas di satu waktu yang sama. Java menyediakan kakas untuk menulis program multithread, program mempunyai lebih dari 1 thread eksekusi pada saat yang sama sehingga memungkinkan program menagani beberapa tugas secara konkuren. Bahasa yang didukung garbage collector Artinya, program tidak perlu menghapus sendiri objek-objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori oleh pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang terdapat di bahasa yang memungkinkanalokasi dinamis. Bahasa yang tegar Java interpreter memeriksa semua akses sistem yang dilakukan. Program java tidak dapat menyebabkan crash terhadap sistem. Java mempunyai mekanisme exception handling yang ampuh. Exception-handling menyediakan cara untuk memisahkan antara bagian penanganan kesalahan dengan bagian kode normal sehingga menuntun ke struktur kode program yang lebih bersih dan menjadikan aplikasi lebih tegar. 1.2.1 Token Dalam Java ada yang dikenal dengan istilah token. Token merupakan elemen terkecil di program yang mempunyai arti bagi kompilator. Kompilator bertugas membaca karakter-karakter di kode sumber dan menerapkan aturan-aturan secara progresif menjadi potongan lebih besar seperti identifier, ekspresi, kalimat, dan kelas. Token Java dibagi 5, yaitu: a. Identifier Lab. Teknik Informatika - FTI Universitas Gunadarma 5 b. Keyword c. Literal d. Operator e. Separator a. Identifier Identifier adalah token yang merepresentasikan nama. Dalam Java, identifier adalah nama yang diberikan untuk variable, konstanta, class, atau method. Identifier boleh dimulai dengan huruf, underscore (_) atau tanda dollar ($). Identifier adalah case sensitive (membedakan huruf besar/ kecil) dan tidak ada batas maksimum. Contoh : username user_name sys_var1 $change b. Keyword Keyword (kata kunci) adalah identifier yang digunakan dalam Java untk suatu tujuan khusus. Daftar keyword Java sebagai berikut: abstract, Boolean, Break, Byte, byvalue, Case, Catch, Char, Class, Const, continue, default, Do, double, else, extends, false, final, finally, float, for, goto, if, implements, import, instanceof, In, Interface, Long, Native, New, Null, Package, private, protected, public, return, short, static, Super, Switch, synchronized, This, threadsafe, throwm Transient, True, Try, Void, while. c. Literal Penulisan besaran untuk variabel adalah penting, literal Java terdiri dari angka, karakter, dan string. Angka terdiri dari bilangan bulat (integer), bilangan mengambang (floating point), dan boolean. Nilai boolean untuk true dan false direpresentasikan sebagai 1 dan 0. Karakter selalu mengacu ke karakter Unicode. String berisi rangkaian karakter. String literal merepresentasikan banyak karakter dan muncul di dalam pasangan tanda petik ganda (”...”). Literal karakter direpresentasikan satu karakter Unicode tunggal dan muncul di pasangan tanda petik tunggal (’...’). Serupa C/C++, karakter khusus (seperti karakter kendali dan karakter yang tidak dapat dicetak) direpresentasikan dengan backslash (\) diikuti kode karakter. Lab. Teknik Informatika - FTI Universitas Gunadarma 6 Literal \b \t \n \f \r \” \’ \\ Keterangan backspace tab horizontal ganti baris formfeed carriage return tanda-petik ganda tanda-petik tunggal backslash d. Operator Operator menspesifikasikan evaluasi atau komputasi terhadap objek. Operan yang dioperasikan dapat berupa literal, variabel, atau nilai yang dikirim oleh metode atau fungsi. e. Separator (Pemisah) Separator digunakan untuk menginformasikan ke komplator Java mengenai adanya pengelompokkan di kode program. Berikut daftar separator yang digunakan dalam Java: Tabel 1.1 Separator Simbol Nama Penggunaan () Kurung Untuk menghimpun parameter dalam definisi dan pemanggilan method, juga digunakan untuk menyatakan tingkat pernyataan, menghimpun pernyataan, untuk pengaturan alur program, dan untuk menyatakan tipe cast (cast types) {} Kurung kurawal Untuk menghimpun nilai yang otomatis dimasukkan ke dalam array, digunakan juga untuk mendefinisikan blok program, untuk cakupan class, method, dan lokal. [] Kurung siku Untuk menyatakan tipe array dan untuk membedakan nilai array. ; Titik koma , Koma Pemisah pernyataan. Pemisah urutan identifier dalam deklarasi variabel dan untuk . Titik Untuk memisahkan nama paket dari sub-paket dan class dan untuk memisahkan variabel atau method dari variabel referensi. Lab. Teknik Informatika - FTI Universitas Gunadarma 7 1.2.2 Struktur Program Java Penulisan program Java dapat dilakukan pada semua teks editor yang paling disukai baik itu editor handal semacam eclipse dan netbeans ataupun editor simpel seperti editplus, dan crimson. Dalam pembuatan program java yang harus diperhatikan dalam pembuatan program java adalah penulisan huruf besar dan kecil karena java memiliki sifat Case Sensitive. Berikut adalah bentuk umum dari penulisan program Java: Pertama dalam program Java minimal terdapat sebuah class, dimana nama dari class tersebut diusahakan sama dengan nama file Java (arti dari class akan dijelaskan pada pertemuan selanjutnya), dan setiap class harus dibuka dengan tanda ‘{‘ dan ditutup dengan tanda ‘}’. Contoh: class bow{ (isi dari class) } Selanjutnya faktor utama lainnya yang wajib dimiliki dari sebuah program Java adalah harus memilik sebuah fungsi utama main(). Fungsi dari main() adalah dijadikan sebagai awal pengeksekusian aplikasi Java, kode (code) yang terdapat pada metode inilah yang akan dieksekusi pertama kali. Contoh: class bow{ public static void main(String[] args) { (tulis code/ program disini) } } Metode main () didefinisikan sebagai public static void, berikut penjelasannya public, berarti metode ini dapat dipanggil dari luar class static, menunjukkan metode ini bersifat sama untuk semua class void, berarti metode ini tidak mengembalikan nilai. Argument args [] adalah array objek string argument baris-baris perintah yang dilewatkan ke kelas yang di eksekusi. Didalam penulisan program Java kita dapat membuat sebuah komentar, ada dua jenis tipe komentar pada Java, yang pertama menggunakan pasangan simbol /* dan */. Semua tulisan yang berada dalam tanda tersebut akan diperlakukan sebagai komentar. Yang kedua menggunakan awalan simbol ‘//’, jadi semua tulisan sesudah tanda ini dan berada pada baris yang sama dianggap komentar. Lab. Teknik Informatika - FTI Universitas Gunadarma 8 1.2.3 Program Java Sederhana Contoh: // nama file : Hello.java class Hello { public static void main(String[] args) { System.out.println("Hello, World!"); } } Pembahasan ringkas: Kata kunci public disebut access modifier yang mengendalikan ketampakkan terhadap bagian-bagian program yang lain dalam menggunakan kode ini. Kata kunci class, segala sesuatu di program Java adalah berada di dalam suatu kelas. Berkenaan dengan contoh program sederhana diatas, nama class-nya adalah Hello. Setelah kata kunci class adalah nama kelasnya. Nama kelas harus dimulai dengan huruf, setelah itu boleh kombinasi huruf dan angka. Dalam penamaan kelas tidak boleh menggunakan kata yang dicadangkan (reserved word yang kebanyakan merupakan kata kunci). Konvensi untuk penamaan kelas adalah kata benda dimulai dengan huruf capital (besar) di awal kata yang berarti. Class tersebut memiliki fungsi main() dengan parameter variabel args dengan tipe array dari String. Fungsi main ini yang akan mengeksekusi statement System.out.println (“Hello World!”); untuk menampilkan kata Hello World! ke console. Pasangan kurung kurawal merupakan awal dan akhir badan dari metode. Di Java tiap kalimat harus diakhiri dengan titik koma (; semicolon ). Ekspresi diatas memanggil fungsi atau metode println() di objek out yang berada di objek System. Objek out merupakan standar output. Sementara kelas System adalah kelas yang melindungi atau mengkapsulkan seluruh fungsionalitas sistem. 1.3 Variabel, Tipe Data, Dan Operator 1.3.1 Variabel Variabel digunakan dalam program untuk menyimpan suatu nilai, dan nilai tersebut dapat diubah selama eksekusi program. Sedangkan konstanta menyatakan nilai yang tidak berubah pada saat eksekusi, misalnya konstanta pi dalam program Lab. Teknik Informatika - FTI Universitas Gunadarma 9 matematika. Di Java setiap variabel memiliki sebuah tipe data, Untuk membuat sebuah variabel, pertama kita tempatkan tipe dari variabel itu dan diikuti oleh nama dari variabel yang akan dibuat. contohnya: double gaji; int hariKerja; long jumlahPenduduk; char c; boolean udah; Setiap pendeklarasian sebuah variabel harus diakhiri dengan sebuah semicolon ‘;’. Semicolon dibutuhkan karena pendeklarasian sebuah variabel adalah sebuah statement di Java. Berikut ini aturan-aturan dalam membuat variabel pada Java : • Case sensitive, huruf kecil dan kapital berbeda. Contoh: alamat, Alamat, dan ALAMAT menyatakan tiga variabel yang berbeda. • Nama dari sebuah variabel harus dimulai dengan sebuah huruf dan selanjutnya dapat diikuti dengan huruf atau angka. • Huruf yang bisa digunakan adalah dari 'A'-'Z', 'a'-'z', angka dari 0-9 dan juga simbol '_' dan ‘$’ , Untuk simbol lain dan spasi tidak dapat digunakan. • Dalam penamaan variabel juga tidak diperkenankan menggunakan reserved word atau keyword dari Java. • Panjang variabel tidak dibatasi. Dalam pendeklarasian variabel kita juga bisa menyatukan dua variabel dalam pendeklarasiannya Contoh : int i, j; long y,x; char a,b; Sebuah variabel dapat diberikan nilai awal setelah atau pada saat dideklarasikan contoh : int nilai; nilai=10; atau int nilai=10; Sebuah variabel dapat juga bertukar nilai atau saling memberi dengan variabel lainnya contoh : int nilai1=10; int nilai2; nilai2=nilai1; Lab. Teknik Informatika - FTI Universitas Gunadarma 10 1.3.2 Tipe Data Tipe data mendefinisikan metode penyimpanan untuk mereperesentasikan informasi dan cara informasi diinterprentasikan. Tipe data berkaitan erat dengan penyimpanan variabel di memori karena tipe data variabel menentukan cara kompilator menginterpretasikan isi memori. Tipe data dalam Java dibagi 2 kategori: 1. Sederhana, Tipe data sederhana merupakan tipe inti. Tipe sederhana ini tidak diturunkan dari tipe lain. Tipe ini sering disebut juga dengan tipe primitive. Terdapat 8 tipe-tipe sederhana dan dipisahkan dalam 4 kelompok: α. Empat tipe adalah untuk bilangan bulat (integer) bertanda: byte, short, int, dan long. β. Dua untuk tipe angka titik mengambang (floating point) atau bilangan pecahan: float dan double. χ. Satu untuk tipe karakter yaitu char, mewakili simbol pada himpunan karakter seperti tulisan dan angka. δ. Satu untuk tipe Boolean, merupakan tipe khusus untuk menunjukkan besaran logika (nilai-nilai logika). 2. Komposit, Tipe data komposit disusun dari tipe data sederhana atau tipe komposit lain yang telah ada. Tipe ini antara lain: string, array, class, dan interface. 1.3.2.1 Byte byte adalah tipe 8-bit bertanda. Sebaiknya digunakan jika kita menangani aliran-aliran byte asing dari network atau file. Variabel byte dideklarasikan dengan kata kunci byte. Contohnya, dibawah ini adalah deklarasi 2 variabel byte yang diberi nama b dan c. Variabel c dinisialisasi dengan nilai 0x55. byte b; byte c = 0x55; 1.3.2.2 Short short adalah tipe 16-bit bertanda. Tipe ini mungkin merupakan tipe yang paling jarang digunakan karena bersifat big-endian (pengurutan byte), format data bitatas di depan, sehingga tidak mungkin diolah pada mesin-mesin little-endian seperti PC (Personal Computer). Saat ini, komputer 16-bit umum digunakan dalam industri video-game, dalam hal ini kita tidak banyak berurusan dengan besaran-besaran Lab. Teknik Informatika - FTI Universitas Gunadarma 11 variabel short. Berikut beberapa contoh deklarasi variabel short: short s; short t = 0x55aa; 1.3.2.3 Integer Integer adalah tipe yang paling banyak digunakan pada program. Program Java terdapat 5 integer, yaitu: Tabel 1.2 Tipe Integer Tipe Ukuran Range byte 8 bit -128 s/d 127 short 16 bit -32768 s/d 32767 int 32 bit -2147483648 s/d 2147483647 long 64 bit -9223372036854775808 s/d 9223372036854775807 char 16 bit 0 s/d 65535 Tipe Char dapat dipandang sebagai bilangan bulat yang mengkodekan karakter Unicode. Pada kebanyakan situasi tipe int paling banyak digunakan. Untuk bilangan besar, maka digunakan tipe long. Tipe byte dan short terutama digunakan untuk aplikasi khusus seperti penanganan file level rendah atau array besar yang disimpan tempat kecil. int adalah tipe 32-bit bertanda. Tipe ini paling banyak digunakan untuk menyimpan besaran integer sederhana, karena nilainya dapat mencapai triliyunan. int sangat baik digunakan untuk pertambahan array dan pencacahan. Contoh deklarasi variabel int: int i; int j = 0x55aa0000; 1.3.2.4 Long long adalah tipe 64-bit bertanda. Ada beberapa kasus dimana int tidak cukup besar untuk menampung nilai yang diinginkan. Ketika menghitung pernyataan integer dengan bilangan yang cukup besar, operasi perkalian dapat menghasilkan bilangan ribuan triliyun. Dalam kasus seperti ini, kita membutuhkan tipe long. Berikut contoh deklarasi variabel long: long m; long n = 0x55aa000055aa0000; Jalannya program Java bebas menggunakan ukuran berapapun untuk variabel yang diperlukan selama tipe bersifat seperti yang didefinisikan. Lab. Teknik Informatika - FTI Universitas Gunadarma 12 1.3.2.5 Karakter (Char) Pada Java, tipe integer terkecil adalah byte yang menyimpan besaran 8-bit yang biasa ditemukan pada variabel char di pemrograman C dan C++. Karena Java menggunakan Unicode untuk merepesentasikan karakter pada string, maka tipe char menjadi 16-bit tidak bertanda dan digunakan untuk menyimpan puluhan ribu karakter dari kumpulan karakter Unicode international. Tidak ada char negatif. Kumpulan karakter standar yang dikenal sebagai ASCII hanya meliputi rentang nilai dari 0 sampai 127 dan memiliki pengembangan kumpulan karakter 8-bit, ISO-Latin-1 dari 0 sampai 255. Pertama kali memang terlihat sebagai pemborosan menggunakan sampai 16bit untuk tiap karakter, karena kita telah terbiasa menggunakan huruf A sampai Z dan beberapa karakter ASCII lainnya. Tetapi untuk jangka panjang, program-program aplikasi akan lebih dihargai diluar negara berbahasa Inggris karena kemampuan ini. Unicode merupakan penyatuan lusinan kumpulan karakter termasuk Latin, Yunani, Arab, Cyrillic (Rusia), Hebrew (Israel), Katakana (Jepang), Hangul (Korea), dan lainlain. Informasi lebih lengkap tentang Unicode daapt dilihat di http://www.unicode.org dan http://www.stonehead.com/unicode.html. Berikut beberapa contoh deklarasi variabel char: char c; char c2 = 0xf132; char c3 = ‘a’; char c4 = ‘\n’; Meskipun char tidak digunakan sebagai integer, kita dapat mengoperasikannya sebagai integer. Berikut contoh yang kita mulai dari karakter awal dan menambahkan integer yang merepresentasikan digit yang kita inginkan: int three = 3; char one = ‘1’; char four = (char) (three + one); Variabel four akhirnya berisi karakter ‘4’. Perhatikan bahwa one pada pernyataan tersebut dinaikkan menjadi int, sehingga dibutuhkan cast untuk mengembalikan besaran menjadi char sebelum dimasukkan ke dalam four. 1.3.2.6 Floating-Point Bilangan pecahan (floating-point) atau lebih dikenal sebagai bilangan riil pada bahasa pemrograman lain, digunakan pada fungsi perhitungan yang membutuhkan ketelitian pecahan. Contoh penggunaaanya seperti perhitungan yang rumit, yaitu akar Lab. Teknik Informatika - FTI Universitas Gunadarma 13 kuadrat atau fungsi transendental seperti mengimplementasikan standar himpunan sinus dan cosinus. Java tipe (IEEE-754) dan operator bilangan pecahan. Terdapat 2 tipe floating point, yaitu: Tabel 1.3 Tipe Floating Point Tipe Ukuran Range float 32 bit 3.4E-038 s/d 3.4E+038 double 64 bit 1.7E-308 s/d 1.7E+308 Float Dispesifikasikan dengan kata kunci float, menggunakan 32-bit untuk menyimpan nilai. Ketelitian tunggal diolah lebih cepat pada sejumlah prosesor dan hanya mengambil ruang setengahnya, tetapi akan mulai tidak teliti jika nilai yang diolah terlalu besar atau terlalu kecil. Perhitungan sederhana yang membutuhkan hanya sedikit ketelitian pecahan, misalkan perhitungan total suatu besaran, dimana kita hanya membutuhkan ketelitian sepersepuluh, dapat direperesentasikan dengan tepat, yaitu dengan float. Berikut contoh deklarasi variabel float: float f; float f2 = 3.14f; Double Dinyatakan dengan kata kunci double, menggunakan 64-bit untuk menyimpan nilai. Semua fungsi matematis transcendental, seperti sin, cos, dan sqrt, menghasilkan besaran double. Jika kita ingin menjaga ketelitian sampai banyak perulangan perhitungan atau mengolah bilangan besar, double adalah pilihan terbaik. Berikut contoh deklarasi variabel double: double d; double pi = 3.14159365358979323846; 1.3.2.7 Boolean Java memiliki tipe data sederhana untuk besaran logika yang disebut boolean. Tipe ini hanya dapat memiliki 2 kemungkinan nilai, yaitu true atau false. Tipe inilah yang dikeluarkan oleh semua operator perbandingan, seperti (a < b). Boolean juga merupakan tipe yang dibutuhkan oleh semua operator pengatur alur bersyarat, seperti if, while, dan do. Berikut deklarasi variabel boolean: boolean done = false; Lab. Teknik Informatika - FTI Universitas Gunadarma 14 1.3.2.8 Array Array adalah kelompok variabel dengan tipe sejenis dan dinyatakan dengan nama yang sama. Dengan kata lain, array merupakan tipe khusus yang menyatukan sekelompok variabel dengan tipe yang sama. Jika kita ingin mendeklarasikan array 12 buah integer, kita menciptakan tipe baru, yaitu “array of int”. Contoh berikut ini menunjukkan deklarasi variabel month_days dengan tipe “array of int”: int month_days []; 1.3.3 Operator Pada sub bab sebelumnya telah dijelaskan secara singkat mengenai operator. Operator dapat diartikan juga simbol yang biasa digunakan dalam menulis suatu pernyataan dalam bahasa pemrograman. Operator akan melakukan suatu operasi terhadap operand sesuai dengan fungsinya, seperti penjumlahan, pengurangan, perkalian, dan sebagainya. Operator di Java ada 7 macam, yaitu : 1. Operator penugasan 2. Operator matematika 3. Operator penaikan dan penurunan 4. Operator bitwise ( manipulasi bit ) tidak dibahas 5. Operator relasional 6. Operator logika Boolean 7. Operator majemuk 1.3.3.1 Operator Penugasan Operator ini yang paling sederhana dan hanya dilambangkan dengan karakter ‘ = ’. Operator ini digunakan untuk menugaskan suatu nilai ke suatu variabel. Contoh: int var = 1; Uniknya, operator ini dapat digunakan secara berantai. Contoh: int a,b,c; a = b = c = 99; Lab. Teknik Informatika - FTI Universitas Gunadarma 15 1.3.3.2 Operator Matematika Operator ini digunakan dalam ekspresi matematika. Operator matematka yang dikenal dalam Java adalah sebagai berikut: Operator + * / % Tabel 1.4 Operator Matematika Keterangan Contoh Penjumlahan 4+5 Pengurangan 9-2 Perkalian 3*4 Pembagian 9/3 Modulus ( sisa bagi ) 7%2 Hasil 9 7 12 3 1 Operator matematika hanya dapat digunakan dengan operan bertipe bilangan, baik bilangan bulat maupun pecahan, serta tipe data char yang merupakan pengecualian. Tipe data char menyimpan informasi karakter dengan menggunakan bilangan yang merepresentasikan karakter tersebut. Contoh: int x = 10; int y = 2; int z = x * y; Dalam Unicode, karakter ‘a’ direpresentasikan dengan angka desimal 97. Sehingga : z = x * 10; pada kondisi ini adalah sama dengan : z = 97 * 10; char x = ‘a’; z = x * 10; 1.3.3.3 Operator Penaikan dan Penurunan Operator ini digunakan untuk menaikkan atau menurunkan suatu nilai integer (bilangan bulat) sebanyak satu satuan dan hanya dapat digunakan pada variabel. Operator-operator tersebut adalah Tabel 1.5 Operator Penaikkan Dan Penurunan Operator ++ -- Keterangan Penambahan dengan nilai satu Pengurangan dengan nilai satu Operator ini dapat ditempatkan sebelum atau sesudah variabel. Jika ditempatkan sebelum variabel, maka variabel tersebut akan dikurangi/ ditambah dengan 1 sebelum Lab. Teknik Informatika - FTI Universitas Gunadarma 16 di operasikan. Sebaliknya, jika operator ini diletakkan sesudah variabel, maka variabel tersebut akan di operasikan terlebih dahulu dan kemudian di tambahkan/ dikurangi dengan 1. Contoh penggunaannya : x = x + 1; dapat ditulis menjadi y = y - 1; dapat ditulis menjadi int int y = z = x++; atau y--; atau ++x; --y; Variabel y mendapatkan nilai x = 10; y , z; ++x; x++; dari nilai x yang ditambahkan dengan 1 terlebih dahulu, sehingga nilai y adalah 11. Variabel z mendapatkan nilai dari nilai x yang belum ditambahkan dengan 1terlebih dahulu, sehingga nilai z adalah 10. 1.3.3.4 Operator Relasional Operator ini digunakan untuk membandingkan dua buah nilai operand dan menghasilkan nilai Boolean, yaitu true atau false. Berikut ini operator relasional dalam Java: Tabel 1.6 Opeartor Relasional Operator == != > < >= <= Keterangan Sama dengan ( membandingkan, bukan penugasan ) Tidak sama dengan Lebih besar dari Lebih kecil dari Lebih besar dari atau sama dengan Lebih kecil dari atau sama dengan Operator ini banyak digunakan sebagai kontrol alur eksekusi program seperti dalam pernyataan if, while, do, for, dan lain-lain. Contoh penggunaan : If(x>10) { x = 0; } Lab. Teknik Informatika - FTI Universitas Gunadarma Jika nilai x lebih dari 10 maka akan mengeksekusi operasi dibawahnya, yaitu nilai x menjadi 0. 17 1.3.3.5 Operator Logika Boolean Operator ini hanya digunakan untuk melakukan operasi pada operand yang bertipe boolean. Berikut daftar operator logika boolean : Operator & | ^ ! && || == != Tabel 1.7 Operator Logika Boolean Keterangan Logika AND Logika OR Logika XOR Logika NOT Short circuit Logika AND Short circuit Logika OR Logika sama dengan ( membandingkan, bukan penugasan ) Logika tidak sama dengan Berikut contoh penggunaan operator logika boolean : Menggunakan short circuit AND (&&). Jika Boolean x!=0 bernilai false, maka Boolean y>=10 tidak akan dieksekusi. Jika Boolean x!=0 bernilai true, maka Boolean y>=10 dieksekusi. Jika keduanya bernilai true, maka akan mengeksekusi statement dibawahnya, yaitu memasukkan nilai 15 ke variabel z. If(x!=0 && y>=10) { z = 15; } Menggunakan logika AND (&). Mengeksekusi semua ekspresi yang terlibat. Boolean x!=0 dan y>=10 pasti dieksekusi. Jika keduanya bernilai true, maka akan mengeksekusi statement dibawahnya, yaitu memasukkan nilai 15 ke variabel z. If(x!=0 & y>=10) { z = 15; } 1.3.3.6 Operator Majemuk Operator ini merupakan gabungan dari operator yang telah dibahas sebelumnya dengan operator penugasan. Berikut operator majemuk pada Java yang dipelajari: Tabel 1.8 Operator Majemuk Operator Lab. Teknik Informatika - FTI Universitas Gunadarma Keterangan 18 += -= *= /= %= Penambahan diikuti dengan penugasan Pengurangan diikuti dengan penugasan Perkalian diikuti dengan penugasan Pembagian diikuti dengan penugasan Operasi modulus diikuti dengan penugasan Berikut contoh penggunaannya: hasil += 10; memiliki arti yang sama dengan hasil = hasil + 10; hasil -= 20; memiliki arti yang sama dengan hasil = hasil - 20; dan seterusnya. 1.4 Output dan Input Input data yang digunakan pada pemrosesan merupakan hal yang umum dilakukan dalam setiap bahasa pemrograman. Data yang dimasukkan melalui keyboard atau peralatan lain dapat digunakan untuk menghasilkan output. Output hasil pemrosesan data dapat ditampilkan pada screen. Output data Output data dalam Java dapat menggunakan objek out untuk menampilkan data program langsung. Objek ini merupakan bagian dari kelas System yang ada dalam library java.lang. Dengan objek tersebut dapat menggunakan metode print() dan println() dari kelas PrintStream yang terdapat dalam library java.io. Metode println() secara otomatis menampilkan teks pada baris berikutnya. Sedangkan metode print() menampilkan data ke screen pada posisi berikutnya dalam baris yang sama. Contoh: System.out.print(“Nama:”); System.out.println(“Dini”); System.out.print(“Alamat:”); System.out.print(“Bekasi”); Output yang dihasilkan: Nama:Dini Alamat:Bekasi Lab. Teknik Informatika - FTI Universitas Gunadarma 19 Input Data Java tidak mempunyai instruksi untuk input keyboard. Fungsi input Java terjadi pada tingkat aliran data. Untuk memasukkan sebuah data integer, string, atau float dengan keyboard harus dibuat rutin berdasarkan metode atau subkelas InputStream Java, yang merupakan bagian pustaka java.io. Sebuah rutin input juga dapat dibuat menggunakan metode dari System class, yang merupakan bagian dari pustaka java.lang. Mekanisme khusus untuk menangani pengecualian, menggunakan throw IOException untuk mendeklarasikan metode main(). Dalam program menggunakan kelas dalam pustaka java.io, yaitu IOException, InputStreamReader, dan BufferedReader. Contoh program berikut menggunakan input dengan keyboard. (Ingat! Seluruh input di Java dianggap sebagai string). Contoh program input dengan Application : //nama file: EntryData1.java import java.io.*; class EntryData1 { public static void main(String[] args) throws Exception { DataInputStream dis = new DataInputStream (System.in); System.out.print("Ketik nama anda : "); String nama = dis.readLine(); System.out.println("Hallo " + nama); } } Atau //nama file: EntryData2.java import java.io.*; class EntryData2 { public static void main(String[] args) throws IOException { InputStreamReader input= new InputStreamReader(System.in); BufferedReader dis= new BufferedReader(input); System.out.print("Ketik nama anda : "); String nama = dis.readLine(); System.out.println("Hallo " + nama); } } Catatan : Java tidak mempunyai variabel untuk inputan, sehingga kita harus Lab. Teknik Informatika - FTI Universitas Gunadarma 20 mendeklarasikan terlebih dahulu sebuah variabel untuk melakukan inputan, pada program diatas adalah variabel “dis”. Berbeda dengan C++ yang menggunakan keyword “include” maka pada Java keyword-nya adalah “import”. Pada program diatas digunakan class io untuk dapat melakukan input dan menghasilkan output. Input yang diterima melalui keyboard baik input application atau applet adalah string. Untuk mengubah string menjadi tipe data lain digunakan metode: • Integer.parseInt(), untuk mengkonversi string menjadi integer. • Float.parseFloat(),untuk mengkonversi string menjadi float. • Double.parseDouble(),untuk mengkonversi string menjadi double Output data dalam Java dapat menggunakan objek out untuk menampilkan data program langsung. Objek ini merupakan bagian dari kelas System yang ada dalam pustaka java.lang. Dengan objek tersebut dapat menggunakan metode print() dan println() dari kelas PrintStream dalam pustaka java.io. Contoh program mengubah bentuk variabel dari String ke Integer : //nama file: inputNilai.java import java.io.*; class inputNilai { public static void main(String[] args) throws Exception { System.out.print("Nilai 1:"); DataInputStream a=new DataInputStream(System.in); BufferedReader b=new BufferedReader(new InputStreamReader(System.in)); String k=a.readLine(); int nilai=Integer.parseInt(k); System.out.print("Nilai 2:"); int nilai2=Integer.parseInt(b.readLine()); System.out.println("nilai sisa="+(nilai%nilai2)); } } 1.5 Program Sebelum melakukan pembuatan bahasa Pemograman Java ingat hal-hal berikut ini: 1. Memulai pemograman pada bagian class utama. 2. Bahasa pemograman Java adalah bahasa pemograman yang case sensitive, sehingga harus diperhatikan huruf besar dan kecilnya. 3. Setiap kata pada nama class diawali dengan huruf kapital. 4. Nama file harus sama dengan nama class utama dimana program berada. 5. Nama file harus diberi extension “.java” diakhir nama file. Lab. Teknik Informatika - FTI Universitas Gunadarma 21 6. Compile program dengan cara “ javac <nama file> .java” yang nantinya program java akan diubah menjadi extensi .class, dan untuk mengeksekusi gunakan perintah “java <nama file>” ingat pada saat compile extensi .java harus ikut sedangkan untuk eksekusi extensi .class tidak perlu diikut sertakan. 1.5.1 Listing Program 1 // nama file : test2.java class test2 { public static void main (String args []) { int a = 2; int b = 1; int c = 3; a += 5; b *= 4; c += a * b; c %= 6*a; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("c = " + c); } } 1.5.2 Output Program 1 a = 7 b = 4 c = 31 1.5.3 Listing Program 2 // nama file : test3.java class test3 { public static void main (String args []) { System.out.println(7); //a System.out.println( 5+7 ); //b System.out.println( 5+"+" + 7 + " = " + 5 + 7 ); //c System.out.println( 5 + " + " + 7 + " = " + (5+7)); //d } } 1.5.4 Output Program 2 7 12 5+7 = 57 5 + 7 = 12 Sekarang kita akan mulai membuat bahasa pemograman. Dalam tahap awal kita akan membahas tentang contoh program no.2. Pada bagian “a” & “b” mungkin tidak terlalu sulit dimengerti, tetapi untuk bagian “c” outputnya adalah “ 5 + 7 = 57 “ dan yang “d” adalah “5 + 7 = 12”, ini dikarenakan pada Java setiap informasi yang akan ditampilkan dipisahkan dengan Lab. Teknik Informatika - FTI Universitas Gunadarma 22 tanda “+” sehingga pada bagian “c” tertulis “5+7” itu dianggap sebagai string sehingga tidak dijumlahkan. Untuk melakukan perhitungan matematis kita harus menggunakan separator buka “(“ dan tutup kurung “)”. Kemudian yang menjadi pertanyaan kenapa pada bagian “b” bisa? Itu dikarenakan langsung melakukan perhitungan tanpa ada informasi string didepannya ini sangat berbeda dengan yang ada pada bagian “c”. STEP BY STEP 1) Jelaskan tentang sejarah perkembangan bahasa pemrograman Java secara singkat! 2) Sebutkan fitur-fitur penting yang terdapat pada Java! 3) Tuliskan konsep dan struktur bahasa pemrograman Java! 4) Sebutkan variabel, tipe data, dan operator pada Java! MATERI PRAKTIKUM Buat sebuah program dengan aturan sebagai berikut: 1. Menampilkan kata “Konversi Temperatur” di layar. 2. Deklarasikan 3 variabel yang akan digunakan untuk menampung nilai temperatur celcius, reamur dan fahrenheit. 3. Menampilkan kata “Input Celcius:” kemudian user diminta untuk meng-input nilai berupa angka. 4. Rumus dari konversi temperatur celcius yang diinput ke temperatur reamur = temperatur celcius*4/5 5. Rumus dari konversi temperatur celcius yang diinput ke temperatur fahrenheit = temperatur celcius*9/5 +32.0 6. Menampilkan “temperatur Celcius=”lalu tampilkan pula nilai celcius yang diinput sebelumnya. 7. Menampilkan “temperatur Reamur=”lalu tampilkan pula nilai hasil perhitungan aturan no.4. 8. Menampilkan “temperatur Fahrenheit=”lalu tampilkan pula nilai hasil perhitungan aturan no.5. LAPORAN AKHIR Buatlah kesimpulan mengenai unsur-unsur bahasa pemrograman JAVA yang telah dipraktekkan beserta dengan program-program yang telah dibuat berikut tampilan hasilnya. Lab. Teknik Informatika - FTI Universitas Gunadarma 23