Rabu, 19 September 2018

Sequence Diagram dalam Pemodelan Perangkat Lunak

Pada tahap desain software, seorang software designer merancang struktur software. Kerangka program dibuat disini. Maka dibuatlah diagram-diagram yang menggambarkan kerangka program. Salah satunya adalah sequence diagram yang merupakan bagian penting dari UML. Berikut adalah contoh sederhana penerapan sequence diagram untuk sebuah aplikasi yang sangat sederhana menggunakan java netbeans. Aplikasi terdiri dari sebuah tampilan frame yang memiliki dua inputan dan satu tombol. Jika tombol ini diklik, maka ditampilkan hasil penambahan kedua inputan. Dengan demikian, berikut sequence diagramnya.


Tugas programer adalah merealisasikan desain yang digambarkan pada sequence diagram. Jika dipetakan ke dalam kode program, maka dari sequence diagram di atas dibuat dua kelas yaitu NewJFrame dan ctrlOperasi. Kelas NewJFrame memiliki method jButton1MouseClicked. Sedangkan ctrlOperasi memiliki method Tambah. User memasukkan bil1 dan bil2. Kemudian ada interaksi lagi antara user dengan view NewJFrame yang menyebabkan pemanggilan method jButton1MouseClicked. Setelah itu dipanggil method ctrlOperasi.Tambah(a,b).

Begitulah cara membuat dan memetakan sequence diagram. Seorang programmer harus punya pengetahuan tentang ini agar dia bisa merealisasikan hasil desain seorang software designer. Software designer berbeda dengan graphic designer. Software designer merancang software, membagi-baginya ke dalam modul-modul dan membagi-bagikan kepada tim implementator yang terdiri dari para programmer. Beginilah sebuah team work software development yang ideal. Happy software designing!

Minggu, 26 Agustus 2018

Mapping dari CDM ke PDM

Langkah langkah yang dilakukan untuk mapping/memetakan ER diagram (CDM) ke tabel relasional (PDM) yaitu sebagai berikut:

1. Untuk setiap entitas kuat EK, buat tabel baru EK yang menyertakan seluruh simple atribut dan simple atribut dari composite atribut yang ada. Pilih salah satu atribut kunci sebagai primary key.

2. Untuk setiap entitas lemah EH, buat tabel baru EH dengan mengikutsertakan seluruh simple atribut. Tambahkan primary key dari entitas kuatnya (owner entity type) yang akan digunakan sebagai primary key bersama-sama partial key dari entitas lemah.

3. Untuk setiap multivalued atribut R, buatlah tabel baru R yang menyertakan atribut dari multivalue tersebut. Tambahkan primary key dari relasi yang memiliki multivalue tersebut. Kedua atribut tersebut membentuk primary key dari tabel R.

4. Untuk setiap relasi binary 1:1, tambahkan primary key dari sisi yang satu pada tabel yang berelasi dengannya. Begitu juga sebaliknya.

5. Untuk setiap relasi binary 1:N yang tidak melibatkan entitas lemah, tentukan mana sisi yang lebih “berat” (sisi N). Tambahkan primary key dari sisi yang “ringan” (berkardinalitas 1) ke tabel sisi yang lebih “berat” (berkardinalitas N). Maka primary key tersebut menjadi foreign key yang bukan primary di tabel berkardinalitas N.

6. Untuk setiap relasi binary M:N, buatlah tabel baru R dengan atribut seluruh simple atribut yang terdapat pada relasi biner tersebut. Tambahkan primary key yang terdapat pada kedua sisi ke tabel R. Kedua foreign key yang didapat dari kedua sisi tersebut digabung menjadi satu membentuk primary key dari tabel R.

