3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR

dokumen-dokumen yang mirip
4.1 RANCANGAN KELAS APLIKASI CODE GENERATOR

PENGEMBANGAN CODE GENERATOR BERBASIS WEB UNTUK MEMBANGKITKAN KODE MODUL APLIKASI WEB

BAB I PENDAHULUAN 1.1 LATAR BELAKANG

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

BAB V IMPLEMENTASI DAN PENGUJIAN

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

BAB III ANALISIS. 3.1 Analisis Model Business Process Outsourcing

CODEIGNITER 3. Belajar Mandiri. Zamah Sari

BAB III ANALISA DAN PERANCANGAN SISTEM

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

BAB III ANALISA DAN PERANCANGAN

Mengenal Codeigniter (CI) Framework

Framework CodeIgniter Part 1

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

BAB II ANALISIS DAN PERANCANGAN

Bab 3 Metodologi Penelitian

BERKENALAN DENGAN MODEL CODEIGNITER

53 Gambar 4. 1 Proses Bisnis sistem yang sedang berjalan Keterangan: 1. Peminjam wajib menyerahkan kwitansi atau bukti transaksi. 2. Staff admin memer

BAB III ANALISIS DAN PERANCANGAN

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

Membuat Toko Online dengan Teknik OOP, MVC, dan AJAX

BAB III ANALISIS DAN PERANCANGAN SISTEM

BAB IV ANALISIS DAN PERANCANGAN SISTEM

BAB III LANDASAN TEORI

PENERAPAN JAVA SERVER FACES UNTUK DESIGN PATTERN WEB

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB IV ANALISIS DAN PERANCANGAN SISTEM

BAB III ANALISIS DAN PERANCANGAN SISTEM

HASIL DAN PEMBAHASAN Investigasi Awal

BAB IV IMPLEMENTASI DAN PENGUJIAN

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

DAFTAR ISI BAB II TINJAUAN PUSTAKA 8

BAB III LANDASAN TEORI

Bab 2 Tinjauan Pustaka 2.1 Penelitian terdahulu

BAB I PENDAHULUAN 1.1 Latar Belakang

MI2193 PEMROGRAMAN WEB LANJUT PHP FRAMEWORK. Created by MTA Revised by HPU

II.3.5 Statechart Diagram... II-14 II.3.6 Activity Diagram... II-15 II.3.7 Component Diagram... II-16 II.3.8 Deployment Diagram... II-16 II.3.

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

DAFTAR TABEL. Perbandingan Ruby on Rails Dengan PHP Berdasarkan Banyak. Baris Program...

I. Pengenalan Play Framework

BAB I PENDAHULUAN 1.1 Latar Belakang

BAB III ANALISA DAN PERANCANGAN SISTEM

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

Pengumpulan Data. Analisa Data. Pembuatan Use Case,Activity dan Sequence Diagram. Perancangan Database. Bisnis Proses.

BAB IV IMPLEMENTASI DAN PENGUJIAN

BAB IV ANALISA DAN PERANCANGAN SISTEM. diusulkan dari sistem yang ada di Dinas Kebudayaan dan Pariwisata Kota

BAB III ANALISIS DAN PERANCANGAN

PEMROGRAMAN PHP DASAR

BAB II LANDASAN TEORI Konsep Dasar Membangun Aplikasi Berbasis Web

BAB I PENDAHULUAN. 1.1 Latar Belakang

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

Bab 2 Tinjauan Pustaka

BAB IV HASIL DAN PEMBAHASAN

3. BAB III METODE PENELITIAN

BAB III ANALISA DAN PERANCANGAN

PEMANFAATAN ARDUINO DALAM PENGEMBANGAN SISTEM RUMAH PINTAR BERBASIS MOBILE DAN WEB (Studi Kasus : Penjadwalan Lampu Rumah)

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

PEMANFAATAN ARDUINO DALAM PENGEMBANGAN SISTEM KEAMANAN RUMAH BERBASIS WEB

7.2 Saran DAFTAR PUSTAKA LAMPIRAN

BAB IV HASIL DAN PEMBAHASAN

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

BAB IV ANALISIS DAN PERANCANGAN SISTEM

PERANCANGAN SISTEM INFORMASI MANAJEMEN PERPUSTAKAAN MENGGUNAKAN POLA MODEL-VIEW- CONTROLLER (MVC)

BAB I PENDAHULUAN... I-1

Basis Data 2. Database Client / Server. Arif Basofi, S.Kom. MT. Teknik Informatika, PENS

IMPLEMENTASI DAN PENGUJIAN

BAB III ANALISIS DAN DESAIN SISTEM

Bab 2. Tinjauan Pustaka

BAB III ANALISIS DAN PERANCANGAN

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB IV IMPLEMENTASI DAN EVALUASI. Dalam merancang dan membangun sistem penjualan online ini ada

BAB III ANALISA DAN PERANCANGAN

BAB IV ANALISIS DAN PERANCANGAN SISTEM. Analisa merupakan tahap yang sangat berpengaruh terhadap tahap

BAB 3 ANALISIS DAN PERANCANGAN SISTEM

BAB I PERSYARATAN PRODUK

BAB IV ANALISIS DAN PERANCANGAN SISTEM. yang manual, yaitu dengan melakukan pembukuan untuk seluruh data dan

SPESIFIKASI KEBUTUHAN PERANGKAT LUNAK. <Nama Perangkat Lunak>

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

3.1 Ganesha Digital Library

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

BAB I PERSYARATAN PRODUK

BAB IV HASIL DAN PEMBAHASAN

