Puisi (Menatap Senja)

Mbuh, kesambet apa, ujug-ujug pengen bikin puisi haha -_-

Menatap Senja

ketika langit berlukiskan gradasi kuning biru dan hitam
selalu ada tanya, apa yang telah aku lakukan hari ini ?
kenapa selalu berkeluh, ahh Tuhan tak adil
padahal sebelumnya, aku selalu bermain-main dengan kemalasan
apakah ini adil bagi-Nya ?
memang, tanpa sadar aku ini angkuh
jumawa dengan segala yang ku anggap hebat
padahal,hal itu tak lebih hanya setetes embun yang ada di pagi hari

akhirnya,
aku bersujud dan bergegas,
memohon maaf atas kekhilafan
kupasrahkan semuanya,
karena memang hakikatnya semua ini milik-Nya

Contoh Use Case Diagram

Use case diagram adalah diagram yang digunakan untuk menggambarkan apa yang dapat dilakukan oleh sistem.  Secara garis besar sangat jarang use case dapat disalahkan secara mutlak ( pokokmen semua benar ),  cuma yang membedakan seberapa efektifkah use case yang dibuat.

Dalam artikel kali ini penulis akan membuat contoh use case untuk sebuah sistem informasi penjualan sederhana. langsung saja use casenya seperti ini :

use case penjualan

Kebutuhan non fungsional dalam sistem ini meliputi

Keamanan ( Security ) :

baik penjual dan pembeli melakukan login untuk mengakses halaman yang terauthentikasi.

Ketersediaan ( Availability ) :

Sistem berbasis web, sehingga up timenya 24 jam.

Fleksibilitas (Flexibility ) :

Sistem dapat diakses dari tablet maupun komputer selama mempunyai browser yang mendukung javascript.

Catatan :

Disitu ada relasi yang menggunakan include antara login dan register, artinya pembeli kudu register dulu agar dapat menggunakan use case login.

Lho kenapa kok untuk pembelian gak include login ?

Karena antara use case pembelian dan use case login sebenarnya tidak ada kaitannya, sebagai gantinya dijelaskan dalam kebutuhan non fungsional.

Ingat!! use case diagram hanya menggambarkan apa yang dapat dilakukan oleh sistem, bukan bagaimana komponen-komponen sistem itu saling terkait.

Use case dibuat untuk menggambarkan tujuan yang semestinya dicapai oleh aktor (user/sistem lain) yang berinteraksi dengan sistem yang dibuat ini.

Sekian dulu ya, seperti biasa tulisan diatas merupakan pendapat pribadi yang berdasar dari beberapa sumber, sehingga bisa saja terjadi kesalahpahaman, jadi jika ada yang salah atau kurang jelas kita diskusi yakz.

Akhirnya, segala kebenaran yang tersirat dari tulisan ini datangnya dari Allah, dan segala kesalahan adalah dari diri pribadi, mohon maaf dan sampai jumpa dalam tulisan berikutnya (analysis Model).

Belajar Class Diagram

Oke di sabtu ini yang masih ngejomblo mending sinau, kumpul dimari dan diskusi, saling mengisi dengan tujuan ben tambah pinter :D , kali ini kita bahas class diagram yukk. ( yang pengen tahu merapat sini ben anget haha ).

( sangat terkait dengan ppl dan pkl , jadi jadi kalau ada kesalahan dimaapin n diingetin yak, semua yang ada di web ini hanya murni sepemahaman penulis. Kalau salah, ya datangnya dari diri penulis kalau benar semata-mata hanya karena Allah ( kok jadi kaya ngisi ceramah :P )).

Class diagram, apa kuwi ? yaitu diagram yang menggambarkan struktur dan hubungan antar class. Class merupakan blueprint dari sebuah objek, emm blueprint itu mirip kaya orang kalau bikin rumah pasti dibikin denahnya dulu, nah itu denahnya itu yang namanya class. Di dalam class ada yang namanya atribut dan metode. Atribut adalah segala sesuatu yang dimiliki oleh class dan metode merupakan hal-hal apa aja yang dapat dilakukan oleh sebuah class.  Contoh :

Class manusia

Class manusia mempunyai attribut : nama, alamat, tangan, kaki, mulut, dan lain sebagainya.

Class manusia juga mempunyai metode : jalan, kenalan, pacaran, lari, tidur, dan lain sebagainya.

Okeh, paham yakz ? kalau belum paham gugling, atau baca referensinya haha ( emang ni catetan gak jelas :P ).

