studi kasus sibo

38
Ilustrasi Materi Kuliah Sistem Berorientasi Objek Studi Kasus : Sistem Informasi Riset Mahasiswa (SIRM) Revisi tgl 28 September 2009 Fatchurrochman, M.Kom Tulisan ini adalah pendahuluan untuk memahami cara melakukan analisis, desain dan implementasi perangkat lunak menggunakan paradigma berorientasi objek. Tools yang digunakan untuk melakukan analisis dan desain adalah Rational Rose serta menggunakan bahasa pemrograman Java untuk implementasinya. Studi kasus yang digunakan adalah persoalan sederhana dalam kegiatan administrasi akademik di tingkat jurusan, dimana dimaksudkan bahwa dengan kasus sederhana ini berbagai aktifitas dalam sistem berorientasi objek dapat dilihat dengan jelas. Tulisan ini dibuat sebagai alat bantu bagi pembaca untuk mengenal sistem berorientasi objek. Tulisan ini tidak dimaksudkan sebagai pola dalam pembuatan sistem berorientasi objek karena disadari masih banyak hal yang belum tersentuh dalam materi ini karena keterbatasan pemahaman dan pengalaman penulis dalam memahami sistem berorientasi objek. Dengan adanya tulisan ini diharapkan bahwa pembaca mendapatkan gambaran tentang apa yang disebut dengan Sistem Berorientasi Objek dan memahami korelasi antara analisis dan desain sistem beserta implementasinya dalam bahasa pemrograman. Berbagai literatur dapat dipelajari lebih lanjut untuk mendapatkan pemahaman lebih akurat tentang sistem berorientasi objek. 1. Beginning a Project 1.1. Latar Belakang

Upload: ainul-yaqin

Post on 21-May-2015

3.266 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: Studi kasus sibo

Ilustrasi Materi Kuliah Sistem Berorientasi ObjekStudi Kasus : Sistem Informasi Riset Mahasiswa (SIRM)Revisi tgl 28 September 2009

Fatchurrochman, M.Kom

Tulisan ini adalah pendahuluan untuk memahami cara melakukan analisis, desain dan implementasi perangkat lunak menggunakan paradigma berorientasi objek. Tools yang digunakan untuk melakukan analisis dan desain adalah Rational Rose serta menggunakan bahasa pemrograman Java untuk implementasinya. Studi kasus yang digunakan adalah persoalan sederhana dalam kegiatan administrasi akademik di tingkat jurusan, dimana dimaksudkan bahwa dengan kasus sederhana ini berbagai aktifitas dalam sistem berorientasi objek dapat dilihat dengan jelas.

Tulisan ini dibuat sebagai alat bantu bagi pembaca untuk mengenal sistem berorientasi objek. Tulisan ini tidak dimaksudkan sebagai pola dalam pembuatan sistem berorientasi objek karena disadari masih banyak hal yang belum tersentuh dalam materi ini karena keterbatasan pemahaman dan pengalaman penulis dalam memahami sistem berorientasi objek. Dengan adanya tulisan ini diharapkan bahwa pembaca mendapatkan gambaran tentang apa yang disebut dengan Sistem Berorientasi Objek dan memahami korelasi antara analisis dan desain sistem beserta implementasinya dalam bahasa pemrograman. Berbagai literatur dapat dipelajari lebih lanjut untuk mendapatkan pemahaman lebih akurat tentang sistem berorientasi objek.

1. Beginning a Project1.1. Latar Belakang

Sistem Informasi Riset Mahasiswa adalah sistem sederhana dalam kegiatan administratif di sebuah jurusan di lingkungan perguruan tinggi. Sistem ini berupaya melakukan otomasi terhadap kegiatan penelitian formal yang dilakukan mahasiswa dalam menempuh studinya. Jurusan berharap bahwa dengan adanya sistem ini, data akademik yang berhubungan dengan skripsi mahasiswa dapat terdokumentasi dengan baik sehingga dapat digunakan untuk memberikan laporan dengan cepat dan akurat pada fakultas dan mahasiswa. Pada akhirnya sistem ini diharapkan dapat membantu kelancaran mahasiswa dalam menempuh studinya di jurusan bersangkutan.

1.2. Problem Statement Sistem Informasi Riset MahasiswaDalam menempuh studi di perguruan tinggi, mahasiswa diwajibkan untuk melaksanakan penelitian sebagai bagian dari kegiatan akademisnya. Bentuk dari aktifitas ini adalah pembuatan skripsi di akhir masa perkuliahan. Prosedur

Page 2: Studi kasus sibo