BAB IV IMPLEMENTASI DAN EVALUASI. Sistem yang dibangun pengembang adalah berbasis web. Untuk dapat

BAB II LANDASAN TEORI

BAB IV ANALISIS DAN PERANCANGAN SISTEM

BAB IV HASIL DAN UJI COBA. Pada bab ini akan di jelaskan tampilan hasil dari aplikasi yang telah dibuat,

BAB IV HASIL DAN PEMBAHASAN

BAB IV IMPLEMENTASI DAN EVALUASI SISTEM

BAB III METODE PENELITIAN DAN PERANCANGAN SISTEM

I.2 Identifikasi Masalah... I-2. I.3 Rumusan Masalah... I-2. I.4 Tujuan... I-3. I.5 Manfaat... I-3. I.6 Batasan Masalah... I-3

BAB III LANDASAN TEORI

Membangun Aplikasi Berbasis Web Dengan CodeIgniter Framework. Helmy Faisal Muttaqin

BAB IV ANALISIS DAN PERANCANGAN PERANGKAT LUNAK

BAB IV IMPLEMENTASI DAN PENGUJIAN

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

Aplikasi Document Imaging untuk PT. XYZ dapat diakses melalui web browser

BAB III LANDASAN TEORI

BAB IV IMPLEMENTASI DAN PENGUJIAN SISTEM

BAB II STUDI PUSTAKA 2.1 CODE GENERATOR

BAB 3 ANALISIS DAN PERANCANGAN. merancang tampilan e-commerce. Dengan fitur-fitur yang sederhana seperti

Transkripsi:

BAB III ANALISIS Bab ini berisi analisis mengenai aplikasi web target code generator, analisis penggunaan framework CodeIgniter dan analisis perangkat lunak code generator. 3.1 APLIKASI YANG DITANGANI OLEH CODE GENERATOR Telah dijelaskan pada Subbab 2.2 bahwa aplikasi web dilihat dari sisi fungsionalitasnya dapat dibagi menjadi 9 jenis yaitu: Informasional, interaktif, transaksional, workflow-oriented, lingkungan kerja kolaboratif, komunitas online, portal, semantic web,dan ubiquitous. Dari 9 jenis aplikasi tersebut, aplikasi web tipe informasional, interaktif dan transaksional merupakan aplikasi web yang paling umum digunakan. Model dari ketiga jenis aplikasi web tersebut tidak ditujukan spesifik terhadap suatu masalah tertentu. Misalnya model aplikasi informasional dapat diterapkan sebagai aplikasi web yang menampilkan sebuah situs katalog, apapun jenis katalognya. Pada contoh ini, aplikasi web hanya bertugas menampilkan apa yang dimiliki, tanpa harus memperhatikan business rule dari sebuah perusahaan. Hal ini yang membuat aplikasi web tipe informasional, transaksional, dan interaktif. menjadi model yang lebih umum. Apabila dibandingkan dengan aplikasi yang lain, misalnya aplikasi web tipe workflow-oriented yang harus bergantung pada cara kerja dari suatu pengguna yang spesifik, maka aplikasi web informasional, transaksional dan interaktif bersifat lebih umum. Hal lain yang membuat ketiga tipe aplikasi web tersebut bersifat lebih umum adalah penggunaannya dalam bagian dari tipe aplikasi lain. Contoh dari kasus ini adalah implementasi ketiga model aplikasi ini pada aplikasi web portal. Dalam aplikasi web jenis portal, model informasional diterapkan pada bagian yang menampilkan informasi tentang portal tersebut. Selain itu informasi mengenai pengguna lain yang terdaftar menjadi member dari portal tersebut juga ditampilkan dengan model informasional. Penerapan model transaksional pada III-1

III-2 aplikasi portal dapat dilihat pada bagian registrasi anggota. Pada bagian registrasi tersebut, pengguna diminta untuk mengisi form-form yang bersifat interaktif. Penerapan model transaksional pada aplikasi portal bisa dilihat pada beberapa contoh aplikasi portal, misalnya pada online shopping mall yang menyediakan transaksi untuk berbelanja secara online dan mungkin menyediakan layanan yang bisa berkoneksi dengan bank sebagai cara pembayaran transaksi. Dalam <tabel> ditunjukkan secara lengkap penggunaan tipe informasional, interaktif, dan transaksional dalam jenis aplikasi yang lain. Tabel III-1 Penggunaan Tipe Informasional, Interaktif, dan Transaksional pada Tipe Aplikasi Lain No. Tipe Aplikasi Informasional Interaktif Transaksional 1. Workflow-oriented Ada Ada Optional 2. Linkungan kerja kolaboratif Ada Ada Optional 3. Komunitas Online Ada Ada Optional 4. Portal Ada Ada Optional 5. Semantic Web Application Ada Ada Ada 6. Alikasi Ubiquitous Ada Ada Ada Dari pembahasan tersebut, dapat ditarik kesimpulan bahwa ketiga model aplikasi ini dapat dianggap sebagai model yang umum dari sebuah aplikasi web. Atas dasar ini, maka ketiga jenis aplikasi web tersebut dijadikan aplikasi web yang dipilih sebagai aplikasi web yang akan ditangani oleh code generator. Dalam subbab ini akan dijelaskan mekanisme dari masing-masing tipe aplikasi web dan bagaimana skema aplikasi-aplikasi web tersebut apabila diimplementasi dalam konsep objek menggunakan skema Model-View-Controller. 3.1.1 Aplikasi Web Informasional Web aplikasi yang bersifat informasional berfungsi untuk menampilkan informasi yang diminta oleh pengguna. Pengguna tidak perlu banyak memasukan perintah untuk menampilkan sesuatu. Yang dilakukan oleh pengguna hanyalah meminta sebuah informasi melalui sebuah link web dari program client, lalu server akan memberikan halaman web yang berisi informasi yang diminta. Pengguna tidak memasukkan data apapun untuk diproses lebih lanjut oleh aplikasi web.

