BAB IV PERANCANGAN Bab ini berisi perancangan dari aplikasi Code Generator. Pembahasan pada bab ini meliputi penjelasan tentang arsitektur framework yang digunakan dalam pengembangan, perancangan kelas-kelas dalam perangkat lunak Code Generator, perancangan file template masukan aplikasi, serta perancangan antarmuka perangkat lunak Code Generator. 4.1
RANCANGAN KELAS APLIKASI CODE GENERATOR
Seperti telah dijelaskan pada Subbab 3.1, pada aplikasi code generator terdapat 4 aktivitas utama, yaitu mengisi konfigurasi basis data, meng-upload file definisi basis data, meng-upload file template, dan membangkitkan kode aplikasi. Terdapat 9 kelas analisis yang telah dibuat pada Subbab 3.3.6 untuk menangani semua aktivitas tersebut. Kelas-kelas tersebut terbagi atas 3 tipe, yaitu view, model, dan controller. Dalam subbab ini akan dijelaskan bagaimana struktur kelas-kelas perancangan yang ditransformasi dari kelas-kelas analisis yang dibuat pada Subbab 3.3.6 tersebut dan hubungan antar kelasnya dalam menangani suatu aktivitas. Terdapat beberapa perubahan berupa peleburan beberapa kelas ke sebuah kelas dengan memperhatikan aspek lingkungan implementasi dan framework yang digunakan akan digunakan dalam implementasi. Jumlah kelas yang semula ada 9 kelas menjadi 8 kelas dengan peleburan kelas ControlUploadDB dan kelas ControlKonfigurasi
menjadi
kelas
ControlKonfigurasiDB
dan
kelas
ControlUploadTemplate menjadi Kelas ControlTemplate karena penggunaan library upload yang telah disediakan oleh CodeIgniter mempermudah pengerjaan proses upload file. Selain itu, ada pengurangan kelas Panel Upload
dan
penambahan kelas PanelTemplate. Tabel IV-1 menunjukkan pemetaan kelas-kelas analisis ke kelas-kelas perancangannya. IV-1
IV-2
Tabel IV-1 Pemetaan Kelas Analisis ke Kelas Perancangan Kelas Analisis PanelKonfigurasi PanelUpload
PanelGenerator ControlKonfigurasi ControlUploadDB ControlUploadTemplate ControlGenerator KonfigurasiDB Template
4.1.1
Kelas Perancangan PanelKonfigurasiDB PanelTemplate PanelGenerator ControlKonfigurasiDB ControlTemplate ControlGenerator KonfigurasiDB Template
Kelas-Kelas Bertipe View
Terdapat 3 kelas dalam aplikasi code generator yang bertipe view, yaitu kelas PanelKonfigurasi, kelas PanelTemplate dan kelas PanelGenerator. Kelas-kelas bertipe view ini bertanggung jawab sebagai kelas yang menjadi antarmuka kepada pengguna. Masing-masing kelas
memiliki
fungsi
masing-masing dalam
menampilkan halaman web kepada pengguna. Pada Tabel IV-2 terdapat deskripsi singkat dari kelas-kelas view yang terdapat pada aplikasi code generator. Tabel IV-2 Deskripsi kelas-kelas bertipe view No. 1.
Nama Kelas PanelKonfigurasiDB
2.
PanelTemplate
3.
PanelGenerator
Deskripsi Kelas Kelas yang menangani semua tampilan dan interaksi dengan pengguna dalam hal pengaturan konfigurasi basis data Kelas yang menangani semua tampilan dan interaksi dengan pengguna dalam hal upload file template Kelas yang menangani semua tampilan dan interaksi dengan pengguna dalam hal pembangkitan kode dan hasil kode
4.1.1.1 Kelas PanelKonfigurasiDB Kelas ini bertanggung jawab terhadap halaman web yang ditampilkan kepada pengguna ketika mengisi konfigurasi basis data. Kelas ini bisa menampilkan form pengisian konfigurasi basis data. Selain itu, form pemilihan basis data yang akan digunakan apabila pengguna ingin memakai basis data yang sudah terdefinisi dan form upload file definisi basis data juga merupakan tanggung jawab kelas ini. Kelas ini tidak memiliki atribut, namun hanya berisi fungsi-fungsi utama, antara lain:
IV-3
1. showSavedConfigurationPage(), yaitu fungsi untuk menampilkan pesan keberhasilan penyimpanan konfigurasi. 2. showAddDBForm(), yaitu fungsi untuk menampilkan form untuk mengisi data konfigurasi basis data. 3. showDBListPage(), yaitu fungsi untuk menampilkan daftar basis data yang sudah terdefinisi pada server yang dimasukkan pengguna. 4. showEditDBForm(), yaitu fungsi untuk menampilkan form untuk mengubah data konfigurasi basis data milik pengguna. 5. showUploadDBForm(), yaitu fungsi untuk menampilkan form untuk mengupload file definisi basis data yang baru apabila pengguna memilih untuk membuat basis data baru. 4.1.1.2 Kelas PanelTemplate Kelas ini bertanggung jawab terhadap halaman web yang ditampilkan kepada pengguna ketika pengguna akan meng-upload dan mengelola file template. Kelas ini akan menampilkan form upload file template dan menampilkan semua template yang dimiliki oleh pengguna. Dalam kelas ini, tidak terdapat atribut untuk menyimpan data. Fungsi-fungsi utama dalam kelas ini antara lain: 1. showSavedTemplatePage(), yaitu fungsi untuk menampilkan daftar template yang sudah pernah di-upload oleh pengguna. 2. showTemplateForm(), yaitu fungsi untuk menampilkan halaman form upload file template. 3. showEditTemplatePage(), yaitu fungsi untuk menampilkan halaman form untuk melakukan penyunting file template perancangan aplikasi yang sudah di-upload. 4.1.1.3 Kelas PanelGenerator Kelas ini bertanggung jawab terhadap halaman web yang ditampilkan kepada pengguna ketika pengguna melakukan pembangkitan kode dan men-download kode hasil pembangkitan. Kelas ini akan menampilkan link dari file kode hasil
IV-4
pembangkitan. Dalam kelas ini, tidak terdapat atribut untuk menyimpan data. Fungsi utama dalam kelas ini antara lain: 1. showGeneratedApplicationPage(), yaitu fungsi untuk menampilkan daftar aplikasi yang sudah pernah dibangkitkan oleh pengguna. 2. showGeneratePage(),
yaitu
fungsi
untuk
menampilkan
halaman
pembangkitan aplikasi . Dalam halaman ini terdapat form untuk memilih konfigurasi basis data dan file template mana yang akan digunakan untuk pembangkitan kode aplikasi. 3. showGenerateResult(), yaitu fungsi untuk menampilkan halaman hasil pembangkitan aplikasi dalam halaman ini terdapat link ke file ZIP hasil kompresi file-file kelas yang dibagkitkan. 4.1.2
Kelas-Kelas Bertipe Model
Terdapat 2 kelas dalam aplikasi code generator yang bertipe Model, yaitu kelas KonfigurasiDB dan kelas Template. Masing-masing kelas tersebut memodelkan data untuk konfigurasi dan definisi basis data dan template perancangan kode. Pada Tabel IV-3 terdapat deskripsi singkat dari kelas-kelas bertipe model dalam aplikasi code generator. Tabel IV-3 Dekripsi kelas-kelas bertipe model No. 1. 2.
Nama Kelas KonfigurasiDB Template
Deskripsi Kelas Kelas yang memodelkan konfigurasi basis data dan definisi basis data yang digunakan dalam pembangkitan kode Kelas yang memodelkan template perancangan aplikasi yang akan dibangkitkan
4.1.2.1 Kelas KonfigurasiDB Kelas ini memodelkan konfigurasi basis data yang digunakan dalam pembangkitan aplikasi. Dalam kelas ini disimpan konfigurasi koneksi ke basis data dan basis data apa yang digunakan untuk aplikasi yang akan dibangkitkan. Kelas ini berhubungan dengan tabel basis data ‘konfigurasi’ yang terdapat dalam aplikasi code generator. Kelas ini memiliki atribut-atribut utama antara lain:
IV-5
1. db_target, yaitu objek database yang digunakan dalam pembangkitan aplikasi. 2. db_host, yaitu alamat dari server basis data untuk aplikasi yang akan dibangkitkan. 3. db_port, yaitu port dari server basis data untuk aplikasi yang akan dibangkitkan. 4. db_username, yaitu nama pengguna untuk melakukan koneksi ke server basis data. 5. db_password, yaitu kata sandi masuk untuk melakukan koneksi ke server basis data. 6. db_name, yaitu nama basis data yang digunakan untuk aplikasi yang akan dibangkitkan. Fungsi-fungsi utama yang terdapat pada kelas KonfigurasiDB antara lain: 1. newConfig(), yaitu fungsi untuk membuat konfigurasi basis data baru. 2. saveConfig(),
yaitu
fungsi
untuk
menyimpan
konfigurasi
yang
dimasukkan oleh pengguna. 3. testConfig(), yaitu fungsi untuk mencoba konfigurasi yang dimasukkan oleh pengguna. 4. getConfig(), yaitu fungsi untuk mengambil konfigurasi yang tersimpan. Fungsi ini akan mengembalikan konfigurasi yang sudah tersimpan. 5. updateConfig(), yaitu fungsi untuk mengupdate konfigurasi hasil pengubahan pengguna.. 6. getDatabases(), yaitu fungsi untuk mengambil daftar basis data yang sudah terdefinisi di server basis data. Fungsi ini akan mengembalikan daftar basis data dari server basis data. 7. getTables(), yaitu fungsi untuk mengambil daftar tabel yang terdapat pada basis data yang digunakan. Fungsi ini akan mengembalikan daftar tabel yang ada.
IV-6
8. getMetaData(), yaitu fungsi untuk mengambil meta-data dari basis data terpilih. Meta-data yang diambil adalah nama tabel, kolom-kolom dalam tabel yang ada, dan tipe data dalam tabel. 9. connectDB(), yaitu fungsi untuk melakukan koneksi ke server basis data yang dituju. 4.1.2.2 Kelas Template Kelas ini memodelkan isi dari template perancangan yang digunakan dalam pembangkitan aplikasi. Dalm kelas ini disimpan path dari file yang telah diupload oleh pengguna. Selain itu, kelas ini juga yang melakukan validasi dan pengolahan template yang berformat JSON serta menyimpan data kelas apa saja yang akan dibangkitkan dan tabel basis data apa saja yang akan digunakan. Kelas ini memiliki atribut-atribut utama antara lain: 1. userTemplate, yaitu JSON object dari template yang diberikan oleh pengguna. 2. modelTemplate, yaitu objek string yang berisi file template untuk kelas model. 3. controllerTemplate, yaitu objek string yang berisi file template untuk kelas controller. 4. viewTemplate, yaitu objek string yang berisi file template untuk kelas view. Fungsi-fungsi utama yang terdapat dalam kelas ini antara lain: 1. validateTemplate(), yaitu fungsi untuk melakukan validasi terhadap template yang sudah di-upload oleh pengguna. 2. saveTemplate(), yaitu fungsi untuk menyimpan template yang di-upload oleh pengguna. 3. parseTemplate(), yaitu fungsi untuk melakukan parsing terhadap template perancangan aplikasi web yang akan dibangkitkan. 4. newTemplate(), menambahkan template yang sudah ada ketika melakukan upload template.
IV-7
5. getTemplate(), yaitu fungsi untuk memilih salah satu template dan menggunakannya. 6. editTemplate(), yaitu fungsi untuk melakukan penyuntingan terhadap file template yang ada. 4.1.3
Kelas-Kelas Bertipe Controller
Dalam aplikasi code generator, terdapat 4 kelas bertipe Controller, yaitu kelas ControlKonfigurasi,
ControlUploadDB,
ControlUploadTemplate,
dan
ControlGenerator. Setiap kelas tersebut mengatur salah satu aktivitas yang dapat dilakukan pengguna terhadap aplikasi code generator. Kelas-kelas bertipe controller ini yang akan menangani seluruh event pada masing-masing aktivitas. Pada Tabel IV-4 terdapat deskripsi singkat dari kelas-kelas bertipe controller dalam aplikasi code generator. Tabel IV-4 Deskripsi kelas-kelas bertipe controller No. 1.
Nama Kelas ControlKonfigurasiDB
3.
ControlUploadTemplate
4.
ControlGenerator
Deskripsi Kelas Kelas yang menangani semua event yang berhubungan dengan aktivitas pengisian konfigurasi Kelas yang menangani event-event yang terdapat pada aktivitas mengenai file template perancangan Kelas yang menagani semua event yang terdapat pada aktivitas pembangkitan kode
4.1.3.1 Kelas ControlKonfigurasiDB Kelas ControlKonfigurasi merupakan kelas yang bertanggung jawab menangani seluruh aksi (event) pada halaman konfigurasi basis data. Kelas ini akan mengontrol halaman web mana yang akan dimunculkan ketika penguna memasukkan pilihan konfigurasi basis data. Selain itu, kelas ini akan memroses data dari form konfigurasi basis data yang telah diisi oleh pengguna. Kelas ini tidak memiliki atribut untuk menyimpan data. Fungsi-fungsi utama yang terdapat pada kelas ini antara lain:
IV-8
1. processConfigForm(), yaitu fungsi untuk memroses data konfigurasi yang diberikan oleh pengguna melalui form konfigurasi basis data. Data yang telah diproses akan diserahkan pada kelas KonfigurasiDB. 2. processDBForm(), yaitu fungsi untuk memroses data dari form pemilihan basis data. Data yang telah diproses akan diserahkan pada kelas KonfigurasiDB. 3. processNewDatabaseForm(), yaitu fungsi untuk memroses data dari form pembuatan basis data baru. Selain itu, fungsi ini juga yang akan memanggil fungsi default untuk membuat basis data di server basis data yang dibarikan oleh pengguna. 4.1.3.2 Kelas ControlTemplate Kelas ControlKonfigurasi merupakan kelas yang bertanggung jawab menangani seluruh aksi (event) yang berhubungan dengan file template perancangan aplikasi web. Kelas ini akan memroses data dari form upload template yang telah diisi oleh pengguna. Kelas ini tidak memiliki atribut untuk menyimpan data. Fungsifungsi utama yang terdapat pada kelas ini antara lain: 1. processUploadForm(), yaitu fungsi untuk memroses data dari form upload file template. Data yang telah diproses akan diserahkan pada kelas Template. 2. uploadTemplateFile(), yaitu fungsi untuk mengambil file template yang di-upload oleh pengguna. 4.1.3.3 Kelas ControlGenerator Kelas ControlGenerator merupakan kelas yang bertanggung jawab menangani seluruh aksi (event) pada halaman pembangkitan aplikasi web. Kelas ini akan mengontrol halaman web mana yang akan dimunculkan ketika penguna melakukan pilihan pembangkitan kode aplikasi. Selain itu, proses download file kode hasil pembangkitan juga ditangani oleh kelas ini. Kelas ini tidak memiliki
IV-9
atribut untuk menyimpan data. Fungsi-fungsi utama yang terdapat pada kelas ini antara lain: 1. processGenerateRequest(), yaitu fungsi untuk melakukan pemrosesan request pembangkitan kode. Fungsi ini yang akan melakukan invokasi pembangkitan dalam kelas Output. 2. generateModel(), yaitu fungsi untuk melakukan proses pembangkitan file kelas bertipe model. 3. generateController(),yaitu
fungsi
untuk
melakukan
proses
pembangkitan file kelas bertipe controller. 4. generateView(),yaitu fungsi untuk melakukan proses pembangkitan file kelas bertipe view. 5. createZIP(), yaitu fungsi untuk melakukan proses kompresi file-file hasil pembangkitan ke dalam file zip. 4.1.4
Hubungan Antar Kelas Dalam Aktivitas-Aktivitas Pada Code Generator
Dalam setiap aktivitas yang dapat dilakukan pengguna terhadap aplikasi code generator, kelas-kelas yang berhubungan dengan aktivitas tersebut akan saling berhubungan satu sama lain. Kelas-kelas tertentu akan berperan dalam beberapa aktivitas, tergantung kebutuhan dari aktivitas tersebut. 4.1.4.1 Mengisi Konfigurasi Basis Data Dalam aktivitas mengisi konfigurasi basis data, terdapat 3 kelas yang aktif, yaitu KonfigurasiDB, ControlKonfigurasiDB dan PanelKonfigurasiDB. Gambar IV-1 menunjukkan hubungan ketiga kelas yang aktif dalam aktivitas ini. Alur kerja dari ketiga kelas tersebut adalah: 1. Kelas PanelKonfigurasiDB akan menampilkan halaman yang berisi form konfigurasi basis data.
IV-10
2. Setelah pengguna mengisi dan mengirim data dalam form konfigurasi basis data, kelas ControlKonfigurasiDB akan memroses data yang diterima dan meneruskannya ke kelas KonfigurasiDB. 3. Kelas KonfigurasiDB akan melakukan validasi konfigurasi dan bila validasi sukses, konfigurasi akan disimpan ke basis data aplikasi code generator. Apabila pengguna memilih untuk membuat basis data baru, aktivitas akan berakhir di langkah ini. 4. Apabila pengguna memilih untuk memakai basis data yang sudah ada, kelas ControlKonfigurasiDB
akan
memindahkan
halaman
pada
kelas
PanelKonfigurasiDB ke bagian pemilihan basis data. 5. Kelas PanelKonfigurasi akan menerima pilihan basis data dari pengguna dan meneruskannya ke kelas ControlKonfigurasiDB.
<<entity>> KonfigurasiDB
<> PanelKonfigurasiDB +showSavedConfigurationPage() +showAddDBForm() +showDBListPage() +showEditDBForm() +showUploadDBForm()
<> ControlKonfigurasiDB +processConfigForm() +processDBForm()
-db_target -db_host -db_port -db_username -db_password -db_name +KonfigurasDB() +newConfig() +saveConfig() +testConfig() +getConfig() +updateConfig() +getDatabases() +getTables() +getMetaData() +connectDB()
Gambar IV-1 Hubungan Antar Kelas dalam Aktivitas Mengisi Konfigurasi Basis Data
IV-11
4.1.4.2 Meng-upload File Definisi Basis Data
<<entity>> KonfigurasiDB
<> PanelKonfigurasiDB +showSavedConfigurationPage() +showAddDBForm() +showDBListPage() +showEditDBForm() +showUploadDBForm()
<> ControlKonfigurasiDB +processConfigForm() +processDBForm()
-db_target -db_host -db_port -db_username -db_password -db_name +KonfigurasDB() +newConfig() +saveConfig() +testConfig() +getConfig() +updateConfig() +getDatabases() +getTables() +getMetaData() +connectDB()
Gambar IV-2 Hubungan antar kelas dalam aktivitas mneg-upload file definisi basis data
Dalam aktivitas ini, terdapat 3 kelas yang aktif, yaitu KonfigurasiDB, ControlKonfigurasiDB, dan PanelKonfigurasiDB. Gambar IV-2 menunjukkan hubungan antara ketiga kelas yang aktif dalam aktivitas ini. Alur kerja dari ketiga kelas tersebut adalah: 1. Kelas PanelKonfigurasiDB akan menampilkan halaman yang berisi form upload file definisi basis data. 2. Setelah pengguna mengisi dan mengirim data dalam form upload file definisi basis data, kelas ControlKonfigurasiDB akan mengambil file definisi basis data dari pengguna dan meneruskannya ke kelas KonfigurasiDB. 3. Kelas KonfigurasiDB akan membuat basis data baru di server basis data yang diberikan oleh pengguna. 4. Apabila pembuatan basis data berhasil, Kelas PanelKonfigurasiDB akan menampilkan pesan kepada pengguna bahwa basis data berhasil dibuat.
IV-12
4.1.4.3 Meng-upload File Template Dalam aktivitas ini, terdapat 3 kelas yang aktif, yaitu Template, ControlTemplate, dan PanelTemplate. Gambar IV-3 menunjukkan hubungan antara ketiga kelas yang aktif dalam aktivitas ini. Alur kerja dari ketiga kelas tersebut adalah: 1. Kelas PanelTemplate akan menampilkan halaman yang berisi form upload file template. 2. Setelah pengguna mengisi dan mengirim data dalam form upload file template, kelas ControlTemplate akan mengambil file template dari pengguna dan meneruskannya ke kelas Template. 3. Kelas Template akan melakukan validasi template dan bila validasi sukses, file template akan disimpan di server aplikasi.
<<entity>> Template <> PanelTemplate +showUploadTemplatePage() +showSavedTemplatePage() +showEditTemplatePage()
<> ControlTemplate +processUploadForm() +uploadTemplateFile()
-userTemplate -modelTemplate -controllerTemplate -viewTemplate +validateTemplate() +saveTemplate() +parseTemplate() +newTemplate() +getTemplate() +editTemplate()
Gambar IV-3 Hubungan Antar Kelas dalam Aktivitas Meng-upload File template masukan
4.1.4.4 Membangkitkan Kode Aplikasi Dalam aktivitas ini, terdapat 5 kelas yang aktif, yaitu KonfigurasiDB, Template, Output ControlGenerator, dan PanelGenerator. Gambar IV-4 menunjukkan hubungan antara kelima kelas yang aktif dalam aktivitas ini. Alur kerja dari kelima kelas ini adalah:
IV-13
1. Kelas PanelGenerator akan menerima pilihan untuk membangkitkan kode aplikasi dari pengguna. Permintaan ini akan diteruskan ke kelas ControlGenerator. 2. Kelas ControlGenerator akan memroses permintaan dari pengguna dan mengambil konfigurasi basis data dan template dari kelas KonfigurasiDB dan kelas Template. 3. Kelas ControlGenerator akan melakukan pembangkitan kode aplikasi secara bertahap, kemudian membungkusnya ke dalam file arsip ZIP. 4. Kelas ControlGenerator akan memindahkan halaman dalam PanelGenerator ke bagian download file hasil pembangkitan. 5. Kelas PanelGenerator akan menampilkan link ke file hasil pembangkitan dan menerima permintaan donwload dari pengguna. Permintaan ini akan diteruskan ke kelas ControlGenerator. 6. Kelas
ControlGenerator
akan
memroses
permintaan
download
mengirimkan file hasil pembangkitan kepada pengguna.
<<entity>> KonfigurasiDB -db_target -db_host -db_port -db_username -db_password -db_name +KonfigurasDB() +newConfig() +saveConfig() +testConfig() +getConfig() +updateConfig() +getDatabases() +getTables() +getMetaData() +connectDB()
<> PanelGenerator +showGeneratedApplicationPage() +showGeneratePage() <<entity>> Template <> ControlGenerator +processGenerateRequest() +generateModel() +generateController() +generateView() +createZIP()
-userTemplate -modelTemplate -controllerTemplate -viewTemplate +validateTemplate() +saveTemplate() +parseTemplate() +newTemplate() +getTemplate() +editTemplate()
Gambar IV-4 Hubungan antar kelas dalam aktivitas membangkitkan kode aplikasi
dan
IV-14
4.2
RANCANGAN FILE TEMPLATE
Aplikasi code generator menggunakan dua jenis file template. Jenis file template pertama adalah file template standar code generator. File template standar ini yang menjadi skema dasar dari program yang dibangkitkan oleh aplikasi code generator. File template standar menggunakan format PHP atau HTML yang disisipi oleh beberapa keyword yang berfungsi sebagai penanda bagian mana yang akan dibangkitkan oleh code generator. Jenis yang kedua adalah file template masukan dari pengguna. File template jenis ini berisi skema program yang akan dibangkitkan dengan rancangan sesuai dengan skema standar program dalam code generator. Selain itu, file template masukan dari pengguna juga mendefinisikan fungsi tambahan yang dibutuhkan oleh penguna. Jenis file template dari pengguna ini menggunakan format JSON (JavaScript Object Notation). Berikut adalah penjelasan rancangan kedua jenis file template.
Gambar IV-5 Pemrosessan File Template Dalam Code Generator
Pemrosesan file template dalam aplikasi code generator ditunjukkan dalam Gambar IV-5. Alur informasi dalam Gambar IV-5 tersebut adalah sebagai berikut: 1. Informasi mengenai rancangan aplikasi target dari template masukan diolah oleh code generator. 2. Code generator mengambil keseluruhan dari isi file template standar.
IV-15
3. Setiap keyword digantikan dengan kode yang telah dibangkitkan oleh code generator. 4. Isi file template standar yang telah diganti seluruh keyword-nya tersebut disimpan dalam sebuah file baru di storage. Dalam Subbab berikut, akan dibahas mengenai struktur kedua jenis file template tersebut. 4.2.1
File Template Standar Code Generator
File template standar yang digunakan oleh code geneator akan menggunakan format PHP atau HTML yang disisipi oleh keyword khusus yang dapat dikenali oleh aplikasi Code Generator. Template ini terbagi menjadi 3 tipe, yaitu template kelas model, template kelas controller, dan template kelas view. Berikut adalah penjelasan kerangka ketiga template tersebut. 4.2.1.1 File Template Kelas Model File template kelas model akan berisi beberapa fungsi seperti yang telah dijelaskan dalam Subbab 3.3.3. Keyword yang digunakan dalam file template menggunakan format “[[keyword]]”. Bagian ini akan diganti oleh kode yang dibangkitkan oleh Code Generator. Dalam Kode IV-1 ditunjukkan kerangka file template untuk kelas-kelas model. _init_variables () }
//Definisi fungsi getter
IV-16
[[getter_functions]] //fungsi insisialisasi atribut kelas function _init_variables () { //body fungsi [[init_variables]] } //fungsi yang mengambil semua data dari basis data function find_all () { //body fungsi } //fungsi yang mengambil data spesifik function find_by_key ($key_value) { //body fungsi } //fungsi untuk menambahkan data ke basis data function add ($data) { //body fungsi } //fungsi pengubahan data dalam basis data function modify($key_value, $data) { //body fungsi } //fungsi menghapus data dari basis data function delete_by_key ($key_value) } //body fungsi } //definisi fungsi tambahan [[custom_functions]] } ?>
Kode IV-1 Rancangan File Template Kelas Model
4.2.1.2 File Template Kelas Controller File template kelas controller akan berisi beberapa fungsi seperti yang telah dijelaskan dalam Subbab 3.3.3. Serupa dengan file template kelas model, keyword yang digunakan dalam file template menggunakan format [[keyword]]. Bagian ini akan diganti oleh kode yang dibangkitkan oleh Code Generator. Dalam Kode IV-2 ditunjukkan kerangka file template untuk kelas-kelas controller.
IV-17
Kode IV-2 Rancangan File Template Kelas Controller
IV-18
4.2.1.3 File Template Kelas View File template untuk kelas view akan berisi kode HTML yang disisipi keyword. Serupa dengan file template kelas model dan controller, keyword yang digunakan dalam file template menggunakan format [[keyword]]. Bagian ini akan diganti oleh kode yang dibangkitkan oleh Code Generator dengan kode HTML yang mengatur layout tampilan halaman web. Seperti yang telah dijelaskan pada Subbab 3.3.3.3, layout yang akan dibangkitkan dalam kelas view terdiri atas layout tabel untuk menampilkan data dan form input data. Jadi isi dari file template kode view hanyalah tag-tag html yang utama seperti tag yang menyimpan title, tag body, dan tag pembuka html. Dalam Kode IV-3 ditunjukkan kerangka file template untuk kelas-kelas view. [[view_content]]
Kode IV-3 Rancangan File Template Kelas View
4.2.2
File Template Masukan Pengguna
File template masukan yang digunakan menggunakan format JavaScript Object Notation
(JSON)
agar
mempermudah
pemrosesan
oleh
aplikasi
dan
mempermudah pembuatan oleh pengguna. Skema file template masukan yang digunakan ditunjukkan dalam Kode IV-4. Informasi yang disimpan dalam file template masukan terdiri atas: 1. Nama modul aplikasi 2. Tipe aplikasi, baik informasional, interaktif, ataupun transaksional 3. Informasi kelas-kelas model, yang meliputi nama tabel terkait, dan definisi fungsi-fungsi tambahan yang akan ditambahkan. Definisi tambahan fungsi-
IV-19
fungsi yang akan ditambahkan ini berisi nama fungsi, parameter, dan query basis data yang digunakan. 4. Informasi kelas controller yang akan dibangkitkan, meliputi model mana yang akan di-load dalam controller, dan definisi fungsi tambahan untuk kelas controller. { "cg_template" : { /*identifier pembuka template*/ "name" : /*nama modul*/, "type" : /*jenis aplikasi*/, "models" : [ /*model bisa lebih dari satu*/ { "table" : /*nama tabel terkait*/, "custom_functions" : /*yes atau no*/, "functions" : [ /*fungsi tambahan, boleh tidak ada atau bisa lebih dari satu*/ { "name" : /*nama fungsi tambahan*/, "params" : [/*boleh lebih dari 1*/], "query" : /*query yang digunakan, dapat memakai parameter dengan format <<paramnomorparameter]>> misalnya <<param1>>*/" } ] } ], "control" : { "table" : /*nama tabell yang akan diakses*/, "custom_functions" : /*yes atau no*/, "functions" : [ /*fungsi tambahan, boleh tidak ada atau bisa lebih dari satu*/ { "name" : /*nama fungsi tambahan*/, “model_function” : /*nama fungsi model yang dipanggil*/, "params" : [/*boleh lebih dari 1*/], "fields" : /*field yang akan ditampilkan, boleh lebih dari 1 (gunakan array)*/ } ] } } } Kode IV-4 Rancangan File Template Masukan Pengguna
IV-20
4.3
RANCANGAN ANTARMUKA
Seperti telah disebutkan dalam Subbab 3.1, pada aplikasi code generator terdapat 4 aktivitas utama, yaitu mengisi konfigurasi basis data, meng-upload file definisi basis data, meng-upload file template, dan membangkitkan kode aplikasi. Aktivitas tersebut terbagi atas beberapa halaman web, yaitu halaman konfigurasi basis data, halaman pemilihan basis data, halamn upload file definisi basis data, dan halaman upload file template. Dalam Subbab ini akan dijelaskan rancangan antarmuka dari setiap halaman web tersebut. 4.3.1
Halaman Konfigurasi Basis Data
Halaman ini berisi form konfigurasi basis data. Form yang ada pada halaman ini akan menerima data hostname dan port dari server basis data serta username dan password untuk melakukan koneksi ke basis data. Rancangan antarmuka halaman konfigurasi basis data ini dapat dilihat pada Gambar IV-6.
Gambar IV-6 Halaman konfigurasi basis data
4.3.2
Halaman Pemilihan Basis Data
Halaman ini berisi form pemilihan basis data apabila pengguna memilih untuk menggunakan basis data yang sudah terdefinisi pada konfigurasi. Halaman ini akan menampilkan basis data apa saja yang bisa dipilih, dan tabel-tabel yang ada
IV-21
dalam basis data tersebut. Rancangan antarmuka halaman pemilihan basis data ini dapat dilihat pada Gambar IV-7.
Gambar IV-7 Halaman pemilihan basis data
4.3.3
Halaman Upload File Definisi Basis Data
Halaman ini berisi form upload file definisi basis data apabila pengguna memilih untuk membuat basis data baru pada konfigurasi. Halaman ini akan menerima data path dari file definisi basis data dan nama basis data yang akan digunakan. Rancangan antarmuka halaman upload file definisi basis data ini dapat dilihat pada Gambar IV-8.
Gambar IV-8 Halaman upload file definisi basis data
IV-22
4.3.4
Halaman Upload File Template
Halaman ini berisi form upload file template yang berisi rancangan aplikasi yang akan dibangkitkan. Halaman ini akan menerima data path dari file template milik pengguna. Rancangan antarmuka halaman upload file definisi basis data ini dapat dilihat pada Gambar IV-9.
Gambar IV-9 Halaman upload file template