BAB I PENDAHULUAN Bab ini berisi bagian pendahuluan yang mencakup latar belakang, rumusan dan batasan masalah, tujuan, metodologi pengerjaan, serta sistematika pembahasan dari Tugas Akhir ini. 1.1
LATAR BELAKANG
Saat ini, pengembangan perangkat lunak merupakan salah satu bagian penting dalam
bidang
teknologi
informasi.
Teknologi
yang
digunakan
dalam
pengembangan perangkat lunak sudah sangat maju. Metodologi dan kakas pengembangan perangkat lunak sudah sangat canggih dan beragam. Namun pengembangan perangkat lunak masih merupakan pekerjaan yang rumit dan mendetail. Banyak langkah yang harus dilalui dalam proses pengembangan perangkat lunak. Secara umum, ada tiga fase dalam pengembangan suatu perangkat lunak [PRE01]. Tahapan tersebut adalah: 1. Fase pendefinisian (definition phase) 2. Fase pembangunan (development phase) 3. Fase dukungan (support phase) Bagian yang kerap kali memakan waktu dalam pembangunan perangkat lunak adalah fase pembangunan. Salah satu masalah yang menyebabkan lamanya pengembangan adalah transformasi dari desain ke kode program. Banyak bagian dari kode program yang berulang-ulang dan memakan banyak waktu bila dilakukan secara manual [STE02]. Contoh yang umum adalah kode untuk kelas entitas yang mengakses basis data pada suatu aplikasi berbasis objek. Kode program seperti ini biasanya memiliki pola yang mirip satu sama lain. Pembuatan kode yang sifatnya repetitif seperti ini akan menghabiskan waktu lama bila dibuat I-1
I-2
secara satu-persatu. Contoh lain yang relevan adalah pembuatan halaman web yang dinamik dengan layout yang sama pada setiap halamannya. Pembuatan kode berulang-ulang yang dilakukan ini menyebabkan timbulnya pertanyaan mengenai pemanfaatan komputer sebagai alat untuk melakukan pekerjaan yang sama dilakukan secara berulang-ulang [STE02]. Pemrograman akan mudah apabila ada suatu cara untuk menulis deksripsi sistem yang bisa dimengerti oleh komputer, lalu biarkan komputer yang membuat kode program secara otomatis [GRE06]. Hal ini yang mendorong tercetusnya pemrograman dengan cara pembangkitan kode secara otomatis (automated code generation) menggunakan code generator. Meskipun dulu kurang populer, konsep pembangkitan kode otomatis ini bukanlah konsep yang baru [STE02]. Perkembangan metode pengembangan perangkat lunak menyebabkan kebutuhan akan code generator menjadi meningkat dengan harapan waktu pengembangan bisa lebih efisien. Sebuah code generator akan membaca meta-data dari rancangan perangkat lunak dan membangkitkan kode program dari informasi tersebut [STE02]. Aplikasi code generator yang sudah ada kebanyakan membaca meta-data dari file eksternal, biasanya berupa file XML. Apabila meta-data yang dibaca merupakan skema basis data dalam bentuk file eksternal, maka hal ini cukup menyulitkan pengembang karena definisi dari skema basis data harus dipindahkan ke sebuah file eksternal. Skema algoritma dari program yang dihasilkan tidak customizable karena diberikan dari template yang dimiliki oleh aplikasi code generator. Banyak pengembang
yang
menggunakan
suatu
framework
tertentu
tidak
bisa
memanfaatkan code generator dalam pengembangan aplikasinya. Selain itu, kebanyakan aplikasi code generator yang ada berupa aplikasi berbasis desktop. Hal ini juga tidak membuat pengembangan efisien, karena tidak bisa dilakukan di mana pun pengguna berada. Penggunaan format XML sebagai media untuk menyimpan meta-data dan template kode program dapat digantikan oleh format JSON (JavaScript Object
I-3
Notation) yang lebih kecil ukurannya dan lebih ringan untuk digunakan. Format JSON lebih mudah dibuat karena strukturnya mirip dengan JavaScript yang sering dipakai dalam scripting web [BMC06]. Selain itu, JSON juga mudah untuk diproses oleh mesin karena banyak bahasa pemrograman yang mendukung, baik secara langsung ataupun melalui library tambahan. Akan lebih baik juga bila dasar pembangkitan kode mengikuti suatu framework tertentu yang populer digunakan. Framework pengembangan yang cukup populer dalam pembuatan aplikasi web adalah CodeIgniter. Framework tersebut menggunakan bahasa pemrograman PHP dan menggunakan model aplikasi berorientasi objek. Selain populer, framework CodeIgniter juga mudah digunakan dan lebih mudah untuk dikembangkan. Oleh karena itu, aplikasi code generator yang diharapkan adalah code generator yang berbasiskan web sehingga aplikasi bisa diakses dari mana pun. Hal ini penting karena pengembangan bisa dilakukan di tempat yang berberda oleh masing-masing anggota tim pengembang. Skema program diberikan oleh pengguna agar lebih fleksibel dalam perancangannya. Hal ini memudahkan pengembang yang menggunakan framework tertentu dalam pengembangan aplikasi web mereka. Format masukan template untuk aplikasi menggunakan JSON agar pembuatan template menjadi lebih mudah. Aplikasi ini bisa membaca skema basis data langsung dari server basis data tanpa melalui file eksternal. Akses basis data dilakukan secara jarak jauh melalui jaringan internet. Kode yang dibangkitkan akan mengikuti struktur dari framework CodeIgniter. Hasil kode yang dibangkitkan tersebut dapat di-download oleh pengguna untuk digunakan di aplikasi web yang dikembangkannya. Kode yang dihasilkan masih dapat diubah oleh pengguna apabila memang terdapat suatu fungsi yang spesifik terhadap bagian aplikasi web yang dibangkitkan. 1.2
RUMUSAN MASALAH
Dengan memperhatikan aspek-aspek yang dikemukakan dalam latar belakang, rumusan masalah yang dikaji dalam Tugas Akhir ini adalah bagaimana membuat
I-4
sebuah aplikasi code generator berbasiskan web yang mampu membangkitkan kode modul aplikasi web yang paling umum digunakan dengan sumber input berupa template skema program dan konfigurasi basis data milik pengguna untuk mendapatkan skema basis data yang akan diakses. 1.3
TUJUAN
Tujuan dari pelaksanaan Tugas Akhir ini adalah tercapainya pembuatan sebuah aplikasi code generator berbasis web yang mampu membangkitkan kode modul aplikasi web yang paling umum digunakan dari skema basis data dan template skema program yang diberikan oleh pengguna. Hasil kode yang dibangkitkan bisa langsung diintegrasikan ke dalam framework CodeIgniter dan aplikasi bisa langsung dijalankan. 1.4
BATASAN MASALAH
Batasan masalah pada pelaksanaan Tugas Akhir ini adalah: 1. Kode yang dihasilkan oleh aplikasi ini adalah kode program yang berorientasi objek. 2. Kode yang dihasilkan oleh aplikasi ini menggunakan bahasa pemrograman PHP, namun masih memungkinkan untuk dilakukan pengembangan ke bahasa lain. 3. Template kode yang diberikan oleh pengguna menggunakan format JSON. 1.5
METODOLOGI
Metodologi yang akan digunakan selama pengerjaan Tugas Akhir ini adalah: 1. Studi Literatur Studi literatur akan dilakukan pada seluruh proses pengerjaan Tugas Akhir yang terdiri studi pustaka tentang aplikasi web berorientasi objek, studi pustaka tentang format JSON, dan studi pustaka dan eksplorasi tentang code generator.
I-5
2. Pembangunan Perangkat Lunak Pembangunan code generator berbasis web yang meliputi tahap-tahap sebagai berikut: a. Analisis kebutuhan perangkat lunak Kegiatan analisis perangkat lunak meliputi analisis spesifikasi perangkat lunak. b. Perancangan perangkat lunak Perancangan perangkat lunak meliputi perancangan kelas dan perancangan antarmuka dari hasil analisis. c. Implementasi perangkat lunak Implementasi dari hasil perancangan perangkat lunak dari hasil perncangan yang sudah dibuat. d. Pengujian perangkat lunak Pengujian terhadap hasil implementasi perangkat lunak untuk memastikan bahwa aplikasi sudah berjalan sesuai spesifikasi yang dibuat. 3. Pembuatan dokumen laporan Tugas Akhir 1.6
SISTEMATIKA PENULISAN
Sistematika penulisan pada dokumen laporan Tugas Akhir ini adalah: 1. Bab I Pendahuluan, berisi latar belakang, rumusan masalah, tujuan, batasan, metodologi serta sistematika pembahasan pada laporan Tugas Akhir ini. 2. Bab II Studi Pustaka, berisi teori mengenai aplikasi berorientasi objek, Code Generator, dan format JSON. 3. Bab III Analisis, berisi analisis aplikasi target Code Generator, analisis framework yang digunakan dan analisis kebutuhan aplikasi Code Generator berbasis web. 4. Bab IV Perancangan, berisi perancangan kelas, perancangan antarmuka aplikasi Code Generator berbasis web dan perancangan template kode.
I-6
5. Bab V Implementasi dan Pengujian, berisi lingkungan pengembangan, batasan pengembangan, implementasi aplikasi Code Generator, cara penggunaan aplikasi Code Generator, butir pengujian, dan hasil pengujian. 6. Bab VI Kesimpulan dan Saran, berisi kesimpulan dan saran terhadap hasil pelaksanaan Tugas Akhir ini.