III-3 Gambar III-1 Mekanisme aplikasi web informasional Gambar III-1 menunjukkan mekanisme aplikasi web informasional. Request yang dikirim oleh pengguna melalui program client. Server web akan menerima request informasi tersebut dan mengambil data mentah dari server basis data. Setelah itu, data yang sudah diambil dari basis data ditampilkan sesuai dengan keinginan penggguna melalui sebuah halaman web. Gambar III-2 Skema objek aplikasi web informasional Gambar III-2 menunjukkan skema objek dari aplikasi web informasional. Dalam aplikasi web informasional, terdapat 3 komponen penting. Bagian Controller menerima request dari pengguna dan meneruskan request tersebut ke Model. Model bertugas untuk mengambil data yang diminta oleh pengguna dari basis data. Data tersebut kemudian diolah oleh controller dan ditampilkan oleh view dengan format sebuah halaman web. 3.1.2 Aplikasi Web Interaktif Gambar III-3 Mekanisme aplikasi web interaktif Aplikasi web interaktif berfungsi untuk menerima masukan dari pengguna dan mengolah data masukan tersebut untuk keperluan tertentu. Dalam aplikasi web interaktif, biasanya pengguna diminta untuk memasukkan data dalam berbagai

III-4 form. Data yang dimasukkan oleh pengguna diolah oleh aplikasi dan pengguna bisa melihat hasil dari pengolahan data tersebut. Hasil pengolahannya bisa ditampilkan dalam bentuk halaman web. Pada Gambar III-3 ditunjukkan mekanisme kerja dari aplikasi web interaktif. Gambar III-4 Skema objek aplikasi web interaktif Gambar III-4 menunjukkan skema objek dari aplikasi web interaktif. Komponen penting dalam aplikasi web interaktif terdiri atas 4 bagian. Fungsi model dan controller dalam aplikasi ini mirip dengan model pada aplikasi web informasional. Kemampuan yang ditambahkan pada model dalam aplikasi interaktif adalah kemampuan untuk menyimpan data ke basis data. Sedangkan fungsi tambahan dalam controller-nya adalah kemampuan untuk mengolah data yang dikirimkan oleh pengguna. Aplikasi ini memiliki 2 komponen view. Fungsi dari komponen view pertama adalah untuk menerima input dari pengguna. Komponen view ini biasanya akan berbentuk form input. Komponen view yang lain serupa dengan view pada aplikasi web informasional, yaitu komponen view yang bertanggung jawab atas tampilan hasil pengolahan data. 3.1.3 Aplikasi Web Transaksional Aplikasi web transaksional berfungsi untuk mengakomodasi transaksi secara online. Secara garis besar, aplikasi ini merupakan gabungan dari aplikasi web informasional dan interaktif, ditambah dengan kemampuan untuk berkomunikasi dengan aplikasi lain yang berhubungan dengan transaksi yang dilakukan. Pengguna memasukkan data melalui form, lalu data tersebut disimpan ke dalam basis data. Apabila pengguna memutuskan untuk melakukan transaksi, maka data

III-5 transaksi ini akan disimpan dalam basis data dan kemudian dikirimkan juga ke aplikasi lain yang menangani pembayaran untuk diproses lebih lanjut. Komunikasi dengan aplikasi lain ini sangat bergantung pada kasus dan layanan yang disediakan oleh aplikasi luar tersebut. Pada umumnya, komunikasi ini dilakukan dengan web service. Gambar III-5 menunjukkan cara kerja aplikasi web transaksional. Gambar III-5 Mekanisme aplikasi web transaksional Gambar III-6 Skema objek aplikasi web transaksional Pada Gambar III-6 ditunjukkan skema objek dari aplikasi web transaksional. Skema tersebut merupakan pengembangan dari aplikasi interaktif dengan tambahan satu komponen model. Komponen model tambahan ini berfungsi untuk melakukan komunikasi dengan aplikasi lain. Selain itu, pengembangan dilakukan juga terhadap komponen controller. Controller pada aplikasi transaksional juga berfungsi untuk melakukan request terhadap aplikasi luar.

III-6 3.2 ANALISIS PEMANFAATAN FRAMEWORK CODEIGNITER Dalam pengembangan aplikasi Code Generator akan digunakan framework CodeIgniter, baik sebagai dasar pembangkitan kode aplikasi target maupun sebagai framework pembantu pembangunan CodeGenerator. 3.2.1 CodeIgniter Sebagai Framework Aplikasi yang Dibangkitkan Kode aplikasi yang dibangkitkan akan menggunakan CodeIgniter sebagai dasar dari strukturnya. Kelas-kelas yang akan dibangkitkan akan sesuai dengan kaidah dalam CodeIgniter yang telah disebutkan dalam Subbab 2.3.5. Kode hasil pembangkitan harus diintegrasikan ke dalam CodeIgniter agar dapat dijalankan dan diakses melalui web. Dalam Gambar III-7 ditunjukkan bagaimana kode hasil pembangkitan dapat dimanfaatkan oleh pengguna. Gambar III-7 Pemanfaatan Kode Hasil Pembangkitan Dalam Gambar III-7, dijelaskan bahwa kode kelas Controller, Model, dan View hasil pembangkitan CodeGenerator masing-masing dimasukkan ke dalam direktori sesuai dengan jenis kodenya seperti yang telah dijelaskan dalam Subbab 2.3.5.2.

