Ilustrasi Materi Kuliah Sistem Berorientasi Objek
Studi Kasus : Sistem Informasi Riset Mahasiswa (SIRM)
Revisi tgl 28 Sept...
Dalam menempuh studi di perguruan tinggi, mahasiswa diwajibkan untuk
       melaksanakan penelitian sebagai bagian dari ke...
lingkup dari sistem yang akan dibangun dan merupakan sarana komunikasi dengan
pengguna akhir untuk mendapatkan pemahaman y...
Dari berbagai langkah yang telah dilakukan di atas, kita memperoleh kandidat actor
berikut : mahasiswa, panitia, penguji, ...
Setelah memilih actor, sekarang menentukan use case untuk melengkapi use case
diagram yang sedang dibangun. Kandidat use c...
Gambar 2 Use case dan actor dalam SIRM




Komponen ketiga dari use case diagram adalah association, yang digunakan untuk
...
Gambar 3 Use case Diagram SIRM




                   Gambar 4 Use case Diagram SIRM revisi 1



Sampai disini diharapkan ...
sistem administrasi jurusan yang merupakan sistem lain yang berhubungan dengan
SIRM ketika disadari bahwa SIRM ini membutu...
1.0 Flow of event dari use case ‘ ... ‘

                       1.1 Preconditions

                       1.2 Main Flow

 ...
Gambar 7 Flow of Event dari use case Pendaftaran Peserta



    Main flow adalah aliran kejadian dengan asumsi semua kondi...
masukkan
                                    Tahun Ajaran



                                    masukkan
                ...
masukkan
                                         Tahun Ajaran


                                          masukkan
      ...
Class dapat ditemukan melalui flow of event dari suatu use case dengan
memperhatikan kata benda yang ada dalam flow of eve...
Gambar 10 menemukan kandidat class dari flow of event pendaftaran peserta



Kata yang dicetak hijau pada gambar 10 adalah...
FormPendaftaran
                                                    tahunajaran
                                          ...
digunakan untuk menyimpan kembali perubahan yang telah dilakukan terhadap
    judul proposal skripsi setelah dilakukan rev...
Pada gambar 13 ada objek bernama konekpeserta yang memiliki message getNama,
getJudul dan savePeserta. Bila saat ini dilak...
<<Actor>>            FormPendaftaran   KoneksiPeserta
          peserta             tahunajaran
      (from Use Case Vi ew...
frmdaftar :                   konekpeserta :
           : panitia
                                         FormPendaftaran...
Gambar 17 Method pada class KoneksiPeserta



Karena fungsi dari method getData() dan saveDaftar() pada class FormPendafta...
Gambar 19 Class Diagram SIRM Revisi 2



    Selain class, dalam class diagram juga terdapat relasi yang menghubungkan sat...
status_penerbangan. State dari variabel status_penerbangan ini dapat berada pada
kondisi : Sementara, Dijadwalkan, Terbuka...
variabel jumlah penumpang ternyata mempengaruhi nilai dari variabel
   status_penerbangan, dengan perubahan nilai variabel...
Interface




                                                 University




                  Error Handling            ...
Interface




                 AksesDatabase
                                                              Fundamental



...
3. Implementasi

   Implementasi adalah tahap pembangunan perangkat lunak. Diagram terpenting yang
   digunakan pada tahap...
Gambar 25 spesifikasi dari method savePeserta()




                         Gambar 26 Argumen dari method savePeserta()

...
import java.awt.event.*;

import java.sql.*;



public class FormPendaftaran extends JFrame

{

    String tahunajaran;

 ...
public Statement statement;



KoneksiPeserta konekpeserta=new KoneksiPeserta();



public FormPendaftaran()

{

    Dimen...
tahunajaran=txttahunajaran.getText();

    return tahunajaran;

}



public String setSemester()

{

    semester=txtsemes...
lblsemester.setBounds(10,30,100,20);

getContentPane().add(txtsemester);

txtsemester.setBounds(110,30,100,20);

txtsemest...
getContentPane().add(tblsave);

    tblsave.setBounds(260,260,100,20);

    getContentPane().add(tblupdate);

    tblupdat...
txtperiode.addKeyListener(new KeyAdapter()

{

    public void keyPressed(KeyEvent event)

    {

        if(event.getKeyC...
});



txtjudul.addKeyListener(new KeyAdapter()

{

      public void keyPressed(KeyEvent event)

      {

              i...
tblupdate.addKeyListener(new KeyAdapter()

        {

            public void keyPressed(KeyEvent event)

            {

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




                                ...
{

            nm=rs.getString(1);

        }

        statement.close();

    }

    catch (Exception e)

    {

    }

 ...
public void savePeserta(Connection connection, String nimmhs, String jdl,

                              String prop,Strin...
}




4. Tugas 2

   4.1. Buatlah analisis dan perancangan berorientasi objek untuk sistem pakar.



5. Daftar pustaka

  ...
Upcoming SlideShare
Loading in …5
×

Studi kasus sibo

3,448 views
3,374 views

Published on

Published in: Technology
0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
3,448
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
173
Comments
0
Likes
5
Embeds 0
No embeds

No notes for slide

Studi kasus sibo

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 27. Gambar 25 spesifikasi dari method savePeserta() Gambar 26 Argumen dari method savePeserta() 3.1. Class FormPendaftaran import javax.swing.*; import java.awt.*;
  28. 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. 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() {
  30. 30. 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; } 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);
  31. 31. 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);
  32. 32. 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) { txtsemester.requestFocus(); } } }); txtsemester.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if(event.getKeyCode()==event.VK_ENTER) { txtperiode.requestFocus(); } } });
  33. 33. 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(); } }
  34. 34. }); txtjudul.addKeyListener(new KeyAdapter() { public void keyPressed(KeyEvent event) { if(event.getKeyCode()==event.VK_ENTER) { tblsave.requestFocus(); } } }); 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(); } } });
  35. 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. 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())
  37. 37. { nm=rs.getString(1); } statement.close(); } catch (Exception e) { } return nm; } public String getJudul(Connection connection, String nimmhs,String thn,String smt,String prd) { 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; }
  38. 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. 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.

×