Lanjut tahap kedua, yaitu pembuatan diagram.  Tadi kan dah punya rencana meh bikin class ini, ini dan ini, sekarang menuangkan dalam tulisan gimana yakz ? Nah, sebelum melangkah lebih lanjut kita pahami dulu simbol simbolnya.

Class disimbolkan dengan gambar seperti ini :

class diagram

 

di dalam class attribut ataupun method dikenal yang namanya visibility atau access modifier, yang berguna untuk enkapsulasi komponen.

private berarti hanya bisa diakses di class itu

public berarti class lain dapat mengakses attribut atau method itu

protected berarti hanya kelas yang diwarisi saja yang bisa mengaksesnya.

Oke, kalau sudah paham sekarang lanjut belajar tentang relationship antar class nya. Relationship terdiri atas :

Association

Association menggambarkan hubungan antar dua objek. Jadi disini dikenal juga istilah one to one, one to many, many to many, zero to one, dll.

Contoh hubungannya adalah mahasiswa dan dosen, pasti dosen dan mahasiswa punya hubungan kan ya ? entah hubungan baik atau hubungan buruk haha #salahFokus.

Association macamnya ada banyak broh :

Directed association adalah sebuah assosiasi searah, simbolnya kek gini

direct association

Aggregation adalah sebuah hubungan khusus dalam direct association, dimana ini menyatakan hubungan kepemilikan, tetapi kalau aggregation sifat kepemilikannya adalah lemah, contohnya :

mahasiswa dan pacar, boleh dong mahasiswa gak punya pacar, tapi bisa jadi mahasiswa memiliki pacar. #contohNgawur

mahasiswa dan perpustakaan, boleh dong mahasiswa gak nyewa perpus, toh mahasiswa tetap akan disebut mahasiswa dan perpus pun akan tetap ada sekalipun gak ada yang minjem dari mahasiswa.

Simbolnya, ya garis gitu tetapi kepalanya wajik berlubang (sorry lagi males nggambar -_-).

Aggregation dengan kepemilikan kuat disebut dengan composition, jadi mereka mau gak mau harus punya ini. Contoh :

Mahasiswa dan dosen wali, mahasiswa pasti punya dosen wali kan ya, nah berarti hubungan mahasiswa dan dosen wali ini composition.

Atau fakultas dan jurusan, gak mungkin satu fakultas gak punya jurusan kan ?

Simbolnya sama seperti aggregation tapi wajiknya buntet, gak ada lubangnya.

Generalization ya artinya menggeneralisir sesuatu, jadi dari sesuatu yang umum di khususkan,

Contoh class cewek dan cowok adalah generalisasi dari class orang.

simbolnya ya garis gitu tapi ujungnya segitiga berlubang :D.

Wes capek, baca sendiri dimari yakz -_-

Referensi :

http://javapapers.com/category/java/java-and-oops/

 

contoh sederhana

contoh

Mhs dan librarian adalah user (mhs dan librarian inherits user) user memiliki asosiasi dengan buku

Bagian-bagian Proyek Perangkat Lunak

Proyek perangkat lunak (PPL), merupakan salah satu mata kuliah wajib yang biasanya ada di jurusan ilmu komputer.  Biasanya PPL ini adalah awal mahasiswa mulai menyukai memprogram dan berlama-lama di depan komputer.  Mungkin bisa lebih betah daripada malingan ama pacarnya haha.

Proyek perangkat lunak biasanya akan dikerjakan secara berkelompok (tim).  Nah biasanya tim tersebut akan dibagi menjadi lima tugas yaitu : Project Manager, Analis, Desainer, Developer, dan Tester.  Terus gimana dengan tugas-tugasnya ?

Project Manager merupakan ketua dari proyek perangkat lunak ini.  Hidup mati dan keberjalanan dari kelompok ini sebenarnya tergantung dari Project Manager.  Kalau sampai gagal gak jadi sistemnya, maka Project Manager yang akan dipenggal kepalanya haha ( paling nggak dia yang akan dapet nilai jelek pertama kali ).  Project Manager punya tugas yang cukup berat karena dia kudu bisa memanajemen temen-temennya, jadi jangan coba-coba pilih Project Manager yang males-malesan apalagi yang bolosan hehe.

Analis Sistem merupakan jabatan yang paling keren menurutku setidaknya.  Karena gara-gara mereka dia bisa menyiksa Developer untuk membuat aplikasi yang super rumit haha, selama bisa menjelaskan secara detail dan jelas maka sah –sah saja dia membuat requirement dan program yang sangar hoho. Eits, tapi tenang yang tak ketik di atas sebenarnya gak sepenuhnya bener haha, Analis sebenarnya bertanggung jawab atas penerjemahan kebutuhan pelanggan.  Jadi baik pelanggan dan pengembang nantinya bisa klop dan sehati.