III-7 3.2.2 CodeIgniter Sebagai Framework Aplikasi Code Generator Pembangunan aplikasi Code Generator sendiri akan menggunakan CodeIgniter sebagai framework-nya. Setiap kelas akan diimplementasikan sesuai dengan struktur kelas CodeIgniter. Oleh karena CodeIgniter menggunakan konsep objek dan model MVC, maka analisis dan perancangan perangkat lunak Code Generator akan didasarkan pada framework CodeIgniter. Pembuatan rancangan kelas-kelas dalam aplikasi Code Generator akan dibuat sesuai dengan aturan-aturan yang dipakai dalam CodeIgniter. Selain itu, ada beberapa library yang disediakan oleh CodeIgniter yang akan digunakan dalam pengembangan Code Generator seperti library yang berhubungan dengan File ZIP, library pembuatan HTML, library akses basis data, dan lain-lain. Detail skema arsitektur Code Generator dan posisi CodeIgniter dalam Code Generator dapat dilihat pada <nomor gambar>. Models Controllers Library Pengguna Views CodeIgniter Code Generator Gambar III-8 Arsitektur Code Generator 3.3 ANALISIS APLIKASI CODE GENERATOR Code generator yang akan dibuat dalam Tugas Akhir ini adalah sebuah code generator untuk membangkitkan kode aplikasi web. Pada subbab ini akan dijelaskan gambaran umum aplikasi code generator, analisis mengenai metode

III-8 code generator, analisis kebutuhan aplikasi code generator serta model use-case dan model analisis perangkat lunak dari aplikasi code generator. 3.3.1 Gambaran Umum Aplikasi Code Generator Gambar III-9 Gambaran umum code generator Aplikasi Code Generator ini adalah aplikasi yang dapat membangkitkan kode aplikasi web dari masukan template dan konfigurasi basis data yang diberikan oleh pengguna. Pengguna mengakses Code Generator melalui web browser mereka secara online. Aplikasi ini menerima input dari pengguna berupa konfigurasi basis data dan file template rancangan program yang akan menjadi acuan pembangkitan. Setelah itu, proses pembangkitan kode akan dilakukan secara otomatis dan pengguna bisa men-download hasilnya. Gambaran umum cara kerja Code Generator ditunjukkan pada Gambar III-9. Kode yang diproses oleh code generator menggunakan konsep objek dengan pola MVC. Dengan konsep MVC, pengguna bisa mengganti salah satu bagian dari template tanpa harus mengubah keseluruhan kode aplikasi. Pengguna masih bisa melakukan penyuntingan pada kode yang dibangkitkan, dengan syarat tidak mengubah bagain-bagian khusus yang akan mengganggu kode hasil pembangkitan.

III-9 Konfigurasi basis data yang dimasukan dapat berupa file definisi basis data berformat SQL atau bisa juga berupa konfigurasi koneksi ke basis data yang sudah pernah dibuat dan dapat diakses secara langsung tabel-tabelnya. Konfigurasi dan definisi basis data ini akan ditangani oleh bagian Database Processor pada aplikasi. Untuk template rancangan kode program, digunakan file template yang berformat JavaScript Object Notation (JSON). Template ini akan diproses oleh bagian Template Processor pada aplikasi. Setelah semua informasi sudah dari pengguna sudah dimasukkan ke dalam program, maka pengguna bisa melakukan pembangkitan kode sesuai dengan apa yang telah mereka berikan pada Code Generator. Kedua informasi penting mengenai basis data dan template akan diolah oleh bagian Generator dalam aplikasi yang akan menghasilkan kode program yang telah dimasukkan ke dalam file arsip berformat ZIP. 3.3.2 Analisis Metode Code Generation yang Digunakan Aplikasi code generator ini akan memanfaatkan beberapa metode code generation yang sudah dijelaskan pada Subbab 2.1.2. Metode code generation yang digunakan adalah Tier Generator dan Inline-Code Expander. Karena aplikasi code generator menggunakan kedua metode tersebut, maka aplikasi Code Generator dapat dikategorikan sebagai generator aktif. Berikut penjelasan dari pemanfaatan kedua model generator tersebut. 3.3.2.1 Tier Generator Dalam aplikasi code generator, model tier generator digunakan untuk membangkitkan masing-masing tier dari aplikasi web yang ingin dibangkitkan. Mulai dari pembangkitan kode model secara otomatis sesuai dengan rancangan basis data yang digunakan, pembangkitan kode controller sesuai dengan jenis aplikasi web yang dibuat, baik informasional, interaktif, atau transaksional. Serta pembangkitan kode view yang disesuaikan dengan desain milik pengguna.