7. Untuk setiap relasi lebih dari dua entitas, n-nary (ternary), meliputi dua alternatif yaitu:
   a. Buatlah tabel R yang menyertakan seluruh primary key dari entitas yang ikut serta. Sejumlah n foreign key tersebut akan membentuk primary key untuk tabel R. Tambahkan seluruh simple atribut yang terdapat pada relasi n-ary tersebut.
   b. Mengubah bentuk relasi ternary menjadi entitas lemah, kemudian memperbaiki relasi yang terjadi antara entitas lemah tersebut dengan entitas-entitas kuatnya dan melakukan algoritma mapping sesuai dengan aturan mapping.
8. Inheritance mewariskan primary key nya ke entitas turunannya. Bisa juga diset mewariskan semua atributnya pada entitas turunannya.

Rabu, 22 Agustus 2018

Main Kriptografi dengan OpenSSL

Ketika kita menggunakan  php, untuk keperluan enkripsi selain dengan mcrypt, kita juga bisa menggunakan openssl. Apalagi mcrypt sudah tidak disertakan pada php 7.2. Openssl bisa jadi pilihan tepat untuk kebutuhan kriptografi. Untuk bisa menggunakan library openssl, kita harus mengaktifkannya dengan mengedit file php/php.ini. Dan menghilangkan semicolon(;) di depan:
extension=php_openssl.dll
Setelah itu restart web server (apache)nya. Jika library openssl sudah diaktifkan, kita bisa mulai bermain kriptografi dengan menggunakan fungsi-fungsinya. Fungsi yang disediakan untuk enkripsi adalah:

Sabtu, 18 Agustus 2018

Main Kriptografi dengan Mcrypt

Ketika kita menggunakan php, untuk keperluan enkripsi disediakan library mcrypt. Untuk bisa menggunakan library ini, kita harus mengubah setting di file php.ini Hilangkan semicolon (;) yang ada di depan baris yang ada mcryptnya yaitu:

mcrypt.algorithms_dir=/usr/local/lib/libmcrypt.
mcrypt.modes_dir=/usr/local/lib/libmcrypt

Setelah itu restart web server (apache)nya. Jika library mcrypt sudah diaktifkan, kita bisa mulai bermain kriptografi dengan menggunakan fungsi-fungsinya. Fungsi yang disediakan untuk enkripsi adalah:

chipertext = mcrypt_encrypt(ALGORITMA, key, plaintext, MODE, iv)

Sedangkan untuk mendapatkan teks asli disediakan fungsi:

plaintext = mcrypt_decrypt(ALGORITMA, key, chipertext, MODE, iv)

Kamis, 16 Agustus 2018

Antara DFD dan UML sebagai Alat Pemodelan Perangkat Lunak

DFD (Data Flow Diagram) adalah diagram yang populer sebelum UML dikenal. Diagram ini menggambarkan aliran data dari proses-proses yang terjadi pada sebuah sistem/aplikasi. DFD sendiri memiliki 2 macam simbol, yaitu gane / sarson dan yourdon / de marco. Pada power designer 15 DFD disediakan dalam simbol Gane / Sarson. Ini yang membuat saya berfikir DFD yang saya kenal dulu tidak digunakan lagi. Ternyata ada 2 versi. DFD masih digunakan untuk menjelaskan sistem yang berbasis struktur. Sedangkan UML untuk sistem yang dibangun secara obyek oriented. Jika sudah mengenal, UML memang terasa lebih mengasyikkan. Karena beraneka ragamnya diagram akan membuat informasi yang disajikan sangat detail sehingga mendesain software dengan menggunakannya bisa membuat kita serasa mengkoding di atas kertas. Toh mayoritas aplikasi saat ini dikembangkan secara obyek oriented. Jadi tak ada keraguan untuk lebih prioritas mempelajari UML.

Minggu, 12 Agustus 2018

Sekilas tentang Mandatory dalam Database

Pada power designer, ketika membuat atribut di CDM, kadang kita mendapati pilihan yang perlu dicentang: M, P, D. M untuk mandatory, P untuk primary dan D untuk displayed. Jika centang P, maka otomatis M akan tercentang. Apa sebenarnya mandatory itu?

