Jumat, 15 Februari 2013

Apa Itu Framework?

Untuk memahami apa itu framework, mungkin ilustrasi berikut ini akan sendikit membantu kita untuk memahami apa itu framework.

Agus adalah seorang programmer freelance. Ia baru lulus kuliah dan sedang mencari kerja. Setelah cari sana sini melalui website ia kemudian mendapatkan order proyek pembuatan website. Dengan senang ia kerjakan proyek tersebut.

Ia mendesain sistem dan melakukan coding dari awal, sehingga cukup menguras energi.

Akhirnya proyek selesai dan client senang dengan pekerjaannya. Honor yang diterima lumayan besar. Kemudian client tersebut bersedia merekomendasikannya jika ada perusahaan lain yang ingin membuat website. Mission complete.


Dua minggu kemudian, perusahaan lain memesan pembuatan website dengan permintan fitur yang hampir sama dengan pemesan sebelumnya. Lansung saja proyek itu diterima dan dikerjakannya.

Agus kembali melihat kode program pada proyek pertamanya, mengedit bagian yang perlu dan menggunakannya pada proyek yang kedua, sehingga pada proyek kali ini ia berhasil mengerjakannya lebih cepat dari proyek pertama.

Dalam pembuatan proyek website kedua, Agus menyadari bahwa ada baigan-bagian perogram yang biasanya harus selalu ada untuk digunakan, misalnya kode untuk koneksi ke database MySql, membuat pagination untuk tampilan data, atau email. Dengan demikian, Agus membuat koleksi kode program yang bisa sewaktu-waktu ia gunakan jika ia membutuhkanya. Sehingga bisa menghemat tenaga dan waktunya dalam mengerjakan sebuah website.

Apa yang dilakukan Agus adalah cikal bakal sebuah framework, sehingga dalam pengertian yang sangat sederhana, framework dapat diartikan sebagai koleksi atau kumpulan potongan-potongan program yang disusun atau diorganisasikan sedemikian rupa, sehingga  dapat digunakan untuk membantu membuat aplikasi utuh tanpa harus membuat semua kodenya dari awal.

Menurut pengalaman saya, mengembangkan program yang dibuat oleh orang lain lebih sulit dibandingkan dengan membuat program tersebut dari awal, karena setiap programmer punya style/gaya yang berbeda-beda dalam programming(membuat program), parahnya lagi kebanyakan gaya yang dianut programmer adalah gaya 'langsung hajar', tidak ada dokumentasi dan tidak ada komentar/ keterangan dalam programnya

Bayangkan jika kita harus mengembangkan ulang program seperti itu !!? Misalkan saja kita akan menambahkan modul atau fitur baru, belum lagi kalau harus memperbaiki bug-bug errornya, tentu kita harus menguasai gaya programmingnya programmer tersebut. Celakanya lagi, kebanyakan program diproteksi/disembunyikan agar tidak mudah dimodifiksi, bahkan ada yang pakai enkripsi segala, bisa kriting otak kita mengembangkan program seperti itu, lebih baik membuat dari awal pakai gaya pemograman kita sendiri.

Melihat fenomena tersebut, banyak perusahaan yang mensyaratkan programmernya menguasai framework, faktanya bisa dilihat melalui lowongan kerja programmer, baik dimedia cetak maupun dimedia online. Alasannya jelas, dengan framework, gaya programmingnya sudah ditentukan menurut aturan dari framework tersebut, jadi tidak bisa lagi membuat program dengan gayanya sendiri-sendiri. Karena secara umum, programmer disuatu perusahaan sistemnya kontrak, jadi tingkat turn overnya cukup tinggi (gonta-ganti programmer adalah hal yang lumrah disuatu perusahaan).

Nah apabila program tersebut dikembangkan menggunkan framework, maka siapapun programmernya, asalkan dia menguasai framework, maka bisa dipastikan di bisa mengembangkan prgoram tersebut dengan muda, karena gaya programnya sudah diseragamkan oleh aturan framework, sampai disini saya kira sudah cukup jelas salah satu kegunaan dari framework.

Secara sederhana bisa dijelaskan bahwa framework adalah kumpulan fungsi (libraries), maka seorang programmer tidak perlu lagi membuat fungsi-fungsi (biasanya disebut kumpulan library) dari awal, programmer tinggal memanggil kumpulan library atau fungsi yang sudah ada didalam framerwork, tentunya cara menggunakan fungsi-fungsi itu sudah ditentukan oleh framework. Beberapa contoh fungsi-fungsi standar yang telah tersedia dalam suatu framework adalah fungsi paging, enkripsi, email, SEO, session, security, kalender, bahasa, manipulasi gambar, grafik, tabel bergaya zebra, validasi, upload, captcha, proteksi terhadap XSS(XSS filtering), template, kompresi, XML dan lain-lain.