pembuatan skripsi dimulai dengan pengajuan proposal skripsi oleh mahasiswa, pelaksanaan uji kelayakan proposal skripsi, penentuan dosen pembimbing dan pelaksanaan ujian skripsi. Sebagai tambahan, proses pembimbingan juga perlu didokumentasikan untuk mengetahui kemajuan mahasiswa dalam melaksanakan penelitian. Dalam tulisan ini proses yang berhubungan dengan kegiatan pembimbingan belum dilaksanakan karena saat ini lebih fokus pada proses utama kegiatan riset mahasiswa.Saat ini semua proses tersebut dilaksanakan dengan menggunakan perangkat lunak microsoft office, terutama excel dan word. Persoalan utama dengan kondisi ini adalah masalah integrasi data, konsistensi data dan kecepatan proses. Diperlukan sebuah sistem yang terintegrasi sehingga berbagai kebutuhan informasi seputar riset mahasiswa dapat ditampilkan dengan akurat dan cepat. Sistem yang baru ini dimulai ketika mahasiswa mengajukan proposal skripsi kepada panitia seminar proposal skripsi disertai dengan berbagai kelengkapan persyaratan administratif yang diperlukan, misalnya proposal sebanyak 3 exemplar dan poster/diagram blok. Dalam satu semester, seminar proposal dilaksanakan minimal dua kali sehingga mahasiswa yang tidak lulus pada gelombang pertama dapat mengikuti kembali di gelombang kedua atau gelombang berikutnya. Selanjutnya panitia menentukan jadwal seminar proposal skripsi yang terdiri dari waktu, ruang dan penguji. Aktifitas terakhir adalah pelaksanaan seminar proposal untuk menentukan apakah proposal layak dijadikan skripsi atau tidak. Pada saat ini dosen penguji akan memberikan nilai kepada mahasiswa bersangkutan. Dosen penguji terdiri dari 3 orang. Bila proposal tersebut dinilai layak maka jurusan akan menentukan pembimbing skripsi, serta mencatat kembali judul skripsi yang telah direvisi oleh mahasiswa. Data ini akan digunakan pada saat bimbingan dan ujian skripsi. Sistem juga akan memberikan laporan-laporan berupa informasi kepada mahasiswa status kelengkapan administratif peserta, jadwal seminar, nilai seminar dan dosen pembimbing skripsi. Bagi fakutas, sistem diharapkan dapat dengan cepat memberikan informasi tentang pelaksanaan seminar proposal yang akan digunakan untuk membuat SK penguji skripsi dan SK pembimbing skripsi.

2. Analis dan Desain Sistem2.1. Use case Diagram

Use Case Diagram adalah diagram yang menampilkan actor, use case dan relasi diantara keduanya dalam sebuah sistem. Use case diagram menggambarkan ruang lingkup dari sistem yang akan dibangun dan merupakan sarana komunikasi dengan pengguna akhir untuk mendapatkan pemahaman yang lebih baik tentang sistem yang akan dibuat.Kandidat actor yang terlibat dalam SIRM dapat dilakukan dengan memperhatikan problem statement di atas. Dari problem statement kandidat actor-nya adalah

Page 3: Studi kasus sibo

mahasiswa, panitia seminar dan penguji. Kandidat actor juga dapat diperoleh dengan menjawab pertanyaan-pertanyaan berikut : Siapa yang terlibat dalam requirement tertentu

o Sistem diharapkan dapat digunakan untuk menangani pendaftaran peserta. Kandidat actor : mahasiswa, panitia

o Sistem diharapkan dapat digunakan untuk membuat jadwal pelaksanaan seminar. Kandidat actor : panitia

o Sistem diharapkan dapat digunakan untuk memberikan penilaian pada saat presentasi. Kandidat actor : penguji, panitia

o Sistem diharapkan dapat digunakan untuk menentukan pembimbing skripsi. Kandidat actor : panitia

o Sistem diharapkan dapat segera memberikan laporan ke jurusan tentang pelaksanaan seminar proposal : panitia, jurusan

o Sistem dapat segera memberikan laporan ke fakultas untuk membuat SK penguji dan SK pembimbing skripsi : panitia, fakultas

Dimana sistem akan digunakan dalam organisasi? Bagian Tata usaha jurusan Siapa yang mendapat keuntungan dari penggunaan sistem? Jurusan, fakultas,

bagian tata usaha jurusan, mahasiswa Siapa yang menyediakan, menggunakan dan memindahkan informasi dalam

sistem? Menyediakan informasi : mahasiswa, panitia, penguji. Menggunakan informasi : penguji. Memindahkan informasi dalam sistem : panitia, penguji.

Siapa yang akan mendukung dan mengelola sistem? Bagian tata usaha jurusan Apakah sistem menggunakan sumberdaya external? Tidak. Apakah satu orang memainkan beberapa tugas berbeda? Ya, seorang dosen

dapat menjadi panitia juga sekaligus penguji. Apakah sistem berinteraksi dengan sistem yang lain? Tidak. Dari berbagai langkah yang telah dilakukan di atas, kita memperoleh kandidat actor berikut : mahasiswa, panitia, penguji, dosen, bagian tata usaha jurusan, jurusan dan fakultas. Perlu ditentukan good actor dari kandidat actor tersebut dengan mempertimbangkan cara mereka menggunakan sistem, yaitu bila mereka menggunakan sistem dengan cara yang berbeda maka mereka adalah actor yang berbeda. Mahasiswa berperan sebagai penyedia data dalam sistem yang akan di bangun sehingga dipilih sebagai actor. Seorang dosen dapat berperan sebagai panitia dapat pula berperan sebagai penguji, berdasarkan problem statement dan requirement di atas, peran dosen sebagai actor tidaklah berbeda dengan peran dari panitia maupun penguji sehingga dosen untuk saat ini tidak dipertimbangkan sebagai actor. Bagian tata usaha jurusan adalah bagian dari panitia dan dalam persoalan SIRM ini perannya tidak berbeda dengan panitia sehingga tidak dipilih sebagai actor. Jurusan dan fakultas berperan menerima informasi dari sistem sehingga dipilih sebagai actor.

Page 4: Studi kasus sibo

Pada saat menentukan actor, perlu disadari bahwa actor adalah seseorang atau sesuatu yang memberikan informasi ke dalam sistem, memberikan dan menerima informasi dari sistem atau hanya menerima informasi dari sistem saja.Dari langkah-langkah di atas, actor dalam SIRM yang dipilih adalah mahasiswa, panitia, penguji, jurusan dan fakultas.

Gambar 1 Actor dalam SIRM

Setelah memilih actor, sekarang menentukan use case untuk melengkapi use case diagram yang sedang dibangun. Kandidat use case dapat ditemukan dengan menjawab pertanyaan-pertanyaan berikut: Apakah tugas dari masing-masing actor?