Mandatory menjelaskan bahwa suatu atribut atau kolom harus diisi. Jika mengisi record baru, kolom ini tidak boleh dikosongi. Karenanya kalau suatu kolom diset sebagai primary key, suatu kolom bersifat mandatory atau dengan kata lain wajib diisi.

Sabtu, 11 Agustus 2018

MVC dalam OOP

MVC (Model View Controller) adalah model pemrograman yang banyak dipakai. Kenapa ada penyeragaman model seperti ini? Ini memudahkan komunikasi antar programmer karena class yang dibuat dibedakan menjadi 3 kelompok yaitu model, view dan controller. Class model adalah class yang digunakan untuk memanipulasi database. Class view adalah class yang digunakan untuk mengatur tampilan. Controller adalah class yang berisi algoritma untuk memproses.

Misal ada tabel siswa, maka dibuat class mSiswa untuk memanipulasi tabel siswa. Dimana kolom dalam tabel siswa menjadi atributnya. Ditambah operasi manipulasi tabel siswa yang dibutuhkan sistem menjadi methodnya.

MVC juga digunakan dalam framework yang disebarkan bebas di internet. Seperti framework PHP codeigniter. CI menyediakan class model dan controller yang bisa diturunkan menjadi class model dan controller kita. Dengan demikian kita bisa langsung menggunakan atribut dan method yang disediakan class Model dan Controller. Dan kemudian kita melakukan penambahan atau modifikasi di class kita. Jika menggunakan fitur yang disediakan CI, maka kita harus mempelajari method apa saja yang disediakan CI beserta bagaimana cara menggunakannya. Kebanyakan programmer menganggap cara ini lebih cepat daripada membuat class(beserta atribut dan methodnya) sendiri dari awal.

Pada tool pemodelan rational rose, penggambaran MVC dalam sequence diagram dicover dengan tiga simbol yang berbeda. Interface mewakili view, boundary mewakili model dan controller. Namun pada tool powerdesigner, sequence diagram hanya punya 1 simbol untuk class.

Kamis, 09 Agustus 2018

Inheritance dalam Desain Database dengan CDM

Ketika mendesain database, kita terkadang menemukan kasus generalisasi. Misal pada database perpustakaan, dimana jenis koleksi yang dipinjamkan terdiri dari bermacam-macam jenis seperti buku, majalah, paper dan CD. Tiap jenis koleksi memiliki beberapa atribut yang sama. Namun tiap jenis koleksi ini juga memiliki beberapa atribut yang beda. Contoh CDM yang menggunakan inheritance adalah sebagai berikut.



CDM di atas, jika digenerate menjadi PDM akan menghasilkan diagram sebagai berikut:



Primary key entitas KOLEKSI, menjadi kolom foreign key pada tabel turunannya. Inheritance ini  jugs bisa diset untuk mewariskan semua atributnya menjadi kolom tabel anak. Apakah ada kasus generalisasi lain? Banyak. Misal sparepart di bengkel, tipe kendaraan di dealer.

Senin, 06 Agustus 2018

Relasi Ternary dalam CDM Database

Relasi ternary adalah relasi yang melibatkan tiga entitas. Bagaimanakah merealisasikannya dalam Conceptual Data Model(CDM)? Untuk menggambar relasi ternary kita bisa menggunakan association. Bahkan jika menggunakan association, relasi ini bisa diberi atribut. Karena itu jika menemukan relasi unary atau binary beratribut, kita juga bisa menggunakan association.

Berikut contoh penggunaan association untuk menggambarkan relasi ternary pelanggan yang menggunakan layanan beserta petugasnya. Dibuat dengan power designer 15.


Jika dikonversi ke dalam PDM (Physical Data Model), relasi ini akan menjadi tabel yang memiliki tiga foreign key yang sekaligus berfungsi sebagai primary key. Berdasarkan contoh di atas, maka pada PDM akan dibuat tabel PENGGUNAANLAYANAN yang memiliki fk dan pk IDLAYANAN, IDPELANGGAN DAN IDPETUGAS sehingga menunjukkan informasi pelanggan menggunakan layanan apa dan petugasnya siapa. Selain itu tabel ini berisi atribut TANGGAL dan JAM.

