MODUL I Installasi Netbenas dan Setting Path 1. Tujuan Pembelajaran 1.

Praktikan dapat melakukan instalasi dan setting Java Development Kit. 2. Praktikan dapat menggunakan Jcreator sebagai editor pemrograman 3. Praktikan dapat menjalankan (eksekusi) program Java sederhana yang ditulis dengan editor JCreator. 2. Teori Singkat Untuk menulis program JAVA dapat digunakan berbagai editor, bahkan editor paling sederhana (seperti Notepad pun dapat digunakan. Namun pada umumnya, agar penulisan program lebih terarah, beberapa editor telah disediakan untuk membantu para programmer. Beberapa editor atau IDE (Integrated Development Environment) yang telah ada untuk Java, antara lain: NetBeans (open source- Common Development and Distribution License (CDDL)) b. NetBeans yang disponsori Sun Microsystems, yang dilengkapi dengan GUI Editor. c. Eclipse JDT (open source- Eclipse Public License) d. Eclipse dibuat dari kerja sama antara perusahaan-perusahaan anggota 'Eclipse Foundation' (beserta individu-individu lain). Banyak nama besar yang ikut dalam 'Eclipse Foundation', termasuk IBM, BEA, Intel, Nokia, Borland. Eclipse bersaing langsung dengan Netbeans IDE. Plugin tambahan pada Eclipse jauh lebih banyak dan bervariasi dibandingkan IDE lainnya. e. IntelliJ IDEA (commercial, free 30-day trial) f. Oracle JDeveloper (free) g. Xinox JCreator (ada versi berbayar maupun free) h. JCreator ditulis dalam C/C++ sehingga lebih cepat (dan menggunakan memori lebih sedikit) dari kebanyakan IDE lain. 3. Latihan Instalasi Sebelum memulai pemrograman Java, kita harus menginstal Java Development Kit (JDK) yang disediakan secara gratis oleh Sun Microsystem. Java Development Kit tersedia dan dapat didownload pada situs Java Sun Microsystem, yaitu: http://java.sun.com. Java 1.6 untuk berbagai platform tersedia pada situs tersebut. Untuk menginstal software Java dapat dilakukan dengan menjalankan file yang mengekstrak sendiri. Terdapat dua pilihan cara, yaitu: Menjalankan installer dari perintah MS DOS, dan Melakukan double-click ikon jdk-6u11-windows-i586-p.exe Installer yang mengekstrak file JDK akan membuat direktori yang diperlukan, dan sekaligus menyalin file-file ke dalam direktori tersebut. Installshield Wizard memberikan tampilan bahwa Java siap diinstalasi. Setting Variabel Path Pada saat program MS DOS dieksekusi, secara otomatis mencari direktori yang ada untuk file target. Jika program atau file batch tidak tersedia dalam direktori yang ada, maka akan mencari semua drive dan direktori lainnya
1

a.

dalam variable path system. Dalam pengembangan Java, tidak diperlukan variable path jika semua software yang diperlukan terdapat dalam direktori yang ada. Namun akan lebih mudah apabila dilakukan setting variable path agar sistem secara otomatis mencari file yang diperlukan. Dalam hal ini, path adalah drive dan direktori dimana java.exe, javac.exe, dan aplikasi pengembangan lain ditempatkan. Apabila tidak dipilih direktori default, maka path adalah direktori yang dipilih pada saat instalasi. Perintah path sistem DOS biasanya terdapat dalam file autoexec.bat, yang dieksekusi selama sistem startup. Alternatif lain adalah, path dapat dimasukkan dari baris perintah MS DOS dengan sintaks sebagai berikut: PATH=[drive:][path];[drive:][path]…] Apabila digunakan sistem operasi windows dengan JDK versi 1.5 atau yang lebih baru, maka setting variabel path tidak diperlukan lagi. Untuk pelaksanaan praktikum Pemrograman Berorientasi Objek nanti, digunakan JDK versi 1,6 sehingga proses instalasi tidak akan dilakukan. Namun apabila digunakan versi lama, maka diperlukan langkah-langkah setting sebagai berikut: 1. Klik kanan pada “My Computer” lalu klik properties. Kemudian klik “Advanced” lalu klik “Environment Variables” ( Gambar 1.1). 2. Pada System Variables, pilih ”path” lalu klik edit ( Gambar 1.2). 3. Pada “variable value” tambahkan path dimana direktori bin nya Java diletakkan. Lalu klik OK (Gambar 1.3).

Gambar 1.1 Setting JDK pada Windows (langkah-1).

2

Gambar 1.2 Setting JDK pada Windows (langkah-2).

Gambar 1.3 Setting JDK pada Windows (langkah-3). Bila JDK yang digunakan adalah versi 1.5 atau yang terbaru, maka setting variabel path tidak diperlukan.

NetBeans IDE 6.9 Pada praktikum Pemrograman Berorientasi Objek ini akan digunakan NetBeans sebagai editor pemrograman. Berikut langkah-langkah penggunaan NetBeans. 1. Setelah masuk ke NetBeans maka akan terlihat tampilan seperti pada Gambar 1.4.

Gambar 1.4 Tampilan awal NetBeans IDE 6.9.

3

pada bagian menu (Gambar 1. Gambar 1.5). pilih file – New Project.5 Membuat project baru. Untuk memulai membuat project baru.2. Sebagai latihan berikan nama project dengan hello_world.6 Memilih kategori project.6). Gambar 1.7 Memberi nama pada project. Kemudian pada saat bagian choose project Categoty pilih java.. dan pada bagian Projects pilih Java Application (Gambar 1. 4 .7. 4. Selanjutnya masukkan project name dan project location seperti terlihat pada Gambar 1. 3. Selanjutnya klik next untuk masuk ke langkah selanjutnya. Gambar 1..

2 Program sederhana Pada project hello_world yang dibuat tambahkan perintah sebagai berikut: System. NetBeans akan secara otomatis memberikan ekstensi-nya. dapat diberikan nama yang berbeda dari Project Name nya.Pada bagian create main class.Main atau .out. 1. pada baris ke-19.Java. akan dijelaskan lebih lanjut pada praktikum berikutnya yang membahas khusus tentang pembuatan class. Dengan demikian sebuah project baru telah berhasil dibuat. Tidak perlu menambahkan . klik finish. 5 .9 Program utama hello_world.3. Gambar 1.9. Untuk pembuatan class baru. Gambar 1. Project hello_world yang dibuat seperti terlihat pada Gambar 1. Setelah selesai.println("Hello World!").8.8 Tampilan awal project hello_world. Sehingga program yang terbentuk seperti pada Gambar 1.

Modifier public diperlukan agar program dapat dikompilasi dengan baik. } Ada beberapa modifier pada JAVA. 6 . Tanda /* diletakkan pada awal kalimat. Pada JAVA.10 Hasil eksekusi program hello_world. biasanya kita memberikan beberapa komentar pada program yang kita buat.. private dan protected.Hasilnya dapat dilihat pada window output dengan hasil sebagaimana terlihat pada Gambar 1.. Syntax utama untuk program yang ditulis dengan JAVA adalah: [modifier][class] nama_class { . dan tanda */ ditulis diakhir kalimat. c. Bagian ini merupakan bagian utama yang ditempatkan pada bagian awal pada program JAVA. args merupakan array argumen yang dapat ditambahkan pada saat mengunakan command JAVA untuk menjalankan program JAVA. static menunjukkan tipe method. String merupakan tipe argumen yang akan diterima sebagai parameter dari command JAVA. program dapat dieksekusi dengan klik tombol . Tanda ini digunakan untuk memberikan komentar dalam satu baris. Tanda ini digunakan untuk memberikan komentar yang ditulis dalam beberapa kalimat. b. main merupakan nama method utama program JAVA. b. Komentar dengan menggunakan tanda //. void menunjukkan bahwa method tidak mengembalikan nilai atau objek. Perintah untuk menampilkan “Hello World” pada layar monitor. yaitu public. Selanjutnya. Tanda // diletakkan pada awal baris. Gambar 1.10.keterangan: a. Komentar dengan menggunakan tanda /* dan */. untuk membuat komentar dapat dilakukan dengan cara: a. Penambahan komentar Untuk membantu mengingat arti (tujuan) penulisan serangkaian kode yang telah ditulis.

Raya Jendrall sudirman No.33012.Telp : 0324-6575757 Email : samsul@gmail.980 Alamat : Jl.11 Penambahan komentar pada program 4.com Data bisa diganti dengan data anda 7 . Tugas 1.Gambar 1.45 Pamekasan No. Buatlah sebuah program yang mencetak data berikut : Nama : samsul arifin NPM : 08.

