1.
BAB IV
IMPLEMENTASI DAN PEGUJIAN
1.1.
Lingkungan Implementasi Setelah analisa dan desain sistem, maka dilakukan penulisan kode program.
Kemudian setelah program jadi, selanjutnya masuk ke tahap implementasi dan pengujian untuk membuktikan bahwa produk yang dihasilkan sudah sesuai dengan desain kebutuhan aplikasi yang didefinisikan di awal.
1.1.1. Lingkungan Perangkat Keras Perangkat keras yang digunakan untuk melakukan pengujian adalah sebagai berikut. 1. Processor Intel CoreTM 2 Duo T7300 (2,2 GHz, 4MB L2 cache) 2. Memory RAM 3GB 3. Hardisk 160GB 4. Monitor 14.1” WXGA Acer CrystalBrite TM LCD
1.1.2. Lingkungan Perangkat Lunak Perangkat lunak yang digunakan untuk melakukan pengujian adalah sebagai berikut. 1. Sistem Operasi Windows VistaTM Home Edition SP2 2. Wamp Server 2.0 (apache 2.0, php 5.2, MySQL 5.1) 3. CodeIgniter 1.7 (php framework) 4. SQL Server 2000 5. SQL Server 2008 R2 6. ORACLE 10g 7. Mozilla Firefox (web browser)
45
46
1.2.
Proses Migrasi Pada saat proses migrasi, semua data dieksekusi perbaris dan dilakukan mapping
kolom pada tiap barisnya sesuai dengan yang di-set oleh pengguna aplikasi. Berikut adalah gambaran alur proses migrasi data secara umum.
Gambar 4.1 Flowchart Proses Migrasi Pertama aplikasi membaca data dari Datasource, kemudian dibaca perbaris dan dibuat ke dalam bentuk Array 2 dimensi : array [row] [fieldname]. Pada setiap baris, fieldname di Datasource dimapping ke array field target. Array pada field target digenerate ke bentuk SQL. Berikut adalah potongan kode pada Class Model Database untuk menggenerate SQL. function insert_string($table, $data) { $fields = array(); $values = array(); foreach($data as $key => $val) { $fields[] = $this->_escape_identifiers($key); $values[] = $this->escape($val); } return $this->_insert($this->_protect_identifiers($table, TRUE, ULL, FALSE), $fields, $values); }
Setelah SQL string digenerate, maka dilakukan eksekusi SQL. Proses ini dilakukan berulang hingga akhir baris.
47
1.3.
Tampilan Antarmuka dan Petunjuk Penggunaan Berikut adalah tampilan antarmuka Aplikasi Export/Import.
1.3.1. Tampilan Form Login Form login merupakan halaman otentifikasi pengguna untuk masuk ke dalam aplikasi. Masukan username dan password lalu klik tombol login.
Gambar 4.2 Form Login
Aplikasi akan melakukan pengecekan sesuai dengan data user yang tersimpan dalam file yang terenkripsi. Berikut potongan kode untuk membaca data user berikut. $file_content = read_file(APPPATH.'file/users'); $obj
= json_decode(decrypt($file_content, 'kozeke.com'));
$arr_user
= get_object_vars($obj);
if($user==''){ return $arr_user; }else{ if(array_key_exists($user, $arr_user)){ return $arr_user[strtolower($user)]; }else{ return NULL; } }
48
1.3.2. Tampilan Halaman Index Setelah Login Setelah pengguna login dengan benar, maka muncul halaman berikut.
Gambar 4.3 Halaman Index Setelah Login
1.3.3. Tampilan List Connection Profile Semua koneksi database disimpan dalam satu connection profile. Data yang tersimpan akan menjadi pilihan koneksi di database browser, database source, maupun database target.
Gambar 4.4 List Connection Profile
49
Data connection profile tersimpan dalam satu file dengan format JSON. Aplikasi membaca file tersebut dan melakukan konversi format dari string JSON ke dalam array dengan potongan kode berikut. $file_content = read_file(APPPATH.'file/profiles'); $arr_profile = json_decode($file_content);
1.3.4. Tampilan Form Connection Profile Berikut adalah form untuk melakukan tambah/ubah data connection profile. Sebelum menyimpan data, inputan harus bisa terkoneksi ke database yang dituju.
Gambar 4.4 Form Connection Profile
Aplikasi akan melakukan koneksi ke database dengan menggunakan driver yang dipilih, setiap database memiliki class database driver yang berbeda dan tersimpan di direktori
..\system\database\drivers\
sehingga
framework
codeigniter
bisa
menggeneralisasi cara berinteraksi ke semua database. Berikut adalah potongan kode koneksi dengan menggunakan codeigniter. // Membuat Koneksi $DB = $this->load->database($config, TRUE);
// Fetching Data $result
= $DB->query($ls_sql);
$arr_data
= $result->result_array();
50
// Membebaskan Memori $result ->free_result();
// Menutup Koneksi $DB -> close();
Berikut adalah perbedaan secara global potongan kode dari setiap pilihan driver yang ada dan merupakan class induk dari koneksi database codeigniter. Koneksi dengan Driver Mysql // Membuat Koneksi @mysql_connect($this->hostname,
$this->username,
$this->password,
TRUE);
// Fetching Data $this->result_id = @mysql_query($sql, $this->conn_id); $rowcount = @mysql_num_rows($this->result_id); $row = @mysql_fetch_object($this->result_id);
// Membebaskan Memori @mysql_free_result($this->result_id);
// Menutup Koneksi @mysql_close($conn_id);
Koneksi dengan Driver SQL Server 2000 // Membuat Koneksi @mssql_connect($this->hostname, $this->username, $this->password);
// Fetching Data $this->result_id = @mssql_query($sql, $this->conn_id); $rowcount = @mssql_num_rows($this->result_id); $row = @mssql_fetch_object($this->result_id);
// Membebaskan Memori @mssql_free_result($this->result_id);
// Menutup Koneksi @mssql_close($conn_id);
51
Koneksi dengan Driver SQL Server 2008 // Membuat Koneksi @sqlsrv_connect($this->hostname, array( "UID"
=> $this->username,
"PWD"
=> $this->password,
"Database"
=> $this->database) );
// Fetching Data $this->result_id = @sqlsrv_query($this->conn_id, $sql, array(), array( "Scrollable" => SQLSRV_CURSOR_KEYSET )); $rowcount = @sqlsrv_num_rows($this->result_id); $row = @sqlsrv_fetch_object($this->result_id);
// Membebaskan Memori @sqlsrv_free_stmt($this->result_id);
// Menutup Koneksi @sqlsrv_close($conn_id);
Koneksi dengan Driver ORACLE 10g // Membuat Koneksi @ocilogon($this->username, $this->password, $this->hostname);
// Fetching Data ocisetprefetch($this->stmt_id, 1000); $this->result_id =
@ociexecute($this->stmt_id, $this->_commit);
$rowcount = count($this->result_array()); $row = @oci_fetch_object($this->result_id);
// Membebaskan Memori @ocifreestatement($this->result_id);
// Menutup Koneksi @ocilogoff($conn_id)
52
1.3.5. Tampilan Database Browser Pada database browser, pengguna memilih connection profile, jika terkoneksi maka muncul list tabel di bagian kiri bawah. Apabila pengguna memilih salah satu tabel maka informasinya akan muncul di bagian kanan.
Gambar 4.6 Form Database Browser - Tab Structure
Gambar 4.7 Form Database Browser - Tab Data
53
Gambar 4.8 Form Database Browser - Tab Script
1.3.6. Export/Import Spreadsheet To Database Untuk melakukan import data dari file spreadsheet ke database, pengguna melakukan upload file ke server.
Gambar 4.9 Spreadsheet To Database - Upload File Spreadsheet Kemudian pilih koneksi database target, maka muncul tampilan seperti berikut.
54
Gambar 4.10 Spreadsheet To Database - Target Database Pengguna melakukan mapping kolom source ke kolom target kemudian klik tombol execute untuk melakukan proses import.
1.3.7. Export/Import Database To Spreadsheet Untuk melakukan export data dari database ke spreadsheet, pengguna memilih koneksi source database dan melakukan input query data yang akan diexport pada SQL editor.
Gambar 4.11 Database To Spreadsheet - Source Database
55
Setelah query data menghasilkan tabel, maka pengguna melakukan export dan download ke dalam file sepreadsheet.
Gambar 4.12 Database To Spreadsheet - File Target
1.3.8. Export/Import Database To Database Untuk melakukan export/import dari database ke database, pengguna memilih koneksi source database dan melakukan input query data yang akan diexport pada SQL editor.
Gambar 4.13 Database To Database - Source Database Setelah melakukan query data, maka sistem akan melakukan caching data ke dalam variabel array dan index kolomnya akan menjadi datasource di dalam listbox pada mapping kolom. Selanjutnya pengguna melakukan mapping kolom source ke kolom target kemudian klik tombol execute untuk melakukan proses import.
56
Gambar 4.14 Database To Database - Target Database Sistem akan melakukan proses export import data dari source database ke target database dengan melakukan konversi datasource ke dalam array kemudian diubah menjadi DML SQL yang akan dieksekusi ke target database. Setelah proses selesai, sistem mengeluarkan konfirmasi laporan hasil proses export/import.
1.4.
Pengujian Rencana pengujian dapat dilihat pada tabel identifikasi dan rencana pengujian.
Sedangkan deskripsinya dapat dilihat pada tabel deskripsi dan hasil uji. 1.4.1. Identifikasi dan Rencana Pengujian Kelas Uji Login Tampil Menu Connection Profile
Database Browser
Butir Uji
Identifikasi PUPL Validasi Login User PUPL01 Tampil Menu Database Browser PUPL02 Tampil Menu Export/Import PUPL03 Tambah Data Connection Profile PUPL04 Ubah Data Connection Profile PUPL05 Hapus Data Connection Profile PUPL06 Pilih Connection Profile PUPL07 Tampil Informasi Tabel PUPL08
Jenis Pengujian Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box
57
Kelas Uji
Butir Uji
Export/Import
Tampil Spreadsheet to Database Tampil Database to Spreadsheet Tampil Database to Database Import Spreadsheet Upload File To Database Pilih Target Connection Mapping Kolom Proses Import Export Database to Pilih Source Connection Spreadsheet Query Data Export Data Export/Import Pilih Source Connection Database to Query Data Database Pilih Target Connection Mapping Kolom Proses Export/Import
Identifikasi PUPL PUPL09 PUPL010 PUPL011 PUPL012 PUPL013 PUPL014 PUPL015 PUPL016 PUPL017 PUPL018 PUPL019 PUPL020 PUPL021 PUPL022 PUPL023
Jenis Pengujian Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box Black Box
Tabel 4.1 Tabel Identifikasi dan Rencana Pengujian Keterangan : PUPL
: Proses Uji Perangkat Lunak
1.4.2. Hasil Pengujian Proses pengujian dilakukan lebih detail per-butir uji dan dikelompokan per-kelas uji berdasarkan tabel rencana pengujian. 1.4.2.1. Pengujian Login Identifikasi
Deskripsi
PUPL01-01
Menguji login dengan kasus uji data normal
PUPL01-02
Menguji login dengan textbox kosong
Masukan Masukan: username: admin password: 123 Masukan: username: admin password:
Keluaran Yang Diharapkan Tampil halaman Index Aplikasi Export/Import.
Muncul Pesan konfirmasi textbox harus diisi.
Tabel 4.2 Tabel Hasil Pengujian Login
Hasil Pengujian Sesuai
Sesuai
58
1.4.2.2. Pengujian Tampil Menu Identifikasi PUPL02
PUPL03
Deskripsi
Masukan
Menguji Tampilan Menu Database Browser Menguji Tampilan Menu Export/Import
Klik Tab Database Browser Klik Tab Export/Import
Keluaran Yang Diharapkan Tampil halaman Database Browser Tampil halaman Export/Import
Hasil Pengujian Sesuai
Sesuai
Tabel 4.3 Tabel Hasil Pengujian Tampil Menu
1.4.2.3. Pengujian Connection Profile Identifikasi
Deskripsi
Masukan
PUPL04-01
Menguji input data Connection Profile dengan setingan tidak terkoneksi
Masukan: Profile Name: test Driver: oci Host: localhost Database Name: test Username system Password:
PUPL04-02
Menguji input data Connection Profile dengan setingan terkoneksi
Masukan: Profile Name: budget Driver: mysql Host: localhost Database Name: ebudget Username root Password:
Keluaran Yang Diharapkan Muncul Pesan konfirmasi profil koneksi “Not Connected” , kemudian tombol “Save” tidak aktif
Hasil Pengujian Sesuai
Muncul Pesan konfirmasi profil koneksi “Connected”, kemudian tombol “Save” aktif
Sesuai
59
Identifikasi
Deskripsi
Masukan
Keluaran Yang Diharapkan Muncul Pesan konfirmasi profil koneksi “Not Connected” , kemudian tombol “Save” tidak aktif
Hasil Pengujian Sesuai
PUPL05-01
Menguji ubah data Connection Profile dengan setingan tidak terkoneksi
Masukan: Profile Name: test Driver: oci Host: localhost Database Name: test Username system Password:
PUPL05-02
Menguji ubah data Connection Profile dengan setingan terkoneksi
Masukan: Profile Name: budget Driver: mysql Host: localhost Database Name: ebudget Username root Password:
Muncul Pesan konfirmasi profil koneksi “Connected”, kemudian tombol “Save” aktif
Sesuai
PUPL06
Menguji hapus data Connection Profile
Masukan: Pilih baris data yang akan dihapus, klik tombol hapus
Data Connection Profile menghilang dari list datagrid.
Sesuai
Tabel 4.4 Tabel Hasil Pengujian Connection Profile
60
1.4.2.4. Pengujian Database Browser Identifikasi PUPL07-01
PUPL07-02
PUPL08
Deskripsi
Masukan
Menguji Pilih Connection Profile dengan setingan tidak terkoneksi Menguji Pilih Connection Profile dengan setingan terkoneksi
Pilih Connection Profile pada LOV
Menguji Tampilan Informasi Tabel
Pilih Tabel yang ada di list Database Content
Pilih Connection Profile pada LOV
Keluaran Yang Diharapkan Muncul Pesan konfirmasi profil koneksi “Not Connected”
Hasil Pengujian Sesuai
Muncul Pesan konfirmasi profil koneksi “Connected”, kemudian muncul list tabel database pada Database Content Tampil Informasi Structure, Data, dan Script pada Database Browser
Sesuai
Sesuai
Tabel 4.5 Tabel Hasil Pengujian Database Browser
1.4.2.5. Pengujian Tampilan Metode Export/Import Identifikasi PUPL09
PUPL010
PUPL011
Deskripsi Menguji Tampilan Import Spreadsheet to Database Menguji Tampilan Export Database to Spreadsheet Menguji Tampilan Export/Import Database to Database
Masukan Pilih method “Spreadsheet to Database”
Keluaran Yang Diharapkan Muncul fieldset File Source dan Database Target
Hasil Pengujian Sesuai
Pilih method “Database to Spreadsheet”
Muncul fieldset Database Source dan File Target
Sesuai
Pilih method “Spreadsheet to Database”
Muncul fieldset Database Source dan Database Target
Sesuai
Tabel 4.6 Tabel Hasil Pengujian Tampilan Metode Export/Import
61
1.4.2.6. Pengujian Import Spreadsheet to Database Identifikasi
Deskripsi
Masukan
Keluaran Yang Diharapkan Muncul pesan “You did not select a file to upload” Muncul pesan “File type .jpg is invalid spreadsheet file” Muncul informasi file spreadsheet serta tabel hasil pembacaan file spreadsheet Muncul Pesan konfirmasi profil koneksi “Not Connected”
Hasil Pengujian Sesuai
Muncul Pesan konfirmasi profil koneksi “Connected”, kemudian muncul list tabel database dan fieldset Data Mapping List Field tabel yang di pilih muncul di sebelah kanan
Sesuai
PUPL012-01
Menguji Upload tanpa memilih File
Klik tombol Upload
PUPL012-02
Menguji Upload File yang bukan Spreadsheet
PUPL012-03
Menguji Upload File Spreadsheet
Browse File jpg, klik tombol Upload Browse File spreadsheet, klik tombol Upload
PUPL013-01
Menguji Pilih Connection Profile dengan setingan tidak terkoneksi Menguji Pilih Connection Profile dengan setingan terkoneksi
Pilih Connection Profile pada LOV
PUPL014-01
Menguji Tampilan List Field pada Tabel Database Target
PUPL014-02
Menguji data mapping
Pilih Tabel pada List Tabel di Database Target sebelah kiri Pilih Field di Field yang Database dipilih akan Target masuk ke tabel Data Mapping dengan pilihan Column Source sesuai kolom dari Database Source
PUPL013-02
Pilih Connection Profile pada LOV
Sesuai
Sesuai
Sesuai
Sesuai
Sesuai
62
Identifikasi PUPL015
Deskripsi Menguji Proses Import
Masukan Klik tombol Execute
Keluaran Yang Diharapkan Tampil loading proses, kemudian muncul Export/Import Result
Hasil Pengujian Sesuai
Tabel 4.7 Tabel Hasil Pengujian Import Spreadsheet to Database
1.4.2.7. Pengujian Export Database to Spreadsheet Identifikasi
Deskripsi
Masukan
PUPL016-01
Menguji Pilih Connection Profile dengan setingan tidak terkoneksi Menguji Pilih Connection Profile dengan setingan terkoneksi
Pilih Connection Profile pada LOV
Menguji Query Expression
Query Expression: SELECT * FROM ms_user
PUPL016-02
PUPL017
PUPL018-01
Menguji Export Data ke file csv
Pilih Connection Profile pada LOV
Kemudian klik tombol Execute Filename: test Type: [ .csv ] Klik tombol Export
Keluaran Yang Diharapkan Muncul Pesan konfirmasi profil koneksi “Not Connected”
Hasil Pengujian Sesuai
Muncul Pesan konfirmasi profil koneksi “Connected”, kemudian muncul list tabel database dan inputan Query Expression Tampil tabel hasil Query
Sesuai
Muncul konfirmasi download File test.csv
Sesuai
Sesuai
63
Identifikasi
Deskripsi
PUPL018-02
Menguji Export Data ke file xls
PUPL018-03
Menguji Export Data ke file xlsx
Masukan Filename: test Type: [ .xls ] Klik tombol Export Filename: test Type: [ .xlsx ] Klik tombol Export
Keluaran Yang Diharapkan Muncul konfirmasi download File test.xls
Muncul konfirmasi download File test.xlsx
Hasil Pengujian Sesuai
Sesuai
Tabel 4.8 Tabel Hasil Pengujian Export Database to Spreadsheet
1.4.2.8. Pengujian Export/Import Database to Database Identifikasi
Deskripsi
Masukan
PUPL019-01
Menguji Pilih Source Connection Profile dengan setingan tidak terkoneksi Menguji Pilih Source Connection Profile dengan setingan terkoneksi
Pilih Connection Profile pada LOV
Menguji Query Expression
Query Expression: SELECT * FROM ms_user
PUPL019-02
PUPL020
Pilih Connection Profile pada LOV
Kemudian klik tombol Execute
Keluaran Yang Diharapkan Muncul Pesan konfirmasi profil koneksi “Not Connected”
Hasil Pengujian Sesuai
Muncul Pesan konfirmasi profil koneksi “Connected”, kemudian muncul list tabel database dan inputan Query Expression Tampil tabel hasil Query
Sesuai
Sesuai
64
Identifikasi
Deskripsi
Masukan
PUPL021-01
Menguji Pilih Target Connection Profile dengan setingan tidak terkoneksi Menguji Pilih Target Connection Profile dengan setingan terkoneksi
Pilih Connection Profile pada LOV
PUPL022-01
Menguji Tampilan List Field pada Tabel Database Target
Pilih Tabel pada List Tabel di Database Target sebelah kiri
PUPL022-02
Menguji data mapping
PUPL023-01
Menguji Proses Import SQL Server 2008 ke MySQL dengan Data Benar
PUPL021-02
Keluaran Yang Diharapkan Muncul Pesan konfirmasi profil koneksi “Not Connected”
Hasil Pengujian Sesuai
Muncul Pesan konfirmasi profil koneksi “Connected”, kemudian muncul list tabel database dan fieldset Data Mapping List Field tabel yang di pilih muncul di sebelah kanan
Sesuai
Pilih Field di Database Target
Field yang dipilih akan masuk ke tabel Data Mapping dengan pilihan Column Source sesuai kolom dari Database Source
Sesuai
Klik tombol Execute
Tampil loading proses, kemudian muncul Export/Import Result berupa file text berisi SQL hasil generate yang berhasil dieksekusi (contoh isi file di lampiran 1.1)
Sesuai
Pilih Connection Profile pada LOV
Sesuai
65
Identifikasi
Deskripsi
Masukan
Keluaran Yang Diharapkan Tampil loading proses, kemudian muncul pesan Internal Server Error. Duplicate entry '0' for key 'PRIMARY'
Hasil Pengujian Sesuai
PUPL023-02
Menguji Proses Import SQL Server 2008 ke MySQL dengan Data Duplikat
Klik tombol Execute
PUPL023-03
Menguji Proses Import SQL Server 2008 ke ORACLE dengan Data Benar
Klik tombol Execute
Tampil loading proses, kemudian muncul Export/Import Result berupa file text berisi SQL hasil generate yang berhasil dieksekusi (contoh isi file di lampiran 1.2)
Sesuai
PUPL023-04
Menguji Proses Import SQL Server 2008 ke ORACLE dengan Data Duplikat
Klik tombol Execute
Tampil loading proses, kemudian muncul pesan Internal Server Error. Duplicate entry '0' for key 'PRIMARY'
Sesuai
PUPL023-05
Menguji Proses Import SQL Server 2008 ke SQL Server 2000 dengan Data Benar
Klik tombol Execute
Tampil loading proses, kemudian muncul Export/Import Result berupa file text berisi SQL hasil generate yang berhasil dieksekusi (contoh isi file di lampiran 1.3)
Sesuai
66
Identifikasi
Deskripsi
PUPL023-06
Menguji Proses Import SQL Server 2008 ke SQL Server 2000 dengan Data Duplikat dengan Data Duplikat
Masukan Klik tombol Execute
Keluaran Yang Diharapkan Tampil loading proses, kemudian muncul pesan Internal Server Error. Duplicate entry '0' for key 'PRIMARY'
Hasil Pengujian Sesuai
Tabel 4.9 Tabel Hasil Pengujian Export/Import Database to Database