4.1 RANCANGAN KELAS APLIKASI CODE GENERATOR

dokumen-dokumen yang mirip
3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR

BAB V IMPLEMENTASI DAN PENGUJIAN

PENGEMBANGAN CODE GENERATOR BERBASIS WEB UNTUK MEMBANGKITKAN KODE MODUL APLIKASI WEB

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

BAB V IMPLEMENTASI DAN PENGUJIAN

BERKENALAN DENGAN MODEL CODEIGNITER

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

I. Pengenalan Play Framework

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM

CodeIgniter.

BAB III PERANCANGAN SISTEM

CODEIGNITER 3. Belajar Mandiri. Zamah Sari

BAB IV ANALISIS DAN PERANCANGAN SISTEM. proses kerja yang sedang berjalan. Pokok-pokok yang di analisis meliputi analisis

Modul 5. Membuat Formulir Pada Template. Disusun oleh. Sri Siska Wirdaniyati JURUSAN STATISTIKA FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

A. Tujuan B. Dasar Teori 1. Pemrosesan Form 2. Konsep Penggunaan Tag <form> pada HTML

Bab 4 Pembahasan Dan Hasil Pengujian

PANDUAN PENGGUNAAN. Joomla! Versi 1.5. Oleh: Anon Kuncoro Widigdo

BAB III ANALISA DAN PERANCANGAN SISTEM

BAB IV PENGUJIAN DAN ANALISIS

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

PEMROGRAMAN PHP DASAR

BAB IV IMPLEMENTASI DAN PENGUJIAN

DAFTAR ISI BAB II TINJAUAN PUSTAKA 8

PHP dan Framework CodeIgniter

BAB II ANALISIS DAN PERANCANGAN. pendekatan perancangan sistem berorientasi objek. Perancangan sistem

7.2 Saran DAFTAR PUSTAKA LAMPIRAN

Upload File dengan Metode AJAX

Oleh: Ahmad Syauqi Ahsan

BAB III ANALISIS. 3.1 Analisis Model Business Process Outsourcing

BAB V IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISIS DAN PERANCANGAN SISTEM. dengan menggunakan metode System Development Life Cycle (SDLC). Tahap yang

BAB II ANALISIS DAN PERANCANGAN. Sistem informasi penjualan dan pembelian Tissue SMART NARENA

BAB III ANALISIS DAN DESAIN SISTEM