x2. 2. ‘S’. Dalam memberikan nama variabel. Syntax: [tipe_data] [nama_variabel] Beberapa tipe data yang dapat digunakan akan dibahas pada subbagian berikut. Bersifat case sensitive (membedakan antara huruf kapital dan huruf kecil). Tipe Data. dan Operator 1.1. Variabel diberi nama tertentu yang menunjukkan domain yang diwakilinya. dll. Contoh: int x1. Sebelum digunakan dalam aplikasi. 3. seperti: ‘A’. Panjang karakter nama variabel tidak dibatasi. Nama variabel diawali dengan huruf.2. Selanjutnya dapat diikuti oleh karakter lain.MODUL 2 Variabel.golDarah. +). 2. nol. Data yang memiliki tipe data ini ditulis dengan diapit tanda petik ganda. ‘?’. 2. ada beberapa ketentuan yang harus diperhatikan yaitu: a. Jumlah = x1 + x2. seperti: if. Praktikan mampu menggunakan berbagai operator dan mengimplementasikannya dalam pemrograman. Tidak diperbolehkan menggunakan kata-kata kunci yang digunakan pada java. c. Teori Singkat 2. Variabel Variabel adalah nama dari suatu lokasi di memori yang digunakan untuk menyimpan data sementara. selain operator (*. Praktikan dapat membuat variabel dengan benar.2. dll. for.2 Integer Tipe data integer merupakan bilangan bulat (positif. diberikan dengan tipe data char. while. Contoh: String nama. Tipe Data 2. Data yang tersimpan dalam variabel memiliki tipe tertentu. Data yang memiliki tipe data ini ditulis dengan diapit tanda petik tungal. atau negatif). tanda garis bawah ( underscore) atau tanda dolar ($). Tujuan Pembelajaran: 1. String adalah kumpulan dari beberapa karakter . b.1 Karakter Karakter tunggal. 8 .2. golDarah = ’0’. Jumlah. -. Char berbeda dengan String . d. nama = ”arwan”. 2. suatu variabel harus dideklarasikan terlebih dahulu. Praktikan mampu menggunakan berbagai tipe data dalam berbagai kepentingan.

1 berikut menunjukkan operasi aritmetik untuk nilai A=100 dan B=30.3 Floating Point Untuk merepresentasikan data pecahan (bukan integer) dapat digunakan dua macam tipe data. float Rata2. 9 . Contoh: boolean Selesai.3. Operator 2. short atau long yang masing-masing dibedakan oleh panjang memori yang ditempatinya.2. 2.1 Operator Aritmetik Operator-operator aritmetik di Java seperti pada umumnya terdiri-dari: penjumlahan (+).3. perkalian (*).4 Boolean Tipe data boolean hanya memiliki dua kemungkinan nilai yaitu benar atau salah. • Byte menempati lokasi sebesar 1 byte. PanjangJalur = 1. pengurangan (-). Selesai = true.2. yaitu float atau double. maka hasilnya seperti terlihat pada Gambar 2. Kode program pada Gambar 2. dan modulo (%). • Short menempati lokasi memori sebesar 2 byte • Int menempati lokasi memori sebesar 4 byte • Long menempati lokasi memori sebesar 8 byte 2. pembagian (/).5E3. Rata2 = (x1 + x2)/2. bilangan integer juga dapat memiliki tipe data byte. 2.Selain Int. x2. double PanjangJalur.2. Contoh: Int x1. Apabila program tersebut dieksekusi. Tipe data float memiliki panjang lokasi penyimpanan sebesar 4 byte sedangkan double sepanjang 8 byte.

out.Gambar 2. // B = B-1 C += step. dapat disingkat menjadi x-• x = x + 3. seperti: • x = x + 1. amatilah hasilnya. Di samping operator-operator dasar tersebut. // nilai awal int step=3. Selanjutnya. C=0. // kenaikan A++. D=0. pernyataan_increment.1 Contoh program dengan menggunakan operator aritmetik. // D = D-step // tampilkan hasil System. // C = C+step D -= step. ada beberapa cara singkat untuk menuliskan operator aritmetika.2 Output program operator_aritmetik.println("A = A+1 -> "+A). B=10. 10 . // A = A+1 B--. dapat disingkat menjadi x++ • x = x – 1. eksekusi project tersebut. Tunjukkanlah hasil output yang dihasilkan apabila pernyataan pada baris ke16 diganti dengan: float bagi = A/B. dapat disingkat menjadi x+=3 • x = x – 5. Gambar 2. dapat disingkat menjadi x-=3 Coba tulislah kode program di bawah ini dalam project bernama . int A=10.

2. System. System.3 Contoh program dengan menggunakan operator relasi.4.2 Operator Relasi Operator relasi digunakan dalam ekspresi boolean yang akan menghasilkan nilai boolean guna menentukan langkah eksekusi blok pernyataan tertentu.3 berikut menunjukkan operasi relasi untuk nilai A=100 dan B=30.out. Kode program pada Gambar 2.out.1. maka hasilnya seperti terlihat pada Gambar 2.System. 11 .1 Operator Relasi Symbol > < >= <= == != Keterangan Lebih Dari Kurang Dari Lebih Dari atau Sama Dengan Kurang Dari atau Sama Dengan Sama Dengan Tidak Sama Dengan Gambar 2. Apabila program tersebut dieksekusi.out.println("C = C+step -> "+C).3. Beberapa operator logika dapat dilihat pada Tabel 2. Tabel 2.println("B = B-1 -> "+B).println("D = D-step -> "+D).

4 Output program operator_relasi. 2. maka hasilnya seperti terlihat pada Gambar 2.3 Operator Logika Operator logika digunakan juga dalam ekspresi boolean yang akan menghasilkan nilai boolean guna menentukan langkah eksekusi blok pernyataan tertentu.Gambar 2. Kode program pada Gambar 2.3.6. OR (||) atau NOT (!). Gambar 2. Gambar 2.6 Output program operator_logika.5 Contoh program dengan menggunakan operator logika. 12 .5 menunjukkan operasi logika untuk A=true dan B=false. Beberapa operator logika seperti AND (&&). Apabila program tersebut dieksekusi.

Latihan Lakukan ujicoba pada program diatas sebagai bentuk latihan kemudian lakukan analisa 4. Tugas a. b. Buatlah sebuah program yang melibatkan proses casting nilai pada sebuah variabel. 13 . Buatlah program kalkulator serhana yang mengimplementasikan beberapa operator yang sudah dijelaskan. Buatlah sebuah program untuk yang menampilakan hasil operasi dasar logika AND OR dan NOT c.3.

Teori Singkat Conditional Statement Dalam pemrograman seringkali dibutuhkan eksekusi blok pernyataan jika dipenuhi kondisi tertentu.1 terlihat bahwa blok pernyataan A akan dieksekusi jika kondisi D bernilai benar. Gambar 3. Praktikan mampu menggunakan berbagai conditional statement dalam berbagai kebutuhan. Flowchart ini digunakan untuk memberikan informasi kepada pengguna tentang status tekanan darahnya. Kondisi yang diberikan dinyatakan dengan ekspresi boolean.1 Diagram blok seleksi kondisi Pengkondisian dengan if Pengkondisian dengan if digunakan untuk mengeksekusi blok pernyataan.2 berikut. dimana yang dibutuhkan hanyalah kondisi benar saja. Sintaks: if (<ekspresi_boolean>) { <blok pernyataan> } Contoh 3. Pada Gambar 3. 2.1: Lihat flowchart pada Gambar 3. Praktikan mengenal beberapa perintah untuk seleksi kondisi 2. sebaliknya blok pernyataan B akan dieksekusi jika kondisi D bernilai salah.Seseorang dikatakan hipertensi jika tekanan darah sistolik lebih dari 140 mmHg. Tujuan Pembelajaran: 1. 14 .MODUL 3 Penyeleksian Kondisi 1.

1.3 Kode program untuk contoh 3.1.1 tersebut dapat dilihat pada Gambar 3. (a) (b) 15 . maka hasilnya seperti pada Gambar 3. Gambar 3. Kode program untuk permasalahan pada contoh 3. Apabila program tersebut dieksekusi.4.3.2 Diagram blok untuk contoh 3.Gambar 3.

5 Diagram blok untuk contoh 3. sebaliknya dia dikatakan tidak lulus.2.2: Lihat flowchart pada Gambar 3. Flowchart ini digunakan untuk menentukan kelulusan berdasarkan nilai yeng diberikan. Kode program untuk permasalahan pada contoh 3. Pengkondisian dengan if-else Pengkondisian dengan if-else digunakan untuk mengeksekusi blok pernyataan A jika suatu kondisi bernilai benar.2 tersebut dapat dilihat pada Gambar 3. 16 .Gambar 3.1. Gambar 3. Seseorang dikatakan lulus jika nilai yang diperoleh lebih dari 70.4 Output yang dihasilkan oleh program pada contoh 3.5. dan sebaliknya akan mengeksekusi blok pernyataan B jika suatu kondisi bernilai salah.6. Sintaks: if (<ekspresi_boolean>) { <blok pernyataan A> } else { <blok pernyataan B> } Contoh 3.

2.8 menunjukkan flowchart untuk permasalahan tersebut.7 Output yang dihasilkan oleh program pada contoh 3.1 Pembagian umur Umur (Tahun) Kategori Umur <5 Balita 5 ≤ umur < 12 Anak-anak 12 ≤ umur < 18 Remaja 18 ≤ umur < 40 Dewasa 40 ≤ umur < 60 Parobaya umur ≥ 60 Lanjut usia Gambar 3.3 Diketahui pembagian umur sebagaimana terlihat pada Tabel 3.Gambar 3. Tabel 3. 17 . (a) (b) Gambar 3.7.2. Contoh 3. maka hasilnya seperti pada Gambar 3.6 Kode program untuk contoh 3. Apabila program tersebut dieksekusi.1.

18 .3 tersebut dapat dilihat pada Gambar 3. Kode program untuk permasalahan pada contoh 3.9.3.8 Diagram blok untuk contoh 3.Gambar 3.

case <nilai_variabel>: <blok pernyataan> Break. perkalian dan pembagian. dan char. Contoh 3. Ada 4 operasi yang dapat dipilih.9 Kode program untuk contoh 3.10. int. (a) (b) Gambar 3.3 .4 Berikut akan dilakukan operasi aritmetik untuk dua bilangan integer A dan B. Apabila program tersebut dieksekusi..3. pengurangan. Char dapat digunakan karena char sebenarnya merupakan unicode yang bernilai antara 0 – 65535. case <nilai_variabel>: <blok pernyataan> Break. Sedangkan tipe long tidak dapat digunakan untuk ekspresi_integer ini. short.11 menunjukkan flowchart untuk permasalahan tersebut. maka hasilnya seperti pada Gambar 3.Gambar 3. dengan A=100 dan B=25. Pengkondisian dengan switch Pengkondisian dengan switch digunakan apabila ada beberapa pilihan dimana setiap pilihan akan mengeksekusi blok pernyataan yang berbeda. yaitu penjumlahan. default: <blok pernyataan> Break.10 Output yang dihasilkan oleh program pada contoh 3.. 19 . } Ekspresi_integer yang dapat digunakan adalah byte. Gambar 3. . Sintaks: switch (<ekspresi_integer>) { case <nilai_variabel>: <blok pernyataan> Break.

Gambar 3. 20 .4.4 tersebut dapat dilihat pada Gambar 3.11 Diagram blok untuk contoh 3. Kode program untuk permasalahan pada contoh 3.12.

4.4. Apabila program tersebut dieksekusi. Latihan Silahkan lakukan percobaan pada contoh program diatas dan lakukan ujicoba 21 .13. (a) (b) Gambar 3. maka hasilnya seperti pada Gambar 3.Gambar 3. 3.12 Kode program untuk contoh 3.13 Output yang dihasilkan oleh program pada contoh 3.

4. Buatlah sebuah program untuk konversi angka dengan menggunakan konsep struktur kontrol switch . Tugas a. Buatlah sebuah program konversi nilai angka ke nilai huruf dengan range berikut : Nilai >=85 and nilai <=100 = A Nilia >=70 and nilai <=84 = B Nilai >=60 and nilai <70 = C Nilai >=50 and nilai<60 = D Nilai<50 = E b. Buatlah sebuah program untuk mengecek apakah bilangan yang diinput adalah bilagan positif. Buatlah sebuah program untuk mengecek apakah bilangan yang dimasukkan adalah bilangan genap atau ganjil d. negatif atau nol c.case 22 .

dimana counter i akan naik secara otomatis (i++) hingga i mencapai angka 10.MODUL 4 Perulangan 1. Praktikan mampu menggunakan berbagai bentuk perulangan dalam berbagai kebutuhan. Gambar 4. Untuk keperluan tersebut.1 menunjukkan flowchart untuk permasalahan tersebut. dimana banyaknya perulangan telah diketahui sebelumnya. seperti halnya bahasa pemrograman yang lainnya. berarti proses perulangan akan berjalan mulai dari 1 sampai 10. <ekspresi_boolean> . Dengan menggunakan statement tersebut. Besarnya N ditentukan melalui input data. for (int i=1. Sintaks: for ( <inisialisasi> <increment> ) { <blok pernyataan> } . Contoh 4. Teori Singkat Perulangan Adakalanya suatu blok pernyataan harus dieksekusi berulang kali tergantung pada kondisi tertentu. namun cukup dengan memberikan ekspresi boolean terhadap suatu kondisi. Tujuan Pembelajaran: 1. 23 . i<=10. Praktikan mengenal beberapa perintah untuk melakukan perulangan 2. suatu blok pernyataan tidak perlu ditulis berulang kali. Perintah: for Bentuk for digunakan untuk melakukan perulangan. JAVA menyediakan beberapa statement perulangan. i++). Pernyataan dengan for akan memiliki counter yang akan bergerak (naik atau turun) secara otomatis. Misal. 2.1: Akan dihitung nilai N! (N faktorial).

1 tersebut dapat dilihat pada Gambar 4. Apabila program tersebut dieksekusi.1. maka hasilnya seperti pada Gambar 4. Kode program untuk permasalahan pada contoh 4.Gambar 4.1.2. Gambar 4. (a) 24 .3.1 Diagram blok untuk contoh 4.2 Kode program untuk contoh 4.

Proses penentuan banyaknya bilangan akan terus diulang hingga pengguna memasukkan bilangan nol (0).2 tersebut dapat dilihat pada Gambar 4. 5. Kode program untuk permasalahan pada contoh 4. 25 .2.6. Apabila program tersebut dieksekusi.2: Berikut akan dihitung banyaknya bilangan ganjil dan bilangan genap yang dimasukkan melalui dialog box. maka hasilnya seperti pada Gambar 4. Perintah: while Pernyataan while digunakan untuk melakukan perulangan terhadap sejumlah pernyataan dalam blok selama kondisi (dinyatakan dengan ekspresi boolean) bernilai benar.1. Sintaks: while (<ekspresi_boolean>) { <blok pernyataan> } Contoh 4. 2. apabila diberikan input 6.(b) Gambar 4.3 Output yang dihasilkan oleh program pada contoh 4.5. dan 0. 4. Gambar menunjukkan flowchart untuk permasalahan tersebut.4 Diagram blok untuk contoh 4. Gambar 4.

Contoh 4. 26 . pada do-while ini blok akan dieksekusi setidaknya satu kali sebelum kondisi bernilai salah. Sintaks: do { <blok pernyataan> } while (<ekspresi_boolean>). Perintah: do-while Pada pernyataan do-while.6 Output yang dihasilkan oleh program pada contoh 4.2 akan coba dibuat dengan menggunakan dowhile. blok pernyataan dieksekusi hingga suatu kondisi yang dinyatakan oleh ekspresi logika pada while bernilai salah. Sedikit berbeda denga pernyataan while yang baru akan mengeksekusi blok pernyataan setelah diketahui kondisi benar.2.Gambar 4.3: Pada contoh 4.7. Kode program untuk permasalahan tersebut dapat dilihat pada Gambar 4. Gambar 4.2.5 Kode program untuk contoh 4.

.. Latihan Lakukan ujicoba pada contoh program diatas dan lakukan analisa 4. 8. Buatlah sebuah program untuk menampilkan output berikut: 30 29 28 27 26... Apabila program tersebut dieksekusi.. Gambar 4. 10.. dan 10.3.16 1 2 3 4 5 6 7 8 9. dengan input bilangan 5..8 Output yang dihasilkan oleh program pada contoh 4.. 3.3.. Buatlah sebuah program untuk menampilkan sederatan angka genap dan ganjil beserta jumlahnya Contoh : 1 3 5 7 9 = 25 27 . 3.7 Kode program untuk contoh 4..15 b. maka hasilnya seperti pada Gambar 4. Tugas a.Gambar 4.8.

Buatlah sebuah program untuk menampilkan output berikut dengan menggunakan konsep perulangan do-while: 1 2 3 4 5 6 7 8 10 11 12 13 14 15 16 17 18 19 20 28 .2 4 6 8 10 = 30 c.

Teori Singkat Array Array merupakan tipe data yang digunakan apabila data diberikan berupa kelompok data yang disajikan secara berurutan. apabila akan dibuat variabel penjualan bertipe array dengan alokasi memori sebesar 11.1 menunjukkan aplikasi variabel penjualan yang bertipe array dimana setiap elemen bertipe integer. Setiap elemen data memiliki tipe data yang sama. Praktikan mengerti dan memahami penggunaan array dan string 2. Sebagai contoh. Sintaks: tipe_data nama_variabel_array[] Besarnya alokasi memori yang akan digunakan perlu diberikan sebelum variabel bertipe array tersebut digunakan. Array menggunakan sekelompok lokasi memori yang berurutan dengan nama dan tipe data yang berbeda. Untuk mengetahui jumlah elemen dari sekelompok data yang bertipe array. 2.length Contoh: Program yang ditulis pada Gambar 5. penjualan[11] = 125. 29 . penjualan = new int[12]. maka Java akan memberikannya secara implisit.MODUL 5 Array dan String 1. Sintaks: nama_variabel_array. Kemudian. Apabila alokasi memori tidak diberikan secara eksplisit. setiap elemen data disebut dengan nama_variabel_array yang diikuti dengan indeks penomorannya. dan akan memberikan nilai 125 untuk penjualan ke-11. maka dapat dituliskan: Syntaks : int penjualan[]. Tujuan Pembelajaran: 1. dapat digunakan perintah length . Praktikan mampu menggunakan beberapa operator dan method yangmenyertai penerapan array dan string.

Gambar 5. apabila akan dibuat variabel penjualan bertipe array dua dimensi. Syntaks untuk array dua dimensi diberikan sebagai berikut. dengan alokasi memori sebesar 12 untuk dimensi pertama dan 31 untuk dimensi kedua.2.1. penjualan = new int[12][31]. 23).1 Contoh program untuk array satu dimensi. Sintaks: tipe_data nama_variabel_array[][] Sebagai contoh. Mahasiswa Nilai 30 . Model array sebagaimana yang dijelaskan di awal merupakan array satu dimensi. Contoh 5. Apabila program tersebut dieksekusi. Sangat dimungkinkan suatu variabel membutuhkan array dua dimensi.1 Daftar nilai PBO mahasiswa contoh 5.2 Diketahui daftar nilai matakuliah PBO untuk 5 mahasiswa sebagaimana terlitah pada Tabel 5. penjualan[11][23] = 125.1.2 Output yang dihasilkan oleh program pada contoh 5. Tabel 5.Gambar 5. maka dapat dituliskan: int penjualan[][]. serta akan memberikan nilai 125 untuk penjualan pada dimensi (11. maka hasilnya seperti pada Gambar 5.1. misalkan pada aplikasi matriks.

Ke 1 2 3 4 5 Rata 2 Tugas 50 70 89 65 65 UTS 60 75 90 76 70 UAS 70 87 90 89 80 Selanjutnya akan dicari nilai akhir untuk setiap mahasiswa yang merupakan nilai rata-rata dari ketiga komponen penilaian (rata2 tugas. Nilai Nilai > 80 70 < Nilai ≤80 60 < Nilai ≤70 50 < Nilai ≤60 Nilai ≤50 Huruf A B C D E Program yang ditulis pada Gambar 5. 31 .1. maka hasilnya seperti pada Gambar 5. Apabila program tersebut dieksekusi. Selanjutnya.2 Konversi nilai ke huruf contoh 5. dan UAS).4. UTS.3 menunjukkan aplikasi variabel penjualan yang bertipe array dimana setiap elemen bertipe integer.2): Tabel 5. Gambar 5.3 Contoh program untuk array dua dimensi. pemberian nilai dengan huruf diberikan sebagai berikut ( Tabel 5.

Contoh 5.6. Pada java.Gambar 5. Mengetahui panjang string Untuk mengetahui panjang string dapat digunakan method length().2.4 Output yang dihasilkan oleh program pada contoh 5. maka hasilnya seperti pada Gambar 5.4: Gambar 5. Gambar 5.5 menunjukkan kode program untuk mencari panjang string. string merupakan objek dari kelas String.5 Contoh program untuk contoh 5. String String merupakan deretan karakter. Contoh 5.3: String judul = “Pemrograman Berorientasi Objek”. Apabila program tersebut dieksekusi. 32 . String dapat dioperasikan dengan menggunakan beberapa operator atau method untuk beberapa kepentingan yang berbeda.4. Penulisan string dilakukan dengan mengapit data menggunakan tanda petik (ganda). a.

8. maka hasilnya seperti pada Gambar 5.Gambar 5. Contoh 5.7 Contoh program untuk contoh 5.IgnoreCase(String). Gambar 5.5: Gambar 5. 33 .5.7 menunjukkan kode program untuk mengetahui kesamaan antara dua string. Mengetahui kesamaan antara dua string Untuk mengetahui kesamaan antara dua string dapat digunakan operator == atau method equal(String) atau method equal.4. Gambar 5. Apabila program tersebut dieksekusi.5.8 Output yang dihasilkan oleh program pada contoh 5.6 Output yang dihasilkan oleh program pada contoh 5. Melakukan pembandingan karakter-karakter pada string Untuk melakukan pembandingan karakter-karakter secara berurutan dari awal string dapat digunakan method compareTo(). c. b.

6.6: Gambar 5.10 Output yang dihasilkan oleh program pada contoh 5. Mendapatkan karakter pada posisi tertentu 34 .10. Gambar 5.Contoh 5. d.9 menunjukkan kode program untuk membandingkan karakterkarakter pada string.6.9 Contoh program untuk contoh 5. Apabila program tersebut dieksekusi. maka hasilnya seperti pada Gambar 5. Gambar 5.

35 . • Apabila posisi awal pencarian telah ditentukan. e. Program akan menampilkan karakter pada posisi tertentu yang diberikan secara random dan diulang sebanyak sepuluh kali.13 menunjukkan kode program untuk mendapatkan posisi suatu karakter dalam string.12 Output yang dihasilkan oleh program pada contoh 5.7: Gambar 5. Apabila karakter tidak ditemukan.11 Contoh program untuk contoh 5. maka akan diberikan nilai -1. Contoh 5.8: Gambar 5.12.11 menunjukkan kode program untuk mendapatkan karakter pada posisi tertentu dalam string. maka untuk mendapatkan posisi karakter pada string dapat digunakan method indexOf(char Karakter). • Apabila posisi awal pencarian tidak ditentukan. Mendapatkan posisi karakter pada string Untuk mendapatkan posisi karakter pada string dapat dilakukan dengan dua cara sebagai berikut. Gambar 5. maka hasilnya seperti pada Gambar 5. Contoh 5. Nilai Awal merupakan bilangan integer yang menunjukkan posisi awal pencarian.7. hingga posisi terakhir bernilai N-1 (dengan N adalah panjang string). Apabila program tersebut dieksekusi. maka akan diberikan nilai -1. Gambar 5. int Awal). Posisi pertama bernilai integer 0.Untuk mendapatkan karakter pada posisi tertentu dapat digunakan method charAt(int Posisi).7. maka untuk mendapatkan posisi karakter pada pada string dapat digunakan method indexOf(char Karakter. Apabila karakter tidak ditemukan.

g.14 Output yang dihasilkan oleh program pada contoh 5.16. f.15 menunjukkan kode program untuk melakukan konversi huruf besar ke huruf kecil atau sebaliknya dalam string.14.Gambar 5. 36 .9: Gambar 5. maka hasilnya seperti pada G ambar 5. Apabila program tersebut dieksekusi. Gambar 5. Contoh 5. maka hasilnya seperti pada Gambar 5. Melakukan konversi huruf kecil ke huruf besar (kapital) Untuk melakukan konversi huruf kecil ke huruf besar dapat digunakan method toUpperCase(). Apabila program tersebut dieksekusi. Melakukan konversi huruf besar (kapital) ke huruf kecil Untuk melakukan konversi huruf besar ke huruf kecil dapat digunakan method toLowerCase().8.13 Contoh program untuk contoh 5.8.

17 menunjukkan kode program untuk menyambung string. Apabila program tersebut dieksekusi. h. i. Gambar 5.18.15 Contoh program untuk contoh 5.Gambar 5. Contoh 5. Gambar 5.10. maka hasilnya seperti pada Gambar 5.10: Gambar 5.10. Membuat string baru 37 .9.18 Output yang dihasilkan oleh program pada contoh 5.16 Output yang dihasilkan oleh program pada contoh 5.9.17 Contoh program untuk contoh 5. Gambar 5. Melakukan penyambungan antar dua string Untuk melakukan penyambungan antar dua string dapat digunakan operator +.

• Untuk menghilangkan spasi di awal dan si akhir string dapat digunakan method trim().12: Gambar 5.11: Gambar 5.Untuk membuat string baru dari string yang sudah pernah ada dapat dilakukan dengan dua cara sebagai berikut. int akhir). Gambar 5. • Untuk membuat string baru dari string yang telah ada mulai dari karakter awal string dapat digunakan method substring(int awal).11.20. Contoh 5. Gambar 5. j. char karakterBaru). Melakukan modifikasi string Untuk melakukan modifikasi string dapat dilakukan dengan dua cara sebagai berikut. 38 . • Untuk membuat string baru dari string yang telah ada mulai dari karakter awal hingga karakter akhir string dapat digunakan method substring(int awal.20 Output yang dihasilkan oleh program pada contoh 5. • Untuk me-replace karakter pada string dengan karakter baru dapat digunakan method replace(char karakterLama. Contoh 5. maka hasilnya seperti pada Gambar 5.21 menunjukkan kode program untuk memodifikasi string yang telah ada.19 Contoh program untuk contoh 5. Apabila program tersebut dieksekusi.11.19 menunjukkan kode program untuk membuat string baru dari string yang telah ada.

Membuat array karakter dari string Untuk membuat array karakter dari string yeng telah ada dapat dilakukan dengan dua cara sebagai berikut. Apabila program tersebut dieksekusi.23 menunjukkan kode program untuk membuat array karakter dari string yang telah ada. int Akhir.12.21 Contoh program untuk contoh 5. • Menggunakan method getChars(int Awal.13: Gambar 5. arrayChar merupakan variabel untuk menyimpan larik karakter yang dihasilkan. Contoh 5. 39 . dan posAwal merupakan indeks awal untuk menyimpan karakter pertama. int posAwal).22.Gambar 5. k. Implementasi dari method ini membutuhkan adanya pendeklarasian variabel array char untuk menampung larik karakter yang dihasilkan. • Menggunakan method toCharArray() yang diperoleh dari class String.12.22 Output yang dihasilkan oleh program pada contoh 5. char[] arrayChar. Gambar 5. dengan Awal merupakan posisi awal karakter pada string. Akhir merupakan posisi akhir karakter pada string. maka hasilnya seperti pada Gambar 5.

Latihan Silahkan lakukan ujicoba pada kode program diatas dan lakukan evaluasi 4.23 Contoh program untuk contoh 5. Apabila program tersebut dieksekusi.14. Buatlah program antrian LIFO c. Tugas a.13.24 Output yang dihasilkan oleh program pada contoh 5. 3.Gambar 5. Buatlah program antrian FIFO b.24. Gambar 5. maka hasilnya seperti pada Gambar 5. Buatlah program searching dan sorting pada sebuah elemen Array 40 .

Program merupakan gabungan dari data dan kode dengan struktur program yang berupa urutan proses. sehingga dapat digunakan untuk program-program lain. Objek dapat didefinisikan sebagai suatu entitas yang memiliki data dan method. 2. method. Kelas dapat didefinisikan sebagai cetak biru ( blueprint) atau prototype/kerangka yang mendefinisikan variabel-variabel (data) dan methodmethod (perilaku) umum dari sebuah objek tertentu. dan sebagainya. Dalam pemrograman berorientasi objek. Selain data atau ciri-ciri fisik tersebut. trackable. yaitu akan menemui banyak kesulitan ketika menangani kasus-kasus yang kompleks. Praktikan dapat membedakan arti dan pemakaian kelas. Tujuan Pembelajaran: 1. Pemrograman berorientasi objek hadir untuk menjadi solusi kelemahan yang terdapat pada pendekatan prosedural biasa. objek. kita ambil objek Mahasiswa. Pada model pemrograman prosedural. pendekatan yang dilakukan adalah dengan memodelkan sistem menjadi objekobjek. constructor. 2. Pendekatan semacam ini memiliki kelemahan. Setiap program Java merupakan kelas. mahasiswa juga memiliki perilaku-perilaku spesifik yang dapat 41 . • Struktur program lebih jelas. membutuhkan ribuan baris kode. karena pendekatan berorientasi objek lebih dekat dengan realitas yang ada di sekitar kita Apa Itu Kelas? Kelas merupakan inti dari pemrograman Java karena Java adalah bahasa pemrograman yang mendukung dan mengimplementasikan konsep pemrograman berorientasi objek sepenuhnya. sehingga setiap konsep atau kasus pemrograman yang akan diimplementasikan dengan Java harus dibungkus ke dalam sebuah kelas. jurusan . sebuah program komputer terdiri atas kode (proses logis program) dan data yang dapat berupa variabel maupun konstanta. Dalam bab ini akan dibahas konsep-konsep dasar yang merupakan inti dari pemrograman berorientasi objek. referensi objek.MODUL 6 Konsep Dasar Pemrograman Java 1. nama. Praktikan mampu memahami konsep dasar pemrograman Java. Teori Singkat Pengantar Pemrograman Berorientasi Objek Secara umum. dan sebagainya. Sebagai contoh. alamat. alur kerja program berorientasi pada proses (process-oriented). dan beberapa kata kunci dalam pemrograman Java. • Lebih natural dan alami. Kondisi seperti itu akan menyulitkan programmer dalam melacak kesalahan (debugging). menyisipkan modul baru dalam program. IPK. jenis kelamin. dan mudah untuk dikembangkan. Beberapa hal yang merupakan keuntungan dari konsep pemrograman berorientasi objek adalah sebagai berikut: • Objek-objek yang dibuat bersifat reusable. Mahasiswa memiliki data seperti nim. Kode dan data tersebut kemudian diatur sehingga dapat bekerja sama untuk menghasilkan program keluaran yang akan digunakan untuk menyelesaikan sebuah permasalahan.

tipe methodN(daftar-parameter) { //kode untuk methodN } } Data atau variabel yang didefinisikan di dalam sebuah kelas sering disebut dengan instance variable yang selanjutnya akan diakses melalui methodmethod yang ada. Berikut ini bentuk umum yang digunakan untuk mendefinisikan sebuah kelas. Method akan dibahas terpisah pada bagian selanjutnya dalam bab ini. boolean. tipe data sederhana digunakan untuk mendeklarasikan variabel ‘normal’. …. Variabel yang berupa objek ini sering disebut dengan referensi objek (object reference).1 Contoh pembuatan kelas. Data dan method yang tergabung dalam suatu kelas sering dinamakan sebagai class members. kelas didefinisikan dengan menggunakan kata kunci class.membedakan antara mahasiswa yang satu dengan yang lainnya. cara mengerjakan tugas dan sebagainya. Untuk saat ini. seperti cara presentasi. sebenarnya kelas tidak jauh berbeda dengan tipe data sederhana seperti integer. Mendefinisikan Kelas Dalam Java. class NamaKelas { tipe data1. Perhatikan kode berikut ini Program 6. Di sini kita akan membuat kelas Karyawan. divisi. char. dan gaji. cara belajar. Perbedaannya. tipe method1(daftar-parameter) { //kode untuk method1 } tipe method2(daftar-parameter) { //kode untuk method2 } …. dan sebagainya. yang memiliki data-data: ID. Contoh Kelas Sederhana Pada bagian ini akan diberikan pembahasan terkait dengan pembuatan sebuah kelas sederhana. tipe dataN. Dalam dunia pemrograman. tipe data2. sedangkan kelas digunakan untuk mendeklarasikan sebuah variabel yang berupa objek. belum ditambahkan method ke dalam kelas tersebut. nama. Public class Karyawan 42 .

Double gaji.divisi). Program 6.out. “Aurelia Dian”. System.divisi = "Aurel DIan". nama. Di sini. Aurel. kita dapat mengakses dan memanipulasi data-data yang terdapat pada kelas Karyawan.nama).gaji). berarti kita telah mendefinisikan sebuah tipe data baru dengan nama Karyawan. Aurel.gaji= "2500000". System.nama = "Marketing". bukan membuat objek.divisi.out.out. } Melalui kode di atas.println("Gaji : " + Aurel. Aurel.divisi = "Aurel DIan". divisi dan gaji yang dimiliki oleh objek Aurel masing-masing dengan nilai “K001”.{ String ID. System. Aurel. Penting untuk diingat bahwa pendefinisian kelas hanya akan membuat sebuah pola atau template. “Marketing” dan 2500000 Untuk lebih jelasnya.2 Contoh instansiasi objek dan pengaksesan data pada objek. Aurel. System.ID). //mencetak data-data object karyawan System. seperti yang tampak pada kode di bawah ini. dengan cara menggunakan operator titik (. Aurel.ID = "K001".println("Divisi : " + Aurel. kode tersebut digunakan untuk mengisikan nilai ke dalam data ID. Melalui objek Aurel. Aurel.out.nama.out.nama = "Marketing". //mengisi nilai kedalam data-data Objek Karyawan Aurel. } } 43 .ID = "K001". Karyawan adalah kelas dan Aurel adalah objek atau instance dari kelas Karyawan. coba perhatikan contoh kode program lengkap berikut ini yang akan menunjukkan penggunaan kelas Karyawan di atas.).println("Data KAryawan").println("Nama : " + Aurel. Objek aktual dari kelas tersebut harus dibuat sendiri melalui kode berikut: //membuat objek karyawan dengan nama Aurel Karyawan Aurel = new Karyawan().println("ID : " + Aurel. public class ImplementasiKelasKaryawan { public static void main(String[] args) { //membuat objek karyawan dengan nama Aurel Karyawan Aurel = new Karyawan().gaji = "2500000".

divisi = "Aurel Dian".out.ID). program tersebut di atas akan memberikan hasil sebagai berikut: Gambar 6. : " + : " + : " + 44 . Aurel. //membuat objek karyawan dengan nama Dhennis Karyawan Dhennis = new Karyawan(). //mencetak data-data object System.gaji = "2250000". //mengisi nilai kedalam data-data Objek Karyawan2 Aurel.ID = "K001". mengisi nilai ke dalam data-data yang dimiliki oleh objek Karyawan yang telah diinstansiasi. Saat dijalankan. Aurel.out. Aurel.Kode program di atas menunjukkan contoh implementasi dari kelas Karyawan yang telah dibuat sebelumnya. antara objek yang satu dengan yang lainnya.2 Perlu diketahui bahwa setiap objek atau instance dari suatu kelas akan memiliki salinan data sendiri-sendiri. System. System. Dhennis. nilai data-datanya bisa berbeda.println("Nama Aurel.gaji = "2500000". Ini artinya.ID = "K002".divisi = "Muhamad Dhennis". Dhennis. //mengisi nilai kedalam data-data Objek Karyawan2 Dhennis.nama = "Keuangan".println("Gaji karyawan ke-1 : " + Aurel. yaitu dimulai dengan membuat objek Karyawan.3 Contoh instansiasi lebih dari satu objek dari satu kelas yang sama public class ImplementasiKelasKaryawan { public static void main(String[] args) { //membuat objek karyawan dengan nama Aurel Karyawan Aurel = new Karyawan(). Dhennis.out.out.nama).1 Hasil eksekusi program 6.divisi). Perhatikan kode program di bawah ini. Program 6.nama = "Marketing".println("Divisi Aurel. kemudian mencetak data-data objek Karyawan tersebut.println("ID System.

kita perlu menginstansiasi kelas dengan menggunakan operator new dan memasukkan instance-nya ke dalam variabel referensi yang baru saja dideklarasikan.ID). System. Pertama.gaji). seperti berikut: Karyawan Arena = new Karyawan().println("Nama Dhennis. Untuk mempermudah pembahasan. 45 . Operator new secara dinamis akan mengalokasikan ruang memori untuk menyimpan suatu objek tertentu dan mengembalikan nilai berupa referensi ke objek bersangkutan. program tersebut di atas akan memberikan hasil sebagai berikut: Gambar 6. Kedua. } } karyawan ke-2 : " + : " + : " + : " + Saat dijalankan. //instansiasi & memasukkan referensi ke variabel Aurel Aurel = new Karyawan(). //mencetak data-data object System.println("ID Dhennis.out. dua tahap di atas biasanya ditulis dalam satu baris.gaji). System.println("Divisi Dhennis.Aurel. di sini masih menggunakan kelas Karyawan yang telah dibuat sebelumnya. Berikut ini kode yang mengilustrasikan dua tahapan proses yang dimaksud di atas. kita perlu mendeklarasikan variabel yang digunakan sebagai referensi ke objek dari kelas bersangkutan. System.divisi). //mendeklarasikan variabel Aurel bertipe Karyawan Karyawan Aurel.out. secara eksplisit kita perlu melakukan dua tahap.2 Hasil eksekusi program 6.out.3 Instansiasi Objek Untuk membuat objek baru dari tipe kelas yang telah didefinisikan. Pada praktiknya.println("Gaji Dhennis.out.nama).