Bagaimana satu relasi yang menghubungkan lebih dari tiga entitas? Caranya sama, bisa menggunakan association.

Jumat, 03 Agustus 2018

Anggota Tim Proyek Perangkat Lunak

Dalam proyek pembuatan perangkat lunak, tim memiliki beberapa personil dengan tugas yang berbeda. Mereka adalah:

  1. Project Manager. Orang yang memimpin proyek.
  2. System Analyst. Tugasnya menganalisa proses bisnis sistem.
  3. Software Designer. Tugasnya memodelkan perancangan perangkat lunak. Dia membagi-bagi proyek menjadi beberapa modul yang kemudian dikerjakan programmer. Meskipun tugasnya memodelkan, tetapi dia harus paham kunci-kunci pemrograman.
  4. Programmer. Orang yang mengimplementasikan model rancangan perangkat lunak dengan programming.
  5. Graphic Designer. Orang yang mendesain tampilan antarmuka program.
  6. Technical Writer. Nama lainnya dokumentator. Orang yg mengatur tata bahasa dokumen2 perangkat lunak terutama panduan pemakaian.
  7. Tester. Tugasnya melakukan tes penggunaan software/program.

Kamis, 02 Agustus 2018

Usecase Diagram dalam UML

UML (Unified Model Language) adalah bahasa pemodelan yang telah disepakati bersama oleh developer di seluruh dunia untuk memodelkan perangkat lunak berorientasi objek. Jika bahasa pemodelan telah diseragamkan, para developer akan dengan mudah berkomunikasi dengan developer lain dengan menggunakan diagram-diagram yang ada dalam UML. Dalam jurusan RPL SMK, materi UML ini diberikan pada mata pelajaran Pemodelan Perangkat Lunak. Sebenarnya untuk benar-benar memahami materi ini, peserta didik harus sudah memahami cara memprogram secara objek oriented karena yang dipelajari adalah menotasikan dan mendiagramkan objek dan sirkulasi dalam program tersebut. Diagram yang biasanya dibahas pertama kali adalah usecase diagram. Diagram ini digunakan untuk menggambarkan proses bisnis suatu sistem secara global. Berikut contoh usecase diagram:
Objek berbentuk seperti orang adalah actor. Sedangkan objek berbentuk oval adalah usecase. Contoh diatas menunjukkan bagian usecase digram toko online. Berikut keterngan tentang simbol dalam usecase diagram:
  1. Actor : Sesuatu yang mengakses/melakukan aktivitas pada usecase. Bisa berupa orang, mesin atau objek pelaku lainnya.
  2. Usecase : objek yang menggambarkan fungsi sistem. Biasanya usecase dinamai dengan kalimat kerja. Sedangkan pelakunya adalah aktor yang direlasikan. Usecase yang satu bisa berelasi dependensi / ketergantungan dengan usecase seperti usecase pembelian dengan usecase login.

Setiap usecase nantinya akan dijelaskan lagi secara detail dengan beberapa diagram yaitu:
  1. Activity diagram
  2. Sequence diagram
  3. Statechart diagram

Rabu, 01 Agustus 2018

Antarmuka Perangkat Lunak

Dalam DPPL perlu ditampilkan gambaran antarmuka software yang dibuat. Tampilan apa saja yang perlu dibuat bisa dirunut dari activity diagram. Misalnya dalam activity diagram CRUD promo dapat dilihat ada antarmuka:
1. Halaman daftar promo
2. Form tambah promo
3. Form edit promo

Bentuk diagram antarmuka ini boleh dibuat sederhana jika memang antarmuka software belum dibuat. Konsep antarmuka bisa dibuat dengan aplikasi desain grafis seperti paint, inkscape atau corel draw. Contoh bentuk halaman daftar promo:

