Perencanaan Bentuk Sistem Blog Engine Sederhana

1.     Persyaratan Sistem

Dalam membuat sistem blog engine sederhana, fungsional sistem minimal yang harus dipenuhi :

  • blog engine dapat memberikan blog area pribadi pada user yang telah registrasi.
  • user dapat menambah, memanajemen posting blog dan memberikan kebebasan mengelola kategori dari tulisan mereka.
  • setiap user dapat mengatur fitur yang berbeda.
  • setiap user memiliki halaman manajemen sendiri (back-end user) dan halaman yang dapataccessible untuk menampilkan posting yang telah dientri kepada pembaca secara luas.
  • pengunjung dapat memberi feedback terhadap tulisan user (yang berlaku sebagai author) dalam bentuk comment system.

2.     Desain Sistem

Ada 3 pembagian hak akses dalam sistem blog engine sederhana yang akan dibuat, yaitu sebagai berikut :

  1. Administrator
  2. Administrator dalam hal ini mempunyai tugas memanajemen member, data general setting, data profiledan data header. Rancangan area administrator dapat digambarkan dengan use case diagram berikut:

    Gambar 1. Use case diagram administrator
  3. Member
    • mempunyai satu profile yang berisi data diri member (about me) dan batasan hanya 1 foto member untuk ditampilkan bersama data diri.
    • halaman utama blog akan menampilkan 5 posting terbaru.
    • mengganti gambar header dengan salah satu template header yang disediakan web. Member tidak dapat mengganti header dengan upload gambar sendiri.
    • posting member yang ditampilkan pada halaman utama akan ditampilkan sebanyak 257 kata. Untuk lebih detail, disediakan link ‘read more’.
    • pengunjung dapat memposting blockquote dan syntax/code dengan ketentuan tag tertentu. Akan tetapi, syntax/code belum dapat ditampilkan multicolor dan disertai nomor baris.
  4. Member, yaitu user yang telah register sehingga mempunyai account dan mendapat halaman blog beserta URLnya. Member dapat mengatur blog, profile (isi halaman about me), mengganti setting umum blog page (header, judul blog, moto, URL name), serta melihat tampilan blog user sendiri (preview). Berikut use case diagram yang menggambarkan detail hak akses member yang ditawarkan blog engine.

    use_case_member_blog
    Gambar 2. Use Case diagram member

    Member mempunyai batasan pada menu yang dapat diaksesnya, yaitu :

  5. Tamu (Visitor)

Tamu merupakan pengunjung atau pembaca halaman blog yang dimiliki member. Hak aksesnya hanya berupa ijin melihat blog, about me dan memberikan komentar pada posting member.

Berikut use case diagram yang menggambarkan detail hak akses tamu yang ditawarkan blog engine :

use_case_visitor_blog
Gambar 3. Use Case diagram visitor

3.     Kebutuhan Sistem

Spesifikasi hardware dan software yang dibutuhkan developer dalam membuat website ini agar dapat berjalan normal :

Tabel 1. Spesifikasi hardware dan software yang dibutuhkan

Spesifikasi Tipe/Versi/Besar yang dianjurkan
CPU Pentium IV ke atas
Memori min 256 Mb
Harddisk min 20 Gb
Operating Sistem Linux, Windows XP, Vista
Browser IE7, Mozilla 3.0.5, Google Chrome, Opera 9.6.0 , Netscape
Open Source Software Web server bundle Apache2triad versi 1.5.4, Paket CodeIgniter 1.7.0, JQuery.1-2-6, datepicker,dan TinyMCE 3.2.1.1

Sebelum merancang interface, perlu dilakukan inisialisasi terhadap informasi umum blog engine yang akan dibuat. Berikut poin-poin informasi yang diputuskan penulis :

Nama blog engine : Bloggy.

Asumsi domain : www.bloggy.com

Member domain : www.bloggy.com/<nama_input_dari_member>

4.     Basis Data

Basis data sebuah blog engine kurang optimal jika hanya menggunakan satu database saja. Hal ini dikarenakan satu blog engine dapat mempunyai banyak member. Sedangkan masing-masing member diasumsikan mempunyai banyak posting. Maka, tidak optimal jika dihandle dengan satu database karena akan banyak redundancy di sana. Pada kasus ini, akan dipakai multiple database untuk efisiensi dan kemudahan manajemen data, rramework CI yang mendukung akses multiple database merupakan pilihan yang tepat untuk mengembangkan blog engine.