Desainer ini tahapan kelanjutan dari Analis Sistem, mereka biasanya bekerja sama ama Analis untuk membuat desain sistem. Mereka yang mendesain sistem ini harus paham nih terhadap apa yang telah disampaikan oleh Analis, kebutuhan usernya kaya gimana sehingga waktu mendesain sistem tidak ada kesalahan yang berarti.

Developer, jabatan paling keren sejagad nih ( setidaknya menurut yang dapat job jadi Developer haha ).  Kalau menurutku jabatan ini merupakan jabatan paling sengsara, paling sering lembur karena dua jabatan diatas menyiksa dia.  Ibarat dalam sebuah pabrik ya Developer ini buruhnya :P , dapat nilainya sama aja, eh tapi yang lembur terus dia.  Tapi gapapa, tabahkan hati buat yang jadi ini karena seorang Developer sejati lebih banyak belajar, lebih banyak siap untuk terjun ke dunia industri beneran haha . .

Tester, entahlah kenapa jabatan ini biasanya dipandang sebelah mata, banyak yang berpendapat “halah cuman Tester, kerjanya ngricuhin doang, pas awal santai-santai” haha. . ., Sebenarnya gak kayak gitu, Tester itu kerjanya berat juga, soalnya yang menentukan aplikasi ini layak tampil atau ndak ya Tester ini, jadi kalian yang jadi Tester jangan sungkan-sungkan bilang “aplikasinya jelek nih, di bagian ini kurang ini-ini, ini gak sesuai dll “ soalnya kalau kalian bilang “ya, sudah bagus” tanpa ada revisi babar blas malah diragukan kredibilitas ke Testeranmu haha.

Yakz, mungkin seperti itu bagian-bagiannya yakz, akhir dari tulisan ini, pokoknya dalam keberjalanan PPL ini jangan sampai kalian pada nyalahin satu sama lain, “woo si ini sih gara2nya dan lain sebagainya”.  Ingat kalian itu team, keberhasilan dari sebuah tim bukan tergantung dari Project manajer saja, atau Developer saja tapi ya semua harus berperan aktif.

Sekian, kalau ada tulisan yang gak bener ya dihiraukan saja haha.

Contoh Manipulasi Data dengan File Text di Perl

sebelumnya baca ini dulu yakz biar tahu kisahnya gimana hehe . .  Nah ternyata yang kemarin itu ada beberapa alasan sehingga developer yang lama enggan menginject data ke table, sehingga dia memberikan solusi berupa pengiriman batch file secara berkala.  filenya ini bentuknya merupakan file txt dengan delimiter berupa ; .

Contoh filenya adalah seperti ini

odol;3;2014-10-10
odol;4;2014-10-10
sabun;10;2014-10-10
sabun;12;2014-10-10

tentu dong scriptnya harus diubah karena tidak sesuai lagi, nah cara ubahnya seperti ini . . .

use DBI;
 
# KONEK DATABASE
 $connect = DBI->connect('dbi:mysql:indi','root','')
 or die "Connection Error: $DBI::errstr\n";
 
#GANTI METODE KARENA TERNYATA MASUKKINNYA LEWAT TEKS
 
#PERTAMA BACA TEXTNYA DULU YA 
#ASUMSI DELIMITERNYA NANTI MENGGUNAKAN TANDA ;
 
open my $data, "<", "file1.txt" or die $!;
# < ARTINYA DIA HANYA READ
# file1.txt ADALAH FILENYA
 
#KALAU BENAR SEHARUSNYA BISA DILOOPING SEPERTI INI 
%arrBarang = ();
while (<$data>) {
	# $_ MERUPAKAN VARIABLE DEFAULT DIMANA IA BERISIKAN TIAP BARIS DALAM FILE1.TXT
	my $currLine = $_;
 
	# SETELAH ITU KITA SPLIT TIAP BARIS JADI SEBUAH ARRAY, ANGGAP SAJA TIAP BARIS ITU SATU ROW / RECORD
 
	@arrRow = split(';',$currLine);
	# ASUMSIKAN LAGI PER KOLOMNYA SUDAH SESUAI
	# CONTOH STRING NYA NANTI MISAL odol;3;2014-10-10
	$barang = $arrRow[0];
	$qty = $arrRow[1];
	#BUAT ASSOCIATIVE ARRAY ( BUAT PENGGANTI SUM )
 
	if (exists $arrBarang{$barang}) {
             # do stuff
             $qty = $arrBarang{$barang} + $qty;
             $arrBarang{$barang} = $qty;
        }else
        {
        	$arrBarang{$barang} = $qty;
        }
 
}
#SAMPAI DISINI SEHARUSNYA KITA UDAH DAPAT ASSOCIATIVE ARRAY, DAN LANGKAH TERAKHIR SAMA SEPERTI SEBELUMNYA
#MEMASUKKAN DATA 
while (($barang, $qty) = each(%arrBarang))
{
	#CARI APAKAH ADA ATAU BELUM BARANGNYA
	$tblTotal = $connect->prepare('SELECT * FROM totalbarang WHERE barang = ?');
	$tblTotal->execute($barang);
	if ($tblTotal->rows > 0)
	{
		$qUpdate = $connect->prepare('UPDATE totalbarang set total = ? WHERE barang = ?');
		$qUpdate->execute($qty, $barang);	
	}
	else
	{
		$qInsert = $connect->prepare('INSERT INTO totalbarang values (null, ? , ?)');
		$qInsert->execute($barang, $qty);	
 
	}
 
}
print "Sukses!";