o Mahasiswa : menyerahkan berkas kelengkapan pendaftaran seminar proposal

o Panitia : melakukan pendaftaran peserta seminar, membuat jadwal pelaksanaan seminar, menentukan pembimbing skripsi

o Penguji : memberikan penilaian o Jurusan : menerima laporan pelaksanaan seminaro Fakultas : menerima laporan penguji seminar skripsi, menerima laporan

pembimbing skripsi Apakah ada actor yang membuat, menyimpan, mengubah, memindahkan atau

membaca informasi dalam sistem? Ada. Apakah use case akan membuat, menyimpan, mengubah, memindahkan atau

membaca informasi ini? Ya. Apakah ada actor yang memberikan informasi ke sistem bila terjadi perubahan

external? Tidak.

Page 5: Studi kasus sibo

Use case apa yang akan mendukung pengelolaan sistem? Dapatkah semua fungsi dalam requirement dikerjakan oleh use case? Dapat.Langkah selanjutnya adalah menentukan use case yang baik dengan mempertimbangkan bahwa use case yang baik adalah use case yang merepresentasikan fungsi yang lengkap dari awal sampai akhir.

Gambar 2 Use case dan actor dalam SIRM

Komponen ketiga dari use case diagram adalah association, yang digunakan untuk menunjukkan hubungan antara actor dengan use case atau use case dengan use case yang lain. Petunjuk berikut dapat kita jadikan pedoman pada saat membuat asosiasi : Jangan memodelkan asosiasi antara aktor ke aktor. Jangan menggambarkan asosiasi secara langsung antara dua use case. Setiap use case harus diinisiasi oleh actor, sehingga arah panah dimulai dari

actor dan berakhir di use case, kecuali untuk relasi include dan extend. Memasukkan informasi ke basis data menggunakan satu use case dan

mengaksesnya menggunakan use case yang lain.

Page 6: Studi kasus sibo

Gambar 3 Use case Diagram SIRM

Gambar 4 Use case Diagram SIRM revisi 1

Sampai disini diharapkan pihak pengembang maupun pihak pengguna/klien telah memperoleh gambaran umum dari sistem yang akan dibangun. Perubahan masih dapat dilakukan seiring dengan pemahaman yang lebih baik terhadap persoalan yang dihadapi seperti ditampilkan pada gambar 4, dimana ada penambahan actor sistem administrasi jurusan yang merupakan sistem lain yang berhubungan dengan SIRM ketika disadari bahwa SIRM ini membutuhkan informasi tentang data mahasiswa. Sistem administrasi jurusan adalah sistem yang digunakan oleh jurusan untuk menangani proses administrasi jurusan secara umum, misalnya data mahasiswa, data dosen dan data akademik.

Page 7: Studi kasus sibo

Laporan Penguji Seminar

Laporan Pembimbing Skripsi

fakultas

penguji

Penjadwalan Presentasi

Penentuan Pembimbing

Pemberian Nilai

Pembuatan Laporan Pelaksanaan jurusan

<<extend>>

<<extend>>

panitia

Sistem Adminstra...

peserta Pendaftaran Peserta

Gambar 5 Use case Diagram SIRM revisi 2

Gambar 5 adalah revisi use case diagram yang dilakukan ketika disadari bahwa actor mahasiswa masih memiliki peran yang terlalu luas bagi SIRM, hanya mahasiswa yang telah siap dengan penelitian saja yang dapat mendaftar sebagai peserta seminar oleh karena itu actor mahasiswa diganti dengan actor peserta.

Langkah selanjutnya adalah memahami lebih detil dari setiap fitur yang telah digambarkan melalui use case diagram di atas. Caranya yaitu dengan membuat flow of event (aliran kejadian) untuk setiap use case yang ada dalam diagram use case. Flow of event yang disebut juga skenario, adalah langkah detil yang terjadi dalam sebuah use case dan dinyatakan dengan kalimat. Struktur flow of event adalah sebagai berikut:

1.0 Flow of event dari use case ‘ ... ‘

1.1 Preconditions

1.2 Main Flow

1.3 Subflows

1.4 Alternative Flows

Page 8: Studi kasus sibo

Gambar 6 Struktur Flow of Event

Berikut ini adalah contoh flow of event dari sebuah use case. Gambar 5 adalah flow of event dari use case Pendaftaran Peserta. Sub bagian 1.1 adalah prakondisi yang harus dilakukan sebelum sub bagian 1.2 dilaksanakan. Dalam contoh ini prakondisinya adalah kesiapan data primer yang harus tersedia agar sistem dapat berjalan. Contoh data primer misalnya data mahasiswa, data dosen, data ruang, data matakuliah dll. Dalam use case diagram di atas data primer ini ditangani oleh actor sistem administrasi jurusan.

Gambar 7 Flow of Event dari use case Pendaftaran Peserta

1.0 Flow of Event dari use case Pendaftaran Peserta

1.1 Preconditions

Sistem administrasi jurusan yang berhubungan dengan data mahasiswa telah dilaksanakan sehingga data mahasiswa telah tersedia.

1.2 Main Flow

Use case ini dimulai ketika panitia seminar menentukan waktu pelaksanaan seminar proposal skripsi dengan memasukkan data tahun ajaran, semester dan periode. Selanjutnya panitia memasukkan nomor induk mahasiswa (NIM) mahasiswa ke dalam sistem. Sistem akan memeriksa apakah mahasiswa tersebut ada di dalam database. Bila ada maka sistem akan menampilkan nama mahasiswa (E-1). Selanjutnya panitia seminar memasukkan judul proposal skripsi dari mahasiswa dan menyimpannya.

1.3 Subflows

