PENGENALAN PEMROGRAMAN 1 MODUL PRAKTIKUM Mengenali Ruang Lingkup Pemrograman Anda Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Mengenali Lingkup Pemrograman Anda 1. • • • 2. Tujuan Membuat program Java menggunakan text editor dan console dalam linux (Ubuntu Dapper) Membedakan antara syntax-error dan runtime-error Membuat program Java menggunakan NetBeans Latar Belakang Dalam sesi ini, kita akan membahas tentang bagaimana menulis, meng-compile dan menjalankan(run) program Java. Terdapat 2 cara dalam melakukannya, yang pertama menggunakan console dan text editor. Sedangkan cara kedua adalah dengan menggunakan NetBeans yang merupakan Integrated Development Environment atau yang disebut IDE. IDE adalah sebuah peralatan dalam pemrograman yang diintegrasikan ke dalam aplikasi software yang mendukung pembangunan GUI, text atau penulisan kode, compiler dan debugger. Tutorial ini menggunakan Ubuntu Dapper sebagai sistem operasinya. Sebelum menggunakan tutorial ini, pastikan bahwa telah menginstal Java dan NetBeans dalam sistem yang anda gunakan. Untuk instruksi dalam bagaimana cara menginstal Java dan NetBeans, dapat dilihat pada Appendix A. Untuk versi Windows Xp dalam sesi ini, dapat dilihat pada Appendix B. Sebelum membahas lebih detail, pada awalnya akan kita lihat program Java pertama yang akan anda tulis. 3. Percobaan Percobaan 1 HelloWorld : Versi 1.3 1|Page Modul Praktikum Mengenali Lingkup Pemrograman Anda 4. Latihan 4.1 Hello World! Menggunakan NetBeans, membuat class dengan nama : [NamaAnda]. Hasil dari program yang harus tampil dilayar : Welcome to Java Programming [NamaAnda]!!! 4.2 The Tree Menggunakan NetBeans, membuat class dengan nama : TheTree. Hasil dari program yang harus tampil dilayar : I think that I shall never see, a poem as lovely as a tree. A tree whose hungry mouth is pressed Against the Earth’s sweet flowing breast. Versi 1.3 2|Page PENGENALAN PEMROGRAMAN 1 MODUL PRAKTIKUM Dasar‐Dasar Pemrograman Versi 1.4 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Dasar-Dasar Pemrograman 1. 2. Tujuan • Mengidentifikasi bagian dasar dari program java • Membedakan mana yang termasuk ke dalam java literals, tipe data dasar, tipe variabel, pengidentifikasian dan operator. • Mengembangkan program java sederhana menggunakan konsep pembelajaran pada bab ini. • Menganalisa program java pertama Latar Belakang Pada bagian ini, kita akan mendiskusikan mengenai bagian dasar pemrograman java. Kita akan memulai dengan mencoba menjelaskan bagian dasar dari program Hello.java yang telah diperkenalkan pada bab sebelumnya. Kita juga akan mendiskusikan beberapa pedoman cara menulis script atau petunjuk penulisan kode dalam penulisan program lebih efektif dan mudah dibaca. 3. Percobaan Percobaan 1 Menampilkan Data Variabel : Versi 1.4 1|Page Modul Praktikum Dasar-Dasar Pemrograman Percobaan 2 Penggunaan Operator Aritmatika : Versi 1.4 2|Page Modul Praktikum Dasar-Dasar Pemrograman Percobaan 3 Penggunaan Operator Relasi: Versi 1.4 3|Page Modul Praktikum Dasar-Dasar Pemrograman Percobaan 4 Penggunaan Operator Logika dan Boolean AND: Percobaan 5 Penggunaan Operator Logika dan Boolean OR: Versi 1.4 4|Page Modul Praktikum Dasar-Dasar Pemrograman Percobaan 6 Penggunaan Operator Logika Eksklusive OR: Percobaan 7 Penggunaan Operator Logika NOT: Versi 1.4 5|Page Modul Praktikum Dasar-Dasar Pemrograman Percobaan 8 Penggunaan Operator Kondisi (?:): Contoh 1 : Contoh 2 : Versi 1.4 6|Page Modul Praktikum Dasar-Dasar Pemrograman Percobaan 9 Penggunaan Variable: Percobaan 10 Tipe Data dan Assignment : Versi 1.4 7|Page Modul Praktikum Dasar-Dasar Pemrograman Percobaan 11 Operator: Versi 1.4 8|Page Modul Praktikum Dasar-Dasar Pemrograman Percobaan 12 operator decrement – increment : Versi 1.4 9|Page Modul Praktikum Dasar-Dasar Pemrograman 4. Latihan 4.1 Mendeklarasikan dan mencetak variabel Diberikan tabel dibawah ini, deklarasikan variabel yang terdapat didalamnya dengan tipe data yang sesuai dan berikan nilai inisialisasi. Tampilkan hasil outputnya yaitu nama variabel dan nilainya. Versi 1.4 Variable name Data tipe Initial value number integer 10 letter character a result boolean true str String hello 10 | P a g e Modul Praktikum Dasar-Dasar Pemrograman Berikut ini merupakan tampilan yang diharapkan sebagai hasil eksekusi program, Number = 10 letter = a result = true str = hello 4.2 Mendapatkan nilai rata-rata dari tiga angka Buatlah program yang menghasilkan output nilai rata-ratadari tiga angka. Nilai dari masingmasing tiga angka tersebut adalah 10, 20 dan 45. Tampilan Output yang diharapkan adalah, number 1 = number 2 = number 3 = Average is 10 20 45 = 25 4.3 Menampilkan nilai terbesar Diberikan tiga angka, tuliskan program yang menghasilkan output angka dengan nilai terbesar diantara tiga angka tersebut. Gunakan operator kondisi ?: yang telah kita pelajari sebelumnya (HINT: Anda akan perlu menggunakan dua set operator ?: untuk memecahkan permasalahan ini). Sebagai contoh , diberikan angka 10, 23 dan 5, Program anda akan menghasilkan output, number 1 = 10 number 2 = 23 number 3 = 5 Nilai tertingginya adalah angka = 23 4.4 Operator precedence Diberikan pernyataan berikut ini, tulis kembali soal tersebut dengan menambahkan tanda kurung pada urutan sesuai dengan bagaimana pernyataan tersebut akan dievaluasi. 1. a / b ^ c ^ d – e + f – g * h + i 2. 3 * 10 *2 / 15 – 2 + 4 ^ 2 ^ 2 3. r ^ s * t / u – v + w ^ x – y++ Versi 1.4 11 | P a g e PENGENALAN PEMROGRAMAN 1 MODUL PRAKTIKUM Mendapatkan Input Dari Keyboard Versi 1.4 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Mendapatkan Input Dari Keyboard 1. Tujuan • • • Membuat program Java yang interaktif yang bisa mendapatkan input dari keyboard Menggunakan kelas BufferedReader untuk mendapatkan input dari keyboard melalui layar console Menggunakan kelas JOptionPane untuk mendapatkan input dari keyboard melalui GUI 2. Latar Belakang Kita sudah mempelajari konsep mendasar pada Java dan menulis beberapa program sederhana. Sekarang kita akan mencoba membuat program kita lebih interaktif dengan menggunakan input dari keyboard. Pada bab ini, kita akan mempelajari dua cara memberikan input, yang pertama adalah menggunakan kelas BufferedReader dan melalui GUI (Graphical User Interface) dengan menggunakan kelas JOptionPane. Versi 1.4 1|Page Modul Praktikum Mendapatkan Input Dari Keyboard 3. Percobaan Percobaan 1 Menggunakan class BufferedReader: Versi 1.4 2|Page Modul Praktikum Mendapatkan Input Dari Keyboard Percobaan 2 Menggunakan JOptionPane: Versi 1.4 3|Page Modul Praktikum Mendapatkan Input Dari Keyboard Percobaan 3 Input Dari Keyboard : Percobaan 4 Input Dari Keyboard (JOptionPane) : Versi 1.4 4|Page Modul Praktikum Mendapatkan Input Dari Keyboard 4. Latihan 4.1 Kata Terakhir (versi BufferedReader) Menggunakan BufferedReader, tanyakan tiga kata dari user dan tampilkan output dari input user tersebut ke layar. Contoh, Enter word1:Goodbye Enter word2:and Enter word3:Hello Goodbye and Hello 4.2 Kata Terakhir (versi JOptionPane) Menggunakan JOptionPane, tanyakan tiga kata dari user dan tampilkan output dari input user tersebut ke layar. Contoh Gambar 1: Input Pertama Gambar 2: Input Kedua Gambar 3: Menampilkan Pesan Versi 1.4 5|Page PENGENALAN PEMROGRAMAN 1 MODUL PRAKTIKUM Struktur Kontrol Versi 1.4 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Struktur Kontrol 1. Tujuan • Menggunakan struktur kontrol keputusan (if, else, switch) yang digunakan untuk memilih blok kode yang akan dieksekusi • Menggunakan struktur kontrol pengulangan (while, do-while, for) yang digunakan untuk melakukan pengulangan pada blok kode yang akan return) yang dieksekusi • Menggunakan statement percabangan (break, continue, digunakan untuk mengatur redirection dari program 2. Latar Belakang Pada bab sebelumnya, kita sudah mendapatkan contah dari program sequential, dimana statement dieksekusi setelah statement sebelumnya dengan urutan tertentu. Pada bagian ini, kita mempelajari tentang struktur kontrol yang bertujuan agar kita dapat menentukan urutan statement yang akan dieksekusi. Struktur kontrol keputusan adalah statement dari Java yang mengijinkan user untuk memilih dan mengeksekusi blok kode dan mengabaikan blok kode yang lain. Versi 1.4 1|Page Modul Praktikum Struktur Kontrol 3. Percobaan Percobaan 1 Statement if: Percobaan 2 Statement switch: Versi 1.4 2|Page Modul Praktikum Struktur Kontrol Percobaan 3 Statement break: Percobaan 4 Labeled break statement: Versi 1.4 3|Page Modul Praktikum Struktur Kontrol Percobaan 5 Continue statement: Percobaan 6 Labeled statement continue: Versi 1.4 4|Page Modul Praktikum Struktur Kontrol Percobaan 7 While: Versi 1.4 5|Page Modul Praktikum Struktur Kontrol Percobaan 8 While: Versi 1.4 6|Page Modul Praktikum Struktur Kontrol Percobaan 9 For: Versi 1.4 7|Page Modul Praktikum Struktur Kontrol Percobaan 10 Nested For: Versi 1.4 8|Page Modul Praktikum Struktur Kontrol Percobaan 11 Do-While: Versi 1.4 9|Page Modul Praktikum Struktur Kontrol 4. Latihan 4.1 Nilai Ambil tiga nilai ujian dari user dan hitung nilai rata-rata dari nilai tersebut. Berikan output rata-rata dari tiga ujian. Berikan juga smiley face pada output jika nilai rata-rata lebih besar atau sama dengan 60, selain itu beri output :-(. 1. Gunakan BufferedReader untuk mendapat input dari user, dan System.out untuk output hasilnya. 2. Gunakan JOptionPane untuk mendapat input dari user dan output hasilnya. 4.2 Membaca Bilangan Ambil sebuah angka sebagai input dari user, dan outputnya berupa kata yang sesuai dengan angka. Angka yang dimasukkan antara 1-10. Jika user memasukkan nilai yang tidak sesuai berikan output “Invalid number”. 1. Gunakan statement if-else untuk menyelesaikan 2. Gunakan statement switch untuk menyelesaikan 4.3 Cetak Seratus Kali Buat sebuah program yang mencetak nama Anda selama seratus kali. Buat tiga versi program ini menggunakan while loop, do while dan for-loop. 4.4 Perpangkatan Hitung pangkat sebuah nilai berdasarkan angka dan nilai pangkatnya. Buat tiga versi dari program ini menggunakan while loop, do-while dan for-loop. Versi 1.4 10 | P a g e PENGENALAN PEMROGRAMAN 1 MODUL PRAKTIKUM JAVA Array Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Java Array 1. Tujuan • • • • 2. Mendeklarasikan dan membuat array Mengakses elemen-elemen didalam array Menentukan jumlah element didalam sebuah array Mendeklarasikan dan membuat array multidimensi Latar Belakang Pada bagian ini, kita akan mendiskusikan mengenai array dalam Java. Pertama, kita akan mendefinisikan apa yang dimaksud dengan array, kemudian kita juga akan mendefinisikan bagaimana mendeklarasikannya dan menggunakannya dalam Java. Dibagian sebelumnya, kita telah mendiskusikan bagaimana cara pendeklarasian berbagai macam variabel dengan menggunakan tipe data primitif. Dalam pendeklarasian variabel, kita sering menggunakan sebuah tipe data beserta nama variabel atau identifier yang unik, dimana untuk menggunakan variabel tersebut, kita akan memanggil dengan nama identifiernya. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel. int number1; int number2; int number3; number1 = 1; number2 = 2; number3 = 3; Seperti yang dapat Anda perhatikan pada contoh diatas, hanya untuk menginisialisasi dan menggunakan variabel terutama pada saat variabel-variabel tersebut memiliki tujuan yang sama, dirasa sangat membingungkan. Di Java maupun di bahasa pemrograman yang lain, mereka memiliki kemampuan untuk menggunakan satu variabel yang dapat menyimpan sebuah data list dan kemudian memanipulasinya dengan lebih efektif. Tipe variabel inilah yang disebut sebagai array. Versi 1.3 1|Page Modul Praktikum Java Array Sebuah array akan menyimpan beberapa item data yang memiliki tipe data sama didalam sebuah blok memori yang berdekatan yang kemudian dibagai menjadi beberapa slot. Bayangkanlah array adalah sebuah variabel – sebuah lokasi memori tertentu yang memiliki satu nama sebagai identifier, akan tetapi ia dapat menyimpan lebih dari sebuah value. 3. Percobaan Percobaan 1 Pengaksesan element array: Percobaan 2 Panjang Array: Versi 1.3 2|Page Modul Praktikum Java Array Percobaan 3 Array Multidimensi: Percobaan 4 Menggunakan Array args pada Method main: 4. Latihan 4.1 Hari dalam seminggu Buatlah sebuah String array yang akan menginisialisasi 7 hari dalam seminggu. Sebagai contoh, String days[] = {“Monday”, “Tuesday”….}; Gunakan while-loop, kemudian print semua nilai dari array (Gunakan juga untuk dowhile dan for-loop)Using a while-loop. Versi 1.3 3|Page Modul Praktikum Java Array 4.2 Nomor terbesar Gunakanlah BufferedReader dan JoptionPane, tanyakan kepada user untuk 10 nomor. Kemudian gunakan array untuk menyimpan 10 nomor tersebut. Tampilkan kepada user, input terbesar yang telah diberikan user. 4.3 Buku Alamat Berikut ini adalah array multidimensi yang menyatakan isi dari sebuah buku alamat: String entry = {{"Florence", "735-1234", "Manila"}, {"Joyce", "983-3333", "Quezon City"}, {"Becca", "456-3322", "Manila"}}; Cetak buku alamat tersebut dalam format berikut ini: Name : Florence Tel. # : 735-1234 Address : Manila Name : Joyce Tel. # : 983-3333 Address : Quezon City Name : Becca Tel. # : 456-3322 Address : Manila Versi 1.3 4|Page PENGENALAN PEMROGRAMAN 1 MODUL PRAKTIKUM Argument Dari Command‐ Line Versi 1.4 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Argumen dari Commandline 1. Tujuan • Mengetahui dan menjelaskan mengenai argumen command-line • Mendapatkan input dari user dengan menggunakan argumen command-line • Mempelajari bagaimana memberikan argumen kedalam program pada NetBeans 2. Latar Belakang Pada bagian ini, kita akan mempelajari bagaimana untuk memproses sebuah input dari command-line dengan menggunakan argumen yang diberikan kepada program Java. Sebuah aplikasi Java dapat menerima berbagai argumen dari command-line. Argumen dari command line memberikan kesempatan bagi user untuk mempengaruhi operasi dari sebuah aplikasi dalam sekali invokasi. User memasukkan argumen command line pada saat meng-invoke aplikasi dan memberikan spesifikasi kepada aplikasi tersebut setelah nama kelas untuk dijalankan. Sebagai contoh, apabila Anda memiliki sebuah aplikasi Java dengan nama Sort, yang akan mengurutkan lima nomor, Anda dapat menjalankannya seperti berikut ini: Versi 1.4 1|Page Modul Praktikum Argumen dari Commandline Perhatikan bahwa sebuah argumen akan dipisahkan oleh spasi. Di bahasa Java, apabila Anda akan memanggil sebuah aplikasi, sebuah runtime system akan memberikan argumen command-line ke main method lewat array dari String, dimana tiap String dalam array terdiri dari sebuah argumen commmand-line. Perhatikan deklarasi dari main method, public static void main( String[] args ) Argumen yang diberikan kepada program Anda akan disimpan kedalam sebuah array String dengan identifier args. Pada contoh sebelumnya, argumen dari command-line yang akan diberikan kepada aplikasi sort command adalah lima buah String yaitu “5”,”4”,”3”,”2”, dan “1”. Anda dapat mengetahaui berapa banyak argumen dari command-line dengan cara melihat panjang dari attribute array. Versi 1.4 2|Page Modul Praktikum Argumen dari Commandline Sebagai contoh, int numberOfArgs = args.length; Jika program Anda membutuhkan support sebuah argumen command-line yang numeric. Anda harus mengkonversi String argumen tersebut untuk merepresantasikan sebuah nomor, misalnya “34” menjadi sebuah nomor. Kode dibawah ini adalah sebuah potongan untuk mengkonversi sebuah argumen command-line menjadi integer. int firstArg = 0; if (args.length > 0){ firstArg = Integer.parseInt(args[0]); } parseInt akan mendapatkan NumberFormatException (ERROR) jika format args[0] tidak valid (bukan sebuah nomor). 3. Percobaan Percobaan 1 Contoh program pada Command Line: Versi 1.4 3|Page Modul Praktikum Argumen dari Commandline Percobaan 2 Contoh Program pada Netbeans: Langkah-langkah 1. Klik pada daerah yang dilingkari Versi 1.4 4|Page Modul Praktikum Argumen dari Commandline 2. Click kanan pada CommandLineExample, kemudian pilih Properties : 3. Dialog Project Properties akan muncul Versi 1.4 5|Page Modul Praktikum Argumen dari Commandline 4. click Run 5. Dalam textbox argumen, ketik argumen 5 4 3 2 1. Kemudian tekan click OK. 6. Run program Versi 1.4 6|Page Modul Praktikum Argumen dari Commandline Percobaan 3 Command Line : 4. Latihan 4.1 Mencetak Argument Dapatkan input dari user dengan menggunakan argument command line dan cetak semua argumen ke layar. Sebagai contoh, jika user memasukkan java Hello world that is all program Anda haruslah mencetak Hello world Versi 1.4 7|Page Modul Praktikum Argumen dari Commandline that is all 4.2 Operasi Aritmatik Dapatkan dua buah bilangan yang diinputkan user dari command line dengan argumen command line,kemudian cetak hasil penjumlahannya, hasil pengurangannya, hasil perkalian, dan juga hasil pembagiannya. java ArithmeticOperation 20 4 program anda akan mencetak sum = 24 difference = 16 product = 80 quotient = 5 Versi 1.4 8|Page PENGENALAN PEMROGRAMAN 1 MODUL PRAKTIKUM Bekerja Dengan JAVA Class Library Versi 1.4 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Bekerja dengan Java Class Library 1. Tujuan • menjelaskan OOP dan beberapa konsepnya • perbedaan antara class dan object • pebedaan antara instance variables/method dan class (static) variable/method • menjelaskan method apa dan bagaimana memanggil method parameter • mengidentifikasi beberapa jangkauan dari sebuah variable • memilih tipe data primitive dan object • membandingkan objects dan menjabarkan class dari objects. 2. Latar Belakang Pada sesi ini, kita akan mengantarkan beberapa konsep dasar dari Object-Oriented objcts, dan Programming (OOP). Selanjutnya kita akan membahas konsep dari classes dan bagaimana menggunakan class dan anggotanya. Perubahan dan pemilihan object juga akan dibahas. Sekarang, kita akan focus dalam menggunakan class yang telah dijabarkan dalam Java Class library, kita akan membahas nanti tentang bagaimana membikin class anda sendiri. OOP berputar pada konsep dari object sebagai dasar element dari program anda. Ketika kita membandingkan dengan dunia nyata, kita dapat menemukan beberapa objek disekitar kita, seperti mobil, singa, manusia dan seterusnya. Object ini dikarakterisasi oleh sifat / attributnya dan tingkah lakunya. Contohnya, objek sebuah mobil mempunyai sifat tipe transmisi, warna dan manufaktur. Mempunyai kelakuan berbelok, mengerem dan berakselerasi. Dengan cara yang sama pula kita dapat mendefinisikan perbedaan sifat dan tingkah laku dari singa. Coba perhatikan table dibawah ini sebagai contoh perbandingan : Object Car Lion Versi 1.4 Properties Behavior type of transmission turning manufacturer braking color accelerating Weight roaring 1|Page Modul Praktikum Bekerja dengan Java Class Library Object Properties Behavior Color sleeping hungry or not hungry hunting tamed or wild 3. Percobaan Percobaan 1 Pass By Value: Percobaan 2 Pass by reference : Versi 1.4 2|Page Modul Praktikum Bekerja dengan Java Class Library Percobaan 3 Perbandingan Object : Versi 1.4 3|Page Modul Praktikum Bekerja dengan Java Class Library Percobaan 4 Pemanggilan method menggunakan parameter: Versi 1.4 4|Page Modul Praktikum Bekerja dengan Java Class Library Percobaan 5 Method dengan Return Value : Versi 1.4 5|Page Modul Praktikum Bekerja dengan Java Class Library 4. Latihan 4.1 Mendefinisikan Istilah Dengan kata-kata Anda sendiri, definisikan istilah-istilah berikut ini : 1. 2. 3. 4. 5. 6. 7. Class Object Instantiate Instance Variable Instance Method Class Variables atau static member variables Constructor 4.2 Java Scavanger Hunt Pipoy adalah suatu anggota baru dalam bahasa pemrograman Java. Dia hanya memperdengarkan bahwa telah ada APIs siap pakai dalam Java yang salah satunya dapat digunakan dalam program mereka, dan ia ingin sekali untuk mengusahakan mereka keluar. Masalahnya adalah, Pipoy tidak memiliki copy dari dokumentasi Java, dan dia juga tidak memiliki acces internet, jadi tidak ada jalan untuknya untuk menunjukkan Java APIs. Tugas Anda adalah untuk membantu Pipoy memperhatikan APIs (Application Programming Interface). Anda harus menyebutkan class dimana seharusnya method berada, deklarasi method dan penggunaan contoh yang dinyatakan method. Sebagai contoh, jika Pipoy ingin untuk mengetahui method yang mengknversisebuah String ke integer,jawaban Anda seharusnya menjadi: Class: Integer Method Declaration: public static int parseInt( String value ) Sample Usage: String int strValue = "100"; value = Integer.parseInt( strValue ); yakinkan bahwa snippet dari kode yang Anda tulis dalam contoh Anda menggunakan compiles dan memberi output jawaban yang benar, jadi tidak membingungkan Pipoy. (Hint: Semua methods adalah dalam java.lang package). Dalam kasus dimana Anda dapat menemukan lebih banyak methods yang dapat menyelesaikan tugas, berikan hanya satu. Versi 1.4 6|Page Modul Praktikum Bekerja dengan Java Class Library Sekarang mari memulai pencarian! 1. Perhatikan sebuah method yang diuji jika String pasti diakhiri suffix yang pasti. Sebagai contoh, jika diberikan string "Hello", Method harus mengembalikan nilai true suffix yang diberikan adalah "lo", dan false jika suffix yang diberikan adalah "alp". 2. Perhatikan untuk method yang mengenali character yang mewakili sebuah digit yang spesifik dalam radix khusus. Sebagai contoh, jika input digit adalah 15, dan the radix adalah 16, method akan mengembalikan Character F, sejak F adalah representasi hexadecimal untuk angka 15 (berbasis 10). 3. Perhatikan untuk method yang mengakhiri running Java Virtual Machine yang sedang berjalan 4. Perhatikan untuk method yang memperoleh lantai dari sebuah nilai double. Sebagai contoh, jika Saya input a 3.13, method harus mengembalikan nilai 3. 5. Perhatikan untuk method yang mengenali jika character yang dipakai adalah sebuah digit. Sebagai contoh, jika Saya input '3', dia akan mengembalikan nilai true. Versi 1.4 7|Page PENGENALAN PEMROGRAMAN 1 MODUL PRAKTIKUM Membuat Class Sendiri Versi 1.4 JAVA EDUCATION NETWORK INDONESIA Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri 1. Tujuan • • • • • • Membuat kelas mereka sendiri Mendeklarasikan atribut dan method pada class Menggunakan referensi this untuk mengakses instance data Membuat dan memanggil overloaded method Mengimport dan membuat package Menggunakan access modifiers untuk mengendalikan akses terhadap class member 2. Latar Belakang Setelah kita mempelajari penggunaan class dari Java Class Library, kita akan mempelajari bagaimana menuliskan sebuah class sendiri. Pada bagian ini, untuk mempermudah pemahaman pembuatan class, kita akan membuat contoh class dimana akan ditambahkan beberapa data dan fungsi – fungsi lain. Kita akan membuat class yang mengandung informasi dari Siswa dan operasi – operasi yang dibutuhkan pada record siswa. Beberapa hal yang perlu diperhatikan pada syntax yang digunakan pada bab ini dan bagian lainnya : * - Menandakan bahwa terjadi lebih dari satu kejadian dimana elemen tersebut diimplementasikan <description> - Menandakan bahwa Anda harus memberikan nilai pasti pada bagian ini [] - Indikasi bagian optional Versi 1.4 1|Page Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri 3. Percobaan Percobaan 1 Membuat Class Student Record: Versi 1.4 2|Page Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Versi 1.4 3|Page Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 2 Membuat Class Student Record Example : Versi 1.4 4|Page Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 3 Membuat Class Student Record yang telah dimodifikasi: Versi 1.4 5|Page Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Versi 1.4 6|Page Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Versi 1.4 7|Page Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 4 Membuat Class Student Record Example yang telah dimodifikasi : Versi 1.4 8|Page Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 5 Package : Percobaan 6 Modifier Public : Versi 1.4 9|Page Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 7 Modifier Private: Versi 1.4 10 | P a g e Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Versi 1.4 11 | P a g e Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 8 Method Accessor dan Method Mutator: Versi 1.4 12 | P a g e Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 9 Method Accessor dan Method Mutator: Versi 1.4 13 | P a g e Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 10 Constructor: Versi 1.4 14 | P a g e Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 11 Constructor Default: Versi 1.4 15 | P a g e Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 12 Constructor Overloading: Versi 1.4 16 | P a g e Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 13 Method Overloading: Versi 1.4 17 | P a g e Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Versi 1.4 18 | P a g e Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Percobaan 14 Method Overloading: 4. Latihan 4.1 Entry Buku Alamat Tugas Anda adalah membuat sebuah class yang memuat data-data pada buku alamat. Tabel berikut mendefinisikan informasi yang dimiliki oleh buku alamat. Versi 1.4 19 | P a g e Modul ModulPraktikum PraktikumMembuat MembuatClass ClassSendiri Sendiri Attribut Deskripsi Nama Nama Lengkap perseorangan Alamat Alamat Lengkap Nomor Telepon Nomor telepon personal Alamat E-Mail Alamat E-Mail personal Tabel 1: Atribut dan Deskripsi Atribut Buat implementasi dari method sebagai berikut : • • 4.1 Menyediakan accessor dan mutator method terhadap seluruh atribut Constructor Buku Alamat Buat sebuah class buku alamat yang dapat menampung 100 data. Gunakan class yang telah dibuat pada nomor pertama. Anda harus mengimplementasikan method berikut pada buku alamat : 1. 2. 3. 4. Memasukkan data Menghapus data Menampilkan seluruh data Update data Versi 1.4 20 | P a g e PENGENALAN PEMROGRAMAN 1 MODUL PRAKTIKUM Pewarisan, Polymorphism Dan Interface Versi 1.4 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface 1. Tujuan • Mendefinisikan superclasses dan subclasses • Override method dari superclasses • Membuat method final dan class final 2. Latar Belakang Dalam bagian ini, kita akan membicarakan bagaimana suatu class dapat mewariskan sifat dari class yang sudah ada. Class ini dinamakan subclass dan induk class dinamakan superclass. Kita juga akan membicarakan sifat khusus dari Java dimana kita dapat secara otomatis memakai method yand tepat untuk setiap object tanpa memperhatikan asal dari subclass object. Sifat ini dinamakan polimorfisme. Pada akhirnya, kita akan mendiskusikan tentang interface yang membantu mengurangi penulisan program. Dalam Java, semua class, termasuk class yang membangun Java API, adalah subclasses dari superclass Object. Contoh hirarki class diperlihatkan di bawah ini. Beberapa class di atas class utama dalam hirarki class dikenal sebagai superclass. Sementara beberapa class di bawah class pokok dalam hirarki class dikenal sebagai subclass dari class tersebut. Pewarisan adalah keuntungan besar dalam pemrograman berbasis object karena suatu sifat atau method didefinisikan dalam superclass, sifat ini secara otomatis diwariskan dari semua subclasses. Jadi, Anda dapat menuliskan kode method hanya sekali dan mereka dapat digunakan oleh semua subclass. Subclass hanya butuh mengimplementasikan perbedaannya sendiri dan induknya. Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau constant ). Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh. Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class. Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam Versi 1.4 Page | 1 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface. Sekarang, class induk Person dan subclass Student dari contoh sebelumnya, kita tambahkan subclass lain dari Person yaitu Employee. Di bawah ini adalah hierarkinya, Person Student Employee Dalam Java, kita dapat membuat referensi yang merupakan tipe dari superclass ke sebuah object dari subclass tersebut. Kemampuan dari referensi untuk mengubah sifat menurut object apa yang dijadikan acuan dinamakan polimorfisme. Polimorfisme menyediakan multiobject dari subclasses yang berbeda untuk diperlakukan sebagai object dari superclass tunggal, secara otomatis menunjuk method yang tepat untuk menggunakannya ke particular object berdasar subclass yang termasuk di dalamnya. Contoh lain yang menunjukkan properti polimorfisme adalah ketika kita mencoba melalui referensi ke method. Misalkan kita punya method statis printInformation yang mengakibatkan object Person sebagai referensi, kita dapat me-referensi dari tipe Employee dan tipe Student ke method ini selama itu masih subclass dari class Person. 3. Percobaan Percobaan 1 Mendefinisikan Subclass dan Superclass : Versi 1.4 Page | 2 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Versi 1.4 Page | 3 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Versi 1.4 Page | 4 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Percobaan 2 Superclass dan Subclass : Versi 1.4 Page | 5 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Versi 1.4 Page | 6 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Percobaan 3 Polimorphisme : Versi 1.4 Page | 7 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Versi 1.4 Page | 8 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Percobaan 4 Enkapsulasi: Versi 1.4 Page | 9 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Versi 1.4 Page | 10 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Versi 1.4 Page | 11 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Percobaan 5 Menampilkan Abstract Class: Versi 1.4 Page | 12 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface Percobaan 6 Interface: Relation.java Î bertindak sebagai interface Versi 1.4 Page | 13 Modul Praktikum Pewarisan, Polimorfisme, dan Interface Modul Praktikum Pewarisan, Polymorphisme, dan Interface 4. Latihan 4.1 Extend StudentRecord Dalam latihan ini, kita ingin untuk membuat catatan siswa yang lebih khusus yang berisi informasi tambahan tentang pengetahuan komputer siswa. Tugasnya adalah meng-extend class StudentRecord yang mengimplementasikan pelajaran sebelumnya. Cobalah untuk meng-override beberapa method yang ada dalam superclass StudentRecord, jika Anda benar-benar membutuhkannya. 4.2 Bentuk Abstract Class Cobalah untuk membuat class abstract yang dinamai Shape dengan method abstract getArea() dan getName(). Tulis dua subclasses-nya yaitu Circle dan Square. Anda dapat menambahkan method tambahan ke dalam subclasses jika diinginkan. Versi 1.4 Page | 14 PENGENALAN PEMROGRAMAN 1 MODUL PRAKTIKUM Penanganan Event Handling Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul ModulPraktikum PraktikumPenanganan PenangananPesan EventException Handling 1. Tujuan • • Mendefinisikan exception Menangani exception menggunakan blok try-catch-finally 2. Latar Belakang Dalam bagian ini, kita akan mempelajari teknik yang dipakai dalam Java dalam menangani kondisi yang tidak biasa dalam menjalankan operasi normal dalam program. Teknik ini dinamakan exception handling. Exception adalah sebuah peristiwa yang menjalankan alur proses normal pada program. Peristiwa ini biasanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program kita berakhir tidak normal. Beberapa contoh dari exception yang Anda mungkin jumpai pada latihan-latihan sebelumnya adalah: exception ArrayIndexOutOfBounds, yang terjadi jika kita mencoba mengakses elemen array yang tidak ada, atau NumberFormatException, yang terjadi ketika kita mencoba melalui parameter bukan angka dalam method Integer.parseInt. Untuk menangani exception dalam Java, kita gunakan blok try-catch-finally. Apa yang kita lakukan dalam program kita adalah kita menempatkan pernyataan yang mungkin menghasilkan exception dalam blok ini. 3. Percobaan Percobaan 1 Menangani Exception handling: Versi 1.3 1|Page Modul ModulPraktikum PraktikumPenanganan PenangananPesan EventException Handling 4. Latihan 4.1 Menangkap Exception 1 Diberikan kode berikut: public class TestExceptions{ public static void main( String[] args ){ for( int i=0; true; i++ ){ System.out.println("args["+i+"]="+ args[i]); } } } Compile dan jalankan program TestExceptions. Keluarannya akan tampak seperti ini: javac TestExceptions one two three args[0]=one args[1]=two args[2]=three Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 3 at TestExceptions.main(1.java:4) Ubah program TestExceptions untuk menangani exception, keluaran program setelah ditangkap exception-nya akan seperti ini: javac TestExceptions one two three args[0]=one args[1]=two args[2]=three Exception caught: java.lang.ArrayIndexOutOfBoundsException: 3 Quiting... 4.2 Menangkap Exception 2 Melakukan percobaan pada beberapa program yang telah Anda tulis adalah hal yang baik sebelum menghadapi exception. Karena pada program di atas Anda tidak menangkap exception, maka eksekusi dengan mudahnya berhenti mengeksekusi program Anda. Kembali kepada program diatas dan gunakan penanganan exception. Versi 1.3 2|Page PENGENALAN PEMROGRAMAN 2 MODUL PRAKTIKUM Review Konsep Dasar Dalam JAVA Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar 1. Tujuan • • Mengetahui dan menggunakan konsep dasar beorientasi object. • class • object • atribut • method • konstruktor Mengetahui dengan jelas tentang konsep lanjutan berorientasi object dan menggunakannya dengan baik • package • enkapsulasi • abstraksi • pewarisan • polimorfisme • interface • Mengetahui dengan jelas penggunaan kata kunci this, super, final dan static • Membedakan antara method overloading dan method overridding 2. Latar Belakang Sebelum melangkah pada fitur-fitur menarik yang ada pada Java, mari kita meninjau beberapa hal yang telah Anda pelajari pada pelajaran pemograman pertama Anda. Pelajaran ini menyajikan diskusi tentang perbedaan konsep-konsep berorientasi object dalam Java. Desain berorientasi object adalah sebuah teknik yang memfokuskan desain pada object dan class berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan(state), behaviour dan interaksi dari object. Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali software. Versi 1.3 1|Page Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar 3. Percobaan Percobaan 1 Class SuperHero: Percobaan 2 Class Atribut Demo : Versi 1.3 2|Page Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar Percobaan 3 Class method Demo: Percobaan 4 Class Construstor Demo : Versi 1.3 3|Page Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar Percobaan 5 Instantiate sebuah Class: Percobaan 6 Mengakses sebuah object : Versi 1.3 4|Page Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar Percobaan 7 Package : Percobaan 8 Class Enkapsulasi : Versi 1.3 5|Page Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar Percobaan 9 Class Override Demo : Versi 1.3 6|Page Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar Percobaan 10 Class Abstract dan method : Versi 1.3 7|Page Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar Percobaan 11 Class Interface Demo : Percobaan 12 Kata Kunci This : Versi 1.3 8|Page Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar Versi 1.3 9|Page Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar Percobaan 13 Kata Kunci Super : Percobaan 14 Kata Kunci Static : Versi 1.3 10 | P a g e Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar Versi 1.3 11 | P a g e Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar Percobaan 15 Outer Class : Versi 1.3 12 | P a g e Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar 4. Latihan 4.1 Tabel Perkalian Tulis program yang mempunyai masukkan size dari user dan mencetak tabel perkalian dengan size yang ditetapkan. Size untuk tabel perkalian : 5 Tabel perkalian dari size 5: 1 2 3 4 1 1 2 2 4 3 3 6 9 4 4 8 12 16 5 5 10 15 20 4.2 Greatest Common Factor(GCF) Tulis sebuah program yang mempunyai tiga integer dan menghitung nilai GCF dari tiga angka. GCF adalah angka terbesar yang secara rata dibagi ke semua angka yang diberikan. Input 1: 25 Input 1: 1 Input 1: 9 Input 2: 15 Input 2: 2 Input 2: 27 Input 3: 35 Input 3: 3 Input 3: 12 GCF: 5 GCF: 1 GCF: 3 Versi 1.3 13 | P a g e 5 25 Modul Praktikum Review Konsep Dasar dalam Java Modul Praktikum Review Konsep Dasar 4.3 Shape Buatlah class Shape. class memiliki dua field String: name dan size. class mempunyai method printShapeInfo, dimana hanya mengeluarkan nilai name dan field size dari object Shape. Juga memiliki method printShapeName dan printShapeSize, dimana mencetak nama dan size dari object, berturut-turut. Menggunakan pewarisan, buat class Square dengan field yang sama dan method seperti itu dari class Shape. Class ini mempunyai dua tambahan field integer: length dan width. Method printShapeLength dan printShapeWidth yang mencetak panjang dan lebar object yang juga termasuk dalam class ini. Anda juga harus meng-override printShapeInfo untuk mencetak keluaran field tambahan dalam subclass juga. 4.4 Binatang Buatlah interface Animal yang mempunyai tiga method:eat dan move. Semua method ini tidak punya argumen atau nilai return. Method ini hanya mengeluarkan bagaimana object Animal makan dan bergerak. Sebagai contoh, seekor kelinci memakan wortel dan bergerak dengan melompat. Buat class Fish dan Bear yang menggunakan interface Animal. Terserah kepada Anda bagaimana menggunakan method eat dan move. Versi 1.3 14 | P a g e PENGENALAN PEMROGRAMAN 2 MODUL PRAKTIKUM Exception Dan Assertions Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Assertions ModulPraktikum PraktikumException Exception&dan Assertions 1. Tujuan • • • • • • • Menangani exception dengan menggunakan try, catch dan finally Membedakan penggunaan antara throw dengan throws Menggunakan exception class yang berbeda – beda Membedakan antara checked exceptions dan unchecked exceptions Membuat exception class tersendiri Menjelaskan keunggulan penggunaan assertions Menggunakan assertions 2. Latar Belakang Bugs dan error dalam sebuah program sangat sering muncul meskipun program tersebut dibuat oleh programmer berkemampuan tinggi. Untuk menghindari pemborosan waktu pada proses error-checking, Java menyediakan mekanisme penanganan exception. Exception adalah singkatan dari Exceptional Events. Kesalahan (errors) yang terjadi saat runtime, menyebabkan gangguan pada alur eksekusi program. Terdapat beberapa tipe error yang dapat muncul. Sebagai contoh adalah error pembagian 0, mengakses elemen di luar jangkauan sebuah array, input yang tidak benar dan membuka file yang tidak ada. Seluruh exceptions adalah subclasses, baik secara langsung maupun tidak langsung, dari sebuah root class Throwable. Kemudian, dalam class ini terdapat dua kategori umum : Error class dan Exception class. Exception class menunjukkan kondisi yang dapat diterima oleh user program. Umumnya hal tersebut disebabkan oleh beberapa kesalahan pada kode program. Contoh dari exceptions adalah pembagian oleh 0 dan error di luar jangkauan array. Error class digunakan oleh Java run-time untuk menangani error yang muncul pada saat dijalankan. Secara umum hal ini di luar control user karena kemunculannya disebabkan oleh run-time environment. Sebagai contoh adalah out of memory dan harddisk crash. 3. Percobaan Versi 1.3 1|Page Modul Assertions ModulPraktikum PraktikumException Exception&dan Assertions Percobaan 1 : Menangkap Exception Percobaan 2 : Multiple Catch Berikan argument : • Tidak Ada argument, • 1 • 0 Versi 1.3 2|Page Modul Assertions ModulPraktikum PraktikumException Exception&dan Assertions Percobaan 3 : Nested Try Berikan argument : • Tidak Ada argument, • 15 • 15 3 • 15 0 Versi 1.3 3|Page Modul Assertions ModulPraktikum PraktikumException Exception&dan Assertions Percobaan 4 : Nested Try dengan Method Berikan argument : • Tidak Ada argument, • 15 • 15 3 • 15 0 Versi 1.3 4|Page Modul Assertions ModulPraktikum PraktikumException Exception&dan Assertions Percobaan 5 : Demo Keyword Finally Percobaan 6 : Demo Keyword throw Versi 1.3 5|Page Modul Assertions ModulPraktikum PraktikumException Exception&dan Assertions Percobaan 7 : Demo Keyword throws Percobaan 8 : Multiplecatch Exception ERROR Versi 1.3 6|Page Modul Assertions ModulPraktikum PraktikumException Exception&dan Assertions Percobaan 9 : User Defined Exception Percobaan 10 : Assertions Versi 1.3 7|Page Modul Assertions ModulPraktikum PraktikumException Exception&dan Assertions Perintah Kompilasi dan eksekusi : javac –source 1.4 AgeAssert.java java –enableassertions AgeAssert ‘arguments’ Versi 1.3 8|Page Modul Assertions ModulPraktikum PraktikumException Exception&dan Assertions 4. Latihan 4.1 Heksadesimal ke Desimal Tentukan sebuah angka heksadesimal sebagai input. Konversi angka tersebut menjadi bilangan desimal. Tentukan exception class Anda sendiri dan lakukan penanganan jika input dari user bukan berupa bilangan heksadesimal. 4.2 Menampilkan Sebuah Berlian Tentukan nilai integer positif sebagai input. Tampilkan sebuah berlian menggunaakan karakter asterisk (*) sesuai angka yang diinput oleh user. Jika user memasukkan bilangan integer negatif, gunakan assertions untuk menanganinya. Sebagai contoh, jika user memasukkan integer bernilai 3, program Anda harus menampilkan sebuah berlian sesuai bentuk berikut : * *** ***** *** * Versi 1.3 9|Page PENGENALAN PEMROGRAMAN 2 MODUL PRAKTIKUM Tour Dari Package java.lang Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul ModulPraktikum PraktikumTour Tourjava.lang PackagePackage Java.lang 1. Tujuan Menggunakan class-class Java yang telah ada • Math • String • StringBuffer • Wrapper • Process • System 2. Percobaan Percobaan 1 : Demo Method - Method dari Class Math Versi 1.3 1|Page Modul ModulPraktikum PraktikumTour Tourjava.lang PackagePackage Java.lang Percobaan 2 : String Constructor Demo Versi 1.3 2|Page Modul ModulPraktikum PraktikumTour Tourjava.lang PackagePackage Java.lang Percobaan 3 : Demo Method Class String Versi 1.3 3|Page Modul ModulPraktikum PraktikumTour Tourjava.lang PackagePackage Java.lang Percobaan 4 : Demo Method Class String Buffer Percobaan 5 : Class Boolean Wrapper Versi 1.3 4|Page Modul ModulPraktikum PraktikumTour Tourjava.lang PackagePackage Java.lang Percobaan 6 : Class Runtime – Membuka Registry Editor Versi 1.3 5|Page Modul ModulPraktikum PraktikumTour Tourjava.lang PackagePackage Java.lang Percobaan 7 : Demo Class System Versi 1.3 6|Page Modul ModulPraktikum PraktikumTour Tourjava.lang PackagePackage Java.lang 3. Latihan Evaluasi Ekspresi Menggunakan method-method class built-in Math, buatlah sebuah program yang menggunakan nilai double x sebagai inputan dan evaluasilah nilai mutlak dari ekspresi yang mengikuti. x2 * cos(45derajat) + akar(e), e adalah angka Euler. Input: 10 Output: 72.35939938935488 Input: 11 Output: 87.20864179427238 Palindrome Palindrome adalah sebuah string yang membaca sama ketika mengarah ke depan atau sebaliknya. Beberapa contoh dari palindrome : hannah, ana, and bib. Menggunakan String atau class StringBuffer, buatlah sebuah program yang menggunakan satu string sebagai inputan dan tentukan jika ini sebuah palindrome atau bukan. Notepad Menggunakan class Process and Runtime, bukalah aplikasi notepad dari program java. Versi 1.3 7|Page PENGENALAN PEMROGRAMAN 2 MODUL PRAKTIKUM Aplikasi Berbasis Text Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Text Based Application 1. Tujuan • • • • 2. Mendapatkan input dari command-line Mengetahui cara untuk memanipulasi properties dari sistem Membaca standart input Membaca dan menulis file Percobaan Percobaan 1 : Standart Input – Membaca Karakter Versi 1.3 1|Page Modul Praktikum Text Based Application Percobaan 2 : Membaca Keseluruhan String Versi 1.3 2|Page Modul Praktikum Text Based Application Percobaan 3 : Membaca File Versi 1.3 3|Page Modul Praktikum Text Based Application Percobaan 4 : Menulis File Versi 1.3 4|Page Modul Praktikum Text Based Application 3. Latihan 3.1 Spasi menjadi Underscore ( _ ) Buatlah sebuah program yang memuat dua String sebagai argument, sumber dan nama file tujuan. Kemudian, baca file sumber dan tuliskan isi dari file tersebut terhadap file tujuan, seluruh spasi yang ada (‘ ‘) diubah menjadi underscore (‘ _ ‘). Versi 1.3 5|Page PENGENALAN PEMROGRAMAN 2 MODUL PRAKTIKUM Abstract Windowing Toolkit dan Swing Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum AWT & Swing 1. Tujuan • • • • • • 2. Memahami persamaan dan perbedaan antara AWT dan Swing Perbedaan antara komponen dan kontainer. Mendesain aplikasi GUI menggunakan AWT. Mendesain aplikasi GUI menggunakan Swing. Menjelaskan tentang flow layout, border layout, dan grid layout dalam komponen GUI Membuat tampilan yang komplek dalam mendesain aplikasi GUI. Latar Belakang Tanpa mempelajari tentang grapichal user interface (GUI) API, Anda masih tetap bisa membuat suatu program. Tetapi, program Anda akan kelihatan tidak menarik dan tidak nyaman digunakan bagi para user. Memiliki GUI yang baik dapat memberi efek pada penggunaan aplikasi. Java menyediakan banyak tool seperti Abstract Windowing Toolkit dan Swing untuk mengembangkan aplikasi GUI yang interaktif. The Java Foundation Class (JFC), merupakan bagian penting dari Java SDK, yang termasuk dalam koleksi dari API dimana dapat mempermudah pengembangan aplikasi JAVA GUI. JFC termasuk diantara 5 bagian utama dari API yaitu AWT dan Swing. Tiga bagian yang lainnya dari API adalah Java2D, Accessibility, dan Drag and Drop. Semua itu membantu developer dalam mendesain dan mengimplementasikan aplikasi dengan visualisasi yang lebih baik. AWT dan Swing menyediakan komponen GUI yang dapat digunakan dalam membuat aplikasi Java dan applet. Anda akan mempelajari applet pada bab berikutnya. Tidak seperti beberapa komponen AWT yang menggunakan native code, keseluruhan Swing ditulis menggunakan bahasa pemrograman Java. Swing menyediakan implementasi platform-independent dimana aplikasi yang dikembangkan dengan platform yang berbeda dapat memiliki tampilan yang sama. Begitu juga dengan AWT menjamin tampilan look and feel pada aplikasi yang dijalankan pada dua mesin yang berbeda menjadi terlihat sama. Swing API dibangun dari beberapa API yang mengimplementasikan beberapa jenis bagian dari AWT. Kesimpulannya, komponen AWT dapat digunakan bersama dengan komponen Swing. Versi 1.3 1|Page Modul Praktikum AWT & Swing 3. Percobaan Percobaan 1 Menampilkan Frame : Versi 1.3 2|Page Modul Praktikum AWT & Swing Percobaan 2 Menampilkan Panel : Versi 1.3 3|Page Modul Praktikum AWT & Swing Percobaan 3 Menampilkan Frame Control : Versi 1.3 4|Page Modul Praktikum AWT & Swing Versi 1.3 5|Page Modul Praktikum AWT & Swing Percobaan 4 Menampilkan Flow Layout Demo: Percobaan 5 Menampilkan Border Layout Demo: Versi 1.3 6|Page Modul Praktikum AWT & Swing Percobaan 6 Menampilkan Grid Layout Demo: Versi 1.3 7|Page Modul Praktikum AWT & Swing Percobaan 7 Menampilkan Complex Layout: Versi 1.3 8|Page Modul Praktikum AWT & Swing Percobaan 8 Menampilkan Swing Demo: Versi 1.3 9|Page Modul Praktikum AWT & Swing Percobaan 9 Menampilkan JOption Demo: Versi 1.3 10 | P a g e Modul Praktikum AWT & Swing Versi 1.3 11 | P a g e Modul Praktikum AWT & Swing 4. Latihan Buatlah tampilan GUI untuk program tic-tac-toe. Papannya terdiri dari enam kotak. Ingatlah bahwa Anda akan menambahkan kode ini pada tahap akhir untuk mengatasi interaksi antar pengguna. Jadi, desainlah papan Anda dengan benar. Pastikanlah Anda memilih komponen yang pantas untuk papan tersebut. Keluarkan semua sisi artistik Anda. Anda dapat menggunakan AWT atau Swing untuk latihan ini. Gambar 1.5.1: papan Tic-Tac-Toe Versi 1.3 12 | P a g e PENGENALAN PEMROGRAMAN 2 MODUL PRAKTIKUM GUI Event Handling Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum GUI Event Handling 1. Tujuan • • • • • 2. Menerangkan komponen-komponen delegation event model Mengerti bagaimana delegation event model bekerja Menciptakan aplikasi GUI yang berinteraksi dengan user Mendiskusikan manfaat dari class-class adapter Mendiskusikan keuntungan-keuntungan dari menggunakan anonymous class inner dan Latar Belakang Pada modul ini, Anda akan belajar bagaimana mengendalikan events triggered ketika user berinteraksi dengan aplikasi GUI Anda. Setelah menyelesaikan modul ini, Anda akan dapat mengembangkan aplikasi GUI yang dapat merespon interaksi user. Delegasi event model menguraikan bagaimana program Anda dapat merespon interaksi dari user. Untuk memahami model, mari kita pelajari pertama-tama melalui tiga komponen utamanya. 1. Event Source The event source mengacu pada komponen GUI yang meng-generate event. Sebagai contoh, jika user menekan tombol, event source dalam hal ini adalah tombol. 2. Event Listener/Handler The event listener menerima berita dari event-event dan proses-proses interaksi user. Ketika tombol ditekan, listener akan mengendalikan dengan menampilkan sebuah informasi yang berguna untuk user. 3. Event Object Ketika sebuah event terjadi (misal, ketika user berinteraksi dengan komponen GUI), sebuah object event diciptakan. Object berisi semua informasi yang perlu tentang event yang telah terjadi. Informasi meliputi tipe dari event yang telah terjadi, seperti ketika mouse telah di-klik. Ada beberapa class event untuk kategori yang berbeda dari user action. Sebuah event object mempunyai tipe data mengenai salah satu class ini. Versi 1.3 1|Page Modul Praktikum GUI Event Handling 3. Percobaan Percobaan 1 Mouse Event Demo : Versi 1.3 2|Page Modul Praktikum GUI Event Handling Percobaan 2 Close Frame : Versi 1.3 3|Page Modul Praktikum GUI Event Handling Percobaan 3 Close Frame dengan Command Listener tertentu : Versi 1.3 4|Page Modul Praktikum GUI Event Handling Percobaan 4 Close Frame dengan Inner Class: Versi 1.3 5|Page Modul Praktikum GUI Event Handling Percobaan 5 Anonymous Inner class: Versi 1.3 6|Page Modul Praktikum GUI Event Handling 4. Latihan 4.1 Tic-Tac-Toe Extend program papan Tic-Tac-Toe yang telah Anda kembangkan sebelumnya dan tambahkan event handlers ke kode tersebut untuk membuat program berfungsi penuh. Permainan Tic-Tac-Toe dimainkan dengan dua pemain. Pemain mengambil giliran mengubah. Setiap giliran, pemain dapat memilih kotak pada papan. Ketika kotak dipilih, kotak ditandai oleh simbol pemain (O dan X biasanya digunakan sebagai simbol). Pemain yang sukses menaklukkan 3 kotak membentuk garis horisontal, vertikal, atau diagonal, memenangkan permainan. Permainan akan berakhir ketika pemain menang atau ketika semua kotak telah terisi. Gambar 8.2 : Program Tic-Tac-Toe Versi 1.3 7|Page PENGENALAN PEMROGRAMAN 2 MODUL PRAKTIKUM Thread Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Threads 1. Tujuan • • • • • • • • 2. Mendefiniskan threads Mengerti perbedaan state dalam threads Mengerti konsep prioritas dalam threads Mengetahui bagaimana menggunakan method didalam class Thread Membuat sendiri sebuah thread Menggunakan sinkronisasi pada thread yang bekerja bersama-sama dan saling bergantung satu dengan yang lainya Memungkinkan thread untuk dapat berkomunikasi dengan thread lain yang sedang berjalan Mengerti dan menggunakan kemampuan concurency Latar Belakang Pada bab-bab sebelumnya Anda terbiasa untuk membuat program yang berururutan/sekuensial. Sebuah program sekuensial berarti sebuah program yang hanya memiliki satu aliran eksekusi. Setiap eksekusi, ia memiliki sebuah titik awal eksekusi, kemudian sebuah sekuen eksekusi, dan kemudian berakhir. Selama runtime, pasti hanya satu proses yang telah dieksekusi. Bagaimanapun juga, di dunia nyata, pasti dibutuhkan sesuatu yang dapat mengatur proses yang terjadi dan berjalan bersama-sama.Oleh karena itu, thread hadir untuk menjadi solusi dalam mengatasi permasalahan tersebut.Sebuah thread merupakan sebuah pengontrol aliran program. Untuk lebih mudahnya, bayangkanlah thread sebagai sebuah proses yang akan dieksekusi didalam sebuah program tertentu. Penggunaan sistem operasi modern saat ini telah mendukung kemampuan untuk menjalankan beberapa program. Misalnya, pada saat Anda mengetik sebuah dokumen di komputer Anda dengan menggunakan text editor, dalam waktu yang bersamaan Anda juga dapat mendengarkan musik, dan surfing lewat internet di PC Anda. Sistem operasi yang telah terinstal dalam computer Anda itulah yang memperbolehkan Anda untuk menjalankan multitaskting. Seperti itu juga sebuah program (ibaratkan di PC Anda), ia juga dapat mengeksekusi beberapa proses secara bersama-sama(ibaratkan beberapa aplikasi berbeda yang bekerja pada PC Anda). Sebuah contoh aplikasi adalah HotJava browser yang memperbolehkan Anda untuk browsing terhadap suatu page, bersamaan dengan mendownload object yang lain, misalnya gambar, memainkan animasi, dan juga file audio pada saat yang bersamaan. Versi 1.3 1|Page Modul Praktikum Threads 3. Percobaan Percobaan 1 Counter Down Demo : Percobaan 2 Menulis Object Threads sebanyak 100 x : Versi 1.3 2|Page Modul Praktikum Threads Percobaan 3 Implementasi interface Runnable : Versi 1.3 3|Page Modul Praktikum Threads Percobaan 4 Contoh penggunaan method Join: Versi 1.3 4|Page Modul Praktikum Threads Percobaan 5 Mencetak String tanpa sinkronisasi: Versi 1.3 5|Page Modul Praktikum Threads Percobaan 6 Sinkronisasi pertama: Versi 1.3 6|Page Modul Praktikum Threads Percobaan 7 Sinkronisasi kedua: Versi 1.3 7|Page Modul Praktikum Threads Percobaan 8 Produser-Consumer Test: Versi 1.3 8|Page Modul Praktikum Threads Percobaan 9 Produser-Consumer Test Modifikasi: Versi 1.3 9|Page Modul Praktikum Threads 4. Latihan 4.1 Banner Dengan menggunakan AWT atau Swing, buatlah sebuah banner sederhana yang akan mencetak string yang dituliskan oleh user. String ini akan ditampilkan secara terus menerus dan program Anda harus memberikan ilustrasi bahwa string tersebut bergerak dari kiri ke kanan. Untuk memastikan bahwa proses perpindahannya tidak terlalu cepat, Anda sebaiknya menggunakan method sleep dari class Thread. Berikut ini adalah sebuah contoh dimana Anda menuliskan ”Your name here!”. Gambar 1.6.1: Contoh pergerakan string Versi 1.3 10 | P a g e PENGENALAN PEMROGRAMAN 2 MODUL PRAKTIKUM Jaringan Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Jaringan 1. • Tujuan Mengerti konsep dasar jaringan • • • • • • Membuat aplikasi menggunakan paket jaringan Java µ µ µ µ 2. IP address protokol ports client/server socket ServerSocket Socket MulticastSocket DatagramPacket Latar Belakang Java mengijinkan anda untuk mempermudah mengembangkan aplikasi yang mengerjakan berbagai pekerjaan melalui jaringan. Ini adalah suatu cita-cita pembuatan Java yang menjadi salah satu kekuatan Java sejak dibuat dengan internet di dalam cita-cita. Sebelum mempelajari tentang jaringan dalam Java. Pertama-tama anda akan diperkenalkan kepada beberapa konsep dasar jaringan. Jika sebelumnya anda suda mengetahui, internet adalah jaringan global dengan berbagai jenis komputer yang berbeda yang tersambung dalam berbagai jalan. Walaupun terdapat perbedaan dalam software dan hardware yang disambung bersama, hal tersebut sangatlah bagus dimana internet masih berfungsi. Hal ini memungkinkan karena standar komunikasi memiliki ketetapan dan juga keselarasan. Standar ini menjamin kesesuaian dan kekuatan komunikasi diantara luasnya sistem pada internet. 3. Percobaan Percobaan 1 Koneksi Server: Versi 1.3 1|Page Modul Praktikum Jaringan Versi 1.3 2|Page Modul Praktikum Jaringan Percobaan 2 Koneksi Client: Versi 1.3 3|Page Modul Praktikum Jaringan 4. Latihan 4.1 Trivia Server Buatlah sebuah server yang berisi satu set pertanyaan yang mudah. Secara sederhana, akan ada sekitar 5-10 pertanyaan. Client yang terhubung ke server mengirim sebuah permintaan untuk sebuah pertanyaan atau jawaban sebuah pertanyaan, Client mengirim pesan “permintaan”. Untuk jawaban dari sebuah pertanyaan, client mengirim pesan “jawaban”. Ketika menerima pesan “permintaan”, secara acak server akan memilih satu pertanyaan dari koleksi yang ada. Dia mengirimkan pertanyaan yang dipilih sesuai dengan nomor yang bersangkutan kepada client. Ketika server menerima pesan “jawaban” dari client, dia menginformasikan user bahwa user perlu mengirimkan jawaban sesuai dengan nomor pertanyaan kepada server. Jawaban itu harus dalam format <no pertanyaan>#<jawaban Anda>. Berikut adalah contoh skenario : Client: "permintaan" Server: "3#Siapa pembuat Java?" Client: "jawaban" Server: "Berikan jawabanmu dengan format: <nomor pertanyaanr>#<jawaban Anda>" Client: "3#James Gosling" Server: Kerja yang bagus! ... Versi 1.3 4|Page Modul Praktikum Jaringan Versi 1.3 5|Page PENGENALAN PEMROGRAMAN 2 MODUL PRAKTIKUM Applet Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Applet 1. Tujuan µ mendefinisikan apa yang dimaksud dengan applet µ Membentuk applet anda sendiri µ Mengetahui siklus yang terdapat pada applet • • • • init start stop destroy µ menggunakan methods applet yang lain • paint • showStatus • Methods untuk memainkan sebuah audio clip µ Memahami html tag pada applet 2. Latar Belakang Applets adalah satu dari fitur yang paling menarik dalam java. Applet merupakan program yang Anda jalankan melalui web browser. Anda akan belajar tentang membentuk applet pada pembelajaran ini. Sebuah applet adalah tipe yang spesial dari program java yang dieksekusi melalui internet. Secara khusus berjalan pada suatu web browser seperti Netscape Navigator, Mozilla, atau Microsoft Internet Explorer. Bagaimanapun, jika dibandingkan dengan aplikasi Java yang normal, tidak diijinkan mengakses applet pada komputer yang mana dijalankan untuk alasan keamanan. Applet ini cukup terbatas jika dibandingkan dengan aplikasi java. Pada module ini, Anda akan mempelajari tentang membuat applet menggunakan AWT. Versi 1.3 1|Page Modul Praktikum Applet 3. Percobaan Percobaan 1 String Hello World : Percobaan 2 Life Cycle Demo: Versi 1.3 2|Page Modul Praktikum Applet Percobaan 3 Menampilkan ShowStatus : Versi 1.3 3|Page Modul Praktikum Applet Percobaan 4 Memainkan file audio: Versi 1.3 4|Page Modul Praktikum Applet Percobaan 5 Menampilkan String HelloWorld dengan parameter: 4. Latihan Tic-Tac-Toe Applet satu-player Buat game satu-player Tic-Tac-Toe. User memainkannya melawan komputer. Untuk setiap giliran, pemain harus menggeser kotak dari papan. Sekali sebuah kotak terpilih, kotak tersebut ditandai oleh symbol pemain (O dan X yang selalu digunakan sebagai simbol). pemain yang berhasil mengatasi 3 kotak membentuk baris horizontal, vertical atau diagonal memenangkan game ini. Game ini berakhir ketika pemain menang atau ketika semua kotak sudah berhasil dibentuk. Desain dan gerakan komputer seakan-akan user akan memenangkan pertandingan melawan komputer. Versi 1.3 5|Page PENGENALAN PEMROGRAMAN 2 MODUL PRAKTIKUM I/O Stream Lanjutan Versi 1.3 JAVA EDUCATION NETWORK INDONESIA Modul Praktikum Stream I/O Lanjut 1. Tujuan • Tahu tipe-tipe stream yang umum digunakan • Menggunakan class File dan methodnya • Karakter dan Stream byte • Input dan Output Streams • Node dan Filter Streams • Menggunakan class-class Input/Output yang berbeda • Reader • Writer • InputStream • OutputStream • Memahami konsep dari stream chaining • Mendefinisikan serialisasi • Memahami penggunaan dari kata kunci transient • Menulis dan membaca dari sebuah object stream 2. Latar Belakang Dalam module sebelumnya, Anda telah mempelajari bagaimana untuk mendapatkan input user dan memanipulasi file-file menggunakan strea. Kini Anda akan mempelajari lebih banyak tentang stream dan class-class stream yang lain. Tipe-Tipe Stream yang Umum Digunakan Stream Karakter dan Byte Seperti yang elah disebutkan sebelumnya, secara umum ada dua tipe dari stream, yaitu stream karakter dan byte. Kita hanya mengulang perbedaan mendasar antara keduanya. Stream byte adalah abstraksi file atau alat untuk data biner sedangkan stream karakter adalah untuk karakter Unicode. Class InputStream adalah abstraksi class root untuk semua input stream byte sedangkan class OutputStream adalah class root abstraksi dari semua output stream byte. Untuk stream karakter, superclasss yang sesuai dari semua class-class secara berturut-turut adalah class Reader dan the Writer. Kedua class-class ini adalah abstraksi classclass untuk membaca dan menulis stream karakter. Input dan Output Stream Stream juga dikategorikan berdasarkan apakah mereka digunakan untuk membaca atau menulis stream.Walaupun ini sudah cukup nyata, izinkan saya untuk mendefinisikan tipe stream ini. Anda diijinan untuk membaca dari input stream tapi tidak menulisnya. Di lain pihak, Anda diijinkan untuk menulis output streams tapi tidak membacanya. Class InputStream dan class Reader adalah superclass-superclass dari semua input stream. Class OutputStream dan class Writer adalah class-class root dari semua output stream. Input stream Versi 1.3 1|Page Modul Praktikum Stream I/O Lanjut juga dikenal sebagai stream sumber (source stream) sejak kita memperoleh informasi dari stream ini. sementara itu output stream disebut juga stream hasil(sink stream). Node dan Stream Filter Kini package java.io membedakan antara node dan stream filter. Sebuah stream node adalah sebuah stream dengan fungsi dasar berupa fungsi membaca atau menulis dari sebuah lokasi khusus seperti pada disk atau dari jaringan. Tipe-tipe dari stream node terdiri atas file, memory dan jalur data. Stream filter, di lain pihak, diletakkan pada layer stream node diantara threads atau proses untuk menyediakan fungsi tambahan yang tidak dapat ditemukan dalam stream node oleh stream node itu sendiri. Penambahan lapisan pada sebuah stream node disebut dengan stream chaining. Sesi ini berturut-turut mempunyai sebuah tujuan dariclass-class stream yang berbeda. Untuk melengkapi daftar dari class-class ini, silahkan melihat dokumentasi Java's API. 3. Percobaan Percobaan 1 Informasi File atau Folder: Versi 1.3 2|Page Modul Praktikum Stream I/O Lanjut Versi 1.3 3|Page Modul Praktikum Stream I/O Lanjut Percobaan 2 File Terkopi: Versi 1.3 4|Page Modul Praktikum Stream I/O Lanjut Percobaan 3 File Terkopi : Versi 1.3 5|Page Modul Praktikum Stream I/O Lanjut Percobaan 4 File Terkopi: Versi 1.3 6|Page Modul Praktikum Stream I/O Lanjut Percobaan 5 Character Dari File tercetak: Versi 1.3 7|Page Modul Praktikum Stream I/O Lanjut Percobaan 6 Terbentuk File Boolean.ser: Versi 1.3 8|Page Modul Praktikum Stream I/O Lanjut Percobaan 7 Unserialized Boolean: Versi 1.3 9|Page Modul Praktikum Stream I/O Lanjut 4. Latihan 4.1.Enkripsi Sederhana Baca dari sebuah file khusus oleh user dan encrypt isi file menggunakan teknik penggeseran yang sederhana. Juga, tanyakan pada user untuk menginput ukuran pergeseran. Output dari pesan yang telah di encrypt pada file yang lain yang memiliki nama yang juga dibuat oleh user sendiri. Sebagai contoh, Ukuran pergeseran: 1 Pesan yang dibaca dari file: Hello Pesan ter-encrypt: Ifmmp Versi 1.3 10 | P a g e