III-10 Aplikasi code generator memanfaatkan struktur framework CodeIgniter yang menggunakan model MVC dan memisahkan ketiga layer sesuai dengan aturan yang digunakan, yaitu kelas model sebagai layer basis data, kelas controller sebagai layer control, dan kelas view atau dalam codeingiter dibuat dengan bentuk file berformat html sebagai presentation layer. Sumber meta-data yang dipakai berasal dari file template masukan pengguna dan skema basis data yang digunakan. Meta-data tersebut kemudian diolah oleh aplikasi code generator kemudian akan digabungkan dengan template kode standar yang dipakai oleh aplikasi. Hasil penggabungan tersebut menjadi suatu kode kelas yang dapat diimplementasi langsung ataupun dapat dimodifikasi oleh pengembang. 3.3.2.2 Inline-Code Expander Kode yang dibangkitkan oleh aplikasi code generator berasal dari file-file template yang berisi keyword-keyword yang bisa di-expand oleh code generator. Metode ini mengikuti model inline-code expander. Hasil kode yang dibangkitkan dapat ditambah kembali oleh programmer, selama tidak mengubah kode yang sudah ada. Beberapa template sudah disediakan oleh aplikasi ini sesuai dengan aplikasi web yang akan dibangkitkan. Untuk mengimplementasikan metode ini, dalam file template terdapat keywordkeyword khusus yang hanya dikenali oleh aplikasi code generator. Keywordkeyword ini nantinya akan digantikan oleh kode program yang telah dibangkitkan, sesuai dengan aturan yang dipakai oleh aplikasi code generator. 3.3.3 Analisis Kode Modul Aplikasi Target Aplikasi Code Generator membutuhkan informasi yang cukup untuk melakukan pembangkitan kode aplikasi milik pengguna. Informasi yang dibutuhkan tersebut bergantung pada tipe aplikasi yang akan dibangkitkan, apakah tipe informasional, interaktif, atau transaksional.

III-11 Seperti yang telah dijelaskan pada Subbab 3.1, pada Tabel III-2, Tabel III-3, dan Tabel III-4 ditunjukkan tanggung jawab dari masing-masing kelas (Model-View- Controller) dalam aplikasi web informasional, interaktif, dan transaksional. Tabel III-2 Tanggung Jawab Kelas Pada Aplikasi Web Informatif No. Kelas Tanggung Jawab 1. Model Mengakses data dari basis data 2. Control Menerima request halaman yang ditampilkan 3. View Menampilkan data Tabel III-3 Tanggung Jawab Kelas pada Aplikasi Web Interaktif No. Kelas Tanggung Jawab 1. Model Mengakses data dari basis data 2. Control 1. Menerima request halaman yang ditampilkan, 2. Mengolah data yang diberikan oleh pengguna 3. View 1. Menerima masikan data dari pengguna 2. Menampilkan data Tabel III-4 Tanggung Jawab Kelas pada Aplikasi Web Transaksional No. Kelas Tanggung Jawab 1. Model 1. Mengakses data dari basis data 2. Berkomunikasi dengan aplikasi lain melalui web-service 2. Control 1. Menerima request halaman yang ditampilkan, 2. Mengolah data yang diberikan oleh pengguna 3. View 1. Menampilkan data 2. Menampilkan data 3.3.3.1 Kelas-Kelas Bertipe Model Sebuah kelas Model biasanya merupakan sebuah kelas yang memetakan tabel dalam basis data ke dalam program yang dijalankan. Dari ketiga tabel tersebut dapat dilihat bahwa Kelas Model merupakan kelas yang memiliki banyak kode akses ke basis data. Kode-kode ini memiliki pattern yang mirip satu sama lain sehingga bisa digeneralisasikan sebagai 4 jenis fungsi, yaitu: 1. Select atau find, yaitu fungsi untuk mengambil data dari basis data. 2. Insert atau add, yaitu fungsi untuk menambah data ke dalam basis data 3. Update, yaitu fungsi untuk mengubah data dalam basis data. 4. Delete, yaitu fungsi untuk menghapus data dari basis data.

III-12 Keempat jenis fungsi tersebut dapat dijadikan sebagai fungsi default dari kelas model yang dibangkitkan oleh aplikasi code generator. Apabila pengguna ingin memasukkan fungsi tambahan dengan query yang lebih kompleks, maka pengguna dapat mendefinisikannya ke dalam template yang diberikan. Adapun fungsi kelas model sebagai penyedia dan penerima web-service tidak akan ditangani oleh aplikasi Code Generator karena sifat web-service yang bermacam-macam dan tidak bisa diambil benang merah kesamaan dari setiap service. Dari fungsi-fungsi tersebut, maka informasi yang dibutuhkan oleh code generator untuk membuat sebuah Kelas Model yang akan dibangkitkan adalah: 1. Nama tabel basis data yang berkaitan dengan kelas model yang dimaksud. 2. Struktur dari tabel basis data. 3. Definisi fungsi tambahan apabila pengembang ingin menambah fungsi lain, yang meliputi: nama fungsi, parameter fungsi, dan query yang akan dijalankan oleh fungsi. Code Generator mendapatkan informasi-informasi tersebut langsung dari basis data dengan cara mengakses meta-data dari field-field tabel, atau dari file template yang diberikan oleh pengguna. Dengan informasi tersebut, kode dari kelas model dapat dibangkitkan. Pengembangan kelas model oleh pengguna masih dimungkinkan. Pengguna dapat membuat fungsi lain selain fungsi standar dan query tambahan yang didefinisikan dalam file template dengan langsung menambahkan kode dalam file hasil pembangkitan. 3.3.3.2 Kelas-Kelas Bertipe Controller Kelas-kelas controller akan dibangkitkan dengan layout default dari Code Generator. Selain itu, fungsi dalam kelas controller dapat dibangkitkan dengan menggunakan informasi dari pengguna. Sesuai tanggung jawab dari masing-