Bila mahasiswa dinyatakan lulus tetapi perlu melakukan revisi, maka panitia melakukan edit judul proposal dan meng-update data tersebut.

1.4 Alternative Flows

E1 : bila NIM tidak ada maka sistem akan memberikan peringatan bahwa nama mahasiswa tidak ada dan disarankan untuk memeriksa kembali kebenaran dari NIM mahasiswa tersebut.

Page 9: Studi kasus sibo

Main flow adalah aliran kejadian dengan asumsi semua kondisi bernilai true sehingga tidak ada pilihan yang harus diputuskan. Flow of event di atas menunjukkan bahwa mahasiswa dengan NIM tersebut memang ada di jurusan bersangkutan, kemudian judul dimasukkan dan data disimpan ke database. Item 1.3 merupakan langkah yang harus dilakukan bila mahasiswa telah melakukan seminar dan dinyatakan lulus tetapi perlu melakukan revisi judul. Pada saat ini panitia perlu menampilkan kembali data pendaftaran peserta, meng-edit judul proposal lalu melakukan update terhadap data tersebut. Kode E-1 menunjukkan adanya kondisi perkecualian yang mungkin terjadi, kondisi ini merupakan alternative flow yang merupakan aliran kejadian yang harus dilaksanakan ketika kondisi main flow bernilai false. Flow of event ini akan menjadi bahan untuk pembuatan Activity Diagram.

2.2. Activity DiagramActivity diagram adalah bentuk visual dari flow of event. Apa yang disampaikan melalui kata-kata pada flow of event diterjemahkan dalam bentuk diagram sehingga detil dari sistem akan lebih mudah dipahami. Activity diagram dibuat untuk setiap use case yang ada dalam use case diagram.

Page 10: Studi kasus sibo

masukkan NIM

periksa NIM

tampil Pesan

tampil Nama

input Judul

input Pesyaratan

simpan

masukkan Tahun Ajaran

masukkan Semester

masukkan periode

No

Yes

Gambar 8 Activity diagram untuk use case pendaftaran peserta

Gambar 8 adalah activity diagram dari flow of event pendaftaran peserta yang digunakan untuk mendaftar peserta yang akan mengikuti seminar proposal skripsi. Gambar 9 adalah activity diagram yang digunakan untuk melakukan update judul proposal ketika seorang mahasiswa dinyatakan lulus seminar dengan revisi.

Page 11: Studi kasus sibo

masukkan Tahun Ajaran

masukkan Semester

masukkan periode

masukkan NIM

periksa NIM

tampil PesanNo

tampil Nama

tampil Judul

edit Judul

update Judul

Gambar 9 Activity diagram pendaftaran peserta dengan subflow

2.3. Class DiagramClass diagram adalah diagram yang menampilkan class dan interaksi diantaranya. Bagi pengembang perangkat, lunak class diagram adalah alat utama dalam melakukan implementasi perangkat lunak yang dikembangkan.

Class dapat ditemukan melalui flow of event dari suatu use case dengan memperhatikan kata benda yang ada dalam flow of event tersebut. Relasi adalah koneksi antar class yang memungkinkan sebuah class mengetahui atribut dan operasi dari class yang lain.

Page 12: Studi kasus sibo

Berdasarkan use case diagram yang telah dijabarkan dalam flow of event dan digambarkan dengan activity diagram maka kita bisa menentukan calon class yang mungkin terlibat dalam SIRM.

Gambar 10 menemukan kandidat class dari flow of event pendaftaran peserta

Kata yang dicetak hijau pada gambar 10 adalah kadidat class yang ditemukan dengan mencari kata benda dari flow of event. Kata-kata tersebut adalah : Sistem administrasi jurusan Data mahasiswa Panitia seminar Tahun ajaran Semester Periode Form pendaftaran Nama mahasiswa Judul proposal skripsi Mahasiswa Peserta

1.0 Flow of Event dari use case Pendaftaran Peserta

1.1 Preconditions

Sistem administrasi jurusan yang berhubungan dengan data mahasiswa telah dilaksanakan sehingga data mahasiswa telah tersedia.

1.2 Main Flow

Use case ini dimulai ketika panitia seminar menentukan waktu pelaksanaan seminar proposal skripsi dengan memasukkan data tahun ajaran, semester dan periode. Selanjutnya panitia memasukkan nomor induk mahasiswa (NIM) mahasiswa ke dalam form pendaftaran. Sistem akan memeriksa apakah mahasiswa tersebut ada di dalam database. Bila ada maka sistem akan menampilkan nama mahasiswa (E-1). Selanjutnya panitia seminar memasukkan judul proposal skripsi dari mahasiswa dan menyimpannya.

1.3 Subflows

Bila peserta dinyatakan lulus tetapi perlu melakukan revisi, maka panitia melakukan edit judul proposal skripsi dan meng-update data tersebut.

1.4 Alternative Flows

E1 : bila NIM tidak ada maka sistem akan memberikan peringatan bahwa nama mahasiswa tidak ada dan disarankan untuk memeriksa kembali kebenaran dari NIM mahasiswa tersebut.

Page 13: Studi kasus sibo

Kandidat class tersebut belum tentu digunakan sebagai class, bisa jadi hanya digunakan sebagai atribut dari class. Dalam hubungannya dengan pendaftaran peserta, sistem administrasi jurusan merupakan sistem lain yang berhubungan dengan SIRM dan bukan sebuah class. Dari sistem administrasi jurusan ini SIRM mendapatkan data mahasiswa, sehingga data mahasiswa juga bukan sebuah class. Panitia dipertimbangkan sebagai class karena dimungkinkan akan menjadi data yang permanen. Tahun ajaran, semester dan periode adalah atribut bagi class. Form pendaftaran adalah class yang akan digunakan untuk interaksi antara pengguna dengan sistem. Nama mahasiswa dan judul proposal skripsi adalah atribut class. Mahasiswa dan peserta adalah class karena akan menjadi data yang permanen dalam database, tetapi peserta lebih erat kaitannya dengan SIRM. Dengan demikian pada tahap awal ini terdapat class panitia, from pendaftaran dan peserta.