Saat ini banyak sekali framework berbasis PHP, diantaranya yang paling populer adalah Zend Framework, Symphony, Prado, CakePHP, CodeIgniter (ini adalah favorit saya) dan lain-lain.

Menurut beberapa survei, CodeIgniter adalah framework yang paling mudah dipelajari, karena keserhanaan strukturnya dan kelengkapan dokumentasinya yang baik. Selain itu, kerapian kode (clean and healthy code) dan ukurannya yang ramping membuatnya lebih cepat diakses dibandingkan dengan framework lainya.

Perlu diketahui nyaris (bahkan mungkin semua) framework menggunakan konsep yang sama dalam membangun suatu aplikasi, yaitu konsep MVC (Model View Controller). Kesimpulannya, kalau kita memahami MVC, maka secara garis besar kigta sudah menguasai framework, apapun jenis frameworknya. Dan satu lagi kuncinya, pemahaman terhadap OOP (Object Oriented Programming) akan sangat membantu dalam menguasai framework.

Sumber

Jumat, 11 Januari 2013

Tugas V MPS: DFD


Kelompok
  1. Hadi Purnomo (3115111099)
  2. Aeolin Prigen Sayekti (3115111109)
  3. Retno Tri Wulandari (3115111110)
  4. Rian Nur Cahyani (3115111123)
  5. Ferdi M Febrian S (3115111139)

Jumat, 04 Januari 2013

Tugas IV MPS: Prototyping

Tugas IV MPS:
 Posting kali ini adalah tugas ketiga yaitu prototyping. Berikut adalah gambaran prototype dari sebuah sistem, yaitu sistem kantin.

Tombol Pesan (menampilkan form pesanan)
Tombol Pemasok (menampilkan form suplier)
Tombol Admin (menampilkan form login)

Tanggal dan No. Pesanan akan terisi otomatis
No. Meja (meng-inputkan no meja pemesan)
Jenis Pesanan (memilih makanan atau minuman yang akan dipesan sesuai dengan list yang tersedia)
Jumlah Pesanan (banyak makanan atau minuman yang dipesan)
Tombol Add (menambahkan data pesanan pada tabel pesanan)
Tombol Del (menghapus data pesanan yang ditandai pada tabel pesanan)
Tabel pesanan (menunjukkan semua data makanan atau minuman yang dipesan beserta jumlahnya)
Tombol Cancel (menghapus semua data makanan atau minuman yang dipesan beserta jumlahnya)
Tombol Finish (Menyimpan data pesanan pada database dan menampilkan form outputpesanan)

Tanggal, No. Pesanan, No. Meja (data diperoleh dari form pesanan)
Tabel pesanan (menunjukkan semua data makanan atau minuman yang dipesan beserta jumlahnya)
Tombol Print (mencetak form output pesanan)


Tanggal dan ID Transaksi akan terisi otomatis
Jenis Pesanan (memilih barang yang akan dipasok sesuai dengan list yang tersedia)
Jumlah Pesanan (banyak barang yang dipasok)
Tombol Add (menambahkan data barang yang dipasok pada tabel pesanan)
Tombol Del (menghapus data barang yang dipasok yang ditandai pada tabel pesanan)
Tabel pesanan (menunjukkan semua data barang yang dipasok beserta jumlahnya)
Tombol Cancel (menghapus semua data barang yang dipasok beserta jumlahnya)
Tombol Finish (menyimpan data barang yang dipasok pada database)

Username (ID yang digunakan admin untuk login)
Password (Kata sandi yang digunakan admin untuk login)

Tabel Pesanan (diperoleh dari database pesanan)
Tombol Print (mencetak data keuangan)
Tombol Keluar (digunakan untuk logout admin)
Tabel Pemasok (diperoleh dari database pemasokan)
Tombol Print (mencetak data keuangan)
Tombol Keluar (digunakan untuk logout admin)

Pemasukan (Nominal yang diproleh dari form outputpesanan)
Pengeluaran (Nominal yang diproleh dari form suplier)
Total (Pemasukan - Pengeluaran)
Tombol Print (mencetak data keuangan)
Tombol Keluar (digunakan untuk logout admin)


Kelompok
  1. Hadi Purnomo (3115111099)
  2. Aeolin Prigen Sayekti (3115111109)
  3. Retno Tri Wulandari (3115111110)
  4. Rian Nur Cahyani (3115111123)
  5. Ferdi M Febrian S (3115111139)


 

permen sunduk's blog Copyright © 2009 Cookiez is Designed by Ipietoon for Free Blogger Template