III-13 masing controller, seperti yang telah ditunjukkan dalam Tabel III-2, Tabel III-3, dan Tabel III-4, fungsi standar yang akan dibangkitkan oleh Code Generator adalah sebagai berikut: 1. Fungsi index, yaitu fungsi yang akan memanggil halaman utama dari aplikasi yang dibangkitkan. 2. Fungsi yang menampilkan semua data yang ada dalam tabel basis data. 3. Fungsi yang menampilkan detail dari salah satu entry dalam basis data. 4. Khusus untuk aplikasi tipe interaktif dan transaksional, akan ditambahkan fungsi untuk menampilkan form untuk menambah dan mengubah data yang sudah ada dalam basis data. Selain fungsi tersebut, kana dibuat juga fungsi untuk memroses form penambahan dan pengubahan data. Pengembangan lebih lanjut kelas-kelas controller ini masih dapat dilakukan oleh pengguna. Pengguna dapat menambahkan fungsi-fungsi lain yang akan memroses data secara berbeda dengan fungsi standar dan menampilkan halaman web yang telah dibuat sendiri oleh pengguna, tentunya tetap memperhatikan kaidah yang digunakan dalam pengembangan aplikasi yang menggunakan framework CodeIgniter sebagai dasar dari aplikasi yang dibangkitkan. 3.3.3.3 Kelas-Kelas Bertipe View Kelas bertipe view merupakan kelas yang paling kompleks karena akan melibatkan desain antarmuka yang sifatnya sangat bebas untuk dimodifikasi oleh pengembang. Oleh karena itu, aplikasi Code Generator tidak menangani kelas bagian view secara detail. Kelas bertipe view akan menggunakan layout standar yang telah dibuat sebelumnya dalam Code Generator. Ada 2 jenis layout antarmuka yang bisa dibangkitkan oleh aplikasi Code Generator, yaitu: 1. Layout untuk menampilkan data Layout ini menggunakan tabel HTML untuk menampilkan data yang didapat dari dari basis data dengan isi data sesuai dari apa yang telah diolah oleh kelas controller.

III-14 2. Layout form input data Layout ini menggunakan form HTML untuk menerima masukan data dari pengguna aplikasi target. Data masukan kemudian diolah oleh kelas controller. Pengembangan dari kelas view oleh pengguna masih dimungkinkan. Apabila pengguna ingin mengubah tampilan hasil pembangkitan, maka pengguna dapat membuat sebuah rancangan halaman web yang disisipi kode PHP untuk menampilkan data yang dimaksud sesuai dengan standar yang digunakan oleh framework CodeIgniter. 3.3.4 Analisis Kebutuhan Aplikasi Code Generator Seperti disebutkan dalam Subbab 3.3.1, aplikasi code generator dapat membangkitkan kode modul aplikasi target dari informasi yang diberikan pengguna berupa skema basis data dan file template masukan. File template masukan berisi rancangan modul perangkat lunak yang akan dibangkitkan. Skema basis data yang digunakan diambil langsung dari server basis data milik pengguna. Pengguna bisa menggunakan basis data yang sudah ada, ataupun membuat basis data baru melalui aplikasi code generator ini. Dari penjelasan tersebut, dapat diambil beberapa spesifikasi kebutuhan untuk aplikasi code generator. Spesifikasi kebutuhan tersebut adalah: 1. Pengisian konfigurasi basis data untuk koneksi ke basis data. 2. Pemilihan basis data di server pengguna apabila basis data yang berhubungan dengan aplikasi target sudah ada. 3. Pembuatan basis data baru beserta upload definisi basis datanya apabila basis data yang berhubungan dengan aplikasi target belum ada. 4. Upload file template masukan sebagai rancangan aplikasi 5. Pembangkitan kode aplikasi target, dengan kemampuan untuk menambah fungsi custom ke dalam template.

III-15 3.3.5 Model Use-case Aplikasi Code Generator System Mengisi konfigurasi basis data <<extend>> Mengupload file definisi basis data DBMS Mengupload file template Pengguna Membangkitkan kode aplikasi Gambar III-10 Diagram use-case code generator Dari analisis kebutuhan yang dibahas pada Subbab 3.3.4, dibuat sebuah model use-case untuk aplikasi code generator. Aktivitas yang dapat dilakukan pengguna terhadap aplikasi Code Generator ini dapat dibagi menjadi 4 bagian, yaitu: 1. Mengisi konfigurasi basis data 2. Meng-upload file definisi basis data 3. Meng-upload file template 4. Membangkitkan kode aplikasi Diagram use-case dari aplikasi Code Generator ini ditunjukkan pada Gambar III-10. 3.3.5.1 Mengisi konfigurasi basis data Aktivitas ini merupakan aktivitas pertama yang dapat dilakukan oleh pengguna terhadap aplikasi Code Generator. Dalam aktivitas ini, pengguna dapat mengisi konfigurasi basis data yang akan digunakan oleh apliaksi yang akan dibangkitkan. Pengguna juga dapat memilih untuk menggunakan data dari basis data yang sudah ada ataupun membuat definisi data yang baru.