panitia

namajabatan

(from Use Case View)

<<Actor>>

FormPendaftaran

tahunajaransemesterperiodenimnamajudul

peserta

nimjudul

(from Use Case View)

<<Actor>>

Gambar 11 Class Diagram SIRM tahap awal

Pada tahap awal ini class diagram yang terbentuk masih sangat sederhana karena hanya memiliki nama class dengan beberapa atribut dasar. Seiring dengan pengamatan lebih lanjut terhadap activity diagram maka class diagram dapat dilengkapi dengan atribut dan method seperti gambar 12.

panitia

namajabatan

(from Use Case View)

<<Actor>>

FormPendaftaran

tahunajaransemesterperiodenimnamajudul

getData()saveDaftar()updateDaftar()

peserta

nimjudul

(from Use Case View)

<<Actor>>

Page 14: Studi kasus sibo

Gambar 12 Class Diagram SIRM revisi 1

Pada titik ini dipikirkan bahwa method getData() adalah method yang akan digunakan untuk mengambil data mahasiswa berupa nama dan judul proposal skripsi. Method saveDaftar() adalah method yang akan digunakan untuk menyimpan data pendaftaran peserta dan updateDaftar() adalah method yang akan digunakan untuk menyimpan kembali perubahan yang telah dilakukan terhadap judul proposal skripsi setelah dilakukan revisi.

2.4. Sequence Diagram

Sequence diagram digunakan untuk menunjukkan partisipasi objek-objek dalam aliran yang melalui use case dengan mengirimkan pesan antar objek. Komponen dari sequence diagram adalah actor, objek dan message. Pada akhirnya objek harus dihubungkan dengan class dan message diubah menjadi method agar model menjadi benar.

: panitiafrmdaftar :

FormPendaftarankonekpeserta

setNim( )

setTahun( )

setSemester( )

setPeriode( )

getNama

getJudul

setJudul( )

savePeserta

Page 15: Studi kasus sibo

Gambar 13 Sequence Diagram Pendaftaran Peserta tahap awal

Pada gambar 13 ada objek bernama konekpeserta yang memiliki message getNama, getJudul dan savePeserta. Bila saat ini dilakukan check model maka akan muncul pesan kesalahan seperti gambar 14. Hal ini terjadi karena objek konekpeserta belum dihubungkan dengan class tertentu dan message belum menjadi method. Objek yang telah dihubungkan dengan sebuah class tertentu ditandai dengan tanda titik dua, misalnya frmdaftar:FormPendaftaran pada gambar 13. Sebuah method ditandai dengan tanda kurung buka dan kurung tutup, misalnya setTahun(), setSemester(), setPeriode(), setNim() dan setJudul().

Gambar 14 Pesan kesalahan ketika dilakukan check model

Dari sequence diagram di atas terlihat bahwa ada kebutuhan untuk membentuk class baru yang akan digunakan untuk meng-akses data mahasiswa dan data peserta. Maka pada class diagram dapat ditambahkan class KoneksiPeserta untuk menangani tugas ini.

Page 16: Studi kasus sibo

panitia

namajabatan

(from Use Case View)

<<Actor>>

FormPendaftaran

tahunajaransemesterperiodenimnamajudul

getData()saveDaftar()updateDaftar()setNim()setTahun()setSemester()setPeriode()setJudul()

peserta

nimjudul

(from Use Case View)

<<Actor>> KoneksiPeserta

Gambar 15 Class Diagram setelah pembuatan Sequence Diagram

Page 17: Studi kasus sibo

: panitiafrmdaftar :

FormPendaftarankonekpeserta : KoneksiPeserta

setNim( )

setTahun( )

setSemester( )

setPeriode( )

getNama( )

getJudul( )

setJudul( )

savePeserta( )

Gambar 16 Penambahan method di class KoneksiPeserta

panitia

namajabatan

(from Use Case View)

<<Actor>>

FormPendaftaran

tahunajaransemesterperiodenimnamajudul

getData()saveDaftar()updateDaftar()setNim()setTahun()setSemester()setPeriode()setJudul()

peserta

nimjudul

(from Use Case View)

<<Actor>> KoneksiPeserta

getNama()getJudul()savePeserta()

Gambar 17 Method pada class KoneksiPeserta

Page 18: Studi kasus sibo

Karena fungsi dari method getData() dan saveDaftar() pada class FormPendaftaran telah digantikan oleh method getNama(), getJudul() dan savePeserta() pada class KoneksiPeserta maka method getData() dan saveDaftar() dihapus dari class FormPendaftaran.

panitia

namajabatan

(from Use Case View)

<<Actor>>

FormPendaftaran

tahunajaransemesterperiodenimnamajudul

updateDaftar()setNim()setTahun()setSemester()setPeriode()setJudul()

peserta

nimjudul

(from Use Case View)

<<Actor>> KoneksiPeserta

getNama()getJudul()savePeserta()

Gambar 18 Revisi class FormPendaftaran

panitia

namajabatan

(from Use Case View)

<<Actor>>

FormPendaftaran

tahunajaransemesterperiodenimnamajudul

setNim()setTahun()setSemester()setPeriode()setJudul()

peserta

nimjudul

(from Use Case View)

<<Actor>> KoneksiPeserta

getNama()getJudul()savePeserta()updatePeserta()

