LAPORAN PRAKTIKUM SOFTWARE QUALITY ASSURANCE 12 PERTEMUAN KE – 10 “ REFACTORING “ Disusun oleh : BUJANG PUTRO WICAKSONO 135610046 JURUSAN SISTEM INFORMASI SEKOLAH TINGGI MANAJEMEN INFORMATIKA & KOMPUTER AKAKOM YOGYAKARTA 2015 SOFTWARE QUALITY ASSURANCE PERTEMUAN KE – 10 “ REFACTORING “ A. MANFAAT DAN TUJUAN Dari pelaksanaan praktikum SQA Pertemuan 10 yang membahas tentang Refactoring memiliki manfaat dan tujuan agar mahasiswa memahami pengertian refactoring serta peran dari refactoring dalam peningkatan kualitas software, memahami jenis-jenis refactoring pada IDE NetBeans, mahasiswa juga mampu melakukan proses refactoring. B. PEMBAHASAN Pembahasan Gambar Pertama Buat project baru di Netbeans Gambar diatas merupakan proses setelah membuka Netbeans, lalu melakukan pembuatan project baru dengan nama Mod_10 Pembahasan Gambar Kedua membuat class hello.java di package Mod_10 Gambar diatas merupakan proses membuka jendela New Java Class, dalam jendela diatas digunakan untuk membuat kelas java baru bernama hello.java yang akan diletakkan didalam package Mod_10. Pembahasan Gambar Ketiga Mengetikkan script pada hello.java Gambar diatas merupakan proses pembuatan script yang ada didalam file hello.java yang memuat script sebagai berikut : package mod_10; public class Hello { public static void main(String args[]){ System.out.println("Hello this is my first java program"); } } Pembahasan Gambar Keempat melakukan Running pada hello.java Gambar diatas merupakan proses Running pada file hello.java, dan hasilnya tidak ditemukan error. Maka pada proses running tersebut menampilkan kalimat yang berada pada sintak System.out.println yaitu Hello this is my first java program Pembahasan Gambar Kelima Refactor dari Mod_10 menjadi vehicles Gambar diatas merupakan proses melakukan Refactoring pada package yang memiliki nama awal yaitu Mod_10 diubah agar berganti nama menjadi vehicles. Gambar sebelah kanan menunjukkan bahwa package dengan nama Mod_10 sudah tidak terlihat, namun yang ada yaitu package vehicles dengan isi didalamnya yaitu hello.java Pembahasan Gambar Keenam menambahkan java class Bicycle.java Gambar diatas merupakan proses membuka jendela New Java Class, dalam jendela diatas digunakan untuk membuat kelas java baru bernama Bicycle.java yang akan diletakkan didalam package vehicles. Pembahasan Gambar Ketujuh Mengetikkan script pada Bicycle.java << … Script Lanjutan... >> Gambar diatas merupakan proses pembuatan script yang ada didalam file Bicycle.java yang memuat script sebagai berikut : package vehicles; public class Bicycle { // the Bicycle class has three fields public int cadence; public int gear; public int speed; // the Bicycle class has one constructor public Bicycle(int startCadence, int startSpeed, int startGear) { gear = startGear; cadence = startCadence; . speed = startSpeed; } // the Bicycle class has four methods public void setCadence(int newValue) { cadence = newValue; } public void setGear(int newValue) { gear = newValue; } public void setSpeed(int newValue) { speed = newValue; } public int getGear() { return gear; } public int getCadence() { return cadence; } public int getSpeed() { return speed; } public void applyBrake(int decrement) { speed -= decrement; } public void speedUp(int increment) { speed += increment; } } Pembahasan Gambar Kedelapan melakukan Running pada Bicycle.java Gambar diatas merupakan proses Running pada file Bicycle.java, dan hasilnya tidak ditemukan error. Maka pada proses running tersebut menampilkan kalimat We have a new bicycle wth speed = 20, cadence = 10, gear = 1 Pembahasan Gambar Kesembilan Mengetikkan script pada bicyclemain.java Gambar diatas merupakan proses pembuatan script yang ada didalam file bicyclemain.java yang memuat script sebagai berikut : package vehicles; import bujangpw.Bicycle; public class bicyclemain { public static void main (String args[]) { Bicycle Bike = new Bicycle(10, 20, 1); System.out.println("We have a new bicycle wth speed = " + . Bike.getSpeed() + ", cadence = " + Bike.getCadence() + ", gear = " + Bike.getGear()); } } Pembahasan Gambar Kesepuluh melakukan Running pada file bicyclemain.java Gambar diatas merupakan proses Running pada file bicyclemain.java, dan hasilnya tidak ditemukan error. Maka pada proses running tersebut menampilkan kalimat We have a new bicycle wth speed = 20, cadence = 10, gear = 1 Pembahasan Gambar Kesebelas melakukan Refactoring gear menjadi bicygear. Gambar diatas merupakan proses melakukan Refactoring yang digunakan untuk melakukan penggantian kalimat yang awalnya gear menjadi bicygear seperti melakuakn replace, sehingga dimanapun ada kata gear akan berganti menjadi bicygear. Pembahasan Gambar Keduabelas pemindahan file bicycle.java dari package vehicles ke package bujangpw Gambar diatas merupakan proses melakukan pemindahan file, yaitu file Bicycle.java yang awalnya berada didalam package vehicles kemudian dilakukan pemindahan (move to) package bujangpw. Berikut ini adalah bukti bahwa file Bicycle.java yang awalnya terletak di package vehicles sudah berpindah ke package bujangpw Pembahasan Gambar Ketigabelas Kembali melakukan Running pada bicyclemain.java Gambar diatas merupakan proses Running pada file bicyclemain.java, dan hasilnya tidak ditemukan error. Maka pada proses running tersebut menampilkan kalimat We have a new bicycle wth speed = 20, cadence = 10, gear = 1 Pembahasan Gambar Keempatbelas Melakukan Refactor Copy file hello.java yang akan dicopy dengan nama yang berbeda yaitu hello1.java Gambar diatas merupakan proses melakukan Refactor Copy terhadap file hello.java yang akan dicopy atau digandakan dengan nama yang berbeda yaitu hello1.java yang masih terletak didalam package vehicles dan project Mod_10. Berikut ini adalah bukti bahwa file hello.java sudah dicopy / digandakan dengan nama lain yaitu hello1.java yang terletak persis dibawahnya dikarenakan masih terletak didalam package vehicles dan project Mod_10. Pembahasan Gambar Kelimabelas Refactor Safely Delete file hello1.java. Gambar diatas merupakan proses melakukan Refactor Safely Delete terhadap file hello1.java. Kemudian gambar dibawah ini adalah bukti file hello1.java sudah Terhapus dan tidak ada didalam package vehicles maupun didalam project Mod_10. C. TUGAS Soal Carilah source code di Internet tentang inner class. Gunakan NetBeans untuk mengeluarkan inner class tersebut keluar menjadi suatu kelas tersendiri. Pengertian Inner Class Inner class adalah class yang didefinisikan di dalam suatu class (outer class). Inner Class adalah kelas yang disisipkan di dalam kelas yang lain. Fungsi kelas sisipan ini adalah mendukung suatu proses yang akan dijalankan oleh kelas utamanya. Inner Class bersifat tersarang terhadap kelas - kelas utamanya, seperti halnya blok penyeleksian (if, for) yang tersarang pada blok penyeleksian lainnya atau method yang tersarang pada method lainnya. Ada 2 keuntungan penggunaan inner class: Membuat outer class menjadi lengkap dan independen tanpa bantuan class lain dalam operasinya. Methods milik outer class dan inner class memiliki akses terhadap private methods dan private instance variables satu sama lain. Source Code Program yang memuat penerapan Inner Class package Bujang_Pw_10046; import java.util.Scanner; public class inner { private static Scanner baca = new Scanner(System.in); public static void main(String[] args) { Satu s = new Satu(); Satu.Dua sd = s.new Dua(); int a, b; //persegi System.out.println("=== Menghitung Luas Persegi ==="); System.out.println(); System.out.print("Masukkan sisi persegi = "); a = baca.nextInt(); s.setA(a); System.out.println("Luas PERSEGI = "+s.Persegi()); System.out.println("\n\n"); //persegi panjang System.out.println("=== Menghitung Luas Persegi Panjang ==="); System.out.println(); System.out.print("Masukkan Panjang = "); a = baca.nextInt(); System.out.print("Masukkan Lebar = "); b = baca.nextInt(); sd.setA(a); sd.setB(b); System.out.println("Luas PERSEGI PANJANG = "+sd.PersegiPanjang()); System.out.print("\n\nPress any key to continue . . . "); } } class Satu { protected int a,b; public void setA(int x) { this.a = x; } public int GetA() { return a; } public void setB(int y) { this.b = y;} public int GetB() { return b;} public int Persegi() { return GetA()*4; } class Dua extends Satu { public int PersegiPanjang() { return GetA()*GetB(); } } } Hasil Tampilan Sumber Pengambilan Source Code Program https://sangwidy.wordpress.com/web-design/oop-2/5-inner-class-abstrakclass/inner-class/ D. LISTING Terlampir E. KESIMPULAN Dari pelaksanaan praktikum SQA Pertemuan 10 yang membahas tentang Refactoring maka dapat diambil simpulan bahwa mahasiswa memahami pengertian refactoring serta peran dari refactoring dalam peningkatan kualitas software, memahami jenis-jenis refactoring pada IDE NetBeans, mampu melakukan proses refactoring.