`BAB III ANALISIS DAN PERANCANGAN SISTEM. Material Requirement Planning (MRP) berbasis web pada CV. Mitra Techno Sains.

BAB IV ANALISIS DAN PERANCANGAN SISTEM. permasalahan dari suatu sistem informasi. Hasil akhir dari analisis sistem

Mengenal Codeigniter (CI) Framework

BAB I PENDAHULUAN. media pembelajaran itu adalah e-learning. E-learning merupakan suatu teknologi informasi

Lampiran A : Hasil Wawancara. Hasil wawancara dengan Bapak Setiawan Soetopo, manager Internet Service

Pemrograman Web II DANU WIRA PANGESTU

Framework CodeIgniter Part 1

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISA DAN DESAIN SISTEM

Pentingnya susunan struktur program yang rapi: Dalam modul ini susunan direktori yang diterapkan:

BAB III ANALISA DAN DESAIN SISTEM

Membuat Toko Online dengan Teknik OOP, MVC, dan AJAX

Bab 4 Pembahasan dan Hasil

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISA DAN DESAIN SISTEM

BAB II STUDI PUSTAKA 2.1 CODE GENERATOR

BAB III ANALISIS DAN PERANCANGAN

Bab 2 Tinjauan Pustaka

BAB III ANALISA DAN PERANCANGAN SISTEM

TAKARIR. : Sebuah dokumen dalam bentuk cetak : Halaman pengisian data

PRAKTIKUM. Rekayasa Web. Modul 6: Restful API Server & Client Codeigniter. Laboratorium Teknik Informatika Universitas Pasundan

BAB III ANALISA DAN DESAIN SISTEM

BAB IV HASIL DAN ANALISIS

AJAX Framework. Pemrograman Web 1. Genap

BAB III ANALISA DAN DESAIN SISTEM

BAB III ANALISIS DAN PERANCANGAN

BAB II TINJAUAN PUSTAKA DAN DASAR TEORI. dilakukan dengan menggunakan teknologi yang berbeda beda. Selain itu terdapat

MODUL 6 JDBC (JAVA DATABASE CONNECTIVITY)

4.1.1 Mengidentifikasikan Skenario Pemakaian atau Use-Case. Skenario digunakan untuk merepresentasikan sebuah interaksi antara

3 BAB III METODOLOGI PENELITIAN

RENCANA PROGRAM KEGIATAN PEMBELAJARAN SEMESTER (RPKPS) PEMROGRAMAN WEB. Disusun Oleh: Lelly Hidayah Anggraini, S.Kom, M.Cs

BAB 4 IMPLEMENTASI DAN EVALUASI

BAB III METODE PENELITIAN. sistem yang digunakan untuk menggambarkan aliran data secara keseluruhan

BAB IV ANALISIS DAN PERANCANGAN SISTEM. hasil analisis ini digambarkan dan didokumentasiakan dengan metodologi

E-trik Ajax. Database MySQL. Dedi Alnas

Gambar 4.32 Tampilan layar Reference to the Others pada User

PRAKTIKUM. Rekayasa Web. Modul 2: CRUD CodeIgniter Part I. Laboratorium Teknik Informatika Universitas Pasundan

Dasar Pemrograman Web. Pemrograman Web. Adam Hendra Brata

Bab IV Perancangan. Aplikasi Visualisasi Dashoard

Tag dasar yang akan kita gunakan untuk membuat form di HTML adalah tag form, input, textarea, select dan option.

HASIL DAN PEMBAHASAN Investigasi Awal

BAB III PERENCANAAN KEBUTUHAN DAN PERANCANGAN

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Analisis sistem merupakan suatu kegiatan penguraian dari suatu sistem yang

MODUL 8 Insert, Update, & delete

5 Membuat Web Service dengan Azure

Materi 2 E-Commerce Lanjut (CodeIgniter) 3 SKS Semester 7 S1 Sistem Informasi UNIKOM 2015 Nizar Rabbi Radliya

BAB III ANALISIS DAN PERANCANGAN

BAB III ANALISIS DAN PERANCANGAN SISTEM

Pemrograman Web Berbasis Framework. Pertemuan 4 : Konsep MVC : Controller. Hasanuddin, S.T., M.Cs. Prodi Teknik Informatika UAD


KONTRAK BELAJAR. Nama Mata Kuliah : Web Dinamis Lanjut Kode Mata Kuliah : IKB : Wahyu Widodo, S.Kom Semester : 5

Sering kita mendengar tentang MVC Framework PHP tetapi kurang mengerti belum arti dari

BAB III ANALISIS DAN DESAIN SISTEM

Bab 4. Pembahasan dan Hasil

dapat diakses melalui salah satu menu yang berkaitan dengan komponen pada halaman administrator.

Oleh: Ahmad Syauqi Ahsan

IMPLEMENTASI DAN PENGUJIAN

BAB IV ANALISIS DAN RANCANGAN SISTEM Deskripsi Sistem Analisis Sistem Analisis Kebutuhan Fungsional

Transkripsi:

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 Kelas Perancangan PanelKonfigurasi PanelKonfigurasiDB PanelUpload <tidak-ada> <tidak-ada> PanelTemplate PanelGenerator PanelGenerator ControlKonfigurasi ControlUploadDB ControlKonfigurasiDB 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.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. 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.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. 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.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 <<boundary>> PanelKonfigurasiDB +showsavedconfigurationpage() +showadddbform() +showdblistpage() +showeditdbform() +showuploaddbform() <<control>> 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 <<boundary>> PanelKonfigurasiDB +showsavedconfigurationpage() +showadddbform() +showdblistpage() +showeditdbform() +showuploaddbform() <<control>> ControlKonfigurasiDB +processconfigform() +processdbform() <<entity>> KonfigurasiDB -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 <<boundary>> PanelTemplate +showuploadtemplatepage() +showsavedtemplatepage() +showedittemplatepage() <<control>> 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 dan 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() <<boundary>> PanelGenerator +showgeneratedapplicationpage() +showgeneratepage() <<control>> ControlGenerator +processgeneraterequest() +generatemodel() +generatecontroller() +generateview() +createzip() <<entity>> Template -usertemplate -modeltemplate -controllertemplate -viewtemplate +validatetemplate() +savetemplate() +parsetemplate() +newtemplate() +gettemplate() +edittemplate() Gambar IV-4 Hubungan antar kelas dalam aktivitas membangkitkan kode aplikasi

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. <?php //Definisi kelas model class [[class_name]] extends Model { //atribut kelas [[class_variables]] //kelas kostruktor function [[class_name]] () { //body kelas konstruktor $this->_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 <?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]]?> 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. <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-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