III-16 Ada 2 skenario dari aktivitas mengisi konfigurasi basis data, yaitu: 1. Skenario Normal Pengguna memilih untuk membuat basis data baru dari file definisi 2. Skenario Alternatif Pengguna memilih untuk menggunakan skema basis data yang sudah ada Kedua skenario tersebut dapat dilihat pada Tabel III-5 dan Tabel III-6. Tabel III-5 Konfigurasi basis data - Membuat basis data baru Aksi Pengguna 1. Mengisi konfigurasi awal basis data 2. Memilih untuk membuat basis data baru 3. Menekan tombol submit Reaksi Sistem 4. Melakukan validasi pada konfigurasi yang dimasukkan 5. Mencoba melakukan koneksi ke basis data 6. (Koneksi gagal) Menampilkan pesan gagal dan meminta user untuk mengisi kembali koneksi (kembali ke langkah 1) (Koneksi berhasil) Menyimpan konfigurasi basis data 7. Menampilkan pesan sukses Tabel III-6 Konfigurasi basis data - Memakai basis data yang sudah ada Aksi Pengguna 1. Mengisi konfigurasi awal basis data 2. Memilih menggunakan basis data yang sudah ada 3. Menekan tombol submit Reaksi Sistem 4. Melakukan validasi pada konfigurasi yang dimasukkan 5. Mencoba melakukan koneksi ke basis data 6. (Koneksi gagal) Menampilkan pesan gagal dan meminta pengguna untuk mengisi kembali koneksi (kembali ke langkah 1) 8. Memilih salah satu basis data (Koneksi berhasil) Menyimpan konfigurasi basis data 7. Menampilkan basis data yang sudah terdefinisi 9. Menyimpan informasi tentang basis data yang terpilih.

III-17 3.3.5.2 Meng-upload file definisi basis data Dalam fitur ini, pengguna dapat meng-upload definisi basis data yang akan digunakan apabila pengguna belum mempunyai skema basis data yang sudah terdefinisi. Aktivitas ini bisa dilakukan apabila pengguna sudah mengisi konfigurasi basis data dan memilih untuk membuat basis data yang baru. File definisi basis data yang di-upload menggunakan format SQL. Skenario dari aktivitas ini dapat dilihat pada Tabel III-7. Tabel III-7 Meng-upload file definisi basis data Aksi Pengguna 1. Mengisi path ke file definisi basis data 2. Menekan tombol upload Reaksi Sistem 3. Mencoba melakukan koneksi ke basis data dengan konfigurasi yang telah disimpan 4. Membuat basis data baru berdasarkan definisi dari file yang telah di-upload 5. (Pembuatan basis data gagal) Menampilkan pesan kesalahan (Pembuatan basis data berhasil) Menampilkan pesan sukses 3.3.5.3 Meng-upload file template Dalam aktivitas ini, pengguna dapat meng-upload file template yang akan menjadi dasar dari pembangkitan kode aplikasinya. Pengguna meng-upload file template yang berformat JSON. Dalam file template tersebut, terdapat rancangan dari aplikasi yang akan dibangkitkan. Rancangan yang dimaksud adalah kerangka dari kelas-kelas yang akan dibangkitkan dan algoritma generik yang diimplementasi dalam kelas-kelas tersebut. Skenario dari aktivitas ini dapat dilihat pada Tabel III-8. Tabel III-8 Meng-upload file template Aksi Pengguna 1. Mengisi path ke file template 2. Menekan tombol upload Reaksi Sistem 3. Melakukan validasi terhadap file template

III-18 Aksi Pengguna Reaksi Sistem 4. (File template tidak valid) Menampilkan pesan kesalahan dan meminta user memperbaiki file template (File template valid) menyimpan file template di server 3.3.5.4 Membangkitkan kode aplikasi Aktivitas ini akan membangkitkan kode aplikasi berdasarkan template dan konfigurasi yang diberikan oleh pengguna. Semua file source code akan dimasukkan ke dalam satu file arsip berformat ZIP. File ZIP ini dapat didownload oleh pengguna ke komputernya masing-masing. Skenario dari aktivitas ini dapat dilihat pada Tabel III-9. Tabel III-9 Membangkitkan kode aplikasi Aksi Pengguna 1. Memilih menu generate source code 9. Men-download file ZIP Reaksi Sistem 2. Membaca file template 3. Melakukan parsing file template 4. Mencoba melakukan koneksi ke basis data dengan konfigurasi yang telah disimpan 5. Mengambil skema basis data untuk dimasukkan ke dalam source code 6. Membuat file yang berisi kode kelas. 7. Memasukkan file-file kode kelas ke dalam file ZIP 8. Menampilkan link ke file ZIP agar user bisa mendownloadnya. 10. Mengambil file ZIP 11. Mentransfer file ke komputer pengguna 3.3.6 Model Analisis Aplikasi Code Generator Dalam model analisis ini akan dijelaskan skema kelas dan urutan pengerjaan aktivitas dari code generator. Kelas-kelas merupakan dasar pengembangan untuk implementasi aplikasi code generator. 3.3.6.1 Mengisi konfigurasi basis data Aktivitas ini memanfaatkan 3 kelas dalam aplikasi code generator, yaitu kelas PanelKonfigurasi sebagai kelas antarmuka, ControlKonfigurasi sebagai kelas

III-19 kontrol, dan kelas-kelas model yaitu KonfigurasiDB sebagai kelas yang memodelkan konfigurasi dan definisi basis data. Diagram hubungan ketiga kelas dan sequence diagram dari aktivitas ini dapat dilihat pada Gambar III-11, Gambar III-12, dan Gambar III-13. PanelKonfigurasi ControlKonfigurasi KonfigurasiDB Gambar III-11 Diagram kelas use-case mengisi konfigurasi basis data <<boundary>> : PanelKonfigurasi <<control>> : ControlKonfigurasi <<entity>> : KonfigurasiDB : Pengguna 1 : Isi form() 2 : Mengirim data form() 3 : Cek konfigurasi() 4 : Hasil pengujian konfigurasi 5 : Simpan konfigurasi() 6 : Tampilkan pesan sukses() Gambar III-12 Sequence diagram - Pengguna memilih untuk membuat basis data baru dari file definisi

