• Tidak ada hasil yang ditemukan

4.1 RANCANGAN KELAS APLIKASI CODE GENERATOR

N/A
N/A
Protected

Academic year: 2021

Membagikan "4.1 RANCANGAN KELAS APLIKASI CODE GENERATOR"

Copied!
22
0
0

Teks penuh

(1)

IV-1

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.

(2)

Tabel IV-1 Pemetaan Kelas Analisis ke Kelas Perancangan

Kelas Analisis Kelas Perancangan

PanelKonfigurasi PanelKonfigurasiDB PanelUpload <tidak-ada> <tidak-ada> PanelTemplate PanelGenerator PanelGenerator ControlKonfigurasi ControlKonfigurasiDB ControlUploadDB ControlUploadTemplate ControlTemplate ControlGenerator ControlGenerator KonfigurasiDB KonfigurasiDB Template Template

4.1.1 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. Nama Kelas Deskripsi Kelas

1. PanelKonfigurasiDB Kelas yang menangani semua tampilan dan interaksi dengan pengguna dalam hal pengaturan konfigurasi basis data

2. PanelTemplate Kelas yang menangani semua tampilan dan interaksi dengan pengguna dalam hal upload file template

3. PanelGenerator Kelas yang menangani semua tampilan dan interaksi dengan pengguna dalam hal pembangkitan kode dan hasil kode

4.1.1.1Kelas 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:

