1. 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
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 Mahasiswa
2. Dalam 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
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 Sistem
2.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
3. 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
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.
4. 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.
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
5. 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 seminar
o 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.
• 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.
6. 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.
7. 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
8. 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.
Pendaftaran Peserta
peserta Sistem
Adminstra...
<<extend>>
Penjadwalan Presentasi Laporan Penguji Seminar
<<extend>> fakultas
panitia
Penentuan Pembimbing Laporan Pembimbing Skripsi
Pembuatan Laporan Pelaksanaan
jurusan
Pemberian Nilai
penguji
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:
9. 1.0 Flow of event dari use case ‘ ... ‘
1.1 Preconditions
1.2 Main Flow
1.3 Subflows
1.4 Alternative Flows
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.
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.
10. Gambar 7 Flow of Event dari use case Pendaftaran Peserta
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 Diagram
Activity 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.
11. masukkan
Tahun Ajaran
masukkan
Semester
masukkan
periode
masukkan NIM
periksa NIM
No tampil Pesan
Yes
tampil Nama
input Judul
input
Pesyaratan
simpan
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.
12. masukkan
Tahun Ajaran
masukkan
Semester
masukkan
periode
masukkan NIM
periksa NIM
No tampil Pesan
tampil Nama
tampil Judul
edit Judul
update Judul
Gambar 9 Activity diagram pendaftaran peserta dengan subflow
2.3. Class Diagram
Class 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.
13. 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.
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.
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.
14. 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
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.
15. FormPendaftaran
tahunajaran
semester
periode
nim
nama
judul
<<Actor>> <<Actor>>
panitia peserta
(from Use Case View) (from Use Case Vi ew)
nama nim
jabatan judul
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.
<<Actor>> FormPendaftaran
peserta tahunajaran
(from Use Case View)
semester
nim periode
judul nim
nama
judul
getData()
saveDaftar()
<<Actor>> updateDaftar()
panitia
(from Use Case View)
nama
jabatan
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
16. 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.
frmdaftar : konekpeserta
: panitia
FormPendaftaran
setTahun( )
setSemester( )
setPeriode( )
setNim( )
getNama
getJudul
setJudul( )
savePeserta
Gambar 13 Sequence Diagram Pendaftaran Peserta tahap awal
17. 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.
18. <<Actor>> FormPendaftaran KoneksiPeserta
peserta tahunajaran
(from Use Case Vi ew)
semester
nim periode
judul nim
nama
judul
getData()
saveDaftar()
updateDaftar()
<<Actor>> setNim()
panitia setTahun()
(from Use Case Vi ew) setSemester()
nama setPeriode()
jabatan setJudul()
Gambar 15 Class Diagram setelah pembuatan Sequence Diagram
19. frmdaftar : konekpeserta :
: panitia
FormPendaftaran KoneksiPeserta
setTahun( )
setSemester( )
setPeriode( )
setNim( )
getNama( )
getJudul( )
setJudul( )
savePeserta( )
Gambar 16 Penambahan method di class KoneksiPeserta
<<Actor>> FormPendaftaran KoneksiPeserta
peserta tahunajaran
(from Use Case View)
semester getNama()
nim periode getJudul()
judul nim savePeserta()
nama
judul
getData()
saveDaftar()
updateDaftar()
<<Actor>> setNim()
panitia setTahun()
(from Use Case View) setSemester()
nama setPeriode()
jabatan setJudul()
20. Gambar 17 Method pada class KoneksiPeserta
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.
<<Actor>> FormPendaftaran KoneksiPeserta
peserta tahunajaran
(from Use Case View)
semester getNama()
nim periode getJudul()
judul nim savePeserta()
nama
judul
updateDaftar()
setNim()
setTahun()
<<Actor>> setSemester()
panitia setPeriode()
(from Use Case View) setJudul()
nama
jabatan
Gambar 18 Revisi class FormPendaftaran
<<Actor>> FormPendaftaran KoneksiPeserta
peserta tahunajaran
(from Use Case Vi ew)
semester getNama()
nim periode getJudul()
judul nim savePeserta()
nama updatePeserta()
judul
setNim()
setTahun()
setSemester()
<<Actor>> setPeriode()
panitia setJudul()
(from Use Case Vi ew)
nama
jabatan
21. 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
dimana terdapat message antara FormPendaftaran dengan KoneksiPeserta. Adanya
message menunjukkan bahwa terdapat relasi antara suatu class dengan class yang
lain.
<<Actor>> FormPendaftaran KoneksiPeserta
peserta tahunajaran
(from Use Case View)
semester getNama()
nim periode getJudul()
judul nim savePeserta()
nama updatePeserta()
judul
setNim()
setTahun()
setSemester()
<<Actor>> setPeriode()
panitia setJudul()
(from Use Case View)
nama
jabatan
Gambar 20 Asosiasi satu arah antara class FormPendaftaran & class KoneksiPeserta
2.5. State Diagram
State 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
22. 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
Sement ara menyetujui jadwal penerbangan
entry/ Upload jadwal penerbangan ke internet
do/ Cek t anggal aktif
[ tanggal aktif <= 60 hari t anggal penerbangan ] / set jumlah penumpang = 0
tambah/hapus penumpang
tambah penumpang[ tempat duduk terakhir terjual ]
terbuka penuh
hapus penumpang
10 menit sebelum take off 10 menit sebelum take off
dalam perjalanan
ditunda t ertut up tak off
Jadwal take off[ Pesawat tidak datang ] exit/ catat waktu pendaratan
do/ ^Penjadwal.jadwalUlang(waktu)
mendarat
[ kurang dari 50 penumpang ]
t elah
pesawat datang
mendarat
dibatalkan
[ 4 jam setelah jadwal take off ]
do/ mencari alt ernatif penerbangan untuk pelanggan
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
23. 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.
24. 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.
25. Interface
AksesDatabase
Fundamental
Gambar 23 Contoh Component SIRM Tahap Awal
2.7. Deployment Diagram
Deployment 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
Library
Main
Building
Gambar 24 Contoh Deployment Diagram
26. 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.
<<Actor>> FormPendaftaran
peserta tahunajaran KoneksiPeserta
(from Use Case View) semester
nim periode getNama()
judul +konekpeserta getJudul()
nim
nama savePeserta()
judul updatePeserta()
setNim()
setTahun()
setSemester()
<<Actor>> setPeriode()
panitia setJudul()
(from Use Case View) komponenVisual()
FormPenjadwalan
nama aksiReaksi()
jabatan
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.
27. Gambar 25 spesifikasi dari method savePeserta()
Gambar 26 Argumen dari method savePeserta()
3.1. Class FormPendaftaran
import javax.swing.*;
import java.awt.*;
28. 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);
JButton tblsave = new JButton ("Save");
JButton tblupdate = new JButton ("Update");
JButton tblview = new JButton ("View Peserta");
public Connection connection;
29. 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()
{
35. 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
36. 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())
38. 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)
{
}
}
39. }
4. Tugas 2
4.1. Buatlah analisis dan perancangan berorientasi objek untuk sistem pakar.
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.