BAB V IMPLEMENTASI DAN PENGUJIAN Bab ini berisi metode dan hasil implementasi perangkat lunak, serta pengujian perangkat lunak code generator. Pembahasan pada bab ini meliputi penjelasan tentang lingkungan pengembangan, batasan pengembangan, implementasi perangkat lunak, implementasi antarmuka, deployment dan pengujian perangkat lunak code generator. 5.1 LINGKUNGAN IMPLEMENTASI Lingkungan implementasi perangkat lunak Code Generator adalah sebagai berikut: 1. Sistem Operasi Sistem operasi digunakan adalah Microsoft Windows Vista Home Premium. 2. Perangkat Lunak Utama a. Apache 2.2.11 b. MySQL 5.0.51a c. PHP 5.2.9 d. XAMPP Basic Package 1.7.1 e. Framework CodeIgniter 1.7.1 f. Editor Notepad++ g. Mozilla Firefox 3.0.5 3. Perangkat Keras Utama Perangkat keras utama digunakan adalah Notebook Acer Aspire 4530 dengan spesifikasi sebagai berikut: a. Processor AMD Turion X2 RM-70 2.0GHz b. Memory DDR2 SDRAM 4GB V-1
V-2 c. Harddisk 160 GB 5.2 BATASAN IMPLEMENTASI Batasan pengembangan perangkat lunak Code Generator adalah: 1. Code Generator tidak menangani tabel memiliki key komposit. 2. Code Generator hanya menangani menggunakan DBMS MySQL saja. 3. Code Generator tidak dapat menangani berhubungan dengan beberapa sekaligus. 4. Code Generator tidak menangani bagian view berhubungan dengan rancangan antarmuka dan style halaman web. 5.3 IMPLEMENTASI APLIKASI CODE GENERATOR Dalam Subbab 5.3 ini akan dijelaskan implementasi dari seluruh kelas-kelas dalam Code Generator. Implementasi dari Code Generator secara garis besar dilakukan sesuai dengan analisis dan perancangan dilakukan sebelumnya. Pada saat implementasi, terdapat beberapa penyesuaian seperti penambahan atau pengurangan fungsi dalam suatu kelas, penggunaan library internal CodeIgniter untuk membuat file arsip ZIP dan penggunaan library CodeIgniter lain seperti koneksi dan pengelolaan file. Kedelapan kelas dalam model perancangan diimplementasikan ke dalam kode program. Ada perubahan nama untuk beberapa kelas. Tabel V-1 Pemetaan Kelas Perancangan ke Kelas Implementasi menunjukkan pemetaan kelas perancangan ke kelas diimplementasikan pada program Code Generator. Tabel V-1 Pemetaan Kelas Perancangan ke Kelas Implementasi No. Kelas Perancangan Tipe Kelas Kelas Implementasi 1. KonfigurasiDB Model Dbconfig_model 2. Template Model Template_model 3. ControlKonfigurasiDB Controller Config_db 4. ControlTemplate Controller Template
V-3 No. Kelas Perancangan Tipe Kelas Kelas Implementasi 5. ControlGenerator Controller Generator 6. PanelKonfigurasiDB View Config_db_view 7. PanelTemplate View Template_view 8. PanelGenerator View Generator_view 5.3.1 Implementasi Kelas-Kelas Bertipe Model Kelas-kelas bertipe model diimplementasikan sebagai turunan dari base-class Model milik CodeIgniter. Daftar kelas-kelas tersebut ditunjukkan dalam Tabel V-2. Tabel V-2 Implementasi Kelas-Kelas Bertipe Model No. Nama Kelas Nama File 1. Dbconfig_model dbconfig_model.php 2. Template_model _model.php 5.3.1.1 Implementasi Kelas Dbconfig_model Terdapat beberapa penyesuaian pada implementasi kelas Dbconfig_model. Ada penambahan fungsi untuk mengakses dan mengakses struktur basis milik pengguna serta penyesuaian nama fungsi. Pada Tabel V-3 dapat dilihat implementasi dari kelas Dbconfig_model. Tabel V-3 Implementasi Kelas Dbconfig_model No. Nama Fungsi Keterangan 1. Dbconfig_model Konstruktor kelas Dbconfig_model 2. test_config Menguji koneksi ke server dengan menggunakan dipilih 3. new_config Membuat baru 4. use_config Menggunakan dipilih 5. delete_config Menghapus dipilih 6. save_current_config Menyimpan dipakai ke 7. update_config Mengubah dan menyimpannya ke 8. connect Melakukan koneksi ke menggunakan dipilih 9. flush_config Menghapus sedang digunakan 10. get_bases Mengambil daftar nama dalam server 11. get_tables Mengambil nama tabel-tabel dalam suatu 12. get_table_fields Mengambil nama-nama kolom dalam suatu tabel pada 13. get_fields_ Mengambil detail kolom-kolom tabel 14. get_pkeys Mengambil nama kolom primarykey pada suatu tabel dalam No. Nama Atribut Tipe 1. _db Object
V-4 No. Nama Fungsi Keterangan 2. db_host String 3. db_port Integer 4. db_username String 5. db_password String 6. db_name String 5.3.1.2 Implementasi Kelas Template_model Terdapat beberapa penyesuaian pada implementasi kelas Template_model. Ada penambahan atribut untuk menyimpan standar dari masing-masing tipe. Pada Tabel V-4 dapat dilihat implementasi dari kelas Template_model. Tabel V-4 Implementasi Kelas Template_model No. Nama Fungsi Keterangan 1. Template_model Konstruktor Kelas Template_model 2. new_user_ Meng-upload baru dan menyimpannya di storage 3. use_user_ Menggunakan suatu sebagai utama sekaligus melakukan validasi terhadap digunakan 4. edit_user_ Mengubah isi sudah diupload 5. delete_user_ Menghapus sudah dipakai 6. flush_user_ Menghapus sedang dipakai dari memori No. Nama Atribut Tipe 1. user_ JSON Object 2. model_ String 3. control_informational_ String 4. control_interactive_ String 5 control_transactional_ String 6. view_informational_ String 7. view_interactive_ String 8. view_transactional_ String 5.3.2 Implementasi Kelas-Kelas Bertipe Controller Kelas-kelas bertipe Controller diimplementasikan sebagai turunan dari base-class Controller milik CodeIgniter. Setiap fungsi bersifat public dari kelas bertipe controller ini merupakan link ke sebuah halaman web. Daftar kelas-kelas bertipe Controller tersebut ditunjukkan dalam Tabel V-5.
V-5 Tabel V-5 Implementasi Kelas-Kelas Bertipe Controller No. Nama Kelas Nama File 1. Config_db config_db.php 2. Template.php 3. Generator generator.php 5.3.2.1 Implementasi Kelas Config_db Terdapat beberapa penyesuaian pada implementasi kelas Config_db sebagai penyesuaian atas framework digunakan. Penambahan beberapa fungsi berfungsi sebagai pengontrol kelas view mana akan di-load. Setiap fungsi ini mewakili sebuah halaman web berhubungan dengan pengubahan. Pada Tabel V-6 dapat dilihat implementasi dari kelas Config_db. Tabel V-6 Implementasi Kelas Config_db No. Nama Fungsi Keterangan 1. Config_db Konstruktor kelas Config_db 2. index Me-load halaman utama basis 3. add_db Me-load halaman penambahan 4. select_db Me-load halaman pemilihan dalam server 5. edit_db Me-load halaman pengubahan 6. upload_db Me-load halaman upload file definisi basis 7. save_config Memroses baru atau pengubahan 8. use_db Menyimpan dipilh oleh pengguna 9. do_upload Memroses file definisi diupload oleh pengguna 10. process_new_base Membuat baru sesuai definisi diberikan oleh pengguna 11. delete_db Menghapus dipilih No. Nama Atribut Tipe <Tidak memiliki atribut> 5.3.2.2 Implementasi Kelas Template Terdapat beberapa penyesuaian pada implementasi kelas Template sebagai penyesuaian atas framework digunakan. Penambahan beberapa fungsi berfungsi sebagai pengontrol kelas view mana akan di-load. Setiap fungsi ini
V-6 mewakili sebuah halaman web berhubungan dengan. Pada Tabel V-7 dapat dilihat implementasi dari kelas Template. Tabel V-7 Implementasi Kelas Template No. Nama Fungsi Keterangan 1. Template Konstruktor kelas Template 2. index Me-load halaman utama pengolahan 3. edit_ Me-load halaman penyuntingan file sudah di-upload 4. upload_ Me-load halaman upload file baru 5. process_ Memroses file di-upload oleh user kemudian menyimpannya di storage 6. delete_ Menghapus file dipilih No. Nama Atribut Tipe <Tidak memiliki atribut> 5.3.2.3 Implementasi Kelas Generator Terdapat beberapa penyesuaian pada implementasi kelas Generator sebagai penyesuaian atas framework digunakan. Penambahan beberapa fungsi berfungsi sebagai pengontrol kelas view mana akan di-load. Setiap fungsi ini mewakili sebuah halaman web berhubungan dengan pembangkitan kode. Pada Tabel V-8 dapat dilihat implementasi dari kelas Generator. Tabel V-8 Implementasi Kelas Generator No. Nama Fungsi Keterangan 1. Generator Konstruktor kelas Generator 2. index Me-load halaman utama pembangkitan 3. generate Me-load halaman pembangkitan 4. generate_result Me-load halaman menampilkan hasil pembangkitan 5. _generate_model Melakukan pembangkitan kode kelas model 6. _generate_controller Melakukan pembangkitan kode kelas controller 7. _generate_view Melakukan pembangkitan kode kelas view 8. _create_zip_file Memasukkan file-file kelas hasil pembangkitan ke dalam file arsip ZIP No. Nama Atribut Tipe <Tidak memiliki atribut>
V-7 5.3.3 Implementasi Kelas-Kelas Bertipe View Kelas-kelas bertipe View diimplementasikan sebagai halaman-halaman web. Setiap fungsi dari sebuah kelas view dalam perancangan dipetakan kedalam sebuah halaman web disimpan dalam file-file bertipe PHP. Sintaks file tersebut menggunakan format HTML dengan sisipan inline kode PHP. Setiap file dikelompokkan dalam sebuah direktori. Masing-masing direktori merepresentasikan sebuah kelas view. Daftar kelas-kelas dan file-file tersebut ditunjukkan dalam Tabel V-9. Tabel V-9 Implementasi Kelas-Kelas Bertipe View No. Nama Kelas Direktori Nama File 1. Config_db_view config_db 1. config_main.php 2. add_db.php 3. edit_db.php 4. select_db.php 5. upload_db.php 2. Template_view 1. _main.php 2. upload_.php 3. edit_.php 3. Generator_view generator 1. generator_main.php 2. generate.php 3. generate_result.php 5.3.3.1 Implementasi Kelas Config_db_view Implementasi kelas Config_db_view mengalami penyesuaian terhadap framework CodeIngiter. Tidak ada perubahan fungsi dan atribut pada implementasi kelas. Hanya bentuk kelas menjadi beberapa file HTML disisipi kode inline PHP untuk menampilkan. Setiap file mewakili sebuah fungsi pada kelas Config_db_view. Pada Tabel V-10 ditunjukkan pemetaan fungsi dalam kelas Config_db_view terhadap file-file tersebut. Tabel V-10 Implementasi Kelas Config_db_view No. Nama Operasi Nama File Keterangan 1. showsavedconfigurationpage config_main.php Halaman menampilkan semua pernah disimpan
V-8 No. Nama Operasi Nama File Keterangan 2. showadddbform add_db.php Halaman menampilkan form penambahan baru 3. showeditdbform edit_db.php Halaman menampilkan form pengubahan dipilih 4. showdblistpage select_db.php Halaman menampilkan daftar dalam server bisa dipilih oleh pengguna 5. showuploaddbform upload_db.php Halaman menampilkna form untuk meng-upload file definisi 5.3.3.2 Implementasi Kelas Template_view Implementasi kelas Template_view mengalami penyesuaian terhadap framework CodeIngiter. Tidak ada perubahan fungsi dan atribut pada implementasi kelas. Hanya bentuk kelas menjadi beberapa file HTML disisipi kode inline PHP untuk menampilkan. Setiap file mewakili sebuah fungsi pada kelas Template_view. Pada Tabel V-11 ditunjukkan pemetaan fungsi dalam kelas Template_view terhadap file-file tersebut. Tabel V-11 Implementasi Kelas Template_view No. Nama Operasi (Perancangan) Nama File Keterangan 1. showsavedtemplatepage _main.php Halaman menampilkan semua dipuload 2. showuploadtemplateform upload_.php Halaman untuk meng-upload baru 3. showedittemplatepage edit_.php Halaman untuk pengubahan sudah diupload oleh pengguna 5.3.3.3 Implementasi Kelas Generator_view Implementasi kelas Generator_view mengalami penyesuaian terhadap framework CodeIngiter. Tidak ada perubahan fungsi dan atribut pada implementasi kelas. Hanya bentuk kelas menjadi beberapa file HTML disisipi kode inline PHP untuk menampilkan. Setiap file mewakili sebuah fungsi pada kelas
V-9 Generator_view. Pada Tabel V-12 ditunjukkan pemetaan fungsi dalam kelas Generator_view terhadap file-file tersebut. Tabel V-12 Implementasi Kelas Generator_view No. Nama Operasi Nama File Keterangan 1. showgeneratedapplicationpage generator_main.php Halaman menampilkan dibangkitkan sebelumnya 2. showgeneratepage generate.php Halaman untuk mengubah pembangkitan dan memulai pembangkitan 3. showgenerateresult generate_result.php Halaman menampilkan hasil pembangkitan 5.4 IMPLEMENTASI ANTARMUKA Implementasi antarmuka pada perangkat lunak Code Generator dilakukan berdasarkan atas perancangan dilakukan. Perubahan dilakukan berupa penambahan header dan footer serta penambahan style dan gambar agar tampilan menjadi lebih user friendly. 5.5 PENGGUNAAN APLIKASI CODE GENERATOR Dalam subbab ini akan dijelaskan tentang cara penggunaan Code Generator dan bagaimana cara deployment kode hasil pembangkitan ke dalam framework CodeIgniter milik pengguna. 5.5.1 Langkah Penggunaan Aplikasi Code Generator Untuk membangkitkan kode sebuah web, pengguna perlu mengisi, meng-upload skema bila diperlukan, dan mengupload file masukan. Se itu, pengguna dapat menggunakan fitur Membangkitkan Kode Aplikasi untuk melakukan pembangkitan kode. Kode dihasilkan dapat langsung di-deploy dan dijalankan di server web milik pengguna. Pada Gambar V-1 ditunjukkan skema penggunaan Code Generator. Cara deployment secara detail akan dijelaskan pada bahasan selanjutnya.
V-10 Gambar V-1 Skema Penggunaan Aplikasi Code Generator 5.5.2 Deployment Kode Hasil Pembangkitan Gambar V-2 Skema Deployment Kode Hasil Pembangkitan File dihasilkan oleh Code Generator adalah file-file kode web dibungkus dalam file arsip berformat ZIP. Untuk melakukan deployment pada framework CodeIgniter milik pengguna, hal harus dilakukan adlah mengekstraksi file ZIP di-download. File kode program dibangkitkan terletak pada direktori hasil ekstraksi bernama
V-11 nama_modul_on_nama_basis_. Dalam direktori tersebut terdapat file-file kode program dikelompokkan sesuai dengan jenisnya. Semua file tersebut harus diletakkan pada direktori controllers, models, dan views pada CodeIgniter. Pada Gambar V-2 ditunjukkan skema deployment file-file kode hasil pembangkitan 5.6 PENGUJIAN APLIKASI CODE GENERATOR Pengujian dilakukan untuk mengetahui bagaimana hasil implementasi Code Generator. Dalam subbab ini akan dibahas mengenai lingkungan pengujian, bagaimana pengujian dilakukan dan hasil didapatkan dari pengujian tersebut. 5.6.1 Lingkungan Pengujian Pengujian dilakukan di lingkungan sama dengan lingkungan implementasi. Tidak ada perubahan baik pada spesifikasi perangkat lunak maupun perangkat keras digunakan. Spesifikasi perangkat lunak dan perangkat keras dapat dilihat pada Subbab 5.1. 5.6.2 Hasil Pengujian Pengujian perangkat lunak dibagi menjadi dua bagian, yaitu pengujian Code Generator dan pengujian kode hasil pembangkitan. Subbab ini akan membahas mekanisme dan hasil dari kedua pengujian tersebut. 5.6.2.1 Pengujian Aplikasi Code Generator Pengujian Code Generator meliputi ujicoba seluruh fitur dan kondisi khusus dapat ditangani oleh. Pengujian dilakukan dengan menggunakan kasus uji berupa skema terdapat pada LAMPIRAN A dan rancangan modul terdapat pada LAMPIRAN B. Butir-butir pengujian dilakukan atas dasar spesifikasi kebutuhan dijelaskan pada Subbab 3.3.4. Hasil didapatkan dari pengujian Code Generator adalah
V-12 seluruh fitur dapat berfungsi dengan baik. Detail pengujian Code Generator dapat dilihat pada Tabel V-13. Tabel V-13 Pengujian Aplikasi Code Generator No. Deskripsi Prosedur Pengujian 1. Pengguna Pengguna dapat mengisi melakukan seluruh form 2. Pengguna dapat memilih ada di server didefinisik an di Pengguna memilih salah satu ditampilkan Masukan Host server, port, username, password, dan metode pemilihan Basis akan digunakan oleh pengguna Hasil Diharapkan Konfigurasi tersimpan internal Code Generator Halaman diredirect ke halaman pemilihan atau upload skema basis pemilihan Nama basis tersimpan di tabel internal Code Generator Hasil Didapat Konfigurasi tersimpan internal Code Generator Halaman diredirect ke halaman pemilihan atau upload skema basis pemilihan Nama basis tersimpan di tabel internal Code Generator Kesimpulan
V-13 No. Deskripsi Prosedur Pengujian 3. Pengguna Pengguna dapat mengupload melakukan upload file skema basis definisi dalam bentuk file SQL 4. Pengguna dapat melakukan upload file 5. Pengguna dapat membangk itkan kode 6. Pengguna dapat mengubah sudah tersimpan Pengguna mengupload file dalam format JSON Pengguna memilih menu pembangkita n kode Pengguna mengubah melalui form edit Masukan Nama basis dan skema basis dalam format SQL sudah valid File masukan dalam format JSON sudah valid Pilihan dan digunakan dalam pembangkita n (ditambahka n dalam file ) Host server, port, username, password, dan nama Hasil Diharapkan pembuatan Basis sudah dibuat di server basis basis File masukan disimpan di serve pembangkit an semua kode kelas File ZIP berisi file kode dibangkitka n dapat didownload pengubahan basis Konfigurasi internal Code Generator berubah Hasil Didapat pembuatan Basis sudah dibuat di server basis basis File masukan disimpan di server pembangkit an semua kode kelas File ZIP berisi file kode dibangkitka n dapat didownload pengubahan basis Konfigurasi internal Code Generator berubah Kesimpulan Diterima
V-14 No. Deskripsi Prosedur Pengujian 7. Pengguna Pengguna dapat mengubah mengubah isi file isi file melalui form sudah edit tersimpan 8. Pengguna dapat menghapus sudah tersimpan 9. Pengguna dapat menghapus sudah tersimpan 10. Pengguna dapat menambah kan fungsi custom pada kelas model 11. Pengguna dapat menambah kan fungsi custom pada kelas controller Pengguna memilih menu penghapusan Pengguna memilih menu penghapusan file Pengguna menambahk an definisi fungsi custom pada file masukan bagian kelas model Pengguna menambahk an definisi fungsi custom pada file masukan bagian kelas controller Masukan Hasil Diharapkan Konten file file pengubahan berformat isi file JSON valid Isi file berubah - diahpus Konfigurasi dihapus - penghapusa n file File dimaksud Nama fungsi, parameter masukan, query dieksekusi Nama fungsi, parameter masukan, body fungsi dihapus Kode kelas model dibangkitkan ditambah dengan fungsi custom dimaksud Kode kelas controller dibangkitkan ditambah dengan fungsi custom dimaksud Hasil Didapat pengubahan isi file Isi file berubah diahpus Konfigurasi dihapus penghapusa n file File dimaksud dihapus Kode kelas model dibangkitkan ditambah dengan fungsi custom dimaksud Kode kelas controller dibangkitkan ditambah dengan fungsi custom dimaksud Kesimpulan
V-15 5.6.2.2 Pengujian Kode Hasil Pembangkitan Pengujian kode hasil pembangkitan meliputi ujicoba fungsi standar diberikan oleh Code Generator dan fungsi tambahan diberikan oleh pengguna dalam masukan. Hasil didapatkan dari pengujian kode hasil pembangkitan adalah kode dibangkitkan dan di-deploy ke dapat berjalan dengan baik. Detail pengujian kode hasil pembangkitan dapat dilihat pada Tabel V-14. Tabel V-14 Pengujian Kode Hasil Pembangkitan No. Deskripsi Prosedur Pengujian 1. Pengujian Mengakses fungsi halaman standar view_all_ view_all_d ata informasiona l 2. Pengujian fungsi standar view_ informasiona l 3. Pengujian fungsi standar add_ interaktif dan transaksional 4. Pengujian fungsi standar modify_dat a interaktif dan transaksional 5. Pengujian fungsi standar delete_dat a interaktif dan transaksional Mengakses halaman view_ Mengisi form penambahan dalam halaman add_ Mengisi form pengubahan dalam halaman modify_ Mengakses halaman delete_ Masukan Hasil Diharapkan - Semua dalam tabel terkait diperlihatkan Nilai key dimaksud sebagai parameter fungsi valid sesuai field ditampilkan dalam form valid sesuai field ditampilkan dalam form direfer oleh key diberikan ditampilkan dimasukkan disimpan dimasukkan di update ke - direfer oleh key diberikan sudah terhapus dari Hasil Didapat Semua dalam tabel terkait diperlihatkan direfer oleh key diberikan ditampilkan dimasukkan disimpan dimasukkan di update ke direfer oleh key diberikan sudah terhapus dari Kesimpulan
V-16 No. Deskripsi Prosedur Pengujian 6. Pengujian Mengakses fungsi halaman tambahan memanggil fungsi diberikan tambahan oleh pengguna Masukan Hasil Diharapkan - ditampilkan sudah sesuai dengan diminta Hasil Didapat ditampilkan sudah sesuai dengan diminta Kesimpulan