sumber referensi :

http://www.tizag.com/perlT/

http://www.perlmonks.org/?node_id=2482

Membuat Task Scheduler di Windows

Oke, ceritanya berlanjut sampai dimari hoho, bagi yang belum tahu kisahnya bisa baca dulu disini .

Nah karena udah jadi sekarang tinggal buat otomatisnya, untungnya nih di Windows ada fasilitas yang namanya task scheduler. yaitu sebuah utility yang digunakan untuk menjalankan aplikasi secara terjadwal.  caranya adalah sebagai berikut :

Pertama, buka terlebih dahulu task schedulernya di control panel –> administrative tools –> task scheduler.

Kedua, pilih add task scheduler

1

Ketiga, isikan nama schedulernya ( bebas mau nama apa aja )

3

Keempat, pindah ke tab trigger, pilih new dan isikan mau diulang berkalanya seperti gimana

2

Kelima, pindah ke tab action, pilih new lagi, pilih program .bat yang sudah dibuat untuk menjalankannya, program .bat nya ya

oh ya program batnya caranya buka notepad dan ketikkan perintahnya untuk membuka perl :

@echo off
perl transfer.pl

4

dimana transfer.pl nya diisikan lengkap ya misal d:\programku\sinkron.pl

lalu klik ok

Selesai.

Contoh Manipulasi Data dalam Database dengan Perl

Perl apakah itu ? hehe, anaknya Mr. Crabs -_-.

Haha, bukan Perl yang akan dibahas ini merupakan salah satu bahasa pemrograman juga, dia bisa jalan di browser, command line, atau basis desktop.  Perl susunan bahasanya mirip-mirip dengan php, contohnya kalau mau buat variable ya tinggal tambahin $ (dolar) di depan namanya.

Ok, skip-skip kita langsung latihan cara manipulasi data dalam database dengan Perl.  Btw, untungnya dalam Perl sudah disediakan library bernama DBI yang bisa kita gunakan untuk akses ke database.  DBI ini support macem-macem database, bisa mysql, oracle, dll.

Oh ya contoh kasusnya seperti ini ( btw jo protes kalau aneh kasusnya haha :P ) :

dalam suatu toko punya sistem inventory barang yang sudah keren, sayangnya dalam sistem inventory tersebut belum disediakan tampilan dashboard maupun laporan akan stok barang digudang saat ini.  Nah karena sang pemilik gak mau diungkat ungkit sistemnya dan developer dari sistem tersebut entah kemana, Anda disuruh untuk membuat sistem dashboardnya.

Singkat cerita sistem Anda sudah jadi nih, sayang datanya tak bisa langsung ambil dari database sistem inventory tersebut, akhirnya dibuatlah suatu jembatan dimana sistem inventory tadi ngisi terus ke suatu table yang dimana table tersebut gak bisa diubah-ubah, anggap saja table itu bernama dataMentah.  Padahal anda menggunakan tabel totalBarang untuk menampilkan dashboard tersebut.

Singkatnya dalam latihan kali ini adalah kita akan coba mengisi secara otomatis table totalBarang dari suatu data transaksi barang setiap harinya, misalnya saja kita berikan nama table tersebut dataMentah.

Ok, pertama buat table latihannya terlebih dahulu, seperti berikut :

-- --------------------------------------------------------
 
--
-- Struktur dari tabel `datamentah`
--
 
CREATE TABLE IF NOT EXISTS `datamentah` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `barang` VARCHAR(50) NOT NULL,
  `qty` INT(11) NOT NULL,
  `tanggal` DATE NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
-- --------------------------------------------------------
 