Tugas
Buat diagram antarmuka untuk satu activity diagrammu! Pilih salah satu activity diagram dan buat semua antarmuka yang diakses dalam activity diagram tersebut.

Activity Diagram dalam UML

Activity diagram digunakan untuk menggambarkan proses bisnis yang dikerjakan oleh suatu actor dalam sebuah usecase. Biasanya 1 usecase memiliki minimal satu activity diagram sebagai penjelasan. Bentuk activity diagram mirip flowchart karena memang diagram ini menggambarkan alur aktivitas dalam sebuah sistem.

Simbol-simbol dalam activity diagram:

sumber: https://www.codepolitan.com/mengenal-uml-contoh-uml-diagram-model-activity-diagram

Contoh penggunaan simbol-simbol di atas adalah sbb:

Kotak dengan nama owner merupakan swimlane yang menunjukkan aktor dengan nama owner. Jika dalam suatu usecase ada lebih dari satu aktor yang terlibat, maka dibentuk lebih dari satu kotak swimlane. Activity diagram ini menggambarkan case CRUD (Create Read Update Delete) promo produk. Fork bisa digunakan untuk menunjukkan aktivitas apa saja yang bisa dilakukan setelah aktivitas tertentu.

Tugas:
Buat activity diagram yang melibatkan lebih dari satu aktor, sehingga dalam diagram tersebut ada beberapa swimlane!

Fungsi SKPL dan DPPL dalam Pemodelan Perangkat Lunak

Dalam dunia rekayasa perangkat lunak, ketika mengerjakan proyek ada tahapan requirement dan design. Pada tahapan ini semua kebutuhan perangkat lunak diidentifikasi kemudian didokumentasikan dalam dokumen SKPL(Spesifikasi Kebutuhan Perangkat Lunak). Setelah itu pada tahap desain software dibuat desain sistemnya dan didokumentasikan dalam dokumen DPPL (Deskripsi Perancangan Perangkat Lunak). Berikut adalah fungsi dokumen SKPL dan DPPL:

1. Komunikasi antar anggota tim pengembang
Dalam suatu proyek yang dikerjakan beberapa anggota tim, misal beberapa programmer, kadang ada pergantian SDM. Misal ada programmer yang resign. Namun ada penggantinya. Dengan adanya SKPL dan DPPL, anggota tim baru bisa mempelajari sistem dengan mudah tanpa banyak tanya pada anggota tim lain. Dan dia bisa segera beradaptasi dengan mudah melanjutkan pekerjaan programmer yang dia gantikan. Sehingga pergantian SDM dalam proyek pengembangan perangkat lunak ini tidak mengalami hambatan yang signifikan.

2. Mengkomunikasikan sistem yang dikembangkan kepada orang awam seperti customer
Dengan deskripsi yang ada dalam 2 dokumen ini, seorang customer dapat memahami dengan detail rancangan tim pengembang. Sehingga ini memudahkan sinkronisasi keinginan customer dengan asumsi tim pengembang.

3. Konon pengembang yang melengkapi softwarenya dengan dokumentasi ini bisa disebut developer software yang mature. Ini wajar mengingat kendala karena pergantian SDM bisa diatasi dengan mudah sehingga proses pengerjaan bisa sesuai jadwal dan hasil sesuai harapan karena sudah direncanakan dengan sangat matang.

Itulah mengapa dikembangkan UML (Unified Model Language) yang telah disepakati bersama. Ada beberapa diagram yang melengkapi dokumentasi ini, misalnya usecase diagram, activity diagram, sequence diagram, statechart diagram dan class diagram. Sedangkan untuk data modeling kita gunakan conceptual data model dan physical data model. Dua diagram ini dirasa perlu ditambahkan dalam dppl. Seorang pengembang software wajib paham bagaimana menggunakan diagram-diagram ini dalam menggambarkan konsep sistem yang dikembangkan.

Oke, next kita bahas tiap diagram yang saya sebuatkan diatas. Materi ini dibahas dalam mata pelajaran pemodelan perangkat lunak.