Gambar 19 Class Diagram SIRM Revisi 2

Selain class, dalam class diagram juga terdapat relasi yang menghubungkan satu class dengan class yang lain. Jenis-jenis relasi terdiri dari asosiasi, dependensi, agregasi, realisasi dan generalisasi. Asosiasi adalah bentuk yang paling umum dari hubungan antar class. Pada saatnya nanti, yaitu ketika proses coding dijalankan maka asosiasi ini akan menyebabkan suatu class mempunyai objek dari class yang lain.Dalam persoalan SIRM terdapat asosiasi antara class FormPendaftaran dengan class KoneksiPeserta, hal ini dapat diketahui dengan memperhatikan sequence diagram

Page 19: Studi kasus sibo

dimana terdapat message antara FormPendaftaran dengan KoneksiPeserta. Adanya message menunjukkan bahwa terdapat relasi antara suatu class dengan class yang lain.

panitia

namajabatan

(from Use Case View)

<<Actor>>

peserta

nimjudul

(from Use Case View)

<<Actor>> FormPendaftaran

tahunajaransemesterperiodenimnamajudul

setNim()setTahun()setSemester()setPeriode()setJudul()

KoneksiPeserta

getNama()getJudul()savePeserta()updatePeserta()

Gambar 20 Asosiasi satu arah antara class FormPendaftaran & class KoneksiPeserta

2.5. State DiagramState diagram adalah diagram yang digunakan untuk menggambarkan siklus hidup sebuah objek tunggal dari saat dibuat sampai objek itu dihapus. State diagram memodelkan perilaku dinamis dari sebuah class. State diagram tidak dibuat untuk setiap class, tetapi hanya dibuat untuk class yang memiliki sifat dinamis. Gambar 21 adalah contoh yang bagus untuk memahami makna dari sifat dinamis, dimana terdapat sebuah objek bernama penerbangan yang memiliki atribut status_penerbangan. State dari variabel status_penerbangan ini dapat berada pada kondisi : Sementara, Dijadwalkan, Terbuka, Penuh, Tertutup, Ditunda, Dalam penerbangan, Dibatalkan dan Telah mendarat sesuai dengan nilai dari variabel class penerbangan.

dijadwalkan

entry/ Upload jadwal penerbangan ke internetdo/ Cek tanggal aktif

Sementara menyetujui jadwal penerbangan

terbuka

tambah/hapus penumpang

[ tanggal aktif <= 60 hari tanggal penerbangan ] / set jumlah penumpang = 0

penuh

tambah penumpang[ tempat duduk terakhir terjual ]

tertutup

hapus penumpang10 menit sebelum take off 10 menit sebelum take off

ditunda

do/ P̂enjadwal.jadwalUlang(waktu)

Jadwal take off[ Pesawat tidak datang ]

dalam perjalanan

exit/ catat waktu pendaratan

tak off

telah mendarat

mendarat

dibatalkan

do/ mencari alternatif penerbangan untuk pelanggan

[ kurang dari 50 penumpang ]

pesawat datang

[ 4 jam setelah jadwal take off ]

Page 20: Studi kasus sibo

Gambar 21 State diagram untuk objek penerbangan

Bentuk segi empat yang ujungnya tidak lancip adalah simbol dari state. Penjelasan dari beberapa state dia atas adalah sebagai berikut, State dalam keadaan terbuka ketika jumlah penumpang lebih kecil dari 50 dalam pesawat. State dalam keadaan penuh ketika jumlah penumpang sama dengan 50. State dalam keadaan dibatalkan ketika jumlah penumpang kurang dari 50. State dalam keadaan tertutup 10 menit sebelum jadwal take off. State dalam keadaan ditunda ketika jadwal take off ternyata pesawat tidak datang. Kata-kata yang dicetak dengan warna hijau menunjukkan variabel beserta nilainya. Dalam contoh di atas, perubahan nilai variabel jumlah penumpang ternyata mempengaruhi nilai dari variabel status_penerbangan, dengan perubahan nilai variabel waktu dari jadwal take off juga mempengaruhi nilai dari variabel status_penerbangan dan perubahan nilai variabel status kedatangan pesawat juga mempengaruhi nilai dari variabel status_penerbangan. Inilah yang disebut dengan sifat dinamis dari sebuah objek. Dalam persoalan SIRM, khususnya bagian class FormPendaftaran, terdapat variabel tahun ajaran, semester, periode, nim, nama dan judul. Perubahan nilai dari variabel yang satu tidak memberikan efek pada nilai dari variabel lain sehingga dapat disimpulkan bahwa class FormPendaftaran tidak memiliki sifat dinamis seperti halnya objek penerbangan sehingga tidak perlu dibuat state diagram untuk class ini. State diagram dapat digunakan untuk membantu menemukan method dari sebuah class.

2.6. Component Diagram

Menggambarkan organisasi modul dari software yang dikembangkan. Terdiri dari package, component dan hubungan diantara keduanya. Package merepresentasikan pembagian fisik dari sistem dan component merepresentasikan file dari software yang dikandung oleh package. Dalam bahasa pemrograman C++ file terdiri dari file dengan ekstensi h dan cpp sedangkan dalam bahasa pemrograman Java file berekstensi java.

Gambar 22 adalah contoh component diagram dari sistem registrasi pada sebuah perguruan tinggi. Terdapat lima buah package yaitu interface, university, error handling, database dan fondation. Dalam setiap package terdapat file pendukung yang digunakan oleh sistem seperti tampak pada gambar 23.

Page 21: Studi kasus sibo

Interface

University

Error Handling Database Fondations

Gambar 22 Contoh Component Diagram

Course CourseOffering UserInformation

ProfessorInformation StudentInformation