--
-- Struktur dari tabel `totalbarang`
--
 
CREATE TABLE IF NOT EXISTS `totalbarang` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `barang` VARCHAR(50) NOT NULL,
  `total` INT(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Kalau sudah copas sintaknya seperti berikut ini

use DBI;
 
# KONEK DATABASE
 $connect = DBI->connect('dbi:mysql:indi','root','')
 or die "Connection Error: $DBI::errstr\n";
# MENDEFINISIKAN QUERY DARI TABEL DATA MENTAH
$myquery = "SELECT sum(qty), barang from datamentah group by barang";
 
# EXECUTE QUERY
$tbl = $connect->prepare($myquery);
$tbl->execute();
# $tbl MERUPAKAN TABEL HASIL DARI QUERY YANG DIATAS
while (@rows = $tbl->fetchrow_array) {
	#CARI APAKAH ADA ATAU BELUM BARANGNYA
	$tblTotal = $connect->prepare('SELECT * FROM totalbarang WHERE barang = ?');
	$tblTotal->execute($rows[1]);
	#KALAU BELUM YA DI INSERT KALAU ADA YA DI UPDATE
	if ($tblTotal->rows &gt; 0)
	{
		$qUpdate = $connect->prepare('UPDATE totalbarang set total = ? WHERE barang = ?');
		$qUpdate->execute($rows[0], $rows[1]);	
	}
	else
	{
		$qInsert = $connect->prepare('INSERT INTO totalbarang values (null, ? , ?)');
		$qInsert->execute($rows[1], $rows[0]);	
 
	}
 
}

Selesai .

Nah ceritanya toko ini ini pengen bener-bener otomatis dashboardnya dengan ketentuan tiap 5 menit sekali update, sehingga pemilik toko tahu keadaan barang yang ada di gudang, caranya klik dimari yakz

Perl apakah itu ? hehe, anaknya Mr. Crabs -_-.

Haha, bukan Perl yang akan dibahas ini merupakan salah satu bahasa pemrograman juga, dia bisa jalan di browser, command line, atau basis desktop.  Perl susunan bahasanya mirip-mirip dengan php, contohnya kalau mau buat variable ya tinggal tambahin $ (dolar) di depan namanya.

Ok, skip-skip kita langsung latihan cara manipulasi data dalam database dengan Perl.  Btw, untungnya dalam Perl sudah disediakan library bernama DBI yang bisa kita gunakan untuk akses ke database.  DBI ini support macem-macem database, bisa mysql, oracle, dll.

Oh ya contoh kasusnya seperti ini ( btw jo protes kalau aneh kasusnya haha :P ) :

dalam suatu toko punya sistem inventory barang yang sudah keren, sayangnya dalam sistem inventory tersebut belum disediakan tampilan dashboard maupun laporan akan stok barang digudang saat ini.  Nah karena sang pemilik gak mau diungkat ungkit sistemnya dan developer dari sistem tersebut entah kemana, Anda disuruh untuk membuat sistem dashboardnya.

Singkat cerita sistem Anda sudah jadi nih, sayang datanya tak bisa langsung ambil dari database sistem inventory tersebut, akhirnya dibuatlah suatu jembatan dimana sistem inventory tadi ngisi terus ke suatu table yang dimana table tersebut gak bisa diubah-ubah, anggap saja table itu bernama dataMentah.  Padahal anda menggunakan tabel totalBarang untuk menampilkan dashboard tersebut.

Singkatnya dalam latihan kali ini adalah kita akan coba mengisi secara otomatis table totalBarang dari suatu data transaksi barang setiap harinya, misalnya saja kita berikan nama table tersebut dataMentah.

Ok, pertama buat table latihannya terlebih dahulu, seperti berikut :

-- --------------------------------------------------------
 
--
-- Struktur dari tabel `datamentah`
--
 
CREATE TABLE IF NOT EXISTS `datamentah` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `barang` VARCHAR(50) NOT NULL,
  `qty` INT(11) NOT NULL,
  `tanggal` DATE NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
 
-- --------------------------------------------------------
 
--
-- Struktur dari tabel `totalbarang`
--
 
CREATE TABLE IF NOT EXISTS `totalbarang` (
  `id` INT(11) NOT NULL AUTO_INCREMENT,
  `barang` VARCHAR(50) NOT NULL,
  `total` INT(11) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;

Kalau sudah copas sintaknya seperti berikut ini

use DBI;
 
# KONEK DATABASE
 $connect = DBI->connect('dbi:mysql:indi','root','')
 or die "Connection Error: $DBI::errstr\n";
# MENDEFINISIKAN QUERY DARI TABEL DATA MENTAH
$myquery = "SELECT sum(qty), barang from datamentah group by barang";
 
# EXECUTE QUERY
$tbl = $connect->prepare($myquery);
$tbl->execute();
# $tbl MERUPAKAN TABEL HASIL DARI QUERY YANG DIATAS
while (@rows = $tbl->fetchrow_array) {
	#CARI APAKAH ADA ATAU BELUM BARANGNYA
	$tblTotal = $connect->prepare('SELECT * FROM totalbarang WHERE barang = ?');
	$tblTotal->execute($rows[1]);
	#KALAU BELUM YA DI INSERT KALAU ADA YA DI UPDATE
	if ($tblTotal->rows &gt; 0)
	{
		$qUpdate = $connect->prepare('UPDATE totalbarang set total = ? WHERE barang = ?');
		$qUpdate->execute($rows[0], $rows[1]);	
	}
	else
	{
		$qInsert = $connect->prepare('INSERT INTO totalbarang values (null, ? , ?)');
		$qInsert->execute($rows[1], $rows[0]);	
 
	}
 
}

Selesai .

Nah ceritanya toko ini ini pengen bener-bener otomatis dashboardnya dengan ketentuan tiap 5 menit sekali update, sehingga pemilik toko tahu keadaan barang yang ada di gudang, caranya klik dimari yakz

Penyusunan Spesifikasi Kebutuhan Perangkat Lunak (SRS)

Software Requirement Specification ( Spesifikasi Kebutuhan Perangkat lunak ) merupakan dokumen yang menjelaskan berbagai fungsi yang harus dipenuhi oleh suatu perangkat lunak.  Normalnya SRS ini dibangun bersama-sama baik dari pelanggan maupun pengembang ( *nb : pengembang itu yang bikin perangkat lunak,  pelanggan yang minta dibikin perangkat lunak ).

Pembuatan dokumennya pun ada standarnya yaitu mengikuti format IEEE ( di kelas pasti dah dapat templatenya :-p ) biar tidak ambigu.  Kegunaan dari pembuatan SRS ini yaitu :

  1. Sebenarnya ini sebagai kontrak, pokokmen ntar perangkat lunak yang dibuat oleh pengembang adalah seperti yang tertera di SRS.
  2. Sebagai acuan dalam pembuatan perangkat lunak, jadi nanti ketika pengembang sudah membangun, ya acuannya ini, untuk validasi dan pengetesan haruslah terkait dengan SRS ini.
  3. Karena sekilas dah terlihat gambaran umum perangkat lunaknya maka bisa dibuat rencana milestone nya ( jadwal kegiatannya ).
  4. Sebagai dokumen untuk perangkat lunak, misal nih tiba-tiba pengembangnya meninggal, ya kalau ada SRS, orang lain bisa melanjutkannya ( serem men analoginya -_- )
  5. Cari di google aja ah, haruse akeh haha . .

Ok, sebenarnya habis cari dari google harusnya banyak teori-teori yang didapatkan kayak istilah-istilah dari SRS , karakteristik, sifat dan lain-lain :D.  Nah yang paling ditekankan dalam penulisan di blog ini adalah, hal-hal apa saja yang harus diperhatikan saat merancang Spesifikasi Kebutuhan Perangkat lunak :

  1. Pertama sebelum membuat SRS harus dibayangkan terlebih dahulu, jan-jane kalian mau bikin perangkat lunak untuk apa dan apa sih yang kira-kira dibutuhkan oleh pelanggan.
  2. Dari point a pasti dapat dong, nantinya perangkat lunaknya bisa ngapain aja ?
  3. Perangkat lunaknya tadi mau bentuknya seperti apa ( mau web based kah, mau desktop, mau buat di hape, dll ) terus perangkat keras yang dibutuhkan apa, apakah terkait dengan perangkat lunak yang lain ? ( contoh misal : buat software tentang sistem penjualan, berarti kira-kira perangkat kerasnya yang dibutuhin apa aja, bisa terkait dengan software yang lain gak misal sistem inventory dll ).
  4. Kalau gak salah biasanya ada yang disebut dengan kebutuhan non fungsional, nah itu terkait dengan kecepatan perangkat lunak nantinya, keamanan, bahasa, gimana cara recovery dll.
  5. Empat poin diatas kan membayangkan nih, jangan bayangkan yang wah-wah dulu (*baca : lebay) tetapi jelas oh nanti finishnya perangkat lunak yang akan dibuat itu sampai sini.
  6. Belajarlah dari google tentang perangkat lunak yang akan kamu buat, kira-kira seperti apa ya.

Nah mungkin ke lima poin diatas ditambah satu poin tersebut adalah langkah awal dalam pembuatan SRS ( pokokmen jangan ragu untuk membayangkan haha ).  Oh ya hal-hal yang harus diperhatikan dalam pembuatan SRS adalah sebagai berikut :

  1. Jangan melebar, biasanya nih ada orang yang semangat bikin SRS, pokoknya kudu bisa gini- gini gini dan gini ( ingat kalian cuman dikasih waktu satu semester, jadi ya disesuaikan sama waktunya juga ) jangan never ending improvisation.  Sebenarnya bagus sih, tapiiii lebih bagus lagi kalau sederhana tapi terstruktur dan hasilnya pas.
  2. Jangan terlalu mendetail, maksudnya jangan sampai ke teknis-teknis banget.  Bayangkan dokumen ini diberikan ke pelanggan yang dimana mereka tidak terlalu paham akan dunia pemrograman ( gak usah sampai erd dfd, atau class diagram gitu ).  Cara memastikannya kasihkan dokumen yang udah kalian bikin ke anak kimia kalau mereka paham ya berarti dah pas bahasanya :D.
  3. Jo nambah-nambah, inget kalian dah bikin batasan.  Gak usah minder kok software yang tak bikin cuman kek gini ya -_- .  yo gpp, disini belajar bikin software dengan perancangan yang baik, bukan bagus2an software.
  4. Jangan sungkan buat googling :-p . . .

Akhir tulisan ini adalah selamat bikin SRS, inget bahasanya yang baku, gak boleh ambigu, dan sesuaikan dengan template yang sudah ada :D. Met lembur wkwkwk

DropdownList Saling Terkait ( Dependent Dropdownlist )

Dependent Dropdownlist atau dropdownlist yang saling terkait, merupakan salah satu hal yang sering digunakan ketika kita pengen mengisi form. kalau dulu kan maennya ngisi dulu terus next baru ngisi dropdown yang kedua, nah karena adanya jquery maka caranya pun ganti menjadi lebih elegan, yaitu ketika memilih satu dropdown maka yang lain otomatis akan mempopulate sendiri.

Nah, masalah kedua adalah bagaimana caranya kalau setelah di simpan lalu dicari ? apakah bisa langsung mengisi ?, ya tentu bisa, tekniknya adalah dengan menggunakan selected, jadi ya disamakan aja value dan hasil pencariannya.

(Banyak teori makin bingung mesti haha . .  . aku juga bingung nulis apa jane -_- ) ok langsung tutorial aja yakz, ceritanya kita punya satu database dengan tiga tabel yaitu table siswa, propinsi dan kota.  Kita ingin siswa dapat mengisi daerah asalnya dengan cara mengisi nim dan memilih propinsi lalu kota. Oh ya sebelume mohon maaf, soalnya scriptnya berantakan banyak redundan dan katanya gak aman blas, jadi kudu di optimalin lagi :D ( ben do sinau )

Langkah pertama adalah buat databasenya terlebih dahulu (biar cepet tak kasih kodenya :p )

CREATE TABLE IF NOT EXISTS `kota` (
  `Id` INT(11) NOT NULL AUTO_INCREMENT,
  `Kota` VARCHAR(50) NOT NULL,
  `IdProp` INT(11) NOT NULL,
  PRIMARY KEY (`Id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=5 ;
 
-- --------------------------------------------------------
 
--
-- Struktur dari tabel `propinsi`
--
 
CREATE TABLE IF NOT EXISTS `propinsi` (
  `kodeProp` INT(11) NOT NULL AUTO_INCREMENT,
  `Nama` VARCHAR(20) NOT NULL,
  PRIMARY KEY (`kodeProp`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=3 ;
 
-- --------------------------------------------------------
 
--
-- Struktur dari tabel `siswa`
--
 
CREATE TABLE IF NOT EXISTS `siswa` (
  `nip` VARCHAR(50) NOT NULL,
  `prop` INT(11) NOT NULL,
  `kota` INT(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

Langkah kedua adalah membuat formnya

<?php
 
mysql_connect('localhost', 'root', '');
mysql_select_db('indi');
$provinsi = mysql_query("SELECT * FROM propinsi") or die("Query failed: " . mysql_error());
if (isset($_POST["btnSubmit"])) {
    $txtNIP = $_POST["txtNIP"];
    $ddlProvinsi = $_POST["ddlProvinsi"];
    $ddlKota = $_POST["ddlKota"];
    mysql_query("insert into siswa values ('$txtNIP' , '$ddlProvinsi', '$ddlKota')") or die("Query failed: " . mysql_error());
}
?>
<html>
    <head>
        <script type="text/javascript" src="jquery.min.js"></script>
        <script type="text/javascript" src="script.js"></script>
    </head>
    <body>
        <form method="post" action="">
            <input type="text" name="txtNIP" id="txtNIP" />
            <input type="button" value="Cari Data" id="btnCari" />
            <br/>
            <select name = "ddlProvinsi" id="ddlProvinsi">
                <?php
                while ($row = mysql_fetch_array($provinsi)) {
                    ?>
                    <option value = "<?= $row['kodeProp'] ?>" ><?= $row['Nama'] ?> </option>
                    <?php
                }
                ?>
            </select>
            <select name = "ddlKota" id = "ddlKota" >
            </select>
            <input type="submit" value="kirim" name="btnSubmit"/>
        </form>
    </body>
</html>

Langkah ketiga adalah membuat halaman buat nanti di populate dan ditempelkan ke dropdown dependentnya ( susah dijelaskan dengan tulisan -_- )

ada dua yaitu ddlProp.php

<?php
 
 
mysql_connect('localhost', 'root', '');
mysql_select_db('indi');
$nip = $_GET['nip'];
$siswa = mysql_query("SELECT * FROM siswa where nip = '$nip' ") or die("Query failed: " . mysql_error());
 while ($rows = mysql_fetch_array($siswa)) {
     $idProp = $rows['prop'];
 }
$Kota = mysql_query("SELECT * FROM propinsi ") or die("Query failed: " . mysql_error());
 while ($row = mysql_fetch_array($Kota)) {
     echo '<option value = "'. $row['kodeProp'] .'"';
     if ($row['kodeProp'] == $idProp)
     {
         echo 'selected';
     }
     echo '>'. $row['Nama'] ." </option>";
 }

dan ddlKota.php

<?php
 
 
mysql_connect('localhost', 'root', '');
mysql_select_db('indi');
if(isset($_GET['Prop'])){
 
$prop = $_GET['Prop'];
$Kota = mysql_query("SELECT * FROM kota where IdProp = '$prop' ") or die("Query failed: " . mysql_error());
}
if(isset($_GET['nip'])){
 
$nip = $_GET['nip'];
$siswa = mysql_query("SELECT * FROM siswa where nip = '$nip' ") or die("Query failed: " . mysql_error());
 while ($rows = mysql_fetch_array($siswa)) {
     $idProp = $rows['prop'];
     $idKota = $rows['kota'];
 }
 $Kota = mysql_query("SELECT * FROM kota where IdProp = '$idProp' ") or die("Query failed: " . mysql_error());
}
 
 while ($row = mysql_fetch_array($Kota)) {
 
     echo '<option value = "'. $row['Id'] .'"';
     if($idKota == $row['Id'] )
     {
         echo 'selected';
     }
     echo ' >'. $row['Kota'] ." </option>";
 }

terus langkah terakhir bikin deh scriptnya

$(document).ready(function() {
    $("#ddlProvinsi").change(function() {
        $.get('ddlKota.php?Prop=' + $(this).val(), function(data) {
            $("#ddlKota").html(data);
        });
    });
    $("#btnCari").click(function() {
        $.get('ddlProp.php?nip=' + $("#txtNIP").val(), function(data) {
            $("#ddlProvinsi").html(data);
        });
        $.get('ddlKota.php?nip=' + $("#txtNIP").val(), function(data) {
            $("#ddlKota").html(data);
        });
    });
});

selesai

 

Menjaga Pandangan

Kalau kita ingin memiliki hati yang bersih, maka kita pun harus tahu mana jalan2 yang membuat hati kita jadi kotor. Ternyata kita sering mendengar pepatah dari mata turun ke hati, artinya mata yang tidak terjaga bisa mengakibatkan hati kita menjadi kotor dan membuta.

Ketrampilan kita menjaga pandangan dari apa yang diharamkan Allah insya Allah akan membuat hati kita tetap bercahaya, oleh karena itu menundukan pandangan adalah amal yang utama.  Marilah kita palingkan pandangan kita dari lawan jenis yang tidak halal kita lihat, jauhkan pandangan kita dari kemilau dunia yang hanya membuat kita diperbudak oleh keinginan semata dan tahan pandangan kita dari merendahkan, meremehkan siapapun juga.

Mata mengantarkan kita pada keinginan,
seandainya keinginan itu yang diridhai Allah maka mata kita jadi penuntun amal shaleh kita
tetapi kalau keinginan itu justru maksiat kepada Allah maka kuncinya adalah menjaga pandangan

(By : Aa Gym)

Belajar dari Ayunan Hingga Liang Lahat