III-20 <<boundary>> : PanelKonfigurasi <<control>> : ControlKonfigurasi <<entity>> : KonfigurasiDB : Pengguna 1 : Isi form() 2 : Memilih menggunakan basis data yang ada() 3 : Mengirim data form() 4 : Cek konfigurasi() 5 : Hasil pengujian konfigurasi 6 : Simpan Konfigurasi() 7 : Ambil daftar basis data yang sudah ada() 9 : Perlihatkan daftar basis data() 8 : Daftar basis data 10 : Pilih basis data() 11 : Mengirim data form() 12 : Simpan basis data terpilih() Gambar III-13 Sequence diagram - Pengguna memilih untuk menggunakan skema basis data yang sudah ada 3.3.6.2 Meng-upload file definisi basis data PanelUpload ControlUploadDB KonfigurasiDB Gambar III-14 Diagram kelas use-case meng-upload file definisi basis data Aktivitas ini memanfaatkan 3 kelas dalam aplikasi code generator, yaitu kelas PanelUpload sebagai kelas antarmuka, ControlUploadDB sebagai kelas control,

III-21 dan kelas KonfigurasiDB sebagai kelas model dari definisi database. Diagram hubungan ketiga kelas dan sequence diagram dari aktivitas ini dapat dilihat pada Gambar III-14 dan Gambar III-15. <<boundary>> : PanelUpload <<control>> : ControlUploadDB : Pengguna 1 : Mengisi path file definisi() 2 : Request Upload file definisi() 3 : File Definisi Basis data 4 : Tampilkan pesan berhasil() Gambar III-15 Sequence diagram Meng-upload file definisi basis data 3.3.6.3 Meng-upload file template Aktivitas ini memanfaatkan 3 kelas dalam aplikasi code generator, yaitu kelas PanelUpload sebagai kelas antarmuka, ControlUploadTemplate sebagai kelas control, dan kelas Template sebagai kelas model dari template rancangan yang diproses. Diagram hubungan ketiga kelas dan sequence diagram dari aktivitas ini dapat dilihat pada Gambar III-16 dan Gambar III-17. PanelUpload ControlUploadTemplate Template Gambar III-16 Diagram kelas use-case meng-upload file template

III-22 <<boundary>> : PanelUpload <<control>> : ControlUploadTemplate <<entity>> : Template : Pengguna 1 : Isi path file template() 2 : Request upload file template() 3 : File template 4 : Validasi file template() 5 : Hasil validasi 6 : Simpan Template() Gambar III-17 Sequence diagram Meng-upload file template 3.3.6.4 Membangkitkan kode aplikasi KonfigurasiDB PanelGenerator ControlGenerator Template Gambar III-18 Diagram kelas use-case membangkitkan kode aplikasi Aktivitas ini memanfaatkan 5 kelas dalam aplikasi code generator, yaitu kelas PanelGenerate sebagai kelas antarmuka, ControlGenerator sebagai kelas control, dan kelas yang berfungsi sebagai model yang meliputi kelas KonfigurasiDB, kelas Template, dan kelas Outputsebagai kelas model dari konfigurasi, template rancangan, definisi basis data yang diproses, dan hasil keluaran aplikasi. Diagram hubungan keempat kelas dan Sequence diagram dari aktivitas ini dapat dilihat pada Gambar III-18 dan Gambar III-19

III-23 <<boundary>> : PanelGenerator <<control>> : ControlGenerator <<entity>> : KonfigurasiDB <<entity>> : Template : Pengguna 1 : Memilih generate() 2 : Request generate() 3 : Ambil konfigurasi() 4 : Konfigurasi 5 : Koneksi ke basis data() 6 : Ambil definisi basis data() 7 : definisi basis data 8 : Ambil Template() 9 : Template 10 : Generate Code() 11 : Create ZIP() 12 : Tampilkan link file ZIP() 13 : Download File() 14 : Request download file ZIP() 15 : File ZIP Gambar III-19 Sequence diagram - Membangkitkan kode aplikasi 3.3.6.5 Diagram Kelas Keseluruhan Gambar III-20 menunjukkan keseluruhan diagram kelas dari aplikasi Code Generator. Dapat dilihat pada gambar tersebut, aplikasi Code Generator memiliki total 10 kelas. Setiap kelas terbagi menjadi 3 jenis kelas, yaitu model, view, dan controller. Deskripsi singkat tipe dan tanggung jawab masing-masing kelas dapat dilihat pada Tabel III-10. Tabel III-10 Rincian kelas dalam aplikasi Code Generator No. Nama Kelas Tipe Tanggung Jawab 1. PanelKonfigurasi View Menampilkan halaman yang berhubungan dengan konfigurasi basis data

III-24 No. Nama Kelas Tipe Tanggung Jawab 2. PanelUpload View Menampilkan halaman yang berhubungan dengan upload file 3. PanelGenerator View Menampilkan halaman yang berhubungan dengan kegiatan pembangkitan kode 4. ControlKonfigurasi Controller Mengatur kegiatan konfigurasi 5. ControlUploadDB Controller Mengelola dan mengolah definisi basis data 6. ControlUploadTemplate Controller Mengelola dan mengolah template 7. ControlGenerator Controller Mengatur kegiatan pembangkitan kode 8. KonfigurasiDB Model Model dari konfigurasi dan definisi basis data 9. Template Model Model dari template rancangan perangkat lunak PanelGenerator ControlKonfigurasi PanelKonfigurasi ControlGenerator KonfigurasiDB ControlUploadDB Template ControlUploadTemplate PanelUpload Gambar III-20 Diagram kelas keseluruhan aplikasi Code Generator