Gambar 23 Contoh Software Component dari package University

Dalam persoalan SIRM tahap awal, didapat tiga buah package terdiri dari interface, AksesDatabase dan fundamental. Package Interface berisi class-classs yang akan digunakan untuk berinteraksi dengan pengguna. Package AksesDatabase adalah pakage yang digunakan untuk melakukan koneksi dengan database. Package fundamental berisi class-class yang memiliki kegunaan umum sehingga konsep reusable dapat dilakukan dengan optimal.

Page 22: Studi kasus sibo

Interface

AksesDatabase Fundamental

Gambar 23 Contoh Component SIRM Tahap Awal

2.7. Deployment DiagramDeployment diagram adalah diagram yang digunakan memetakan software ke processing node. Menunjukkan konfigurasi elemen pemroses pada saat run time dan software yang ada di dalamnya.

Registration Database Server

Dorm

Main Building

Library

Gambar 24 Contoh Deployment Diagram

3. Implementasi

Implementasi adalah tahap pembangunan perangkat lunak. Diagram terpenting yang digunakan pada tahap ini adalah class diagram. Diagram class tahap akhir untuk use case pendaftaran peserta tampak pada gambar 24.

Page 23: Studi kasus sibo

panitia

namajabatan

(from Use Case View)

<<Actor>>

peserta

nimjudul

(from Use Case View)

<<Actor>>KoneksiPeserta

getNama()getJudul()savePeserta()updatePeserta()

FormPendaftaran

tahunajaransemesterperiodenimnamajudul

setNim()setTahun()setSemester()setPeriode()setJudul()komponenVisual()aksiReaksi()

+konekpeserta

FormPenjadwalan

Gambar 24 Class Diagram tahap akhir untuk use case Pendaftaran Peserta

Bila diperhatikan lebih dalam method savePeserta() (gambar 25), pada tab General terdapat informasi nama dan kemablian dari method. Pada tab Detail (gambar 26) dapat ditambahkan argumen yang diperlukan oleh method agar dapat digunakan dengan benar.

Gambar 25 spesifikasi dari method savePeserta()

Page 24: Studi kasus sibo

Gambar 26 Argumen dari method savePeserta()

3.1. Class FormPendaftaran

import javax.swing.*;import java.awt.*;import java.awt.event.*;import java.sql.*;

public class FormPendaftaran extends JFrame{ String tahunajaran; String semester; String periode; String nim; String nama; String judul;

JLabel lbltahunajaran = new JLabel ("Tahun Ajaran"); JLabel lblsemester = new JLabel ("Semester"); JLabel lblperiode = new JLabel ("Periode"); JTextField txttahunajaran = new JTextField (""); JTextField txtsemester = new JTextField (""); JTextField txtperiode = new JTextField ("");

JLabel lblnim = new JLabel ("NIM"); JLabel lblnama = new JLabel ("Nama"); JLabel lbljudul = new JLabel ("Judul"); JLabel lblsyarat = new JLabel ("Persyaratan"); JTextField txtnim = new JTextField (""); JTextField txtnama = new JTextField (""); JTextArea txtjudul = new JTextArea (3, 20);

Page 25: Studi kasus sibo

JButton tblsave = new JButton ("Save"); JButton tblupdate = new JButton ("Update"); JButton tblview = new JButton ("View Peserta");

public Connection connection; public Statement statement;

KoneksiPeserta konekpeserta=new KoneksiPeserta();

public FormPendaftaran() { Dimension screen = Toolkit.getDefaultToolkit().getScreenSize(); setTitle("Form Pendaftaran Seminar Proposal Skripsi"); setSize(400,380); int lebar = (screen.width - getSize().width) / 2; int tinggi = (screen.height - getSize().height) / 2; setLocation(lebar, tinggi); setResizable(false); setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE); try { Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); connection = DriverManager.getConnection("jdbc:odbc:aksessirm;uid='admin';pw='admin'"); } catch (Exception e) { } }

public String setNim() { nim=txtnim.getText(); return nim; }

public String setTahun() { tahunajaran=txttahunajaran.getText(); return tahunajaran; }

public String setSemester() { semester=txtsemester.getText(); return semester; }

public String setPeriode() { periode=txtperiode.getText(); return periode; }

public String setJudul() { judul=txtjudul.getText(); return judul; }

Page 26: Studi kasus sibo

void komponenVisual() { getContentPane().setLayout(null); getContentPane().add(lbltahunajaran); lbltahunajaran.setBounds(10,10,100,20); getContentPane().add(txttahunajaran); txttahunajaran.setBounds(110,10,100,20); txttahunajaran.setBorder(BorderFactory.createEtchedBorder(1));

getContentPane().add(lblsemester); lblsemester.setBounds(10,30,100,20); getContentPane().add(txtsemester); txtsemester.setBounds(110,30,100,20); txtsemester.setBorder(BorderFactory.createEtchedBorder(1));

getContentPane().add(lblperiode); lblperiode.setBounds(10,50,100,20); getContentPane().add(txtperiode); txtperiode.setBounds(110,50,100,20); txtperiode.setBorder(BorderFactory.createEtchedBorder(1));

getContentPane().add(lblnim); lblnim.setBounds(10,70,100,20); getContentPane().add(txtnim); txtnim.setBounds(110,70,100,20); txtnim.setBorder(BorderFactory.createEtchedBorder(1));

getContentPane().add(lblnama); lblnama.setBounds(10,90,100,20); getContentPane().add(txtnama); txtnama.setBounds(110,90,250,20); txtnama.setBorder(BorderFactory.createEtchedBorder(1));

getContentPane().add(lbljudul); lbljudul.setBounds(10,110,100,20);

getContentPane().add(txtjudul); txtjudul.setBounds(110,110,250,60); txtjudul.setBorder(BorderFactory.createEtchedBorder(1)); txtjudul.setLineWrap(true); txtjudul.setWrapStyleWord(true);

getContentPane().add(tblsave); tblsave.setBounds(260,260,100,20); getContentPane().add(tblupdate); tblupdate.setBounds(260,282,100,20);

setVisible(true); }