Karyawan002. Baris pertama digunakan untuk mendeklarasikan variabel referensi ke objek Karyawan dengan nama karyawan001 dan karyawan002. Dan baris ketiga digunakan memasukkan karyawan001 ke dalam karyawan002.out. Ini artinya.nama = "Mischella". variabel karyawan002 berperan sebagai referensi ke objek yang sedang ditunjuk oleh karyawan001.out. Baris kedua berfungsi untuk membuat objek Karyawan dan menyimpan referensinya ke dalam variabel karyawan001.4 Contoh pengaruh referensi objek (1) public class PengaruhReferensiObjek1 { public static void main(String[] args) { /*Instansiasi 2 objek referensi yang mengacu pada 1 objek karyawan */ Karyawan Karyawan001 = new Karyawan(). 1 //mengisi data Objek Karyawan melalui objek referensi Karyawan001. Maka dari itu. //mencetak data object karyawan yang di acu 2 objek referensi System.println("Data Karyawan002"). namun pada saat kita mencetak data pada karyawan002.out.println("Nama : " + Karyawan002. setiap perubahan yang terjadi pada objek yang bersangkutan melalui karyawan001 akan berpengaruh juga pada objek yang ditunjuk oleh karyawan002. System.nama). System. Karyawan002 = Karyawan001. Karyawan001 = new Karyawan(). System. System. System. Karyawan001. Karyawan Karyawan002 = Karyawan001.out.divisi).println("Divisi : " + Karyawan002.out.println("Nama : " + Karyawan001. Program 6. perhatikan terlebih dahulu kode berikut: Karyawan Karyawan001.out.Mengisi Nilai pada Referensi Objek Terdapat satu buah catatan penting yang perlu diperhatikan pada saat kita memasukkan nilai pada sebuah variabel referensi.divisi = "HRD".println("Data Karyawan001"). Ini disebabkan karena karyawan001 dan karyawan002 sebenarnya menunjuk ke objek Karyawan yang sama. variabel karyawan001 dan karyawan002 masing-masing menunjuk ke objek Karyawan yang sama.divisi).println(" "). 46 . karena keduanya sebenarnya adalah objek yang sama.println("Divisi : " + Karyawan001. System. hasil yang diberikan adalah sama seperti yang dihasilkan oleh karyawan001. Dengan demikian. Sebelumnya.nama). begitu juga sebaliknya. } } Tampak bahwa kita hanya memasukkan nilai untuk objek karyawan001.out.

meskipun keduanya menunjuk ke objek yang sama. akan tetapi tidak terdapat hubungan antara variabel karyawan001 dan karyawan002.Saat dijalankan. perhatikan kode program berikut: Program 6. program tersebut di atas akan memberikan hasil sebagai berikut: Gambar 6. Sebagai contoh. tanpa berpengaruh terhadap variabel lainnya.4 Sebagai catatan penting.3 hasil eksekusi program 6.5 Contoh pengaruh referensi objek (2) 47 . Artinya. kita bisa saja melepas salah satu variabel tersebut untuk menunjuk ke objek lain.

//mencetak data objek setelah perubahan referensi System.nama).println("Nama : " + Karyawan001.out. System.println("Divisi : " + Karyawan002.out.out.nama="Yahya Al-Mahandis". System.out.println(" ").out. System. System.println("Divisi : " + Karyawan002.println(" ").out.println("Setelah Perubahan Referensi").println("Data Karyawan002").out.out.divisi). } } 48 .out.println(" "). System. //mencetak data object karyawan yang di acu 2 objek referensi System.println(" "). System.println("Data Karyawan002"). System. Karyawan002.nama = "Mischella".divisi). System. System.divisi).out.out.out.nama).nama).println("Nama : " + Karyawan002.println("Data Karyawan001").out. System. //memindahkan objek referensi ke-2 untuk mengacu objek baru Karyawan002 = new Karyawan(). System.println("Divisi : " + Karyawan001.out.nama). //mengisi data Objek Karyawan melalui objek referensi 1 Karyawan001.println("Divisi : " + Karyawan001.divisi = "HRD". Karyawan Karyawan002 = Karyawan001. System. Karyawan001.println("Nama : " + Karyawan002. Karyawan002. System.public class PengaruhReferensiObjek2 { public static void main(String[] args) { /*Instansiasi 2 objek referensi yang mengacu pada 1 objek karyawan */ Karyawan Karyawan001 = new Karyawan().out.println("Nama : " + Karyawan001. System.out. System.divisi).println("Data Karyawan001").out.divisi="Produksi".

yang diikuti dengan nilai yang akan dikembalikan. Berikut ini bentuk umum dari pembuatan method di dalam kelas. di sini kita akan langsung mendefinisikan sebuah contoh method ke dalam kelas yang sebelumnya kita buat. Sebagai catatan. data-data karyawan002 yang dicetak akan berbeda dengan data-data dari karyawan001.4 Hasil eksekusi program 6. nilaiKembalian dapat berupa konstanta maupun variabel. yang selanjutnya akan saling bekerja sama dalam melakukan tugastugas spesifik tertentu sesuai dengan perilaku objek yangdimodelkan. Jika method yang kita buat ditujukan untuk mengembalikan suatu nilai tertentu. dalam Java method terbagi menjadi dua: void dan non-void. tipe adalah tipe data yang akan dikembalikan oleh method. yang digunakan untuk menandakan nilai yang akan dikembalikan oleh method.5 Dari hasil tersebut dapat terlihat bahwa pada saat variabel karyawan002 dipindahkan untuk menunjuk ke objek lain (terjadi perubahan referensi objek). tipe namaMethod(daftar-parameter) { //kode yang akan dituliskan } Pada bentuk umum di atas. yaitu kelas LapanganFutsal. program tersebut di atas akan memberikan hasil sebagai berikut: Gambar 6. sedangkan method non-void adalah method yang mengembalikan nilai. Method void adalah method yang tidak mengembalikan nilai.Saat dijalankan. seperti berikut: return nilaiKembalian. Method Dalam Java. kelas berisi kumpulan data dan method. Kita akan menambahkan method 49 . Mendefinisikan Method Setelah mengetahui bentuk umum yang digunakan. maka di dalam method tersebut harus terdapat statemen return.

//mengisi data pada objeck karyawan Karyawan001. kita harus mengganti tipe kembalian dengan kata kunci void.println("Nama : " + nama). void cetakData() { System. 50 .5 Hasil eksekusi program 6. maka dari itu.6 Penambahan method void pada deklarasi kelas Karyawan public class Karyawan { String ID.println("ID : " + ID).) beserta nama method yang akan dieksekusi.7 Pemanggilan method dalam suatu kelas dilakukan dengan menuliskan objek pemiliknya.println("Gaji : " + gaji).nama = "Agus Ramadhan".divisi = "Keuangan". System. divisi. System. //memanggil method cetakData().ID = "K001".cetakPengelola() untuk mencetak nama pengelola dari objek LapanganFutsal.out. Karyawan001. } } Saat dijalankan.out.cetakData(). Double gaji.out. dan diikuti oleh operator titik (. System. Karyawan001.7 Contoh pemanggilan method void public class ImplementasiMethodVoid { public static void main(String[] args) { //instansiasi objek karyawan Karyawan Karyawan001 = new Karyawaan(). program tersebut di atas akan memberikan hasil sebagai berikut: Gambar 6. Method ini merupakan method yang tidak mengembalikan nilai.gaji = 1850000.out. nama.out. Karyawan001.cetakData(). }} Program 6. Berikut ini kode program yang dimaksud. Program 6. //memanggil method cetakData Karyawan001.println("Divisi : " + divisi). Karyawan001. System. Berikut ini contoh kode yang digunakan untuk memanggil method cetakData() yang telah dideklarasikan di dalam kelas Karyawan.println("Data Karyawan ").

9 Pemanggilan method non-void public class ImplementasiMethodNonVoid { public static void main(String[] args) { //instantiasi objek Karyawan Karyawan karyawan001 = new Karyawan().println("Gaji gaji).Hasil yang diberikan oleh method cetakData()akan menyesuaikan dengan data-data yang tersimpan pada objek di mana method cetakData() tersebut dideklarasikan Pengembalian Nilai di dalam Method Sekarang.out. Berikut ini kode program yang dimaksud. Berikut ini kode program yang dimaksud. nama. System.nama = "Agus Ramadhan". double gaji. } double hitungSumbanganZakat() { double zakat = gaji * 0.println("ID ID). System.ID = "K001". Program 6.025.out. System.out.println("Divisi : " + divisi). return zakat.println("Data Karyawan : "). //mengisi data pada objek Karyawan karyawan001. System. Di sini. } : " + : " + : " + Program 6. void cetakData() { System.divisi = "Keuangan". kita akan melanjutkan pembahasan dengan memperlihatkan cara pendefinisian method yang dapat mengembalikan nilai. divisi.out.gaji = 1850000. karyawan001. karyawan001. karyawan001.out. kita akan memodifikasi program sebelumnya dengan menambahkan method hitungSumbanganZakat() yang akan mengembalikan nilai dengan tipe double. //memanggil method cetakDAta() 51 .println("Nama nama).8 Contoh implementasi method non-void public class Karyawan { String ID.

14 * jejari * jejari * tinggi). dilihat dari sisi desain program. method tersebut hanya dapat digunakan untuk tabung yang memiliki jari-jari alas 7 dan tinggi 10.hitungSumbanganZakat()). Artinya. method di atas dikatakan tidak fleksibel atau tidak bersifat general. Coba perhatikan terlebih dahulu pendefinisian method tanpa parameter berikut ini. //memanggil method hiungSumbanganZakat() System.6 Hasil eksekusi program 6.println("Sumbangan Zakat : " + karyawan001.karyawan001. Dengan adanya parameter. maka Java mengizinkan kita untuk menempatkan parameter di dalam sebuah method agar method di atas dapat digunakan untuk segala ukuran tabung. method di atas benar dan akan mengembalikan nilai 1538. perhatikan kode berikut: 52 . int tinggi) { return (3. Pasalnya. } Secara sintaks.14 * 7 * 7 * 10).cetakData(). } } Pada program di atas. program tersebut di atas akan memberikan hasil sebagai berikut: Gambar 6. kita dapat melewatkan nilai berapa pun ke dalam method tersebut. Sebagai contoh.5. Untuk mengatasi hal semacam ini. double volumeTabung(int jejari. method tersebut dapat mengembalikan nilai yang beragam sesuai dengan nilai parameter yang dilewatkannya.Saat dijalankan. Namun.out. Berikut ini kode yang seharusnya dituliskan untuk mendefinisikan method di atas. method hitungSumbanganZakat() mengembalikan nilai bertipe double sehingga hasilnya pun dapat dilewatkan langsung melalui println(). double volumeTabung() { return (3. Bagaimana jika terdapat tabung dengan jari-jari alas 10 dan tinggi 12? Method di atas tidak dapat kita gunakan untuk menghitung volume dari tabung dengan ukuran tersebut.6 Method Berparameter Pada kenyataannya sebagian besar method yang ditulis dalam program memiliki satu atau beberapa parameter. } Melalui cara seperti ini. sebuah method dapat bersifat dinamis dan general.

println("Nama nama). 12) //menghasilkan nilai 4019.out. System. dan volume3 dengan jari-jari alas 8 dan tinggi 20.out. String Nama. System.6 volume1 = volumeTabung(7. } } : " + : " + : " + 53 .2 volume3 = volumeTabung(8. System. String Div.out.10 Implementasi method dengan parameter pada kelas Karyawan public class Karyawan { String ID. nama.println("Data Karyawan : "). return zakat. //menghasilkan nilai 1538. nama = Nama.println("ID ID). double Gaji) { ID = kode. padahal method yang didefinisikan hanya satu (bukan tiga buah method). 20) Seperti kita lihat. gaji = Gaji. Di sini data-data yang dimiliki oleh objek Karyawan akan kita isikan melalui sebuah method.int volume1.025.out. double gaji.println("Gaji gaji).out. } double hitungSumbanganZakat() { double zakat = gaji * 0. divisi = Div. Program 6. } void cetakData() { System. divisi.println("Divisi : " + divisi). 10) //menghasilkan nilai 3768 volume2 = volumeTabung(10. Sekarang kita akan mengimplementasikan konsep di atas ke dalam kelas Karyawan. volume1 merupakan variabel penampung untuk perhitungan volume tabung dengan jari-jari alas 7 dan tinggi 10. volume2. void isiData(String kode. volume2 dengan jari-jari alas 10 dan tinggi 12. volume3. System. Berikut ini kode program yang dapat digunakan untuk melakukan hal tersebut.

Nama. “Rommy”. Berikut ini contoh program yang menunjukkan pembuatan constructor untuk kelas Karyawan dan nilai awal dari data-data yang terdapat pada kelas tersebut akan kita isi dengan nilai awal. Constructor Constructor adalah method khusus yang didefinisikan di dalam kelas dan akan dipanggil secara otomatis tiap kali terjadi instansiasi objek. Jika kita tidak mendefinisikan constructor pada kelas yang kita buat. Constructor itu sendiri berfungsi untuk melakukan inisialisasi nilai terhadap data-data yang terdapat pada kelas yang bersangkutan. Sama halnya seperti method. 54 . Parameter ini selanjutnya dapat diisi dengan nilai yang dikehendaki pada saat proses pemanggilan method tersebut. "Rommy". "Marketing".7 Hasil eksekusi program 6. /*mengisi data pada objek Karyawan melalui method isiData()*/ karyawan001.11 Pemanggilan method berparameter pada kelas Karyawan public class ImplementasiMethodBerparameter { public static void main(String[] args) { //instatiasi objek Karyawan Karyawan karyawan001 = new Karyawan(). divisi. dan Gaji.isiData("k001".cetakData().overload. maka secara otomatis Java akan membuatkannya untuk kita. yaitu kode. program tersebut di atas akan memberikan hasil sebagai berikut: Gambar 6. constructor juga dapat memiliki parameter dan juga dapat di. //memanggil method cetakData(). karyawan001. kita melewatkan nilai “k001”. 2350000). Div.Program 6. Constructor ini kita tambahkan sebagai pengganti method isiData() yang telah dibuat sebelumnya. dan 2350000 sebagai argumen dari method isiData() untuk mengisikan data ID. Default constructor akan menginisialisasi semua data yang ada dengan nilai nol. Constructor semacam ini dinamakan dengan default constructor. “Marketing”. nama.9 Pada kode di atas kita mendefinisikan method yang tidak mengembalikan nilai dan memiliki empat (4) buah parameter. } } Saat dijalankan. dan gaji dari objek Karyawan. Dalam contoh di atas.

13 Instansiasi objek Karyawan dengan menggunakan constructor public class ImplementasiCOnstructor { public static void main(String[] args) { Karyawan karyawan001 = new Karyawan().println("Gaji : " + gaji). double gaji. dan gaji masing-masing dengan nilai “k001”. System.13 dijalankan. karyawan001.025. divisi. return zakat. Pasalnya. kita mengisikan nilai awal untuk data ID. divisi = "Produksi". nama = "Budi". nama.Program 6.out.out. setiap kali pembentukan objek Karyawan. gaji = "1750000".cetakData(). nilai yang 55 . System. } } Program 6. pada saat Program 6.println("ID : " + ID).out. } void cetakData() { System. program tersebut di atas akan memberikan hasil sebagai berikut: Gambar 6. dan 1750000. nama.12 Deklarasi kelas Karyawan dengan constructor public class Karyawan { String ID. “Budi”.println("Divisi : " + divisi). } } Pada kode Program 6. System. Selanjutnya.out. divisi.println("Nama : " + nama). “Produksi”. //constructor kelas karyawan Karyawan() { ID = "k001".println("Data Karyawan :").8 Hasil eksekusi program 6.13 Proses inisialisasi dengan cara di atas masih dapat dikatakan kurang dinamis. Hal ini akan berlaku untuk setiap pembentukan objek Karyawan. System.out.12. } double hitungSumbanganZakat() { double zakat = gaji * 0.

} } Saat dijalankan. divisi = Div. double Gaji) { ID = kode. 2150000). System. “Budi”. program tersebut di atas akan memberikan hasil sebagai berikut: 56 . Implementasi constructor berparameter ditunjukkan pada contoh program berikut ini. gaji = Gaji.println("Data Karyawan :").out. String Div. divisi. karyawan001. “Produksi”. System. } } Kali ini. Hal ini mirip dengan implementasi method isiData() pada pembahadan method berparameter yang sebelumnya sudah dibahas. constructor yang kita buat ditambah dengan parameter. //constructor kelas Karyawan Karyawan(String kode. System.println("Divisi : " + divisi). System.cetakData(). } void cetakData() { System. nama.15 Instansiasi objek Karyawan dengan menggunakan constructor dinamis public class ImplementasiCOnstructorDinamis { public static void main(String[] args) { Karyawan karyawan001 = new Karyawan("k005".025.dijadikan nilai awal selalu “k001”.println("Nama : " + nama). } double hitungSumbanganZakat() { double zakat = gaji * 0. Untuk menjadikan constructor lebih bersifat dinamis. maka kita dapat membubuhkan parameter ke dalamnya.out. Hal ini menyebabkan nilai awal dapat bersifat dinamis tergantung dari nilai-nilai yang dilewatkan pada saat pembentukan objek. Program 6. "Bella".14 Deklarasi kelas Karyawan dengan constructor dinamis public class Karyawan { String ID. Program 6. dan 1750000. double gaji. String Nama.println("Gaji : " + gaji).println("ID : " + ID).out.out. nama = Nama.out. "HRD". return zakat.

seperti berikut: //constructor kelas Karyawan Karyawan(String kode. Di sisi lain. this sebenarnya merupakan referensi ke objek yang sedang aktif. this.divisi = divisi. } Untuk kasus di atas. maka kita harus menggunakan kata kunci this. Sebagai contoh. Java menyediakan kata kunci this.ID = kode. nama = Nama.divisi = Div.15 Kata Kunci This Pada kasus-kasus tertentu. Seperti yang telah kita ketahui bersama. double Gaji) { this. this. penggunaan kata kunci this ini justru diharuskan. this. this digunakan di dalam method untuk mewakili nama kelas bersangkutan. divisi = Div. kehadiran kata kunci this memang justru akan sedikit merepotkan dan bias dikatakan tidak perlu. String Div. String Nama.gaji = Gaji. Java tidak mengizinkan kita untuk mendeklarasikan variabel dengan nama sama di dalam satu blok tertentu. perhatikan kode berikut ini. Untuk mengizinkan hal ini. double gaji) { this. String Nama. this.nama = nama.gaji = gaji.ID = ID. seperti yang tampak pada kode berikut: //constructor kelas Karyawan Karyawan(String ID. terkadang method perlu mengacu ke objek yang memilikinya. gaji = Gaji. Meskipun demikian. String divisi.9 Hasil eksekusi program 6. } Sebenarnya kode di atas juga dapat ditulis dengan menggunakan referensi this. String Div. this. 57 . Untuk menghindari proses penimpaan variabel ini. dalam konteks lain. this. Java memperbolehkan kita untuk mendeklarasikan nama parameter yang sama dengan nama data yang terdapat di dalam kelas dengan resiko variabel yang digunakan sebagai parameter akan menimpa nama data yang terdapat di dalam kelas bersangkutan.nama = Nama. //constructor kelas Karyawan Karyawan(String kode.Gambar 6. double Gaji) { ID = kode. String nama.

0). Berikut ini contoh program yang akan menunjukkan pendefinisian proses overload method di dalam sebuah kelas. tapi parameternya berbeda. bukan parameter yang terdapat pada constructor.16 Kelas Pembagian dengan method yang di-overload public class Pembagian { //method dengan dua parameter bertipe int int bagi(int a. double b) { return a / b. 4. 58 . } //method dengan dua parameter bertipe double double bagi(double a. double y = b. Melakukan Overload terhadap Method Kita dapat mendefinisikan lebih dari satu method dengan nama yang sama dalam sebuah kelas. } double tambah(double a. nama. int b) { return a + b. } Kode di atas legal untuk didefinisikan di dalam sebuah kelas. double b) { return a + b.0.divisi. int b) { return a / b. Pada contoh tersebut. this. Program 6.ID. dan gaji yang terdapat dalam kelas Karyawan. this.17 Pemanggilan method yang di-overload pada kelas Pembagian public class ContohOverloadMethod { public static void main(String[] args) { Pembagian b = new Pembagian(). kita mendefinisikan dua buah method dengan nama yang sama. int x = b.bagi(10. 4). divisi. Perhatikan dua buah contoh method berikut ini. dengan syarat parameter yang terdapat pada methodmethod tersebut berbeda.} Di sini. this. dan this.bagi(10. Parameter dalam suatu method dikatakan berbeda dari method yang lainnya apabila: • Jumlahnya berbeda. int tambah(int a.nama.gaji menunjuk ke data ID. meskipun jumlahnya sama • Jumlah dan tipe datanya berbeda Prose pendefinisian method dengan nama sama ini disebut dengan overload. meskipun tipe datanya sama • Tipe datanya berbeda. } } Program 6.

proses overload juga dapat diaplikasikan ke dalam constructor suatu kelas. System.println("Hasil bagi tipe double = " + y).println("Gaji : " + gaji).out.nama = nama.println("Divisi : " + divisi).println("Hasil bagi tipe int = " + x).out. this. String divisi.out. } } Saat dijalankan. perhatikan contoh program di bawah ini. //constructor pertama Karyawan(String ID. this. suatu kelas pada umumnya justru memiliki lebih dari satu constructor.println("Data Karyawan :"). Program 6.gaji = gaji.println("ID : " + ID).println("Nama : " + nama). String nama) { this. } double hitungSumbanganZakat() { double zakat = gaji * 0. } void cetakData() { System.divisi = divisi. divisi.025. double gaji) { this.out. System. this.out. String nama. System.nama = nama. System.System.out. nama. Program 6.17 Overload pada Constructor Selain pada method. System. Untuk mendemonstrasikan bagaimana Java melakukan hal itu. Pada kenyataannya. Hal ini disebabkan karena sebenarnya constructor juga adalah sebuah method yang mengembalikan tipe kelas (dirinya sendiri). } //constructor kedua Karyawan(String ID.ID = ID.ID = ID. this. double gaji. 59 .10 hasil eksekusi program 6.out.18 Contoh overload terhadap constructor kelas Karyawan public class Karyawan { String ID.17 tersebut di atas akan memberikan hasil sebagai berikut: Gambar 6.

} } Program 6. sebenarnya kita menggabungkan data dan kode ( method) menjadi satu. kita dapat menentukan tingkat akses dari data dan method tersebut menggunakan kata kunci private. data pada umumnya didesain untuk bersifat private atau hanya dapat diakses oleh kelas yang memilikinya saja.11 Hasil eksekusi program 6. method pada umumnya bersifat public. karyawan002.19 Instansiasi objek Karyawan menggunakan constructor yang telah di-overload public class ImplemetasiOverloadConstructor { public static void main(String[] args) { //instantiasi menggunakan constructor pertama Karyawan karyawan001 = new Karyawan("k006". maka kita pun harus mendeklarasikannya dengan kata kunci private. public. Pada situasi semacam ini. "Zaky"). 2250000). "Deva". maupun protected.cetakData(). karyawan001. apabila kita ingin mendefinisikan method yang hanya dapat diakses oleh kelas itu sendiri. Pengaksesan data dari bagian luar hanya dapat dilakukan melalui methodmethod yang ada. Maka dari itu.19 Menentukan Tingkat Akses Data dan Method Seperti yang telah dibahas pada bab-bab sebelumnya. Dan jika kita menginginkan data dan method yang kita definisikan di dalam kelas hanya dapat diakses oleh kelas-kelas turunan 60 .return zakat. } } Saat dijalankan.cetakData(). "Keuangan". Program 6.19 tersebut di atas akan memberikan hasil sebagai berikut: Gambar 6.println(""). dalam pembungkusan (encapsulation). Dalam pemrograman berorientasi objek.out. //instantiasi menggunakan constructor kedua Karyawan karyawan002 = new Karyawan("k007". method berperan sebagai antarmuka (interface). Meskipun demikian. Ini artinya. System.

Secara umum. public void setIPK(double nilai) { ipk = nilai.20 Deklarasi kelas Mahasiswa public class Mahasiswa { int nim. tingkat-akses dataN. private double ipk. tingkat-akses methodN(daftar-parameter) { //kode untuk methodN } } dalam hal ini tingkat-akses adalah salah satu dari kata kunci private. …. public String nama. Tingkat akses protected akan dijelaskan lebih lanjut pada bab lain di modul ini. maka data dan method tersebut harus dideklarasikan dengan kata kunci protected.dari kelas yang bersangkutan. } public double getIPK() { return ipk. Program 6. yaitu yang membahas mengenai pewarisan sifat terhadap kelas turunan ( inheritance). maupun protected. } } 61 . Apabila kita tidak mencantumkan salah satu kata kunci tersebut pada saat mendeklarasikan data maupun method. tingkat-akses data2. public. maka secara default Java akan menganggapnya sebagai data atau method dengan sifat public. pembungkusan data dan method dari suatu kelas dapat dituliskan seperti berikut: class NamaKelas { tingkat-akses data1. Berikut ini contoh program yang akan menunjukkan pengaruh dari tingkat akses public dan private di dalam suatu kelas. tingkat-akses method1(daftar-parameter) { //kode untuk method1 } tingkat-akses methodN(daftar-parameter) { //kode untuk methodN } ….

out. System. //BENAR. Meskipun demikian. karena nim secara default bersifat public Yahya. karena method setC() bersifat public Yahya.setIPK(3. Yahya. ….21 Contoh pengaruh tingkat akses data dan method pada kelas Mahasiswa public class PengaruhHakAkses { public static void main(String[] args) { Mahasiswa Yahya = new Mahasiswa().println("NIM : " + Yahya.getIPK()). terdapat tanda error (yang bergaris bawah) yang menandakan bahwa variabel ipk tidak bisa diakses secara langsung karena didefinisikan menggunakan hak akses private. Gambar 6.nim = 1009.12 Hasil eksekusi program 6.Program 6. program tersebut di atas akan menampilkan pesan kesalahan seperti ditunjukkan pada Gambar 6. //BENAR.nama). System.out.nama = "Yahya Al-Mahandiz". Jika dipaksakan untuk dijalankan. kita harus menjadikan data atau method tersebut dengan sifat statis. System.21 Kata Kunci static Secara normal. suatu anggota kelas (baik data maupun method) hanya dapat diakses melalui objek referensinya. yaitu dengan membubuhkan kata kunci static pada awal deklarasi. class ContohDeklarasiStatik { //mendeklarasikan data statis static int dataStatis1. } } Pada kode program di atas. Berikut ini contoh pendeklarasian sebuah data dan method statis dalam suatu kelas. //mendeklarasikan method statis Static methodStatis1() {….12.//SALAH.println("Nama : " + Yahya. } 62 .77).} ….77. karena nama bersifat public Yahya.karena ipk bersifat private //BENAR.out. Java mengizinkan kita untuk mengakses suatu anggota kelas tanpa harus membuat objek atau instance-nya terlebih dahulu.nim). Untuk membuat anggota kelas semacam ini.println("IPK : " + Yahya.ipk = 3.

Melalui cara ini, variabel dataStatis1 dan methodStatis1() dapat dipanggil secara langsung tanpa harus membuat objek atau instance dari kelas ContohDeklarasiStatik terlebih dahulu. Untuk lebih memahami cara kerja dari data dan method statis, coba perhatikan contoh program berikut ini. Program 6.22 Contoh implementasi data dan method statis public class ContohStatic { static int dataA = 10; static int dataB = 7; int dataC = 4;//data non-statik static void test() { int dataC = dataA + dataB; System.out.println("dataA + dataB = " + dataC); //System.out.println("dataC = "+dataC); //SALAH, karena dataC non-statik } public static void main(String[] args) { test(); } } Pada contoh program di atas, kita dapat memanggil method test() tanpa harus membuat objek atau instance dari kelas ContohStatic. Satu hal lagi, method test() tidak dapat mengakses dataC, karena data tersebut tidak dideklarasikan sebagai data statis. Saat dijalankan, program tersebut di atas akan memberikan hasil sebagai berikut:

Gambar 6.13 Hasil eksekusi program 6.22 Sama halnya seperti data dan method normal (non-statis), data dan method statis juga dapat dipanggil melalui operator titik (.). Perbedaannya, pemanggilan data atau method statis tidak perlu menggunakan objek referensi, melainkan nama kelas yang memilikinya. Coba perhatikan contoh program berikut ini. Program 6.23 Deklarasi kelas yang menggunakan data dan method statis public class RobotStatic { static String nama; static String asalNegara; static void test() { System.out.println("Hello..");

63

System.out.println("Saya adalah robot " + nama); System.out.println("Saya berasal dari " + asalNegara); } } Program 6.24 Contoh pemanggilan data dan method statis public class ContohStatic2 { public static void main(String[] args) { RobotStatic.nama = "Gathotkaca"; RobotStatic.asalNegara = "Indonesia"; RobotStatic.test(); } } Tampak jelas bahwa kita dapat mengakses data nama dan asalNegara beserta method test() dari kelas RobotStatis tanpa harus membentuk objek atau instance dari kelas RobotStatis terlebih dahulu. Namun, yang perlu diperhatikan, kita dituntut untuk membubuhkan nama kelas yang memiliki data atau method yang akan diakses. Saat dijalankan, program tersebut di atas akan memberikan hasil sebagai berikut:

Gambar 6.14 Hasil eksekusi program 6.24 Bentuk umum dari pengaksesan data dan method statis dapat dituliskan sebagai berikut: NamaKelas.data Atau NamaKelas.method()

64

Kata Kunci final Dalam java, kata kunci final dapat kita gunakan untuk mendeklarasikan sebuah konstanta. Jika kita ingin menggunakan kata kunci final untuk mendeklarasikan suatu variabel sebagai konstanta, maka kita perlu mengisikan nilai ke dalam variabel tersebut. nilai tersebut akan bersifat tetap atau tidak dapat diubah selama eksekusi program berlangsung. Berikut ini bentuk umum dari pendeklarasikan sebuah konstanta di dalam Java. tingkat-akses final tipe-data namakonstanta = nilai; Seperti halnya pada bahasa C/C++, dalam Java, konstanta pada umumnya ditulis dengan huruf kapital. Berikut ini beberapa contoh pendeklarasian konstanta. final double PHI = 3.14; private final int ERROR = -1; private final String NEGARA = “INDONESIA”; Berikut ini contoh program yang akan menunjukkan penggunaan kata kunci final untuk mendeklarasikan sebuah konstanta. Program 6.25 Deklarasi kelas Pegawai yang mengimplementasikan kata kunci final public class Pegawai { String nama; final double bonusLembur = 50000; double hitungBonusLembur(double jumlahLembur) { return bonusLembur * jumlahLembur; } } Program 6.26 Contoh implementasi kata kunci final public class ImplemetasiFinal { public static void main(String[] args) { Pegawai Dhennis = new Pegawai(); Dhennis.nama = "Dhennis AlMAhandiz"; System.out.println("Data Karyawan : "); System.out.println("nama : " + Dhennis.nama); System.out.println("Bonus lembur : " + Dhennis.hitungBonusLembur(7)); } }

65

Program 6. meskipun data dan method tersebut bersifat private.out.26 Kelas di dalam Kelas (Inner Class) Java mengizinkan kita untuk mendefinisikan suatu kelas di dalam kelas lainnya. Kelas semacam ini dinamakan sebagi inner class (kelas bagain dalam). } } : " + 66 . } } public void cetakdata() { SistemOperasi OS = new SistemOperasi(). System.15 Hasil eksekusi program 6. OS.out. public void cetakData() { System.println("Merk notebook merk).Saat dijalankan. myNotebook. Program 6.26 di atas akan memberikan hasil sebagai berikut: Gambar 6.cetakData(). Berikut ini contoh program yang akan mengilustrasikan pendefinisian dan penggunaan inner class. Inner class dapat mengakses data dan method dari kelas yang berada di bagian luarnya.28 Implementasi konsep inner class public class ImplemetasiInnerClass { public static void main(String[] args) { Notebook myNotebook = new Notebook().println("Sistem operasi : " + namaOS).cetakData().27 Deklarasi kelas yang mengandung inner class public class Notebook { private String merk = "Lenovo". class SistemOperasi { private String namaOS = "Windows 7". } } Program 6.

Latihan Lakukan praktek diatas sebagai bentuk latihan dan lakukan evaluasi 4.28. Tugas Bualah sebuah program kalkulator sederhana yang didalamnya terdapat operasi aritmatika sederhana dan terdapat validasi inputan implementasikan program ini dengan interface class dan objek. 67 .28 di atas akan memberikan hasil sebagai berikut: Gambar 6. 3.Saat dijalankan. Program 6.16 Hasil eksekusi program 6.

y.1: Gambar 7.1 Hirarki klas dosen. digunakan untuk menunjukkan bahwa suatu class merupakan turunan dari class lain. klas dekan dan klas kalab. berarti class A adalah turunan dari class B. 68 . Klas dosen tersebut memiliki turunan berupa klas rektor. Praktikan mampu menerapkan konsep pewarisan. 2.yaitu: • Sub class. • Super class. overloading dan overriding dalam pemrograman dengan Java. • Super. Pada konsep pewarisan ada beberapa istilah yang perlu diketahui. digunakan untuk memanggil konstruktor dari super class atau memanggil variabel yang mengacu pada super class. 3. A merupakan subclass. 2.z). dan z diambil dari atribut pada class induk.1 menunjukkan hirarki klas dosen. Teori Singkat Pewarisan Pewarisan (inheritance) adalah suatu cara pembuatan class baru dengan menggunakan kembali class yang sudah didefinisikan sebelumnya dengan menambahkan atribut dan method baru. berarti atribut x. digunakan untuk menunjukkan class anak atau turunan secara hirarkis dari super class. Praktikan dapat membedakan pemakaian overloading dan overriding.2. Misal A extends B. • Extends. Sehingga dengan demikian class baru tersebut tetap memiliki variabel dan fungsi yang dimiliki oleh class sebelumnya.BAB 7 Pewarisan (Inheritance) 1. Misal super(x. Gambar 7. Apabila dirancang ke dalam diagram class. sedangkan B merupakan superclass. digunakan untuk menunjukkan class induk secara hirarkis dari sub class (class anak). Contoh 7. Tujuan Pembelajaran: 1. Praktikan mampu menterjemahkan UML ke dalam bentuk pemrograman.y. akan nampak seperti pada Gambar 7.

Class turunan dari class dosen ada tiga class. serta method viewRektor(). Method yang dimiliki oleh class dosen adalah view().2 Class diagram untuk hirarki dosen. Pendefinisian class dosen seperti terlihat pada Gambar 7.4 – 7.6.3 Pendefinisian class dosen pada Contoh 7. 69 . dekan. Pada class kalab terdapat tambahan atribut laboratorium. nik dan jurusan.1. Pada Gambar 7.2 tersebut. dan method viewDekan().3. Gambar 7. Pada class dekan terdapat tambahan atribut fakultas. class induk (class dosen) memiliki atribut nama. dan method viewKalab(). terdapat tambahan atribut berupa th_mulai dan jabatan_ke.Gambar 7. dan kalab seperti terlihat pada Gambar 7. Pada class rektor. Selanjutnya pendefinisian class rektor.

1. Gambar 7.5 Pendefinisian class dekan Contoh 7.6 Pendefinisian class kalab Contoh 7. Gambar 7. 70 . Program utama untuk pemanggilan fungsi sebagaimana terlihat pada Gambar 7.7.1.1.Gambar 7.4 Pendefinisian class rektor Contoh 7.

Gambar 7. 71 .7 Program utama menunjukkan pewarisan klas dosen.

9 – 7. Gambar 7.1 dapat dipadukan dengan konsep overriding.11 menunjukkan class tersebut. Gambar 7. dan kalab dengan menambahkan instruksi tambahan yang dibutuhkan pada setiap class.2. Method ini ditulis ulang pada setiap subclass yaitu subclass rektor.8 menunjukkan class dosen yang tidak jauh berbeda dengan class dosen pada contoh 7. dekan. 72 .9 Pendefinisian class rektor Contoh 7.1. Konsep overriding digunakan pada method view(). Gambar 7. Contoh 7. fungsi yang asli pada class induk masih dapat dipanggil di class anak dengan menggunakan class super. Overriding dilakukan dengan cara menulis ulang method yang ada pada class induk dengan syarat bahwa nama dan parameter fungsi tersebut harus sama (tidak boleh diubah).2: Konsep pewarisan pada contoh 7.8 Pendefinisian class dosen pada Contoh 7. Gambar 7.1. Meskipun fungsi telah ditulis ulang oleh class anak.Overriding Overriding adalah suatu cara untuk mendefinisikan ulang method yang ada pada class induk apabila class anak menginginkan adanya informasi yang lain.

Gambar 7. Pada bahasan overloading dikenal istilah signature. Signature sebuah fungsi adalah parameter lengkap dengan tipe datanya yang terdapat dalam fungsi tersebut.2.Gambar 7.12 Program utama menunjukkan konsep overriding klas dosen.2.12. Gambar 7. Untuk melakukan pemanggilan. program utama diberikan pada Gambar 7.11 Pendefinisian class kalab Contoh 7. Overloading Overloading fungsi adalah penulisan beberapa fungsi (dua atau lebih) yang memiliki nama yang sama. Misal terdapat fungsi: 73 .10 Pendefinisian class dekan Contoh 7.

74 .13 Dua class bernama infoMahasiswa dengan signature berbeda. int perempuan.public int jumlahMahasiswa (int laki2.14). masing-masing dengan parameter yang bersesuaian ( Gambar 7. int mhsCuti. } public void infoMahasiswa (int mhsLama. int perempuan. Sedangkan pada subclass kedua digunakan untuk menghitung jumlah mahasiswa aktif sampai tahun 2008. Suatu fungsi dikatakan di-overload manakala terdapat beberapa fungsi dengan nama yang sama namun memiliki signature yang berbeda-beda.13). int.. Pada program utama dilakukan pemanggilan terhadap kedua class tersebut. Subclass pertama digunakan untuk menghitung jumlah mahasiswa kelas A angkatan 2008. int angkatan) { . String kelas) { . String kelas). int mhsBaru... Pada class tersebut terdapat dua subclass dengan nama yang sama yaitu infoMahasiswa namun memiliki signature yang berbeda. maka signature dari fungsi tersebut adalah (int. sebagai contoh: public void infoMahasiswa (int laki2. String).. } Contoh 7. Gambar 7.3: Berikut terdapat class mahasiswa ( Gambar 7.

15.14 Pemanggilan fungsi yang di-overload pada Contoh 7. Pada program utama dilakukan pemanggilan terhadap kedua class tersebut.Gambar 7. maka fungsi tersebut tidak dapat dikatakan sebagai overloading.15 Dua class bernama jumlah dengan signature berbeda. double y2). Dalam satu class. masing-masing dengan parameter yang bersesuaian ( Gambar 7. Overloading fungsi ditentukan oleh signature nya. int x2). Class yang dibentuk sebagaimana terlihat pada Gambar7. Gambar 7. Sedangkan class jumlah yang kedua memiliki nilai balikan yang bertipe double untuk signature (double y1. Contoh 7.3. Class jumlah yang pertama memiliki nilai balikan yang bertipe integer untuk signature (int x1. tidak ditentukan oleh nilai balikan fungsi.4: Berikut terdapat dua class bernama jumlah untuk untuk menjumlahkan dua bilangan.16). 75 . apabila ada dua atau lebih fungsi yang memiliki nilai balikan yang berbeda namun memiliki signatue yang sama.

Tugas Buatlah sebuah class kendaraan dengan turunannya kedaraan darat. Latihan Lakukan praktek diatas dan lakukan evaluasi 4. 3. 76 . kemudian diturunkan lagi menjadi sepeda motor dan perahu layar.4.Gambar 7.16 Pemanggilan fungsi yang di-overload padaContoh 7. kendaraan laut.

Hal ini dilakukan karena setiap objek dimungkinkan memiliki instruksi yang berbeda. Signature method harus sama baik yang ada pada super class maupun di subclass.1 merupakan program untuk membangun class kendaraan. Gambar 8. Teori Singkat Polimorfisme digunakan untuk menyatakan suatu nama yang merujuk pada beberapa fungsi yang berbeda (Sinaga. Gambar 8. 2004). Tujuan Pembelajaran: Praktikan mampu menerapkan konsep polimorfisme dalam pemrograman dengan Java. Pada polimorfisme.BAB 8 Polimorfisme 1. 77 . rujukan dapat dilakukan pada berbagai tipe objek. 4. perlu diperhatikan hal-hal sebagai berikut (Rickyanto. 2.1.2 – 8. mobil. dan kapal.1: Pada Gambar 8. Method yang dipanggil harus melalui variabel dari super class. yaitu class pesawat. 2005): 1.1 Pendefinisian class kendaraan pada Contoh 8. Dalam mengimplementasikan polimorfisme. Method access attribute pada subclass tidak boleh lebih terbatas daripada yang ada pada super class.4 menunjukkan pembentukan ketiga subclass tersebut. 3. 2. Pada class kendaraan mewaris ke tiga class. Method yang dipanggil juga harus merupakan method yang ada pada super class. Contoh 8.

78 .2 Pendefinisian class pesawat Contoh 8.3 Pendefinisian class mobil Contoh 8.1.1. Gambar 8.Gambar 8.

masing-masing dengan parameter yang bersesuaian ( Gambar 8.Gambar 8.4 Pendefinisian class kapal Contoh 8. 3. Gambar 8.1. Latihan Lakukan praktek diatas dan lakukan evaluasi 4.5). Pada program utama dilakukan pemanggilan terhadap ketiga class tersebut.5 Program utama untuk contoh 8. Tugas Buatlah semua program yang mengimplemtasikan konsep polymorphisme dari sebuah class dengan nama class hewan 79 .1.

Tipe tersebut direpresentasikan dengan sebuah kelas. Dalam hal ini setiap kesalahan akan dibentuk menjadi objek. Berikut ini bentuk umum penanganan eksepsi di dalam Java. misalnya: NullPointerException. Untuk itu. dan sebagainya. yang lebih penting adalah bagaimana dalam program kita dapat mengantisipasi kemungkinan munculnya kesalahan pada saat program kita dieksekusi. Java menyediakan sebuah mekanisme penanganan kesalahan yang biasa disebut dengan exception-handling. Pada kasus-kasus tertentu. Eksepsi dapat dibangkitkan secara otomatis oleh Java runtime maupun secara manual oleh kita sendiri melalui kode yang kita tulis. Jika kita ingin membangkitkan sebuah eksepsi tanpa menuliskan blok try. Tujuan Pembelajaran: Praktikan mampu menangani berbagai kesalahan dengan penanganan eksepsi dalam pemrograman dengan Java. Kata kunci try digunakan untuk membuat blok yang berisi statemenstatemen yang mungkin menimbulkan eksepsi. ArithmeticException. ArrayIndexOutOfBounds. Teori Singkat Dalam Java. Dalam mendefinisikan blok try. Namun.Exception. kita harus menggunakan kata kunci throw. Saat kita membuat program. maka kita perlu menambahkan kata kunci throws pada saat pendeklarasian method. throw. Statemen tambahan ini pasti akan dieksekusi baik terjadi eksepsi maupun tidak. dan finally. sebisa mungkin program kita terhindar dari kesalahan. throws. runtime error (kesalahan-kesalahan yang terjadi pada saat program sedang berjalan) direpresentasikan denga eksepsi. finally { //statemen tambahan yang pasti akan dieksekusi } Di sini. TipeEksepsi adalah tipe dari eksepsi yang terjadi. 2.BAB 9 Penanganan Eksepsi 1. Java menyediakan lima buah kata kunci untuk menangani eksepsi. catch. Eksepsi adalah suatu objek yang dibuat pada saat program mengalami suatu kondisi yang tidak wajar (abnormal). yaitu: try. kita dapat menuliskan statemen tambahan. try { //kumpulan statemen yang mungkin menimbulkan eksepsi } catch (TipeEksepsi1 objekEksepsi1) { //penanganan untuk tipe eksepsi1 } catch (TipeEksepsi2 objekEksepsi2) { //penanganan untuk tipe eksepsi2 } …. Jika dalam proses eksekusi runtunan statemen tersebut terjadi sebuah eksepsi. maka eksepsi akan dilempar ke bagian blok penangkap yang dibuat dengan kata kunci catch. Perhatikan kode program berikut ini: 80 . terkadang kita juga ingin melempar eksepsi secara manual. yaitu menggunakan kata kunci finally.

pada umumnya. int penyebut = 0.out. Untuk melakukan hal tersebut.out. } 81 . sebagai programmer. Jika kita mengakses indeks ke-7 maka Java akan memberikan pesan kesalahan berikut: Gambar 9.1 Ini artinya. } catch (Exception e) { System. Dengan demikian. Tampak pada contoh di atas bahwa ketika terjadi sebuah eksepsi maka program akan dihentikan secara tidak normal. } } Jika dijalankan. aris ke-18.Program 9. Program 9. Menggunakan Kata Kunci try dan catch Pada bagian sebelumnya telah dicontohkan bagaimana Java mencegah eksepsi secara default. Berikut ini contoh program yang menggunakan blok try-catch untuk menangani kesalahan yang muncul.2 Contoh implementasi blok try-catch class ContohEksepsi2 { public static void main(String[] args) { int pembilang = 7.out.1 Contoh program yang menimbulkan eksepsi class ContohEksepsi1 { public static void main(String[] args) { int[] arrayInteger = new int[5]. yang tersimpan dalam file ContohEksepsi1.java.println("Hasil = " + hasil). program di atas akan membangkitkan eksepsi dengan tipe ArrayIndexOutOfBoundsException karena kita mengakses indeks yang tidak terdapat di dalam array A. Mekanisme inilah yang dinamakan dengan exception-handling.1 Pesan kesalahan hasil eksekusi program 9. Kode yang menimbulkan kesalahan tersebut terdapat pada method main() di dalam kelas ContohEksepsi1. pencegahan eksepsi dilakukan oleh kita sendiri. kita dapat menggunakan blok try-catch. Namun. } System. karena tidak terdapat indeks ke-7 arrayInteger[7] = 9. kita perlu mendefinisikan sebuah mekanisme yang dapat menangani kesalahan tersebut.println("KESALAHAN: " + "Terdapat pembagian dengan nol"). Oleh karena itu. // SALAH // tidak dieksekusi System.println("Statemen setelah blok trycatch"). // SALAH. indeks 7 menimbulkan eksepsi ArrayIndexOutOfBoundsException. Array A terdiri dari 5 elemen dengan indeks 0 sampai 4. try { int hasil = pembilang / penyebut.

int penyebut) { try { int hasil = pembilang / penyebut.out. Namun bagian statemen yang dituliskan setelah blok try-catch tetap akan dieksekusi oleh program. tidak dihentikan secara tiba-tiba. // array dengan 5 elemen Arr[ 10] = 23.println("Indeks di luar rentang"). // mengakses indeks ke-10 } catch (ArithmeticException eksepsi1) { System.println("Hasil bagi: " + hasil). sebuah blok try-catch biasanya terdiri atas beberapa bagian blok penangkap. kita dapat mengatasi beberapa kemungkinan eksepsi yang terjadi.out. } catch (ArrayIndexOutOfBoundsException eksepsi2) { System.println( "Terdapat pembagian dengan0").3 Contoh penjebakan beberapa tipe eksepsi class ContohMultiEksepsi { public static void cobaEksepsi(int pembilang.out. 4. int[] Arr = {1. } } public static void main(String[] args) { cobaEksepsi(4. Dengan menggunakan blok try-catch seperti contoh-contoh di atas. Penjebakan Beberapa Tipe Eksepsi Pada kenyataan di lapangan. namun proses eksekusi program tetap dapat dilanjutkan. Inilah yang disebut dengan proses penjebakan kesalahan atau penjebakan eksepsi.2 Hasil eksekusi program 9. 2. meskipun di dalam program sebenarnya terkandung kesalahan. program akan langsung meloncat ke bagian catch. pada saat muncul eksepsi. // menimbulkan rithmeticException 82 . Hal tersebut bertujuan agar dalam satu blok try-catch.} Pada saat dijalankan. 5}. program di atas akan memberikan hasil sebagai berikut: Gambar 9. 0). System. Berikut ini contoh program yang akan menunjukkan bagaimana cara mendefinisikan sebuah blok try-catch yang dapat digunakan untuk menjebak beberapa tipe eksepsi. 3.2 Pada program di atas. Program 9.

Menggunakan Kata Kunci throw Kita dapat membangkitkan eksepsi secara manual dengan menggunakan kata kunci throw.Exception. Berikut ini bentuk umum penggunaan kata kunci tersebut.3 Tampak pada hasil di atas bahwa ketika kita melewatkan argumen ke dalam method test() dengan nilai 4 dan 0. private String nama. Namun.Throwable.out. program akan membangkitkan eksepsi ArrayIndexOutOfBounds . Hal ini disebabkan karena array Arr hanya terdiri dari 5 buah elemen.println(). misalnya objek String. maka kita dapat menuliskan kodenya sebagai berikut: throw NullPointerException(). Program 9-4 Contoh penjebakan eksepsi dengan kata kunci throw class Mahasiswa { private String nim. 83 . 4). throw eksepsi. eksepsi yang dimaksud harus berupa objek Throwable maupun objek dari kelas-kelas turunannya. Sebagai contoh. Jika kita ingin membangkitkan eksepsi NullPointerException. Program berikut akan menunjukkan bagaimana cara menggunakan kata kunci throw untuk membangkitkan eksepsi NullPointerException.3 Hasil eksekusi program 9. pada saat mengeksekusi statemen: Arr[10] = 23. // menimbulkan ArrayIndexOutOfBoundsException cobaEksepsi(12. public void setNIM(String inputNIM) { try { nim = inputNIM. maka program akan melakukan pembagian dengan benar dan menghasilkan nilai 3 (hasil dari 12/4). } } Hasil eksekusi program di atas adalah sebagai berikut: Gambar 9. Kita tidak dapat melempar objek non. Sedangkan Jika argumen bernilai 12 dan 4. program akan membangkitkan eksepsi ArithmeticException.System.

program akan membangkitkan eksepsi NullPointerException yang kita lempar atau kita bangkitkan secara manual dengan menggunakan kata kunci throw. } } public String getNama() { return nama.println("KESALAHAN: " + "NIM tidak boleh null").println("\nNIM : " + mhs. } } catch (NullPointerException npe) { System. } } public String getNIM() { return nim.getNIM()). } } Pada saat dijalankan.setNama("Nadilla"). mhs. 84 . } public void setNama(String inputNama) { try { nama = inputNama.4 Hasil eksekusi program 9.out.println("Nama : " + mhs.getNama()). System.println("KESALAHAN: " + "Nama mahasiswa tidak boleh null").4 Tampak pada hasil di atas. } } class DemoThrow { public static void main(String[] args) { Mahasiswa mhs = new Mahasiswa().if (inputNIM == null) { throw new NullPointerException(). ketika kita melewatkan nilai null ke dalam method setNIM() dari kelas Mahasiswa.out.out. } } catch (NullPointerException npe) { System. mhs. if (nama == null) { throw new NullPointerException(). System.setNIM(null).out. program di atas akan memberikan hasil sebagai berikut: Gambar 9.

println(e.5 Hasil eksekusi program 9. Jika tidak. tipe-eksepsi2. maka program tidak dapat dikompilasi.getMessage()). program di atas akan memberikan hasil sebagai berikut: Gambar 9. tipe-eksepsiN { //badan-method } throws tipe- Berikut ini contoh program yang menggunakan kata kunci throws untuk menangani eksepsi yang muncul. maka kita harus menyertakan klausa throws pada saat pendeklarasian method yang bersangkutan. } } Pada saat dijalankan. compiler akan mengetahui 85 . Di situ kita menambahkan klausa throws yang diikuti dengan nama eksepsi yang akan dilempar/dibangkitkan.println("Eksepsi ditangkap di sini.Menggunakan Kata Kunci throws Jika kita tidak menyertakan blok try-catch di dalam method yang mengandung kode-kode yang mungkin menimbulkan eksepsi. } public static void main(String[] args) { try { cobaEksepsi(). Melalui teknik seperti ini.println("Statemen setelah blok trycatch").out. } catch (Exception e) { System."). tipe nama-method(daftar-parameter) eksepsi1. ….. Program 9.out. System..out. } System. Berikut ini bentuk umum dari penggunaan kata kunci throws.5 Perhatikan deklarasi method cobaEksepsi() di atas.5 Contoh penjebakan eksepsi dengan kata kunci throws Class DemoThrows { public static void cobaEksepsi() throws IllegalAccessException { throw new IllegalAccessException( "KESALAHAN: illegal access").

bahwa method tersebut dapat membangkitkan eksepsi IllegalAccessException sehingga program dapat dikompilasi dengan sukses. Menggunakan Kata Kunci finally Terkadang kita ingin menempatkan kode yang pasti akan dieksekusi, baik terjadi eksepsi maupun tidak. Untuk melakukan hal itu, kita perlu menempatkan kode tersebut di dalam bagian finalisasi dari blok try-catch. Blok finalisasi ini dibuat dengan menggunakan kata kunci finally. Bentuk umum pendefinisian blok finally ini sebagai berikut: try { //statemen yang mungkin menimbulkan eksepsi A, B, danC } catch (A ea) { //blok penangkap untuk eksepsi A } catch (B eb) { //blok penangkap untuk eksepsi B } catch (C ec) { //blok penangkap untuk eksepsi C } finally { //statemen yang pasti akan dieksekusi, baik terjadi //eksepsi maupun tidak } Untuk mengetahui cara kerja dari kata kunci finally, perhatikan program berikut ini. Program 9.6 Contoh penggunaan kata kunci finally class DemoFinally { public static void cobaEksepsi(int pembilang, int penyebut) { try { int hasil = pembilang / penyebut; System.out.println("Hasil bagi: " + hasil); int[] Arr = {1, 2, 3, 4, 5}; // array dengan 5 elemen Arr[10] = 23; // mengakses indeks ke-10 } catch (ArithmeticException eksepsi1) { System.out.println("Terdapat pembagian dengan 0"); } catch (ArrayIndexOutOfBoundsException eksepsi2) { System.out.println("Indeks di luar rentang"); } finally { System.out.println("Ini adalah statemen dalam blok finally"); } } public static void main(String[] args) { cobaEksepsi(4, 0); // menimbulkanArithmeticException

86

System.out.println(); cobaEksepsi(12, 4); // menimbulkan ArrayIndexOutOfBoundsException } } Pada saat dijalankan, program di atas akan memberikan hasil sebagai berikut:

Gambar 9.6 Hasil eksekusi program 9.6 3. 4. Latihan Lakukan praktek diatas dan lakukan evaluasi Tugas Buatlah program penyisipan array dan gunakan blok try-catch untuk menangani kesalahannya. Contoh 1 2 Sisipkan 3 di indeks ke-1 maka array berubah 1 3 2

87

BAB 10 Input dan Output 1. Tujuan Pembelajaran: Praktikan mampu mengenali dan memahami input dan output (I/O) dalam pemrograman dengan Java. Java menyediakan dukungan terhadap proses I/O dengan menghadirkan paket java.io. Di dalam paket tersebut tersimpan banyak kelas dan interface yang akan memudahkan kita, sebagai programmer, dalam pengambilan dan penyimpanan informasi dari/ke media lain (misalnya: file). Bab ini akan memperkenalkan beberapa kelas yang terdapat pada paket java.io yang diperlukan untuk melakukan proses input dan output di dalam Java. 2. Dasar-Dasar I/O Pengertian Stream Program Java melakukan proses I/O melalui stream. Stream adalah sebuah abstraksi yang dapat memberikan atau mendapatkan informasi. Stream dapat dihubungkan dengan peralatan fisik yang terdapat dalam system I/O Java, seperti: keyboard, file, layar console, dan yang lainnya. Cara kerja stream selalu sama, meskipun jenis peralatan yang terhubung dengan stream tersebut berbeda. Ini artinya, sebuah stream input dapat mengabstraksikan beberapa tipe peralatan fisik, seperti: keyboard, file, atau socket jaringan. Begitu pula dengan stream output, yang dapat dihubungkan dengan layar console, file, maupun koneksi jaringan. Dengan demikian, stream akan memudahkan kita dalam melakukan proses I/O, karena kode program yang kita tulis akan sama untuk masing-maisng peralatan fisik yang dihubungkan dengan stream bersangkutan. Tipe Stream Terdapat dua buah tipe stream yang dapat digunakan, yaitu: stream byte dan stream karakter. Sesuai dengan namanya, stream byte digunakan untuk memberikan atau menyimpan informasi data dalam bentuk byte, misalnya untuk menulis dan membaca file biner. Sedangkan stream karakter digunakan untuk melakukan proses I/O yang melibatkan data-data dalam bentuk karakter, misalnya pada saat kita melakukan proses baca/tulis ke file teks. Dalam Java, stream didefinisikan dengan menggunakan empat kelas abstrak, yaitu: InputStream, OutputStream, Reader, dan Writer. Kelas InputStream dan OutputStream merupakan kelas abstrak yang dirancang sebagai kelas induk atau superclass untuk kelas-kelas yang termasuk ke dalam kategori stream byte. Adapun kelas Reader dan Writer merupakan kelas abstrak yang akan diturunkan menjadi kelas-kelas baru yang termasuk ke dalam kategori stream karakter. Melalui proses pewarisan (inheritance), semua kelas yang diturunkan dari InputStream maupun Reader akan memiliki method read(), yang akan digunakan untuk proses pembacaan data. Adapun semua kelas yang diturunkan dari OutputStream maupun Writer akan memiliki method write(), yang akan digunakan untuk proses penulisan data. Kedua method tersebut dideklarasikan sebagai method abstrak sehingga harus diimplementasi oleh setiap kelas turunannya. Melakukan Input

88

Karena Reader berupa kelas abstrak. Adapun bentuk constructor dari BufferedReader sebagai berikut: BufferedReader(Reader inputReader) inputReader adalah stream yang akan dihubungkan dengan instance atau objek dari kelas BufferedReader yang dibuat.out. InputStreamReader isr = new InputStreamReader(System. Sekarang.out. Salah satunya adalah kelas InputStreamReader. class DemoInputKarakter { public static void main(String[] args) throws IOException { System. Membaca Input Data Karakter Untuk membaca input berupa karakter.1 Program dengan proses input data karakter import java.*.io. maka kita perlu mencari kelas turunannya yang berupa kelas konkrit. yang akan kita bahas lebih lanjut.Dalam Java.in. Dengan demikian.in sebenarnya merupaka stream byte. kita bisa menggunakan method read() yang terdapat pula pada kelas BufferedReader. kita perlu menggunakan bentuk constructor sebagai berikut: InputStreamReader(InputStream inputStream) Di sini.in). agar objek dari InputStreamReader dapat dihubungkan dengan System. } } 89 .read().in. Sampai tahap ini. BufferedReader br = new BufferedReader(isr).in.in). KarakterInput = (char) br. inputStream dapat kita isi dengan System. Program 10.in di dalam objek BufferedReader.print("Masukkan sebuah karakter: "). dilakukan untuk membentuk stream karakter karena System. input console dilakukan melalui pembacaan terhadap stream System. System. BufferedReader br = new BufferedReader(isr). yaitu dengan melakukan pemanggilan terhadap method read() maupun readline(). objek br sudah siap digunakan untuk melakukan proses input. kita perlu membungkus System. untuk membuat objek BufferedReader yang dapat terhubung dengan keyboard. yang dapat mengkonversi byte ke karakter.println("Karakter yang dimasukkan adalah

" + KarakterInput + "
"). Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input data karakter. Untuk mendapatkan karakter-karakter yang dimasukkan melalui keyboard ke dalam layar console. kita perlu menggunakan kode berikut: InputStreamReader isr = new InputStreamReader(System. char KarakterInput. Hal ini.

class DemoInputString { public static void main(String[] args) throws IOException { System. bukan method read().out.out.*.2 Hasil eksekusi program 10. } } Pada saat dijalankan... Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input data numerik.in). BufferedReader br = new BufferedReader(isr). dan selanjutnya string hasil input tersebut dikonversi ke tipe numerik. Program 10.2 Program dengan proses input data string import java.2 Membaca Input Data Numerik Untuk membaca input berupa data numerik.println("Semoga Anda Sukses Selalu. program di atas akan memberikan hasil sebagai berikut: Gambar 10. System.3 Program dengan proses input data numerik import java. namaInput = br. String namaInput..print("Masukkan nama Anda: ").io."). InputStreamReader isr = new InputStreamReader(System.out. kita bisa menggunakan method readLine() seperti pada saat menangani input data string. kita bisa menggunakan method readLine(). Program 10. class DemoInputNumerik { 90 . System. program di atas akan memberikan hasil sebagai berikut: Gambar 10.*.readLine().Pada saat dijalankan.println("Halo " + namaInput + ".1 Membaca Input Data String Untuk membaca input berupa string.io.1 hasil eksekusi program 10."). Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input data string.

// input data dianggap sebagai string temp = br. kita harus membentuk objek dari salah satu kelas stream tersebut dengan menyertakan nama file sebagai argumen pada constructor-nya. } System.parseInt(temp). BufferedReader br = new BufferedReader(isr). String temp.println("Nilai yang dimasukkan " + "bukan bilangan bulat"). } catch (NumberFormatException nfe) { System. eksepsi tersebut akan muncul jika file output tidak dapat terbentuk. int bilanganInput = 0.out.out.3 Dasar-Dasar Baca Tulis File Java menyediakan dua buah stream yang paling sering digunakan untuk melakukan proses pembacaan/penulisan data dari/ke dalam file.println("Bilangan yang anda masukkan adalah " + bilanganInput). fileName menunjukkan nama file yang akan dibuka. sedangkan pada saat menggunakan stream output. Keduanya akan membentuk stream byte yang terhubung ke sebuah file. yaitu: FileInputStream (untuk membaca data) dan FileOutputStream (untuk menulis data). program di atas akan memberikan hasil sebagai berikut: Gambar 10.in). Bentuk secara umum adalah sebagai berikut: FileInputStream(String filename) throws FileNotFoundException FileOutputStream(String filename) throws FileNotFoundException Di sini. } } Pada saat dijalankan.readLine().public static void main(String[] args) throws IOException { System. try { // konversi dari string ke integer bilanganInput = Integer. System.exit(1).3 Hasil eksekusi program 10. 91 . InputStreamReader isr = new InputStreamReader(System. Untuk membuka file.out.print("Masukkan sebuah bilangan bulat : "). Pada saat menggunakan stream input. jika file tidak ditemukan maka kedua constructor akan membangkitkan eksepsi FileNotFoundException.

// membuka file try { finput = new FileInputStream("d:/INPUT. } catch (FileNotFoundException fnfe) { System. } } catch (IOException ioe) { System. } catch (IOException ioe) { } } // // // // } Gambar 10.io.close(). return.out.*.4 Hasil eksekusi program 10. class DemoBacaFile { public static void main(String[] args) { FileInputStream finput = null.").print((char) data). int data.TXT"). return.4 File input yang akan dibaca melalui program 10.getMessage()). Program 10. data dikonversi ke tipe char System.out. // keluar dari method } membaca data dari dalam file dan menampilkan hasilnya ke layar console try { while ((data = finput.println("File tidak ditemukan.4 dalam membaca file teks INPUT.4 Program simulasi pembacaan data dari file import java.txt tersebut di atas adalah sebagai berikut: 92 .read()) != -1) { ketika ditampilkan. } menutup file try { finput.println(ioe.out.Berikut ini contoh program yang akan menunjukkan proses pembacaan data dari sebuah file dan menampilkan isi file tersebut ke layar console.

println("File tidak dapat terbentuk.4 Selanjutnya akan dibahas tentang proses penulisan data ke dalam file.getMessage()).*.5 Hasil eksekusi program 10.io.out. return.5 Program penulisan data ke sebuah file import java.out. } catch (IOException ioe) { } } } Jika program tersebut di atas dijalankan.write((int) data.TXT").println(ioe.charAt(i)).". kita perlu menggunakan method write(). Bentuk umum dari method write() sebagai berikut: void write(int nilaiByte) Berikut ini contoh program yang akan menunjukkan penggunaan method write() di atas. } // menutup file try { foutput."). i < data. return. // keluar dari method } // menulis data ke dalam file try { for (int i = 0. String data = "Hello Guys ! \n Semoga \n Sukses selalu.. class DemoTulisFile { public static void main(String[] args) { FileOutputStream foutput = null.Gambar 10. i++) { // data akan dikonversi per karakter foutput. Program 10. } catch (FileNotFoundException fnfe) { System.close().length(). Untuk melakukan hal ini. maka akan menghasilkan file output sebagai berikut: 93 . } } catch (IOException ioe) { System. // membuka file try { foutput = new FileOutputStream("d:/OUTPUT.

Latihan Lakukan praktek diatas dan lakukan evaluasi 4.6 File output hasil eksekusi program 10.5 3.txt dan .Gambar 10.dat • Mengecek File dalam direktory tertentu • Mengisi File • Menampilkan isi File • Merename nama File • Menghapus File 94 . Tugas Buatlah sebuah program aplikasi file yang bisa melakukan beberapa operasi berikut : • Buat File dengan dua ekstensi .

" + KarakterInput + "","doc_promotions_enabled":false,"static_promo_banner_cta_url":""},"eligible_for_exclusive_trial_roadblock":false,"eligible_for_seo_roadblock":false,"exclusive_free_trial_roadblock_props_path":"/doc-page/exclusive-free-trial-props/163080375","flashes":[],"footer_props":{"urls":{"about":"/about","press":"/press","blog":"http://literally.scribd.com/","careers":"/careers","contact":"/contact","plans_landing":"/subscribe","referrals":"/referrals?source=footer","giftcards":"/giftcards","faq":"/faq","accessibility":"/accessibility-policy","faq_paths":{"accounts":"https://support.scribd.com/hc/sections/202246346","announcements":"https://support.scribd.com/hc/sections/202246066","copyright":"https://support.scribd.com/hc/sections/202246086","downloading":"https://support.scribd.com/hc/articles/210135046","publishing":"https://support.scribd.com/hc/sections/202246366","reading":"https://support.scribd.com/hc/sections/202246406","selling":"https://support.scribd.com/hc/sections/202246326","store":"https://support.scribd.com/hc/sections/202246306","status":"https://support.scribd.com/hc/en-us/articles/360001202872","terms":"https://support.scribd.com/hc/sections/202246126","writing":"https://support.scribd.com/hc/sections/202246366","adchoices":"https://support.scribd.com/hc/articles/210129366","paid_features":"https://support.scribd.com/hc/sections/202246306","failed_uploads":"https://support.scribd.com/hc/en-us/articles/210134586-Troubleshooting-uploads-and-conversions","copyright_infringement":"https://support.scribd.com/hc/en-us/articles/210128946-DMCA-copyright-infringement-takedown-notification-policy","end_user_license":"https://support.scribd.com/hc/en-us/articles/210129486","terms_of_use":"https://support.scribd.com/hc/en-us/articles/210129326-General-Terms-of-Use"},"publishers":"/publishers","static_terms":"/terms","static_privacy":"/privacy","copyright":"/copyright","ios_app":"https://itunes.apple.com/us/app/scribd-worlds-largest-online/id542557212?mt=8&uo=4&at=11lGEE","android_app":"https://play.google.com/store/apps/details?id=com.scribd.app.reader0&hl=en","books":"/books","sitemap":"/directory"}},"global_nav_props":{"header_props":{"logo_src":"/images/landing/home2_landing/scribd_logo_horiz_small.svg","root_url":"https://www.scribd.com/","search_term":"","small_logo_src":"/images/logos/scribd_s_logo.png","uploads_url":"/upload-document","search_props":{"redirect_to_app":true,"search_url":"/search","query":"","search_page":false}},"user_menu_props":null,"sidebar_props":{"urls":{"bestsellers":"https://www.scribd.com/bestsellers","home":"https://www.scribd.com/","saved":"/saved","subscribe":"/archive/pmp_checkout?doc=163080375&metadata=%7B%22context%22%3A%22pmp%22%2C%22action%22%3A%22start_trial%22%2C%22logged_in%22%3Afalse%2C%22platform%22%3A%22web%22%7D","top_charts":"/bestsellers","upload":"https://www.scribd.com/upload-document"},"categories":{"book":{"icon":"icon-ic_book","icon_filled":"icon-ic_book_fill","url":"https://id.scribd.com/books","name":"Books","type":"book"},"news":{"icon":"icon-ic_articles","icon_filled":"icon-ic_articles_fill","url":"https://id.scribd.com/news","name":"News","type":"news"},"audiobook":{"icon":"icon-ic_audiobook","icon_filled":"icon-ic_audiobook_fill","url":"https://id.scribd.com/audiobooks","name":"Audiobooks","type":"audiobook"},"magazine":{"icon":"icon-ic_magazine","icon_filled":"icon-ic_magazine_fill","url":"https://id.scribd.com/magazines","name":"Magazines","type":"magazine"},"document":{"icon":"icon-ic_document","icon_filled":"icon-ic_document_fill","url":"https://id.scribd.com/docs","name":"Documents","type":"document"},"sheet_music":{"icon":"icon-ic_songbook","icon_filled":"icon-ic_songbook_fill","url":"https://id.scribd.com/sheetmusic","name":"Sheet Music","type":"sheet_music"}},"categories_array":["mixed","book","audiobook","magazine","news","document","sheet_music"],"selected_content_type":"mixed","username":"","search_overlay_props":{"search_input_props":{"focused":false,"keep_suggestions_on_blur":false}}}},"recommenders":{"related_titles_recommender":{"ids":[339473128,198632928,346717099,221090714,318042579,64940143,128584279,357382881,353861244,40046899,102518109,362340966,320883093,32113456,193749305,48335254,130122934,358674869,118212229,76880431,48954151,75095978,21544012,125060054,76148884,82906077,85437194,124122348,348461960,155225745,264647572,272940491,282477763,249618091,249699303,255625689,282477894,282477820,255625459,255625399,234725700,234726013,282768539,270652780,255624691,209374087,234725121,190326859,214794739,234725325,217614235,217613539,207465509,217616324,217613713,214795819,207465726,225889276,217613893,207465068],"title_link":null,"title":null,"track_opts":{"compilation_id":"7s52/gON3U/xJJBK8dQ+uCJF350=","module_id":"bC4Ugao8OadAfk3wIgZN0AoBoDo=","widget_name":"right sidebar","track_id":"flattened_recommender"}},"footer_recommenders":{"recommenders":[{"ids":[339473128,198632928,346717099,221090714,318042579,64940143,128584279,357382881,353861244,40046899,102518109,362340966,320883093,32113456,193749305,48335254,130122934,358674869,118212229,76880431,48954151,75095978,21544012,125060054,76148884,82906077,85437194,124122348,348461960,155225745],"title_link":null,"title":"Documents Similar To Modul Praktikum PBO","track_opts":{"compilation_id":"7s52/gON3U/xJJBK8dQ+uCJF350=","module_id":"jIXPNHkvNH7wJVq/Z5lOg0MUWJk=","widget_name":"document_carousel"}},{"ids":[264647572,272940491,282477763,249618091,249699303,255625689,282477894,282477820,255625459,255625399,234725700,234726013,282768539,270652780,255624691,209374087,234725121,190326859,214794739,234725325,217614235,217613539,207465509,217616324,217613713,214795819,207465726,225889276,217613893,207465068],"title_link":null,"title":"More From mukidin","track_opts":{"compilation_id":"7s52/gON3U/xJJBK8dQ+uCJF350=","module_id":"wSJFO4QLOwqk/50PkTnqLqlM4jE=","widget_name":"document_carousel"}}]},"seo_new_docs_recommenders":{"recommenders":[]},"documents":{"21544012":{"type":"document","id":21544012,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/21544012/108x144/04b125ae2d/1370505538?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/21544012/216x288/f3cbebd280/1370505538?v=1","title":"Penerapan Bentuk Normalisasi Dalam Basis Data","short_title":"Penerapan Bentuk Normalisasi Dalam Basis Data","author":"Wenda Haryanto","tracking":{"object_type":"document","object_id":21544012,"track":"flattened_recommender","doc_uuid":"LTm6y3LEOdxBPGQjNlgLgN1NdyY="},"url":"https://www.scribd.com/doc/21544012/Penerapan-Bentuk-Normalisasi-Dalam-Basis-Data"},"32113456":{"type":"document","id":32113456,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/32113456/108x144/f14d3b1e09/1365964604?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/32113456/216x288/1775187b1a/1365964604?v=1","title":"PBO Java","short_title":"PBO Java","author":"Husnan Syarofie","tracking":{"object_type":"document","object_id":32113456,"track":"flattened_recommender","doc_uuid":"7XoQzP6rZj7j2BySoLIpbRvdaO8="},"url":"https://www.scribd.com/document/32113456/PBO-Java"},"40046899":{"type":"document","id":40046899,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/40046899/108x144/8906853276/1475168796?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/40046899/216x288/67be5e5aaa/1475168796?v=1","title":"Materi PBO-Edi Furqon","short_title":"Materi PBO-Edi Furqon","author":"shered2812","tracking":{"object_type":"document","object_id":40046899,"track":"flattened_recommender","doc_uuid":"a29aIkZFJZ1NE95LodJ80Ke9aso="},"url":"https://www.scribd.com/doc/40046899/Materi-PBO-Edi-Furqon"},"48335254":{"type":"document","id":48335254,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/48335254/108x144/6622473108/1368513303?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/48335254/216x288/572dbe7eac/1368513303?v=1","title":"Apakah itu LBS","short_title":"Apakah itu LBS","author":"Ranugal","tracking":{"object_type":"document","object_id":48335254,"track":"flattened_recommender","doc_uuid":"ir0JUPQuhVhPH/j91s7nP30B5xw="},"url":"https://www.scribd.com/doc/48335254/Apakah-itu-LBS"},"48954151":{"type":"document","id":48954151,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/48954151/108x144/e28c13c654/1374935827?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/48954151/216x288/14552078a8/1374935827?v=1","title":"Algoritma Gauss-Jordan","short_title":"Algoritma Gauss-Jordan","author":"Iwah Notresponding","tracking":{"object_type":"document","object_id":48954151,"track":"flattened_recommender","doc_uuid":"UZY9W/IC7I+Oz/CI59fz22o4ND4="},"url":"https://www.scribd.com/doc/48954151/Algoritma-Gauss-Jordan"},"64940143":{"type":"document","id":64940143,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/64940143/108x144/8fb7180880/1373446941?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/64940143/216x288/25f20c5821/1373446941?v=1","title":"Modul C++ Revisi Opened","short_title":"Modul C++ Revisi Opened","author":"Galih Setyawan","tracking":{"object_type":"document","object_id":64940143,"track":"flattened_recommender","doc_uuid":"WJf+l7LW7QRJci9R4AX6lOWuS9A="},"url":"https://www.scribd.com/doc/64940143/Modul-C-Revisi-Opened"},"75095978":{"type":"document","id":75095978,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/75095978/108x144/e4606657ce/1508602455?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/75095978/216x288/a9b45b512c/1508602455?v=1","title":"Tugas Analisa Web Kelompok","short_title":"Tugas Analisa Web Kelompok","author":"Rika Febriana","tracking":{"object_type":"document","object_id":75095978,"track":"flattened_recommender","doc_uuid":"f4InefOqp2o/q/XBpp43VgGxDGQ="},"url":"https://www.scribd.com/doc/75095978/Tugas-Analisa-Web-Kelompok"},"76148884":{"type":"document","id":76148884,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/76148884/108x144/1dc4e7fb1d/1351833056?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/76148884/216x288/4daf6c8136/1351833056?v=1","title":"Source Code Program Menghitung Gaji Pegawai","short_title":"Source Code Program Menghitung Gaji Pegawai","author":"Rizki","tracking":{"object_type":"document","object_id":76148884,"track":"flattened_recommender","doc_uuid":"6VS8howZQ/Mz/r4W9jrRmJPNxjQ="},"url":"https://www.scribd.com/doc/76148884/Source-Code-Program-Menghitung-Gaji-Pegawai"},"76880431":{"type":"document","id":76880431,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/76880431/108x144/020583ba12/1367859234?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/76880431/216x288/875934e705/1367859234?v=1","title":"Kisi Kisi Soal Ujian Akhir Semester Mata Kuliah Pengantar Sistem Informasi Tahun Ajaran ban","short_title":"Kisi Kisi Soal Ujian Akhir Semester Mata Kuliah Pengantar Sistem Informasi Tahun Ajaran ban","author":"Rocky Tui","tracking":{"object_type":"document","object_id":76880431,"track":"flattened_recommender","doc_uuid":"eNUrktJvoDce9qzskrQyTZGkoUw="},"url":"https://www.scribd.com/doc/76880431/Kisi-Kisi-Soal-Ujian-Akhir-Semester-Mata-Kuliah-Pengantar-Sistem-Informasi-Tahun-Ajaran-ban"},"82906077":{"type":"document","id":82906077,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/82906077/108x144/fc74be630b/1353970674?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/82906077/216x288/1b8c5709b6/1353970674?v=1","title":"Tugas AI","short_title":"Tugas AI","author":"Kang Salman Al Farizi","tracking":{"object_type":"document","object_id":82906077,"track":"flattened_recommender","doc_uuid":"QruT2XfLWT9fZzf5Gvnaz0IPgRI="},"url":"https://www.scribd.com/doc/82906077/Tugas-AI"},"85437194":{"type":"document","id":85437194,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/85437194/108x144/ee80f63ca1/1520907314?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/85437194/216x288/9e6e8c264e/1520907314?v=1","title":"Modul Java Keseluruhan","short_title":"Modul Java Keseluruhan","author":"Siti Maryam","tracking":{"object_type":"document","object_id":85437194,"track":"flattened_recommender","doc_uuid":"friRX8OeIRAF5zxj3ao84DUcUvw="},"url":"https://www.scribd.com/doc/85437194/Modul-Java-Keseluruhan"},"102518109":{"type":"document","id":102518109,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/102518109/108x144/5a06699a4a/1371822053?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/102518109/216x288/06bed3c963/1371822053?v=1","title":"Modul Pemrograman Vb-1","short_title":"Modul Pemrograman Vb-1","author":"rachmatdani07","tracking":{"object_type":"document","object_id":102518109,"track":"flattened_recommender","doc_uuid":"/eg1JerdwDUZR/+rHh+yc17W/rg="},"url":"https://www.scribd.com/doc/102518109/Modul-Pemrograman-Vb-1"},"118212229":{"type":"document","id":118212229,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/118212229/108x144/1a58bb0ce8/1422169334?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/118212229/216x288/b7740fb695/1422169334?v=1","title":"KISI-KISI SOAL UAS TEORI BAHASA DAN AUTOMATA","short_title":"KISI-KISI SOAL UAS TEORI BAHASA DAN AUTOMATA","author":"Hotland Sitorus","tracking":{"object_type":"document","object_id":118212229,"track":"flattened_recommender","doc_uuid":"u349UCfFBq/E49AsC0fVWktozu8="},"url":"https://www.scribd.com/doc/118212229/KISI-KISI-SOAL-UAS-TEORI-BAHASA-DAN-AUTOMATA"},"124122348":{"type":"document","id":124122348,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/124122348/108x144/59270ad292/1416073473?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/124122348/216x288/4d23fe2452/1416073473?v=1","title":"laporan praktikum Android","short_title":"laporan praktikum Android","author":"Lapha EmaNg Boo","tracking":{"object_type":"document","object_id":124122348,"track":"flattened_recommender","doc_uuid":"2I9nTD8OxA69Sv47WfGIMCnHzjE="},"url":"https://www.scribd.com/doc/124122348/laporan-praktikum-Android"},"125060054":{"type":"document","id":125060054,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/125060054/108x144/5f82742736/1520386229?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/125060054/216x288/b78bf217e5/1520386229?v=1","title":"UN TEORI KEJURUAN RPL","short_title":"UN TEORI KEJURUAN RPL","author":"Dalem Wendy","tracking":{"object_type":"document","object_id":125060054,"track":"flattened_recommender","doc_uuid":"E17D8XI8svFk/Nt3dsvsj4X1VEw="},"url":"https://www.scribd.com/doc/125060054/UN-TEORI-KEJURUAN-RPL"},"128584279":{"type":"document","id":128584279,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/128584279/108x144/fa24d04f33/1390977148?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/128584279/216x288/5c4c6dac1c/1390977148?v=1","title":"Hendra_ St (Indoprog)","short_title":"Hendra_ St (Indoprog)","author":"Cahyadi Budisatya","tracking":{"object_type":"document","object_id":128584279,"track":"flattened_recommender","doc_uuid":"BFHmD8a7ht1Zv570SNLOdsaF2kI="},"url":"https://www.scribd.com/doc/128584279/Hendra-St-Indoprog"},"130122934":{"type":"document","id":130122934,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/130122934/108x144/f1506c78c6/1415713986?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/130122934/216x288/7b725bcfa0/1415713986?v=1","title":"Konsep Dasar Analisis Spasial","short_title":"Konsep Dasar Analisis Spasial","author":"ichwanudin14","tracking":{"object_type":"document","object_id":130122934,"track":"flattened_recommender","doc_uuid":"uWw+ZTcw7jWKRiswqJEjn0aGg+c="},"url":"https://www.scribd.com/doc/130122934/Konsep-Dasar-Analisis-Spasial"},"155225745":{"type":"document","id":155225745,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/155225745/108x144/e1ff97cd2d/1489120441?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/155225745/216x288/ba26d39e25/1489120441?v=1","title":"Soal_Soal - PBO - Gabungan - Jawaban.doc","short_title":"Soal_Soal - PBO - Gabungan - Jawaban.doc","author":"boenhouw","tracking":{"object_type":"document","object_id":155225745,"track":"flattened_recommender","doc_uuid":"M5sYJbor7eaxvkRd7HivE6Lw7EM="},"url":"https://www.scribd.com/doc/155225745/Soal-Soal-PBO-Gabungan-Jawaban-doc"},"190326859":{"type":"document","id":190326859,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/190326859/108x144/2030917a14/1402658113?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/190326859/216x288/556e438946/1402658113?v=1","title":"Diktat","short_title":"Diktat","author":"mukidin","tracking":{"object_type":"document","object_id":190326859,"track":"flattened_recommender","doc_uuid":"0mwawt7eJ2GB2Ic1EZfTJgY5I50="},"url":"https://www.scribd.com/doc/190326859/Diktat"},"193749305":{"type":"document","id":193749305,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/193749305/108x144/3c316d38a2/1509789188?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/193749305/216x288/c503039cdf/1509789188?v=1","title":"RPP Basis Data","short_title":"RPP Basis Data","author":"Fahmi Cirebon","tracking":{"object_type":"document","object_id":193749305,"track":"flattened_recommender","doc_uuid":"Kl0mYJGJTbtUS4OGuTb2gKWcBCI="},"url":"https://www.scribd.com/doc/193749305/RPP-Basis-Data"},"198632928":{"type":"document","id":198632928,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/198632928/108x144/317b9b1513/1401873284?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/198632928/216x288/a8ee5fa38c/1401873284?v=1","title":"MODUL PBO","short_title":"MODUL PBO","author":"fendyxcyber","tracking":{"object_type":"document","object_id":198632928,"track":"flattened_recommender","doc_uuid":"K4A8stGjXCoP4BHuCTzg68w6DZo="},"url":"https://www.scribd.com/document/198632928/MODUL-PBO"},"207465068":{"type":"document","id":207465068,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/207465068/108x144/3a2525d952/1428146367?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/207465068/216x288/45f24c1c0f/1428146367?v=1","title":"Cara Instal MIkrotik OS Router","short_title":"Cara Instal MIkrotik OS Router","author":"mukidin","tracking":{"object_type":"document","object_id":207465068,"track":"flattened_recommender","doc_uuid":"ofuAMSLvA6kU9Mih2OOWPHWnU38="},"url":"https://www.scribd.com/doc/207465068/Cara-Instal-MIkrotik-OS-Router"},"207465509":{"type":"document","id":207465509,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/207465509/108x144/1340db378b/1425586987?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/207465509/216x288/4fe43dc5b1/1425586987?v=1","title":"Anal is is Siste Mber Basis Ob Jek","short_title":"Anal is is Siste Mber Basis Ob Jek","author":"mukidin","tracking":{"object_type":"document","object_id":207465509,"track":"flattened_recommender","doc_uuid":"0BRD0HlB21YJaDNXJDjQrludmSc="},"url":"https://www.scribd.com/doc/207465509/Anal-is-is-Siste-Mber-Basis-Ob-Jek"},"207465726":{"type":"document","id":207465726,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/207465726/108x144/e230094464/1415614931?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/207465726/216x288/43b69cb468/1415614931?v=1","title":"Panduan Excel 2007","short_title":"Panduan Excel 2007","author":"mukidin","tracking":{"object_type":"document","object_id":207465726,"track":"flattened_recommender","doc_uuid":"UMoVENM9ZtTc+U2cphR2vGGkJWM="},"url":"https://www.scribd.com/doc/207465726/Panduan-Excel-2007"},"209374087":{"type":"document","id":209374087,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/209374087/108x144/46c12531b0/1407947943?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/209374087/216x288/a71c9652cd/1407947943?v=1","title":"Modul Jaringan Komputer","short_title":"Modul Jaringan Komputer","author":"mukidin","tracking":{"object_type":"document","object_id":209374087,"track":"flattened_recommender","doc_uuid":"9piWlqR2I/zJeHt+vhsbwEM3r8I="},"url":"https://www.scribd.com/doc/209374087/Modul-Jaringan-Komputer"},"214794739":{"type":"document","id":214794739,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/214794739/108x144/5de6a3796b/1424102620?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/214794739/216x288/d72bdfa8bf/1424102620?v=1","title":"Tutorial Singkat Penggunaan Rational Rose","short_title":"Tutorial Singkat Penggunaan Rational Rose","author":"mukidin","tracking":{"object_type":"document","object_id":214794739,"track":"flattened_recommender","doc_uuid":"3huUwa5zdbSvK77RVEuvhXTdF2U="},"url":"https://www.scribd.com/doc/214794739/Tutorial-Singkat-Penggunaan-Rational-Rose"},"214795819":{"type":"document","id":214795819,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/214795819/108x144/bc2c499ebf/1424253494?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/214795819/216x288/31d9f1786c/1424253494?v=1","title":"Diktat Komdat Jarkom","short_title":"Diktat Komdat Jarkom","author":"mukidin","tracking":{"object_type":"document","object_id":214795819,"track":"flattened_recommender","doc_uuid":"zyzpac8EZ/OaK4OJIH8asUHvTsA="},"url":"https://www.scribd.com/doc/214795819/Diktat-Komdat-Jarkom"},"217613539":{"type":"document","id":217613539,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217613539/108x144/52e2da52fa/1416186206?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217613539/216x288/7934ce35ec/1416186206?v=1","title":"Konfigurasi Mikrotik Dengan Menggunakan Winbox","short_title":"Konfigurasi Mikrotik Dengan Menggunakan Winbox","author":"mukidin","tracking":{"object_type":"document","object_id":217613539,"track":"flattened_recommender","doc_uuid":"+CNoW/MmerfmzoUMF83J2UBLwBA="},"url":"https://www.scribd.com/doc/217613539/Konfigurasi-Mikrotik-Dengan-Menggunakan-Winbox"},"217613713":{"type":"document","id":217613713,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217613713/108x144/09902a2cc4/1427330349?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/217613713/216x288/67696bcf3d/1427330349?v=1","title":"buku_IMK","short_title":"buku_IMK","author":"mukidin","tracking":{"object_type":"document","object_id":217613713,"track":"flattened_recommender","doc_uuid":"eeITo4rKqQVXqegZgPAGNVAMAM8="},"url":"https://www.scribd.com/doc/217613713/buku-IMK"},"217613893":{"type":"document","id":217613893,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217613893/108x144/86c81300de/1406502589?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/217613893/216x288/37144142b6/1406502589?v=1","title":"Hand Out Sig","short_title":"Hand Out Sig","author":"mukidin","tracking":{"object_type":"document","object_id":217613893,"track":"flattened_recommender","doc_uuid":"jw+2ICF1hST8VntZxJfBYimcoqk="},"url":"https://www.scribd.com/doc/217613893/Hand-Out-Sig"},"217614235":{"type":"document","id":217614235,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/217614235/108x144/c7fcc6659c/1397205286?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217614235/216x288/de5099d22a/1397205286?v=1","title":"Tutorial1-InstalasiEclipse","short_title":"Tutorial1-InstalasiEclipse","author":"mukidin","tracking":{"object_type":"document","object_id":217614235,"track":"flattened_recommender","doc_uuid":"qbdcBrhalBC59KUFMXY0XCCjdwk="},"url":"https://www.scribd.com/doc/217614235/Tutorial1-InstalasiEclipse"},"217616324":{"type":"document","id":217616324,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/217616324/108x144/edceb121e7/1424000649?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217616324/216x288/4899708d00/1424000649?v=1","title":"Panduan SKRIPSI 2013","short_title":"Panduan SKRIPSI 2013","author":"mukidin","tracking":{"object_type":"document","object_id":217616324,"track":"flattened_recommender","doc_uuid":"qCh5yJEDwmdGMC64s7HIzPh4IMM="},"url":"https://www.scribd.com/doc/217616324/Panduan-SKRIPSI-2013"},"221090714":{"type":"document","id":221090714,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/221090714/108x144/e201f0a77f/1449897604?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/221090714/216x288/1aabe98f0d/1449897604?v=1","title":"Pengertian Dan Macam Macam Layout Manager","short_title":"Pengertian Dan Macam Macam Layout Manager","author":"Hardianto Suman","tracking":{"object_type":"document","object_id":221090714,"track":"flattened_recommender","doc_uuid":"nOCAuIOI/CmX6SNOycTuUdzu15M="},"url":"https://www.scribd.com/doc/221090714/Pengertian-Dan-Macam-Macam-Layout-Manager"},"225889276":{"type":"document","id":225889276,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/225889276/108x144/86287d165f/1429256400?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/225889276/216x288/9d6ad8916c/1429256400?v=1","title":"Merakit Komputer Dan Instalasi Windows","short_title":"Merakit Komputer Dan Instalasi Windows","author":"mukidin","tracking":{"object_type":"document","object_id":225889276,"track":"flattened_recommender","doc_uuid":"YSo3I/Js7bm9rms848h9KHYWwGY="},"url":"https://www.scribd.com/doc/225889276/Merakit-Komputer-Dan-Instalasi-Windows"},"234725121":{"type":"document","id":234725121,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234725121/108x144/c9b6490847/1430510763?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234725121/216x288/4365ce78fd/1430510763?v=1","title":"Tutorial Olap Complete","short_title":"Tutorial Olap Complete","author":"mukidin","tracking":{"object_type":"document","object_id":234725121,"track":"flattened_recommender","doc_uuid":"b1InXZakImQSxNVLT0EJAXqkNTg="},"url":"https://www.scribd.com/doc/234725121/Tutorial-Olap-Complete"},"234725325":{"type":"document","id":234725325,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234725325/108x144/a67a8d4e04/1447149566?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/234725325/216x288/c3eaf6f5e7/1447149566?v=1","title":"Diktat Sistem Basis Data","short_title":"Diktat Sistem Basis Data","author":"mukidin","tracking":{"object_type":"document","object_id":234725325,"track":"flattened_recommender","doc_uuid":"pdE4NNQK9q7y9iVyJX1mvLBjffM="},"url":"https://www.scribd.com/doc/234725325/Diktat-Sistem-Basis-Data"},"234725700":{"type":"document","id":234725700,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/234725700/108x144/19c2c58714/1436354316?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234725700/216x288/49064aa85e/1436354316?v=1","title":"Modul Praktikum VisualBasic.net","short_title":"Modul Praktikum VisualBasic.net","author":"mukidin","tracking":{"object_type":"document","object_id":234725700,"track":"flattened_recommender","doc_uuid":"SiJz6F5wLZ5ki6c7G6ZzBpJ5eAU="},"url":"https://www.scribd.com/doc/234725700/Modul-Praktikum-VisualBasic-net"},"234726013":{"type":"document","id":234726013,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234726013/108x144/db25631a8c/1439730880?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234726013/216x288/c4443ea541/1439730880?v=1","title":"Modul Membuat Desain Rumah 3D Dengan Sweet Home 3D","short_title":"Modul Membuat Desain Rumah 3D Dengan Sweet Home 3D","author":"mukidin","tracking":{"object_type":"document","object_id":234726013,"track":"flattened_recommender","doc_uuid":"FQhk+HkInHkD2sePFWttAJ31KAk="},"url":"https://www.scribd.com/doc/234726013/Modul-Membuat-Desain-Rumah-3D-Dengan-Sweet-Home-3D"},"249618091":{"type":"document","id":249618091,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/249618091/108x144/3ca1a7db1e/1418114935?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/249618091/216x288/da49ee6960/1418114935?v=1","title":"Clustering","short_title":"Clustering","author":"mukidin","tracking":{"object_type":"document","object_id":249618091,"track":"flattened_recommender","doc_uuid":"Q3cCoUrHhcGohFh46G1vuBEQyn8="},"url":"https://www.scribd.com/doc/249618091/Clustering"},"249699303":{"type":"document","id":249699303,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/249699303/108x144/e265ce4d30/1418171735?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/249699303/216x288/4cc7f90b5d/1418171735?v=1","title":"Klasifikasi","short_title":"Klasifikasi","author":"mukidin","tracking":{"object_type":"document","object_id":249699303,"track":"flattened_recommender","doc_uuid":"e8tP2niIbPq+xPOEUSZOsr2xj8g="},"url":"https://www.scribd.com/doc/249699303/Klasifikasi"},"255624691":{"type":"document","id":255624691,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/255624691/108x144/d239e77df0/1461362710?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/255624691/216x288/231e83d60c/1461362710?v=1","title":"modul-sbd","short_title":"modul-sbd","author":"mukidin","tracking":{"object_type":"document","object_id":255624691,"track":"flattened_recommender","doc_uuid":"x7W/U84HEG79XqpAhXXM0WyvVzY="},"url":"https://www.scribd.com/doc/255624691/modul-sbd"},"255625399":{"type":"document","id":255625399,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/255625399/108x144/4a6ffb40c4/1461362720?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/255625399/216x288/8bc49b1645/1461362720?v=1","title":"Programming Android Dengan Sqlite","short_title":"Programming Android Dengan Sqlite","author":"mukidin","tracking":{"object_type":"document","object_id":255625399,"track":"flattened_recommender","doc_uuid":"69UapuB0S+bY4J13Gd5ZS+P/P5s="},"url":"https://www.scribd.com/doc/255625399/Programming-Android-Dengan-Sqlite"},"255625459":{"type":"document","id":255625459,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/255625459/108x144/ae196e2b8e/1423799989?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/255625459/216x288/6795978870/1423799989?v=1","title":"Modul Android","short_title":"Modul Android","author":"mukidin","tracking":{"object_type":"document","object_id":255625459,"track":"flattened_recommender","doc_uuid":"P4N9ZXA+O9z/nbIE3LNoCwgjS9s="},"url":"https://www.scribd.com/doc/255625459/Modul-Android"},"255625689":{"type":"document","id":255625689,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/255625689/108x144/051435feac/1461362727?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/255625689/216x288/f2902ceb85/1461362727?v=1","title":"membangun responsive website dengan twitter bootstrap 2","short_title":"membangun responsive website dengan twitter bootstrap 2","author":"mukidin","tracking":{"object_type":"document","object_id":255625689,"track":"flattened_recommender","doc_uuid":"ZWUku1Helaun5220fLfRwD0mgqQ="},"url":"https://www.scribd.com/doc/255625689/membangun-responsive-website-dengan-twitter-bootstrap-2"},"264647572":{"type":"document","id":264647572,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/264647572/108x144/f35fdd43bc/1444839705?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/264647572/216x288/e9502e66ea/1444839705?v=1","title":"KREDIT","short_title":"KREDIT","author":"mukidin","tracking":{"object_type":"document","object_id":264647572,"track":"flattened_recommender","doc_uuid":"xGTgdUShNiz8wFgd5ZZnAVNDY1o="},"url":"https://www.scribd.com/document/264647572/KREDIT"},"270652780":{"type":"document","id":270652780,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/270652780/108x144/f2642457f3/1436166419?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/270652780/216x288/3194603218/1436166419?v=1","title":"Simple Moving Average","short_title":"Simple Moving Average","author":"mukidin","tracking":{"object_type":"document","object_id":270652780,"track":"flattened_recommender","doc_uuid":"utBVOtNdz2G72zQqgL53RUwdGC0="},"url":"https://www.scribd.com/doc/270652780/Simple-Moving-Average"},"272940491":{"type":"document","id":272940491,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/272940491/108x144/020f1dabc6/1438181050?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/272940491/216x288/dd639cc6c5/1438181050?v=1","title":"SPK Pemilihan Obat","short_title":"SPK Pemilihan Obat","author":"mukidin","tracking":{"object_type":"document","object_id":272940491,"track":"flattened_recommender","doc_uuid":"EmfYrvIh5nM+OCy6J/RbLt2ecHc="},"url":"https://www.scribd.com/doc/272940491/SPK-Pemilihan-Obat"},"282477763":{"type":"document","id":282477763,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282477763/108x144/06b9c6133e/1443011516?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/282477763/216x288/768d11487a/1443011516?v=1","title":"skripsi s1 pgsd","short_title":"skripsi s1 pgsd","author":"mukidin","tracking":{"object_type":"document","object_id":282477763,"track":"flattened_recommender","doc_uuid":"8NHePVokPVyOKDWxVwg6nAdlYmc="},"url":"https://www.scribd.com/doc/282477763/skripsi-s1-pgsd"},"282477820":{"type":"document","id":282477820,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/282477820/108x144/ceaff1a02d/1443011576?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282477820/216x288/dfcdd600ff/1443011576?v=1","title":"Makalah Sistem Pendukung Keputusan","short_title":"Makalah Sistem Pendukung Keputusan","author":"mukidin","tracking":{"object_type":"document","object_id":282477820,"track":"flattened_recommender","doc_uuid":"VS2HJTWNJvg5/+Any61pZCjZLBI="},"url":"https://www.scribd.com/doc/282477820/Makalah-Sistem-Pendukung-Keputusan"},"282477894":{"type":"document","id":282477894,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282477894/108x144/e9f845e324/1443011639?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282477894/216x288/bb1d31faaf/1443011639?v=1","title":"Contoh Jurnal SAW","short_title":"Contoh Jurnal SAW","author":"mukidin","tracking":{"object_type":"document","object_id":282477894,"track":"flattened_recommender","doc_uuid":"BVa4/HJJ4RQJozvVQ3mW4tH2KA4="},"url":"https://www.scribd.com/doc/282477894/Contoh-Jurnal-SAW"},"282768539":{"type":"document","id":282768539,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282768539/108x144/c319da2f9a/1461839341?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/282768539/216x288/ad58d154ab/1461839341?v=1","title":"Instalasi App Inventor Pada Windows","short_title":"Instalasi App Inventor Pada Windows","author":"mukidin","tracking":{"object_type":"document","object_id":282768539,"track":"flattened_recommender","doc_uuid":"mm6Ef3STo4czF8KhRyOr6IpV1hQ="},"url":"https://www.scribd.com/doc/282768539/Instalasi-App-Inventor-Pada-Windows"},"318042579":{"type":"document","id":318042579,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/318042579/108x144/1f9d7f0ca1/1468283377?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/318042579/216x288/6a7ab5459c/1468283377?v=1","title":"6. RPP-Simulasi-Digital-Presentasi Video Untuk Branding Dan Marketing","short_title":"6. RPP-Simulasi-Digital-Presentasi Video Untuk Branding Dan Marketing","author":"chaoz headbanger","tracking":{"object_type":"document","object_id":318042579,"track":"flattened_recommender","doc_uuid":"IfTzcvYIw/kdzryNEUg3QiA2dzQ="},"url":"https://www.scribd.com/document/318042579/6-RPP-Simulasi-Digital-Presentasi-Video-Untuk-Branding-Dan-Marketing"},"320883093":{"type":"document","id":320883093,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/320883093/108x144/0682847968/1470904618?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/320883093/216x288/501b26812c/1470904618?v=1","title":"Silabus database kelas XI RPL","short_title":"Silabus database kelas XI RPL","author":"Gyman Hatsui","tracking":{"object_type":"document","object_id":320883093,"track":"flattened_recommender","doc_uuid":"IxrbollAvLFfiKOyhRGB9EPzzt4="},"url":"https://www.scribd.com/document/320883093/Silabus-database-kelas-XI-RPL"},"339473128":{"type":"document","id":339473128,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/339473128/108x144/8a2e54fb36/1501335165?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/339473128/216x288/dec309a1de/1501335165?v=1","title":"Rpl e Pemrograman Perangkat Bergerak","short_title":"Rpl e Pemrograman Perangkat Bergerak","author":"junadi","tracking":{"object_type":"document","object_id":339473128,"track":"flattened_recommender","doc_uuid":"gERz0lAJpdcXXWh43lbK74J5TBg="},"url":"https://www.scribd.com/document/339473128/Rpl-e-Pemrograman-Perangkat-Bergerak"},"346717099":{"type":"document","id":346717099,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/346717099/108x144/8e2cd5d5bf/1519379508?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/346717099/216x288/110c1facfc/1519379508?v=1","title":"RPP PBO KD1","short_title":"RPP PBO KD1","author":"raia","tracking":{"object_type":"document","object_id":346717099,"track":"flattened_recommender","doc_uuid":"SEVXi9sw2g15aAYTA2NumIA++Tk="},"url":"https://www.scribd.com/document/346717099/RPP-PBO-KD1"},"348461960":{"type":"document","id":348461960,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/348461960/108x144/616006b633/1532635821?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/348461960/216x288/f251577fbb/1532635821?v=1","title":"Materi Permodelan Perangkat Lunak Kelas XI RPL","short_title":"Materi Permodelan Perangkat Lunak Kelas XI RPL","author":"Ayahnya Mas Syaiful","tracking":{"object_type":"document","object_id":348461960,"track":"flattened_recommender","doc_uuid":"1lFh6bBHJpnF5YK2DC98IlhIigw="},"url":"https://www.scribd.com/document/348461960/Materi-Permodelan-Perangkat-Lunak-Kelas-XI-RPL"},"353861244":{"type":"document","id":353861244,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/353861244/108x144/b9295dc7ec/1500163712?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/353861244/216x288/1f89297051/1500163712?v=1","title":"RPP OOP KD 3.1","short_title":"RPP OOP KD 3.1","author":"RulyAndika","tracking":{"object_type":"document","object_id":353861244,"track":"flattened_recommender","doc_uuid":"jOHPsSArDu+PIfTfC0VOKtQX2/w="},"url":"https://www.scribd.com/document/353861244/RPP-OOP-KD-3-1"},"357382881":{"type":"document","id":357382881,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/357382881/108x144/97145f233a/1503894965?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/357382881/216x288/47dc5d278e/1503894965?v=1","title":"RPP Basis Data Kelas XI","short_title":"RPP Basis Data Kelas XI","author":"Ari Gusti","tracking":{"object_type":"document","object_id":357382881,"track":"flattened_recommender","doc_uuid":"PPUnO1kcfa4j/7yP4lXpa/1FyXQ="},"url":"https://www.scribd.com/document/357382881/RPP-Basis-Data-Kelas-XI"},"358674869":{"type":"document","id":358674869,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/358674869/108x144/7ccfa3735c/1510716295?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/358674869/216x288/3333dda595/1510716295?v=1","title":"3.4 Menerapkan Logika, Dan Operasi Perhitungan Data (1)","short_title":"3.4 Menerapkan Logika, Dan Operasi Perhitungan Data (1)","author":"Ikhtiar Sari Tilawa","tracking":{"object_type":"document","object_id":358674869,"track":"flattened_recommender","doc_uuid":"Tc6Em6Lrt00ibwOydtv8YAfka4M="},"url":"https://www.scribd.com/document/358674869/3-4-Menerapkan-Logika-Dan-Operasi-Perhitungan-Data-1"},"362340966":{"type":"document","id":362340966,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/362340966/108x144/7f79f117aa/1508741212?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/362340966/216x288/3a6a89d3ad/1508741212?v=1","title":"Prota PBO","short_title":"Prota PBO","author":"Ahmadi Andianto","tracking":{"object_type":"document","object_id":362340966,"track":"flattened_recommender","doc_uuid":"HtnS4A+VGnjFoP2FouxmXyzdI9w="},"url":"https://www.scribd.com/document/362340966/Prota-PBO"}}},"seo_roadblock_props_path":"/doc-page/seo-roadblock-props/163080375","signup_context":null,"toolbar":{"search_path":"/search-4gen?allowed_pages=1%2C2%2C3%2C63%2C64%2C65%2C86%2C87%2C88&auth_token=%2Bd1DL0thJDiuMDa5skmcmQqYhDU%3D&authenticity_token=2WNGbRroQxnR21GkhYV%2FVyiqrtD0PSAVuiDJB3y3xaadEMvD5wnjU0p2DXzXcdYriIMSE5Xg9Bygcqiks%2BPtmw%3D%3D&expires=1538455413&wordDocumentId=163080375&wordUploadId=167189871"},"renewal_nag_props":null}-->
"). Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input data karakter. Untuk mendapatkan karakter-karakter yang dimasukkan melalui keyboard ke dalam layar console. kita perlu menggunakan kode berikut: InputStreamReader isr = new InputStreamReader(System. char KarakterInput. Hal ini.

class DemoInputString { public static void main(String[] args) throws IOException { System. bukan method read().out.out.*.2 Hasil eksekusi program 10. } } Pada saat dijalankan... Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input data numerik.in). BufferedReader br = new BufferedReader(isr). dan selanjutnya string hasil input tersebut dikonversi ke tipe numerik. Program 10.2 Program dengan proses input data string import java.2 Membaca Input Data Numerik Untuk membaca input berupa data numerik.println("Semoga Anda Sukses Selalu. program di atas akan memberikan hasil sebagai berikut: Gambar 10. System.3 Program dengan proses input data numerik import java. namaInput = br. String namaInput..print("Masukkan nama Anda: ").io."). InputStreamReader isr = new InputStreamReader(System.out. kita bisa menggunakan method readLine() seperti pada saat menangani input data string. kita bisa menggunakan method readLine(). Program 10. class DemoInputNumerik { 90 . System. program di atas akan memberikan hasil sebagai berikut: Gambar 10.*.readLine().Pada saat dijalankan.println("Halo " + namaInput + ".1 Membaca Input Data String Untuk membaca input berupa string.io.1 hasil eksekusi program 10."). Berikut ini contoh program yang akan menunjukkan bagaimana menangani proses input data string.

// input data dianggap sebagai string temp = br. kita harus membentuk objek dari salah satu kelas stream tersebut dengan menyertakan nama file sebagai argumen pada constructor-nya. } System.parseInt(temp). BufferedReader br = new BufferedReader(isr). String temp.println("Nilai yang dimasukkan " + "bukan bilangan bulat"). } catch (NumberFormatException nfe) { System. eksepsi tersebut akan muncul jika file output tidak dapat terbentuk. int bilanganInput = 0.out.out.3 Dasar-Dasar Baca Tulis File Java menyediakan dua buah stream yang paling sering digunakan untuk melakukan proses pembacaan/penulisan data dari/ke dalam file.println("Bilangan yang anda masukkan adalah " + bilanganInput). fileName menunjukkan nama file yang akan dibuka. sedangkan pada saat menggunakan stream output. Keduanya akan membentuk stream byte yang terhubung ke sebuah file. yaitu: FileInputStream (untuk membaca data) dan FileOutputStream (untuk menulis data). program di atas akan memberikan hasil sebagai berikut: Gambar 10.in). Bentuk secara umum adalah sebagai berikut: FileInputStream(String filename) throws FileNotFoundException FileOutputStream(String filename) throws FileNotFoundException Di sini. } } Pada saat dijalankan.readLine().public static void main(String[] args) throws IOException { System. try { // konversi dari string ke integer bilanganInput = Integer. System.exit(1).3 Hasil eksekusi program 10. 91 . InputStreamReader isr = new InputStreamReader(System. Untuk membuka file.out.print("Masukkan sebuah bilangan bulat : "). Pada saat menggunakan stream input. jika file tidak ditemukan maka kedua constructor akan membangkitkan eksepsi FileNotFoundException.

// membuka file try { finput = new FileInputStream("d:/INPUT. } catch (FileNotFoundException fnfe) { System. } } catch (IOException ioe) { System. } catch (IOException ioe) { } } // // // // } Gambar 10.io.close(). return.out.*.4 Hasil eksekusi program 10. class DemoBacaFile { public static void main(String[] args) { FileInputStream finput = null.").print((char) data). int data.TXT"). return.4 File input yang akan dibaca melalui program 10.getMessage()). Program 10. data dikonversi ke tipe char System.out. // keluar dari method } membaca data dari dalam file dan menampilkan hasilnya ke layar console try { while ((data = finput.println("File tidak ditemukan.4 dalam membaca file teks INPUT.4 Program simulasi pembacaan data dari file import java.txt tersebut di atas adalah sebagai berikut: 92 .read()) != -1) { ketika ditampilkan. } menutup file try { finput.println(ioe.out.Berikut ini contoh program yang akan menunjukkan proses pembacaan data dari sebuah file dan menampilkan isi file tersebut ke layar console.

println("File tidak dapat terbentuk.4 Selanjutnya akan dibahas tentang proses penulisan data ke dalam file.getMessage()).*.5 Hasil eksekusi program 10.io.out. return.5 Program penulisan data ke sebuah file import java.out. } catch (IOException ioe) { } } } Jika program tersebut di atas dijalankan.write((int) data.TXT").println(ioe.charAt(i)).". kita perlu menggunakan method write(). Bentuk umum dari method write() sebagai berikut: void write(int nilaiByte) Berikut ini contoh program yang akan menunjukkan penggunaan method write() di atas. } // menutup file try { foutput."). i < data. return. // keluar dari method } // menulis data ke dalam file try { for (int i = 0. String data = "Hello Guys ! \n Semoga \n Sukses selalu.. class DemoTulisFile { public static void main(String[] args) { FileOutputStream foutput = null.Gambar 10. i++) { // data akan dikonversi per karakter foutput. Program 10. } catch (FileNotFoundException fnfe) { System.close().length(). Untuk melakukan hal ini. maka akan menghasilkan file output sebagai berikut: 93 . } } catch (IOException ioe) { System. // membuka file try { foutput = new FileOutputStream("d:/OUTPUT.

Latihan Lakukan praktek diatas dan lakukan evaluasi 4.6 File output hasil eksekusi program 10.5 3.txt dan .Gambar 10.dat • Mengecek File dalam direktory tertentu • Mengisi File • Menampilkan isi File • Merename nama File • Menghapus File 94 . Tugas Buatlah sebuah program aplikasi file yang bisa melakukan beberapa operasi berikut : • Buat File dengan dua ekstensi .

","doc_promotions_enabled":false,"static_promo_banner_cta_url":""},"eligible_for_exclusive_trial_roadblock":false,"eligible_for_seo_roadblock":false,"exclusive_free_trial_roadblock_props_path":"/doc-page/exclusive-free-trial-props/163080375","flashes":[],"footer_props":{"urls":{"about":"/about","press":"/press","blog":"http://literally.scribd.com/","careers":"/careers","contact":"/contact","plans_landing":"/subscribe","referrals":"/referrals?source=footer","giftcards":"/giftcards","faq":"/faq","accessibility":"/accessibility-policy","faq_paths":{"accounts":"https://support.scribd.com/hc/sections/202246346","announcements":"https://support.scribd.com/hc/sections/202246066","copyright":"https://support.scribd.com/hc/sections/202246086","downloading":"https://support.scribd.com/hc/articles/210135046","publishing":"https://support.scribd.com/hc/sections/202246366","reading":"https://support.scribd.com/hc/sections/202246406","selling":"https://support.scribd.com/hc/sections/202246326","store":"https://support.scribd.com/hc/sections/202246306","status":"https://support.scribd.com/hc/en-us/articles/360001202872","terms":"https://support.scribd.com/hc/sections/202246126","writing":"https://support.scribd.com/hc/sections/202246366","adchoices":"https://support.scribd.com/hc/articles/210129366","paid_features":"https://support.scribd.com/hc/sections/202246306","failed_uploads":"https://support.scribd.com/hc/en-us/articles/210134586-Troubleshooting-uploads-and-conversions","copyright_infringement":"https://support.scribd.com/hc/en-us/articles/210128946-DMCA-copyright-infringement-takedown-notification-policy","end_user_license":"https://support.scribd.com/hc/en-us/articles/210129486","terms_of_use":"https://support.scribd.com/hc/en-us/articles/210129326-General-Terms-of-Use"},"publishers":"/publishers","static_terms":"/terms","static_privacy":"/privacy","copyright":"/copyright","ios_app":"https://itunes.apple.com/us/app/scribd-worlds-largest-online/id542557212?mt=8&uo=4&at=11lGEE","android_app":"https://play.google.com/store/apps/details?id=com.scribd.app.reader0&hl=en","books":"/books","sitemap":"/directory"}},"global_nav_props":{"header_props":{"logo_src":"/images/landing/home2_landing/scribd_logo_horiz_small.svg","root_url":"https://www.scribd.com/","search_term":"","small_logo_src":"/images/logos/scribd_s_logo.png","uploads_url":"/upload-document","search_props":{"redirect_to_app":true,"search_url":"/search","query":"","search_page":false}},"user_menu_props":null,"sidebar_props":{"urls":{"bestsellers":"https://www.scribd.com/bestsellers","home":"https://www.scribd.com/","saved":"/saved","subscribe":"/archive/pmp_checkout?doc=163080375&metadata=%7B%22context%22%3A%22pmp%22%2C%22action%22%3A%22start_trial%22%2C%22logged_in%22%3Afalse%2C%22platform%22%3A%22web%22%7D","top_charts":"/bestsellers","upload":"https://www.scribd.com/upload-document"},"categories":{"book":{"icon":"icon-ic_book","icon_filled":"icon-ic_book_fill","url":"https://id.scribd.com/books","name":"Books","type":"book"},"news":{"icon":"icon-ic_articles","icon_filled":"icon-ic_articles_fill","url":"https://id.scribd.com/news","name":"News","type":"news"},"audiobook":{"icon":"icon-ic_audiobook","icon_filled":"icon-ic_audiobook_fill","url":"https://id.scribd.com/audiobooks","name":"Audiobooks","type":"audiobook"},"magazine":{"icon":"icon-ic_magazine","icon_filled":"icon-ic_magazine_fill","url":"https://id.scribd.com/magazines","name":"Magazines","type":"magazine"},"document":{"icon":"icon-ic_document","icon_filled":"icon-ic_document_fill","url":"https://id.scribd.com/docs","name":"Documents","type":"document"},"sheet_music":{"icon":"icon-ic_songbook","icon_filled":"icon-ic_songbook_fill","url":"https://id.scribd.com/sheetmusic","name":"Sheet Music","type":"sheet_music"}},"categories_array":["mixed","book","audiobook","magazine","news","document","sheet_music"],"selected_content_type":"mixed","username":"","search_overlay_props":{"search_input_props":{"focused":false,"keep_suggestions_on_blur":false}}}},"recommenders":{"related_titles_recommender":{"ids":[339473128,198632928,346717099,221090714,318042579,64940143,128584279,357382881,353861244,40046899,102518109,362340966,320883093,32113456,193749305,48335254,130122934,358674869,118212229,76880431,48954151,75095978,21544012,125060054,76148884,82906077,85437194,124122348,348461960,155225745,264647572,272940491,282477763,249618091,249699303,255625689,282477894,282477820,255625459,255625399,234725700,234726013,282768539,270652780,255624691,209374087,234725121,190326859,214794739,234725325,217614235,217613539,207465509,217616324,217613713,214795819,207465726,225889276,217613893,207465068],"title_link":null,"title":null,"track_opts":{"compilation_id":"7s52/gON3U/xJJBK8dQ+uCJF350=","module_id":"bC4Ugao8OadAfk3wIgZN0AoBoDo=","widget_name":"right sidebar","track_id":"flattened_recommender"}},"footer_recommenders":{"recommenders":[{"ids":[339473128,198632928,346717099,221090714,318042579,64940143,128584279,357382881,353861244,40046899,102518109,362340966,320883093,32113456,193749305,48335254,130122934,358674869,118212229,76880431,48954151,75095978,21544012,125060054,76148884,82906077,85437194,124122348,348461960,155225745],"title_link":null,"title":"Documents Similar To Modul Praktikum PBO","track_opts":{"compilation_id":"7s52/gON3U/xJJBK8dQ+uCJF350=","module_id":"jIXPNHkvNH7wJVq/Z5lOg0MUWJk=","widget_name":"document_carousel"}},{"ids":[264647572,272940491,282477763,249618091,249699303,255625689,282477894,282477820,255625459,255625399,234725700,234726013,282768539,270652780,255624691,209374087,234725121,190326859,214794739,234725325,217614235,217613539,207465509,217616324,217613713,214795819,207465726,225889276,217613893,207465068],"title_link":null,"title":"More From mukidin","track_opts":{"compilation_id":"7s52/gON3U/xJJBK8dQ+uCJF350=","module_id":"wSJFO4QLOwqk/50PkTnqLqlM4jE=","widget_name":"document_carousel"}}]},"seo_new_docs_recommenders":{"recommenders":[]},"documents":{"21544012":{"type":"document","id":21544012,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/21544012/108x144/04b125ae2d/1370505538?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/21544012/216x288/f3cbebd280/1370505538?v=1","title":"Penerapan Bentuk Normalisasi Dalam Basis Data","short_title":"Penerapan Bentuk Normalisasi Dalam Basis Data","author":"Wenda Haryanto","tracking":{"object_type":"document","object_id":21544012,"track":"flattened_recommender","doc_uuid":"LTm6y3LEOdxBPGQjNlgLgN1NdyY="},"url":"https://www.scribd.com/doc/21544012/Penerapan-Bentuk-Normalisasi-Dalam-Basis-Data"},"32113456":{"type":"document","id":32113456,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/32113456/108x144/f14d3b1e09/1365964604?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/32113456/216x288/1775187b1a/1365964604?v=1","title":"PBO Java","short_title":"PBO Java","author":"Husnan Syarofie","tracking":{"object_type":"document","object_id":32113456,"track":"flattened_recommender","doc_uuid":"7XoQzP6rZj7j2BySoLIpbRvdaO8="},"url":"https://www.scribd.com/document/32113456/PBO-Java"},"40046899":{"type":"document","id":40046899,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/40046899/108x144/8906853276/1475168796?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/40046899/216x288/67be5e5aaa/1475168796?v=1","title":"Materi PBO-Edi Furqon","short_title":"Materi PBO-Edi Furqon","author":"shered2812","tracking":{"object_type":"document","object_id":40046899,"track":"flattened_recommender","doc_uuid":"a29aIkZFJZ1NE95LodJ80Ke9aso="},"url":"https://www.scribd.com/doc/40046899/Materi-PBO-Edi-Furqon"},"48335254":{"type":"document","id":48335254,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/48335254/108x144/6622473108/1368513303?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/48335254/216x288/572dbe7eac/1368513303?v=1","title":"Apakah itu LBS","short_title":"Apakah itu LBS","author":"Ranugal","tracking":{"object_type":"document","object_id":48335254,"track":"flattened_recommender","doc_uuid":"ir0JUPQuhVhPH/j91s7nP30B5xw="},"url":"https://www.scribd.com/doc/48335254/Apakah-itu-LBS"},"48954151":{"type":"document","id":48954151,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/48954151/108x144/e28c13c654/1374935827?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/48954151/216x288/14552078a8/1374935827?v=1","title":"Algoritma Gauss-Jordan","short_title":"Algoritma Gauss-Jordan","author":"Iwah Notresponding","tracking":{"object_type":"document","object_id":48954151,"track":"flattened_recommender","doc_uuid":"UZY9W/IC7I+Oz/CI59fz22o4ND4="},"url":"https://www.scribd.com/doc/48954151/Algoritma-Gauss-Jordan"},"64940143":{"type":"document","id":64940143,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/64940143/108x144/8fb7180880/1373446941?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/64940143/216x288/25f20c5821/1373446941?v=1","title":"Modul C++ Revisi Opened","short_title":"Modul C++ Revisi Opened","author":"Galih Setyawan","tracking":{"object_type":"document","object_id":64940143,"track":"flattened_recommender","doc_uuid":"WJf+l7LW7QRJci9R4AX6lOWuS9A="},"url":"https://www.scribd.com/doc/64940143/Modul-C-Revisi-Opened"},"75095978":{"type":"document","id":75095978,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/75095978/108x144/e4606657ce/1508602455?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/75095978/216x288/a9b45b512c/1508602455?v=1","title":"Tugas Analisa Web Kelompok","short_title":"Tugas Analisa Web Kelompok","author":"Rika Febriana","tracking":{"object_type":"document","object_id":75095978,"track":"flattened_recommender","doc_uuid":"f4InefOqp2o/q/XBpp43VgGxDGQ="},"url":"https://www.scribd.com/doc/75095978/Tugas-Analisa-Web-Kelompok"},"76148884":{"type":"document","id":76148884,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/76148884/108x144/1dc4e7fb1d/1351833056?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/76148884/216x288/4daf6c8136/1351833056?v=1","title":"Source Code Program Menghitung Gaji Pegawai","short_title":"Source Code Program Menghitung Gaji Pegawai","author":"Rizki","tracking":{"object_type":"document","object_id":76148884,"track":"flattened_recommender","doc_uuid":"6VS8howZQ/Mz/r4W9jrRmJPNxjQ="},"url":"https://www.scribd.com/doc/76148884/Source-Code-Program-Menghitung-Gaji-Pegawai"},"76880431":{"type":"document","id":76880431,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/76880431/108x144/020583ba12/1367859234?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/76880431/216x288/875934e705/1367859234?v=1","title":"Kisi Kisi Soal Ujian Akhir Semester Mata Kuliah Pengantar Sistem Informasi Tahun Ajaran ban","short_title":"Kisi Kisi Soal Ujian Akhir Semester Mata Kuliah Pengantar Sistem Informasi Tahun Ajaran ban","author":"Rocky Tui","tracking":{"object_type":"document","object_id":76880431,"track":"flattened_recommender","doc_uuid":"eNUrktJvoDce9qzskrQyTZGkoUw="},"url":"https://www.scribd.com/doc/76880431/Kisi-Kisi-Soal-Ujian-Akhir-Semester-Mata-Kuliah-Pengantar-Sistem-Informasi-Tahun-Ajaran-ban"},"82906077":{"type":"document","id":82906077,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/82906077/108x144/fc74be630b/1353970674?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/82906077/216x288/1b8c5709b6/1353970674?v=1","title":"Tugas AI","short_title":"Tugas AI","author":"Kang Salman Al Farizi","tracking":{"object_type":"document","object_id":82906077,"track":"flattened_recommender","doc_uuid":"QruT2XfLWT9fZzf5Gvnaz0IPgRI="},"url":"https://www.scribd.com/doc/82906077/Tugas-AI"},"85437194":{"type":"document","id":85437194,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/85437194/108x144/ee80f63ca1/1520907314?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/85437194/216x288/9e6e8c264e/1520907314?v=1","title":"Modul Java Keseluruhan","short_title":"Modul Java Keseluruhan","author":"Siti Maryam","tracking":{"object_type":"document","object_id":85437194,"track":"flattened_recommender","doc_uuid":"friRX8OeIRAF5zxj3ao84DUcUvw="},"url":"https://www.scribd.com/doc/85437194/Modul-Java-Keseluruhan"},"102518109":{"type":"document","id":102518109,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/102518109/108x144/5a06699a4a/1371822053?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/102518109/216x288/06bed3c963/1371822053?v=1","title":"Modul Pemrograman Vb-1","short_title":"Modul Pemrograman Vb-1","author":"rachmatdani07","tracking":{"object_type":"document","object_id":102518109,"track":"flattened_recommender","doc_uuid":"/eg1JerdwDUZR/+rHh+yc17W/rg="},"url":"https://www.scribd.com/doc/102518109/Modul-Pemrograman-Vb-1"},"118212229":{"type":"document","id":118212229,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/118212229/108x144/1a58bb0ce8/1422169334?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/118212229/216x288/b7740fb695/1422169334?v=1","title":"KISI-KISI SOAL UAS TEORI BAHASA DAN AUTOMATA","short_title":"KISI-KISI SOAL UAS TEORI BAHASA DAN AUTOMATA","author":"Hotland Sitorus","tracking":{"object_type":"document","object_id":118212229,"track":"flattened_recommender","doc_uuid":"u349UCfFBq/E49AsC0fVWktozu8="},"url":"https://www.scribd.com/doc/118212229/KISI-KISI-SOAL-UAS-TEORI-BAHASA-DAN-AUTOMATA"},"124122348":{"type":"document","id":124122348,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/124122348/108x144/59270ad292/1416073473?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/124122348/216x288/4d23fe2452/1416073473?v=1","title":"laporan praktikum Android","short_title":"laporan praktikum Android","author":"Lapha EmaNg Boo","tracking":{"object_type":"document","object_id":124122348,"track":"flattened_recommender","doc_uuid":"2I9nTD8OxA69Sv47WfGIMCnHzjE="},"url":"https://www.scribd.com/doc/124122348/laporan-praktikum-Android"},"125060054":{"type":"document","id":125060054,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/125060054/108x144/5f82742736/1520386229?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/125060054/216x288/b78bf217e5/1520386229?v=1","title":"UN TEORI KEJURUAN RPL","short_title":"UN TEORI KEJURUAN RPL","author":"Dalem Wendy","tracking":{"object_type":"document","object_id":125060054,"track":"flattened_recommender","doc_uuid":"E17D8XI8svFk/Nt3dsvsj4X1VEw="},"url":"https://www.scribd.com/doc/125060054/UN-TEORI-KEJURUAN-RPL"},"128584279":{"type":"document","id":128584279,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/128584279/108x144/fa24d04f33/1390977148?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/128584279/216x288/5c4c6dac1c/1390977148?v=1","title":"Hendra_ St (Indoprog)","short_title":"Hendra_ St (Indoprog)","author":"Cahyadi Budisatya","tracking":{"object_type":"document","object_id":128584279,"track":"flattened_recommender","doc_uuid":"BFHmD8a7ht1Zv570SNLOdsaF2kI="},"url":"https://www.scribd.com/doc/128584279/Hendra-St-Indoprog"},"130122934":{"type":"document","id":130122934,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/130122934/108x144/f1506c78c6/1415713986?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/130122934/216x288/7b725bcfa0/1415713986?v=1","title":"Konsep Dasar Analisis Spasial","short_title":"Konsep Dasar Analisis Spasial","author":"ichwanudin14","tracking":{"object_type":"document","object_id":130122934,"track":"flattened_recommender","doc_uuid":"uWw+ZTcw7jWKRiswqJEjn0aGg+c="},"url":"https://www.scribd.com/doc/130122934/Konsep-Dasar-Analisis-Spasial"},"155225745":{"type":"document","id":155225745,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/155225745/108x144/e1ff97cd2d/1489120441?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/155225745/216x288/ba26d39e25/1489120441?v=1","title":"Soal_Soal - PBO - Gabungan - Jawaban.doc","short_title":"Soal_Soal - PBO - Gabungan - Jawaban.doc","author":"boenhouw","tracking":{"object_type":"document","object_id":155225745,"track":"flattened_recommender","doc_uuid":"M5sYJbor7eaxvkRd7HivE6Lw7EM="},"url":"https://www.scribd.com/doc/155225745/Soal-Soal-PBO-Gabungan-Jawaban-doc"},"190326859":{"type":"document","id":190326859,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/190326859/108x144/2030917a14/1402658113?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/190326859/216x288/556e438946/1402658113?v=1","title":"Diktat","short_title":"Diktat","author":"mukidin","tracking":{"object_type":"document","object_id":190326859,"track":"flattened_recommender","doc_uuid":"0mwawt7eJ2GB2Ic1EZfTJgY5I50="},"url":"https://www.scribd.com/doc/190326859/Diktat"},"193749305":{"type":"document","id":193749305,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/193749305/108x144/3c316d38a2/1509789188?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/193749305/216x288/c503039cdf/1509789188?v=1","title":"RPP Basis Data","short_title":"RPP Basis Data","author":"Fahmi Cirebon","tracking":{"object_type":"document","object_id":193749305,"track":"flattened_recommender","doc_uuid":"Kl0mYJGJTbtUS4OGuTb2gKWcBCI="},"url":"https://www.scribd.com/doc/193749305/RPP-Basis-Data"},"198632928":{"type":"document","id":198632928,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/198632928/108x144/317b9b1513/1401873284?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/198632928/216x288/a8ee5fa38c/1401873284?v=1","title":"MODUL PBO","short_title":"MODUL PBO","author":"fendyxcyber","tracking":{"object_type":"document","object_id":198632928,"track":"flattened_recommender","doc_uuid":"K4A8stGjXCoP4BHuCTzg68w6DZo="},"url":"https://www.scribd.com/document/198632928/MODUL-PBO"},"207465068":{"type":"document","id":207465068,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/207465068/108x144/3a2525d952/1428146367?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/207465068/216x288/45f24c1c0f/1428146367?v=1","title":"Cara Instal MIkrotik OS Router","short_title":"Cara Instal MIkrotik OS Router","author":"mukidin","tracking":{"object_type":"document","object_id":207465068,"track":"flattened_recommender","doc_uuid":"ofuAMSLvA6kU9Mih2OOWPHWnU38="},"url":"https://www.scribd.com/doc/207465068/Cara-Instal-MIkrotik-OS-Router"},"207465509":{"type":"document","id":207465509,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/207465509/108x144/1340db378b/1425586987?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/207465509/216x288/4fe43dc5b1/1425586987?v=1","title":"Anal is is Siste Mber Basis Ob Jek","short_title":"Anal is is Siste Mber Basis Ob Jek","author":"mukidin","tracking":{"object_type":"document","object_id":207465509,"track":"flattened_recommender","doc_uuid":"0BRD0HlB21YJaDNXJDjQrludmSc="},"url":"https://www.scribd.com/doc/207465509/Anal-is-is-Siste-Mber-Basis-Ob-Jek"},"207465726":{"type":"document","id":207465726,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/207465726/108x144/e230094464/1415614931?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/207465726/216x288/43b69cb468/1415614931?v=1","title":"Panduan Excel 2007","short_title":"Panduan Excel 2007","author":"mukidin","tracking":{"object_type":"document","object_id":207465726,"track":"flattened_recommender","doc_uuid":"UMoVENM9ZtTc+U2cphR2vGGkJWM="},"url":"https://www.scribd.com/doc/207465726/Panduan-Excel-2007"},"209374087":{"type":"document","id":209374087,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/209374087/108x144/46c12531b0/1407947943?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/209374087/216x288/a71c9652cd/1407947943?v=1","title":"Modul Jaringan Komputer","short_title":"Modul Jaringan Komputer","author":"mukidin","tracking":{"object_type":"document","object_id":209374087,"track":"flattened_recommender","doc_uuid":"9piWlqR2I/zJeHt+vhsbwEM3r8I="},"url":"https://www.scribd.com/doc/209374087/Modul-Jaringan-Komputer"},"214794739":{"type":"document","id":214794739,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/214794739/108x144/5de6a3796b/1424102620?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/214794739/216x288/d72bdfa8bf/1424102620?v=1","title":"Tutorial Singkat Penggunaan Rational Rose","short_title":"Tutorial Singkat Penggunaan Rational Rose","author":"mukidin","tracking":{"object_type":"document","object_id":214794739,"track":"flattened_recommender","doc_uuid":"3huUwa5zdbSvK77RVEuvhXTdF2U="},"url":"https://www.scribd.com/doc/214794739/Tutorial-Singkat-Penggunaan-Rational-Rose"},"214795819":{"type":"document","id":214795819,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/214795819/108x144/bc2c499ebf/1424253494?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/214795819/216x288/31d9f1786c/1424253494?v=1","title":"Diktat Komdat Jarkom","short_title":"Diktat Komdat Jarkom","author":"mukidin","tracking":{"object_type":"document","object_id":214795819,"track":"flattened_recommender","doc_uuid":"zyzpac8EZ/OaK4OJIH8asUHvTsA="},"url":"https://www.scribd.com/doc/214795819/Diktat-Komdat-Jarkom"},"217613539":{"type":"document","id":217613539,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217613539/108x144/52e2da52fa/1416186206?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217613539/216x288/7934ce35ec/1416186206?v=1","title":"Konfigurasi Mikrotik Dengan Menggunakan Winbox","short_title":"Konfigurasi Mikrotik Dengan Menggunakan Winbox","author":"mukidin","tracking":{"object_type":"document","object_id":217613539,"track":"flattened_recommender","doc_uuid":"+CNoW/MmerfmzoUMF83J2UBLwBA="},"url":"https://www.scribd.com/doc/217613539/Konfigurasi-Mikrotik-Dengan-Menggunakan-Winbox"},"217613713":{"type":"document","id":217613713,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217613713/108x144/09902a2cc4/1427330349?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/217613713/216x288/67696bcf3d/1427330349?v=1","title":"buku_IMK","short_title":"buku_IMK","author":"mukidin","tracking":{"object_type":"document","object_id":217613713,"track":"flattened_recommender","doc_uuid":"eeITo4rKqQVXqegZgPAGNVAMAM8="},"url":"https://www.scribd.com/doc/217613713/buku-IMK"},"217613893":{"type":"document","id":217613893,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217613893/108x144/86c81300de/1406502589?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/217613893/216x288/37144142b6/1406502589?v=1","title":"Hand Out Sig","short_title":"Hand Out Sig","author":"mukidin","tracking":{"object_type":"document","object_id":217613893,"track":"flattened_recommender","doc_uuid":"jw+2ICF1hST8VntZxJfBYimcoqk="},"url":"https://www.scribd.com/doc/217613893/Hand-Out-Sig"},"217614235":{"type":"document","id":217614235,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/217614235/108x144/c7fcc6659c/1397205286?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217614235/216x288/de5099d22a/1397205286?v=1","title":"Tutorial1-InstalasiEclipse","short_title":"Tutorial1-InstalasiEclipse","author":"mukidin","tracking":{"object_type":"document","object_id":217614235,"track":"flattened_recommender","doc_uuid":"qbdcBrhalBC59KUFMXY0XCCjdwk="},"url":"https://www.scribd.com/doc/217614235/Tutorial1-InstalasiEclipse"},"217616324":{"type":"document","id":217616324,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/217616324/108x144/edceb121e7/1424000649?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/217616324/216x288/4899708d00/1424000649?v=1","title":"Panduan SKRIPSI 2013","short_title":"Panduan SKRIPSI 2013","author":"mukidin","tracking":{"object_type":"document","object_id":217616324,"track":"flattened_recommender","doc_uuid":"qCh5yJEDwmdGMC64s7HIzPh4IMM="},"url":"https://www.scribd.com/doc/217616324/Panduan-SKRIPSI-2013"},"221090714":{"type":"document","id":221090714,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/221090714/108x144/e201f0a77f/1449897604?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/221090714/216x288/1aabe98f0d/1449897604?v=1","title":"Pengertian Dan Macam Macam Layout Manager","short_title":"Pengertian Dan Macam Macam Layout Manager","author":"Hardianto Suman","tracking":{"object_type":"document","object_id":221090714,"track":"flattened_recommender","doc_uuid":"nOCAuIOI/CmX6SNOycTuUdzu15M="},"url":"https://www.scribd.com/doc/221090714/Pengertian-Dan-Macam-Macam-Layout-Manager"},"225889276":{"type":"document","id":225889276,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/225889276/108x144/86287d165f/1429256400?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/225889276/216x288/9d6ad8916c/1429256400?v=1","title":"Merakit Komputer Dan Instalasi Windows","short_title":"Merakit Komputer Dan Instalasi Windows","author":"mukidin","tracking":{"object_type":"document","object_id":225889276,"track":"flattened_recommender","doc_uuid":"YSo3I/Js7bm9rms848h9KHYWwGY="},"url":"https://www.scribd.com/doc/225889276/Merakit-Komputer-Dan-Instalasi-Windows"},"234725121":{"type":"document","id":234725121,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234725121/108x144/c9b6490847/1430510763?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234725121/216x288/4365ce78fd/1430510763?v=1","title":"Tutorial Olap Complete","short_title":"Tutorial Olap Complete","author":"mukidin","tracking":{"object_type":"document","object_id":234725121,"track":"flattened_recommender","doc_uuid":"b1InXZakImQSxNVLT0EJAXqkNTg="},"url":"https://www.scribd.com/doc/234725121/Tutorial-Olap-Complete"},"234725325":{"type":"document","id":234725325,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234725325/108x144/a67a8d4e04/1447149566?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/234725325/216x288/c3eaf6f5e7/1447149566?v=1","title":"Diktat Sistem Basis Data","short_title":"Diktat Sistem Basis Data","author":"mukidin","tracking":{"object_type":"document","object_id":234725325,"track":"flattened_recommender","doc_uuid":"pdE4NNQK9q7y9iVyJX1mvLBjffM="},"url":"https://www.scribd.com/doc/234725325/Diktat-Sistem-Basis-Data"},"234725700":{"type":"document","id":234725700,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/234725700/108x144/19c2c58714/1436354316?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234725700/216x288/49064aa85e/1436354316?v=1","title":"Modul Praktikum VisualBasic.net","short_title":"Modul Praktikum VisualBasic.net","author":"mukidin","tracking":{"object_type":"document","object_id":234725700,"track":"flattened_recommender","doc_uuid":"SiJz6F5wLZ5ki6c7G6ZzBpJ5eAU="},"url":"https://www.scribd.com/doc/234725700/Modul-Praktikum-VisualBasic-net"},"234726013":{"type":"document","id":234726013,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234726013/108x144/db25631a8c/1439730880?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/234726013/216x288/c4443ea541/1439730880?v=1","title":"Modul Membuat Desain Rumah 3D Dengan Sweet Home 3D","short_title":"Modul Membuat Desain Rumah 3D Dengan Sweet Home 3D","author":"mukidin","tracking":{"object_type":"document","object_id":234726013,"track":"flattened_recommender","doc_uuid":"FQhk+HkInHkD2sePFWttAJ31KAk="},"url":"https://www.scribd.com/doc/234726013/Modul-Membuat-Desain-Rumah-3D-Dengan-Sweet-Home-3D"},"249618091":{"type":"document","id":249618091,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/249618091/108x144/3ca1a7db1e/1418114935?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/249618091/216x288/da49ee6960/1418114935?v=1","title":"Clustering","short_title":"Clustering","author":"mukidin","tracking":{"object_type":"document","object_id":249618091,"track":"flattened_recommender","doc_uuid":"Q3cCoUrHhcGohFh46G1vuBEQyn8="},"url":"https://www.scribd.com/doc/249618091/Clustering"},"249699303":{"type":"document","id":249699303,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/249699303/108x144/e265ce4d30/1418171735?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/249699303/216x288/4cc7f90b5d/1418171735?v=1","title":"Klasifikasi","short_title":"Klasifikasi","author":"mukidin","tracking":{"object_type":"document","object_id":249699303,"track":"flattened_recommender","doc_uuid":"e8tP2niIbPq+xPOEUSZOsr2xj8g="},"url":"https://www.scribd.com/doc/249699303/Klasifikasi"},"255624691":{"type":"document","id":255624691,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/255624691/108x144/d239e77df0/1461362710?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/255624691/216x288/231e83d60c/1461362710?v=1","title":"modul-sbd","short_title":"modul-sbd","author":"mukidin","tracking":{"object_type":"document","object_id":255624691,"track":"flattened_recommender","doc_uuid":"x7W/U84HEG79XqpAhXXM0WyvVzY="},"url":"https://www.scribd.com/doc/255624691/modul-sbd"},"255625399":{"type":"document","id":255625399,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/255625399/108x144/4a6ffb40c4/1461362720?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/255625399/216x288/8bc49b1645/1461362720?v=1","title":"Programming Android Dengan Sqlite","short_title":"Programming Android Dengan Sqlite","author":"mukidin","tracking":{"object_type":"document","object_id":255625399,"track":"flattened_recommender","doc_uuid":"69UapuB0S+bY4J13Gd5ZS+P/P5s="},"url":"https://www.scribd.com/doc/255625399/Programming-Android-Dengan-Sqlite"},"255625459":{"type":"document","id":255625459,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/255625459/108x144/ae196e2b8e/1423799989?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/255625459/216x288/6795978870/1423799989?v=1","title":"Modul Android","short_title":"Modul Android","author":"mukidin","tracking":{"object_type":"document","object_id":255625459,"track":"flattened_recommender","doc_uuid":"P4N9ZXA+O9z/nbIE3LNoCwgjS9s="},"url":"https://www.scribd.com/doc/255625459/Modul-Android"},"255625689":{"type":"document","id":255625689,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/255625689/108x144/051435feac/1461362727?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/255625689/216x288/f2902ceb85/1461362727?v=1","title":"membangun responsive website dengan twitter bootstrap 2","short_title":"membangun responsive website dengan twitter bootstrap 2","author":"mukidin","tracking":{"object_type":"document","object_id":255625689,"track":"flattened_recommender","doc_uuid":"ZWUku1Helaun5220fLfRwD0mgqQ="},"url":"https://www.scribd.com/doc/255625689/membangun-responsive-website-dengan-twitter-bootstrap-2"},"264647572":{"type":"document","id":264647572,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/264647572/108x144/f35fdd43bc/1444839705?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/264647572/216x288/e9502e66ea/1444839705?v=1","title":"KREDIT","short_title":"KREDIT","author":"mukidin","tracking":{"object_type":"document","object_id":264647572,"track":"flattened_recommender","doc_uuid":"xGTgdUShNiz8wFgd5ZZnAVNDY1o="},"url":"https://www.scribd.com/document/264647572/KREDIT"},"270652780":{"type":"document","id":270652780,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/270652780/108x144/f2642457f3/1436166419?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/270652780/216x288/3194603218/1436166419?v=1","title":"Simple Moving Average","short_title":"Simple Moving Average","author":"mukidin","tracking":{"object_type":"document","object_id":270652780,"track":"flattened_recommender","doc_uuid":"utBVOtNdz2G72zQqgL53RUwdGC0="},"url":"https://www.scribd.com/doc/270652780/Simple-Moving-Average"},"272940491":{"type":"document","id":272940491,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/272940491/108x144/020f1dabc6/1438181050?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/272940491/216x288/dd639cc6c5/1438181050?v=1","title":"SPK Pemilihan Obat","short_title":"SPK Pemilihan Obat","author":"mukidin","tracking":{"object_type":"document","object_id":272940491,"track":"flattened_recommender","doc_uuid":"EmfYrvIh5nM+OCy6J/RbLt2ecHc="},"url":"https://www.scribd.com/doc/272940491/SPK-Pemilihan-Obat"},"282477763":{"type":"document","id":282477763,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282477763/108x144/06b9c6133e/1443011516?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/282477763/216x288/768d11487a/1443011516?v=1","title":"skripsi s1 pgsd","short_title":"skripsi s1 pgsd","author":"mukidin","tracking":{"object_type":"document","object_id":282477763,"track":"flattened_recommender","doc_uuid":"8NHePVokPVyOKDWxVwg6nAdlYmc="},"url":"https://www.scribd.com/doc/282477763/skripsi-s1-pgsd"},"282477820":{"type":"document","id":282477820,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/282477820/108x144/ceaff1a02d/1443011576?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282477820/216x288/dfcdd600ff/1443011576?v=1","title":"Makalah Sistem Pendukung Keputusan","short_title":"Makalah Sistem Pendukung Keputusan","author":"mukidin","tracking":{"object_type":"document","object_id":282477820,"track":"flattened_recommender","doc_uuid":"VS2HJTWNJvg5/+Any61pZCjZLBI="},"url":"https://www.scribd.com/doc/282477820/Makalah-Sistem-Pendukung-Keputusan"},"282477894":{"type":"document","id":282477894,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282477894/108x144/e9f845e324/1443011639?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282477894/216x288/bb1d31faaf/1443011639?v=1","title":"Contoh Jurnal SAW","short_title":"Contoh Jurnal SAW","author":"mukidin","tracking":{"object_type":"document","object_id":282477894,"track":"flattened_recommender","doc_uuid":"BVa4/HJJ4RQJozvVQ3mW4tH2KA4="},"url":"https://www.scribd.com/doc/282477894/Contoh-Jurnal-SAW"},"282768539":{"type":"document","id":282768539,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/282768539/108x144/c319da2f9a/1461839341?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/282768539/216x288/ad58d154ab/1461839341?v=1","title":"Instalasi App Inventor Pada Windows","short_title":"Instalasi App Inventor Pada Windows","author":"mukidin","tracking":{"object_type":"document","object_id":282768539,"track":"flattened_recommender","doc_uuid":"mm6Ef3STo4czF8KhRyOr6IpV1hQ="},"url":"https://www.scribd.com/doc/282768539/Instalasi-App-Inventor-Pada-Windows"},"318042579":{"type":"document","id":318042579,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/318042579/108x144/1f9d7f0ca1/1468283377?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/318042579/216x288/6a7ab5459c/1468283377?v=1","title":"6. RPP-Simulasi-Digital-Presentasi Video Untuk Branding Dan Marketing","short_title":"6. RPP-Simulasi-Digital-Presentasi Video Untuk Branding Dan Marketing","author":"chaoz headbanger","tracking":{"object_type":"document","object_id":318042579,"track":"flattened_recommender","doc_uuid":"IfTzcvYIw/kdzryNEUg3QiA2dzQ="},"url":"https://www.scribd.com/document/318042579/6-RPP-Simulasi-Digital-Presentasi-Video-Untuk-Branding-Dan-Marketing"},"320883093":{"type":"document","id":320883093,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/320883093/108x144/0682847968/1470904618?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/320883093/216x288/501b26812c/1470904618?v=1","title":"Silabus database kelas XI RPL","short_title":"Silabus database kelas XI RPL","author":"Gyman Hatsui","tracking":{"object_type":"document","object_id":320883093,"track":"flattened_recommender","doc_uuid":"IxrbollAvLFfiKOyhRGB9EPzzt4="},"url":"https://www.scribd.com/document/320883093/Silabus-database-kelas-XI-RPL"},"339473128":{"type":"document","id":339473128,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/339473128/108x144/8a2e54fb36/1501335165?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/339473128/216x288/dec309a1de/1501335165?v=1","title":"Rpl e Pemrograman Perangkat Bergerak","short_title":"Rpl e Pemrograman Perangkat Bergerak","author":"junadi","tracking":{"object_type":"document","object_id":339473128,"track":"flattened_recommender","doc_uuid":"gERz0lAJpdcXXWh43lbK74J5TBg="},"url":"https://www.scribd.com/document/339473128/Rpl-e-Pemrograman-Perangkat-Bergerak"},"346717099":{"type":"document","id":346717099,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/346717099/108x144/8e2cd5d5bf/1519379508?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/346717099/216x288/110c1facfc/1519379508?v=1","title":"RPP PBO KD1","short_title":"RPP PBO KD1","author":"raia","tracking":{"object_type":"document","object_id":346717099,"track":"flattened_recommender","doc_uuid":"SEVXi9sw2g15aAYTA2NumIA++Tk="},"url":"https://www.scribd.com/document/346717099/RPP-PBO-KD1"},"348461960":{"type":"document","id":348461960,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/348461960/108x144/616006b633/1532635821?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/348461960/216x288/f251577fbb/1532635821?v=1","title":"Materi Permodelan Perangkat Lunak Kelas XI RPL","short_title":"Materi Permodelan Perangkat Lunak Kelas XI RPL","author":"Ayahnya Mas Syaiful","tracking":{"object_type":"document","object_id":348461960,"track":"flattened_recommender","doc_uuid":"1lFh6bBHJpnF5YK2DC98IlhIigw="},"url":"https://www.scribd.com/document/348461960/Materi-Permodelan-Perangkat-Lunak-Kelas-XI-RPL"},"353861244":{"type":"document","id":353861244,"thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/353861244/108x144/b9295dc7ec/1500163712?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/353861244/216x288/1f89297051/1500163712?v=1","title":"RPP OOP KD 3.1","short_title":"RPP OOP KD 3.1","author":"RulyAndika","tracking":{"object_type":"document","object_id":353861244,"track":"flattened_recommender","doc_uuid":"jOHPsSArDu+PIfTfC0VOKtQX2/w="},"url":"https://www.scribd.com/document/353861244/RPP-OOP-KD-3-1"},"357382881":{"type":"document","id":357382881,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/357382881/108x144/97145f233a/1503894965?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/357382881/216x288/47dc5d278e/1503894965?v=1","title":"RPP Basis Data Kelas XI","short_title":"RPP Basis Data Kelas XI","author":"Ari Gusti","tracking":{"object_type":"document","object_id":357382881,"track":"flattened_recommender","doc_uuid":"PPUnO1kcfa4j/7yP4lXpa/1FyXQ="},"url":"https://www.scribd.com/document/357382881/RPP-Basis-Data-Kelas-XI"},"358674869":{"type":"document","id":358674869,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/358674869/108x144/7ccfa3735c/1510716295?v=1","retina_thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/358674869/216x288/3333dda595/1510716295?v=1","title":"3.4 Menerapkan Logika, Dan Operasi Perhitungan Data (1)","short_title":"3.4 Menerapkan Logika, Dan Operasi Perhitungan Data (1)","author":"Ikhtiar Sari Tilawa","tracking":{"object_type":"document","object_id":358674869,"track":"flattened_recommender","doc_uuid":"Tc6Em6Lrt00ibwOydtv8YAfka4M="},"url":"https://www.scribd.com/document/358674869/3-4-Menerapkan-Logika-Dan-Operasi-Perhitungan-Data-1"},"362340966":{"type":"document","id":362340966,"thumb_url":"https://imgv2-2-f.scribdassets.com/img/document/362340966/108x144/7f79f117aa/1508741212?v=1","retina_thumb_url":"https://imgv2-1-f.scribdassets.com/img/document/362340966/216x288/3a6a89d3ad/1508741212?v=1","title":"Prota PBO","short_title":"Prota PBO","author":"Ahmadi Andianto","tracking":{"object_type":"document","object_id":362340966,"track":"flattened_recommender","doc_uuid":"HtnS4A+VGnjFoP2FouxmXyzdI9w="},"url":"https://www.scribd.com/document/362340966/Prota-PBO"}}},"seo_roadblock_props_path":"/doc-page/seo-roadblock-props/163080375","signup_context":null,"toolbar":{"search_path":"/search-4gen?allowed_pages=1%2C2%2C3%2C63%2C64%2C65%2C86%2C87%2C88&auth_token=%2Bd1DL0thJDiuMDa5skmcmQqYhDU%3D&authenticity_token=2WNGbRroQxnR21GkhYV%2FVyiqrtD0PSAVuiDJB3y3xaadEMvD5wnjU0p2DXzXcdYriIMSE5Xg9Bygcqiks%2BPtmw%3D%3D&expires=1538455413&wordDocumentId=163080375&wordUploadId=167189871"},"renewal_nag_props":null}-->