Berikut ini poin-poin penting dalam pembuatan database:

  • akan dibuat satu master database yang berisi tabel-tabel utama seperti tabel member serta tabel-tabel yang hanya menyimpan data satu baris setiap satu member.
  • database member (beserta tabel dan default value) akan dibangkitkan pada saat registrasiaccount.
  • nama database member bersifat unique. Nama database akan digabungkan dengan nomor id, sehingga operasi pemanggilannya saat dibutuhkan relative mudah. Misalnya, id member ‘A’ 131, maka nama database-nya db_131.
  1. Master database
  2. class_diagram_master_db
    Gambar 4. Class Diagram dari Master Database

    1)       Tabel member

    Tabel ini berfungsi menyimpan data-data member dari semua level baik administrator maupun member.

    Tabel 2.  Struktur Tabel member

    Field Name Allow Null Data Type Constraint Information
    id Not null Serial (integer) member_pkey (primary key) Default:nextval(’member_id_seq’::regclass)
    name character varying(255)
    uname character varying(255) Member_uname_key (unique key)
    passw text
    status smallint

    2)       Tabel header

    Tabel ini berfungsi menyimpan data-data nama file gambar header yang merupakan template header untuk gambar header yang dinamis.

    Tabel 3. Struktur Tabel header

    Field Name Allow Null Data Type Constraint Information
    idh Not null Serial (integer) header_pkey (primary key) Default:nextval(header_idh_seq’::regclass)
    theme character varying(255)
    fname character varying(255)

    3)       Tabel profile

    Tabel ini berfungsi menyimpan data diri user yang akan ditampilkan pada halaman aboutme.

    Tabel 4. Struktur Tabel profile

    Field Name Allow Null Data Type Constraint Information
    Idp Not null Serial (integer) profile_pkey (primary key) Default:nextval(profile_idp_seq’::regclass)
    Id Not null Serial (integer) Default:nextval(profile_id_seq’::regclass)
    profile_name character varying(100)
    Photo character varying(100)
    Birthday character varying(100)
    hometown character varying(50)
    Country character varying(50)
    affiliation Text
    hobby Text
    aboutme Text

    4)       Tabel gen_setting

    Tabel ini berfungsi menyimpan data setting blog member, berupa nama/judul blog dan moto yang akan ditampilkan di header, gambar header yang sedang aktif, dan alamat URL blog.

    Tabel 5. Struktur Tabel gen_setting

    Field Name Allow Null Data Type Constraint Information
    ids Not null Serial (integer) gen_setting_pkey (primary key) Default:nextval(gen_setting_ids_seq’::regclass)
    id Not null Serial (integer) Default:nextval(gen_setting _id_seq’::regclass)
    blog_name character varying(50)
    motto character varying(100)
    header character varying(255)
    url_blog character varying(255) gen_setting_url_blog_key (unique key)
  3. Database Member

Database member berisi data-data yang terus bertambah pada setiap member, dan pada implementasinya akan sering diakses setiap halaman blog dibaca dan traffic-nya cukup intens jika pengunjung menginput komentar.

Rancangan database member dapat digambarkan dalam bentuk class diagram sebagai berikut :

class_diagram_member_db
Gambar 5. Class Diagram database member

1)       Tabel blog

Tabel ini berfungsi menyimpan data posting member.

Tabel 6. Struktur Tabel blog

Field Name Allow Null Data Type Constraint Information
idb Not null Serial (integer) blog_pkey (primary key) Default:nextval(’blog_idb_seq’::regclass)
idcat Not Null Serial (integer) Default:nextval(’blog_idcat_seq::regclass)’
title Character varying(255)
subtitle text
content text
createdin timestamp without time zone
createdby character varying(100)
bstatus character varying(50)

2)       Tabel category

Tabel ini berfungsi menyimpan data kategori member.

Tabel 7. Struktur Tabel category

Field Name Allow Null Data Type Constraint Information
idcat Not null Serial (integer) category_pkey (primary key) Default:nextval(’category_idb_seq’::regclass)
category Character varying(100)

3)       Tabel comments

Tabel ini berfungsi menyimpan data komentar-komentar yang diterima member.

Tabel 8. Struktur Tabel comments

Field Name Allow Null Data Type Constraint Information
idc Not null Serial (integer) comments_pkey (primary key) Default:nextval(’comments_idc_seq’::regclass)
idb integer
name Character varying(100)
email Character varying(255)
content text
date Timestamp without zone

.

.

Moga Bermanfaat . . . Nerd

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s