(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

meng-upload file definisi basis data yang baru apabila pengguna memilih untuk

membuat basis data baru.

4.1.1.2Kelas 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.3Kelas 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

(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. Nama Kelas Deskripsi Kelas

1. KonfigurasiDB Kelas yang memodelkan konfigurasi basis data dan definisi basis data yang digunakan dalam pembangkitan kode

2. Template Kelas yang memodelkan template perancangan aplikasi yang akan dibangkitkan

4.1.2.1Kelas 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:

(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.

(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.2Kelas Template

Kelas ini memodelkan isi dari template perancangan yang digunakan dalam pembangkitan aplikasi. Dalm kelas ini disimpan path dari file yang telah

di-upload 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

(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. Nama Kelas Deskripsi Kelas

1. ControlKonfigurasiDB Kelas yang menangani semua event yang berhubungan dengan aktivitas pengisian konfigurasi

3. ControlUploadTemplate Kelas yang menangani event-event yang terdapat pada aktivitas mengenai file template perancangan

4. ControlGenerator Kelas yang menagani semua event yang terdapat pada aktivitas pembangkitan kode

4.1.3.1Kelas 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:

(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.2Kelas 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. Fungsi-fungsi 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.3Kelas 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

(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.1Mengisi 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.

(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.

KonfigurasiDB <<entity>> -db_target -db_host -db_port -db_username -db_password -db_name +KonfigurasDB() +newConfig() +saveConfig() +testConfig() +getConfig() +updateConfig() +getDatabases() +getTables() +getMetaData() +connectDB() ControlKonfigurasiDB <<control>> +processConfigForm() +processDBForm() PanelKonfigurasiDB <<boundary>> +showSavedConfigurationPage() +showAddDBForm() +showDBListPage() +showEditDBForm() +showUploadDBForm()

(11)

4.1.4.2Meng-upload File Definisi Basis Data KonfigurasiDB <<entity>> -db_target -db_host -db_port -db_username -db_password -db_name +KonfigurasDB() +newConfig() +saveConfig() +testConfig() +getConfig() +updateConfig() +getDatabases() +getTables() +getMetaData() +connectDB() ControlKonfigurasiDB <<control>> +processConfigForm() +processDBForm() PanelKonfigurasiDB <<boundary>> +showSavedConfigurationPage() +showAddDBForm() +showDBListPage() +showEditDBForm() +showUploadDBForm()

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.

(12)

4.1.4.3Meng-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.

Template <<entity>> -userTemplate -modelTemplate -controllerTemplate -viewTemplate +validateTemplate() +saveTemplate() +parseTemplate() +newTemplate() +getTemplate() +editTemplate() ControlTemplate <<control>> +processUploadForm() +uploadTemplateFile() PanelTemplate <<boundary>> +showUploadTemplatePage() +showSavedTemplatePage() +showEditTemplatePage()

Gambar IV-3 Hubungan Antar Kelas dalam Aktivitas Meng-upload File template masukan

4.1.4.4Membangkitkan 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:

(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 dan mengirimkan file hasil pembangkitan kepada pengguna.

KonfigurasiDB <<entity>> -db_target -db_host -db_port -db_username -db_password -db_name +KonfigurasDB() +newConfig() +saveConfig() +testConfig() +getConfig() +updateConfig() +getDatabases() +getTables() +getMetaData() +connectDB() Template <<entity>> -userTemplate -modelTemplate -controllerTemplate -viewTemplate +validateTemplate() +saveTemplate() +parseTemplate() +newTemplate() +getTemplate() +editTemplate() ControlGenerator <<control>> +processGenerateRequest() +generateModel() +generateController() +generateView() +createZIP() PanelGenerator <<boundary>> +showGeneratedApplicationPage() +showGeneratePage() Gambar IV-4 Hubungan antar kelas dalam aktivitas membangkitkan kode aplikasi

(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.

(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.1File 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. <?php

//Definisi kelas model

class [[class_name]] extends Model { //atribut kelas

[[class_variables]] //kelas kostruktor

function [[class_name]] () { //body kelas konstruktor $this->_init_variables () }

(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.2File 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.

(17)

<?php

//definisi kelas controller

class [[module_name]] extends Controller { //konstruktor kelas controller

function [[module_name]] () { //body konstruktor }

//fungsi halaman utama function index () {

//body fungsi }

//fungsi untuk menampilkan semua data function show_all_data () {

//body fungsi }

//fungsi menampilkan data spesifik function show_data ($data_id) {

//body fungsi }

//FUNGSI KHUSUS INTERAKTIF DAN TRANSAKSIONAL //fungsi penambahan data di basis data

function add_data () { //body fungsi }

//fungsi pengubahan data dalam basis data function modify_data ($id) {

//body fungsi }

//fungsi untuk pemrsesan data yang disubmit user dari form function process_form () {

//body }

//Definisi fungsi tambahan [[custom_function]]

} ?>

(18)

4.2.1.3File 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.

<html> <head> <title> </head> <body> [[view_content]] </body> <html>

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 tambahan yang akan ditambahkan. Definisi tambahan

(19)

fungsi-fungsi yang akan ditambahkan ini berisi nama fungsi-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)*/ }

] }

} }

(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

(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.

(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

Tabel IV-1 Pemetaan Kelas Analisis ke Kelas Perancangan
Tabel IV-4 Deskripsi kelas-kelas bertipe controller
Gambar IV-1 Hubungan Antar Kelas dalam Aktivitas Mengisi Konfigurasi Basis Data
Gambar IV-3 Hubungan Antar Kelas dalam Aktivitas Meng-upload File template masukan
+5

Referensi

Dokumen terkait

Untuk dapat memenuhi standar mutu tersebut, pedagang pengumpul tembakau juga menuntut petani untuk dapat menghasilkan tembakau yang sesuai dengan standar mutu yang

Penelitian yang mengacu pada peneli- tian kualitatif ini dipaparkan secara deskrip- tif, melalui metode analisis isi (Bogdan dan Biklen dalam Emzir, 2010:3)

37 Wawancara pada tanggal 12 September 2016 pukul 11.00 WIB dengan pangeran Rintoisworo dan pangeran Jatiningrat(keduanya adalah putra Sultan Hamengku Buwono VIII

Penggunaan metoda guna ulang telah memberikan banyak manfaat pada kehidupan Penggunaan metoda guna ulang telah memberikan banyak manfaat pada kehidupan kita, diantaranya adalah

Rincian Kewenangan klinik untuk Radiografer dalam menjalankan prosedur tindakan kefarmasian di Rumah Sakit Umum Mitra Sehat diajukan dalam rangka peningkatan kualitas pelayanan

Pembayaran dari anggota (angsuran) adalah setiap sebulan sekali namun perlu dibuat laporan pembayaran per triwulan dan dilaporkan ke Dinas Perdagangan Perindustrian dan Koperasi

Manajemen pengolahan adalah rangkaian untuk menerapkan fungsi- fungsi manajemen pada pengolahan udang beku dan suatu proses yang melibatkan kegiatan perencanaan,

Pasien dengan gangguan ketidaknyamanan pada tangan dan pergelangan tangan seperti seorang wanita yang dijelaskan dalam tinjauan kasus, dievaluasi