void aksiReaksi() { txttahunajaran.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if(event.getKeyCode()==event.VK_ENTER)

Page 27: Studi kasus sibo

{ txtsemester.requestFocus(); } } });

txtsemester.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if(event.getKeyCode()==event.VK_ENTER) {

txtperiode.requestFocus(); } } });

txtperiode.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if(event.getKeyCode()==event.VK_ENTER) { txtnim.requestFocus(); } } });

txtnim.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if(event.getKeyCode()==event.VK_ENTER) {

try { nama=konekpeserta.getNama(connection,setNim()); txtnama.setText(nama); judul=konekpeserta.getJudul(connection,setNim(),setTahun(),setSemester(),setPeriode()); txtjudul.setText(judul);

}catch(Exception e)

{JOptionPane.showMessageDialog(null,"Data telah ada dalam database","Konfirmasi", JOptionPane.INFORMATION_MESSAGE);

} txtjudul.requestFocus();

} } });

txtjudul.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if(event.getKeyCode()==event.VK_ENTER) { tblsave.requestFocus();

Page 28: Studi kasus sibo

} } });

tblsave.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if(event.getKeyCode()==event.VK_ENTER) { String prop=""; String post=""; judul=txtjudul.getText();

konekpeserta.savePeserta(connection,setNim(),judul,prop,post,setTahun(),setSemester(), setPeriode()); txtnim.setText(""); txtnama.setText(""); txtjudul.setText(""); txtnim.requestFocus();

} } });

tblupdate.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if(event.getKeyCode()==event.VK_ENTER) {

judul=txtjudul.getText(); konekpeserta.updatePeserta(connection,setNim(),judul,setTahun(),setSemester(), setPeriode()); txtnim.setText(""); txtnama.setText(""); txtjudul.setText(""); txtnim.requestFocus();

} } }); }

public static void main(String args[]) { FormPendaftaran fp=new FormPendaftaran();

fp.komponenVisual(); fp.aksiReaksi(); }}

Bila source code tersebut kita jalankan maka akan diperoleh gambar 27. Setelah informasi tahun ajaran, semester dan periode telah dimasukkan maka dapat dimasukkan pula NIM mahasiswa. Setelah dilakukan penekanan tombol enter pada komponen NIM maka nama mahasiswa akan ditampilkan dan bila mahasiswa bersangkutan telah mengambil seminar proposal maka judulnya juga akan ditampilkan. Tombol save digunakan untuk menyimpan data peserta baru dan data

Page 29: Studi kasus sibo

update digunakan untuk melakukan perubahan terhadap judul skripsi yang telah ada.

Gambar 27 Form Pendaftaran Peserta

3.2. Class KoneksiPeserta

import java.sql.*;public class KoneksiPeserta{ public String getNama(Connection connection, String nimmhs) { String nm=""; try { Statement statement = connection.createStatement(); String sql="select NamaMahasiswa from TabelMahasiswa where NIM='"+nimmhs+"'"; ResultSet rs=statement.executeQuery(sql);

if(rs.next()) {

nm=rs.getString(1); } statement.close(); } catch (Exception e) { } return nm; }

public String getJudul(Connection connection, String nimmhs,String thn,String smt,String prd)

Page 30: Studi kasus sibo

{ String jdl=""; try { Statement statement = connection.createStatement(); String sql="select Judul from TabelPeserta where NIM='"+nimmhs+"' and ThnAjaran='"+thn+"' and Semester='"+smt+"' and Periode='"+prd+"'"; ResultSet rs=statement.executeQuery(sql);

if(rs.next()) { jdl=rs.getString(1); } statement.close(); } catch (Exception e) { } return jdl; }

public void savePeserta(Connection connection, String nimmhs, String jdl, String prop,String post,String thn,String smt,String prd)

{ try { Statement statement = connection.createStatement();

String sql="insert into TabelPeserta values ('"+nimmhs+"','"+jdl+"','"+prop+"', '"+post+"','"+thn+"','"+smt+"','"+prd+"');";

statement.executeUpdate(sql); statement.close(); } catch (Exception e) { } }

public void updatePeserta(Connection connection, String nimmhs,String judul,String thn,String smt,String prd)

{ try { Statement statement = connection.createStatement(); String sql="update TabelPeserta set Judul='"+judul+"' where NIM='"+nimmhs+"'

and ThnAjaran='"+thn+"' and Semester='"+smt+"' and Periode='"+prd+"'"; statement.executeUpdate(sql); statement.close(); } catch (Exception e) { } }}

4. Tugas 24.1. Buatlah analisis dan perancangan berorientasi objek untuk sistem pakar.

Page 31: Studi kasus sibo

5. Daftar pustaka Quatrani, Terry.1998.Visual Modelling with Rational Rose and UML.Addison Wesley

Longman inc. Sholiq.2006.Pemodelan Sistem Informasi Berorientasi Objek dengan UML.Graha

Ilmu.Yogyakarta. Munawar.2005.Pemodelan Visual dengan UML.Graha Ilmu.Yogyakarta. Nugroho, Adi.2005.Rational Rose untuk Pemodelan Berorientasi Objek. Penerbit

Informatika.Bandung. Dwi, Didik Prasetyo.2007.150 Rahasia Pemrograman Java.Elex Media

Komputindo.Jakarta.