Tugas Akhir - 2009 ANALISIS DAN IMPLEMENTASI DESIGN BY CONTRACT MENGGUNAKAN JAVA MODELLING LANGUAGE Chindia Ferdinansari¹, Dana Sulistyo Kusumo², Kusuma Ayu Laksitowening³ ¹Teknik Informatika, Fakultas Teknik Informatika, Universitas Telkom Abstrak Design by Contract merupakan suatu metodologi untuk membangun software yang bertujuan untuk mengecek kebenaran program/software. Metode ini terdiri dari preconditions, postconditions dan invariant. Java Modelling Language adalah bahasa yang mengspesifikasikan kelas-kelas atau interface-interface secara detail dengan menambahkan keterangan/anotasi ke dalam file java. Java merupakan bahasa pemrograman berorientasi-objek Bahasa ini merupakan bahasa yang dapat berjalan pada lebih dari satu platform, namun bahasa java tidak diciptakan khusus untuk menangani metode DBC. Tugas akhir ini menganalisis tentang pengimplementasian Design by Contract menggunakan Java Modelling Language. Sebagai studi kasus, tugas akhir ini akan menggunaka Aplikasi Toko Bunga. Program dibuat dengan bahasa pemrograman Java dan menggunakan JML 5.6. Penerapan DBC dengan JML pada aplikasi dapat mengspesifikasikan atribut dan behavior dari method. Selain itu, error-error yang mungkin terjadi pada aplikasi dapat ditangani, sehingga correctness dari sebuah program akan terjaga. Kata Kunci : Design by Contract, Java Modelling Language, Java. Abstract Design by Contract is a method for developing software to check reliability of a program/software. This method includes precondition, postcondition and invariant. Java Modelling Language is a formal behavioral interface specification language for class and interface specifically by adding annotation to java file. Java is multi platform language, but java is not made to handle DBC specially. This final project analyze how to implement Design by Contract using Java Modelling Language. As a case study, this final project use Flower Shop application. This program is made with Java and JML 5.6. Implementation of DBC JML in application can specify field and behavior of method. In addition, errors that can happen in application can handle, hence one can make sure the correctness of the application. Keywords : Design by Contract, Java Modeling Language, Java. Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org) Program Studi S1 Teknik Informatika Tugas Akhir - 2009 1. Pendahuluan 1.1 Latar Belakang Perkembangan pemrograman semakin lama semakin pesat. Tujuan utama dari setiap program adalah reliabilitas, yaitu kebenaran,ketepatan dan kekuatannya dalam penanganan terhadap kesalahan user. Suatu program dikatakan benar jika sesuai dengan spesifikasi. Salah satu cara untuk meminimalkan error dalam program adalah metode Design-by-Contract. Design-by-Contract(DBC) adalah suatu metodologi pengecekkan kebenaran program/software. Dalam pembuktiannya, DBC menggunakan precondition dan postcondition. Precondition adalah kondisi yang harus dipenuhi sebelum memanggil sebuah method, sedangkan postcondition adalah kondisi yang harus dipenuhi setelah method dipanggil. Prinsip dari DBC adalah bahwa kelas dan kliennya(pemanggil kelas) mempunyai contract satu sama lain. Klien harus menjamin kondisi sebelum pemanggilan method (precondition), dan kelas pun harus menjamin kondisi setelah pemanggilan method (postcondition). Jika predan postcondition dimasukkan dalam sebuah form sehingga compiler dapat melakukan pengecekkan, maka pelanggaran/kesalahan dapat dideteksi lebih cepat. Java Modelling Language (JML) adalah bahasa yang meng-spesifikasikan kelas-kelas atau interface-interface secara detail dengan menambahkan keterangan/anotasi ke dalam file java. JML menjelaskan dua aspek penting dalam java, yaitu behavior dan interface dari file java. Interface terdiri dari definisi konstanta dan deklarasi method. JML dapat mendokumentasikannya dalam anotasi. Dari segi behavior, contohnya, preconditions dan postconditions untuk method-method seperti dalam DBC. Diantara preconditions dan postconditions, dapat juga disisipkan anotasi yang dicampur dengan kode program java. JML dapat digunakan sebagai alat yang dapat diandalkan untuk DBC.. Tersedia banyak tools yang mendukung JML, seperti The JML compiler(jmlc) dan The extended static checker(escj/ava2). 1.2 Perumusan Masalah Perumusan masalah dari Tugas Akhir ini berdasarkan latar belakang masalah yang dipaparkan diatas adalah : Apakah Java Modelling Language dapat diterapkan untuk konsep Design by Contract ? Apa dan bagaimana pengimplementasian DBC menggunakan JML dalam aplikasi? Apakah dan bagaimana pengaruh DBC dengan JML terhadap hasil aplikasi? 1 Fakultas Teknik Informatika Program Studi S1 Teknik Informatika Tugas Akhir - 2009 Konsep yang telah diterapkan diatas akan diterapkan pada aplikasi Toko Bunga. Aplikasi ini berfungsi untuk membantu pengelolaan bunga yang ada di toko bunga dan dijalankan oleh pemilik dari toko bunga. Aplikasi ini berbasis Java dan bersifat stand-alone. Ruang Lingkup dari tugas akhir ini adalah : Aplikasi dijalankan oleh admin Aplikasi ini bersifat stand-alone Aplikasi ini menitikberatkan pada pengimplementasian DBC dengan JML dengan bahasa Java JML yang dipakai disatukan dengan program Java JML yang digunakan dalam tugas akhir ini adalah versi 5.6 1.3 Tujuan Tujuan pengerjaan Tugas Akhir ini berdasarkan rumusan masalah di atas adalah : Menerapkan Design-by-Contract dengan Java Modelling Language Membangun aplikasi dengan menerapkan DBC dengan JML. Menganalisis hasil implementasi dari segi correctness, behavior specification dan manfaat serta kelebihan penggunaan metode DBC dengan JML. 1.4 Metodologi Penyelesaian Masalah Metode penelitian yang diterapkan pada pengerjaan Tugas Akhir ini adalah : Studi literatur, yaitu dengan mencari informasi dan referensi baik itu dari buku, paper, jurnal, artikel maupun dari Internet yang berkaitan dengan topik Design by Contract(DBC) dan Java Modelling Language(JML). Mempelajari konsep-konsep dari DBC dan JML Membangun aplikasi berbasis java yang mengimplementasikan DBC dengan JML. Menganalisa hasil. Penyusunan laporan pengerjaan serta dokumentasi Tugas Akhir. 2 Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org) Program Studi S1 Teknik Informatika Tugas Akhir - 2009 5. KESIMPULAN DAN SARAN 5.1. Kesimpulan DBC dapat diimplementasikan dengan menggunakan JML pada perangkat lunak. 5.2. JML dapat menangani error yang terjadi sehingga correctness dari sebuah program dapat dijaga. Hal ini dibuktikan dengan adanya pesan yang menunjukkan adanya pelanggaran dalam contract yang telah ditentukan. Dengan adanya hal ini, developer dapat membuat penanganan terhadap error tersebut, sehingga tingkat correctness dari sebuah program dapat ditingkatkan. JML dapat mengspesifikasikan behavior dari program java yang dibuktikan dengan kemampuannya dalam mendeskripsikan atau mengspesifikasikan atribut dan method baik dari segi syntactic maupun dari behavior-nya. Implementasi DBC dengan JML mempunyai beberapa manfaat, yaitu, JML menggunakan sintaks seperti Java dalam notasinya, sehingga programmer Java diharapkan dengan mudah untuk membaca, mempelajari dan membuatnya. Disamping itu, deskripsi JML dapat digunakan sebagai dokumentasi yang dapat dicek oleh tools yang tersedia, sehingga dapat membantu proses debug. Implementasi DBC menggunakan JML 5.6 tidak dapat mengkompilasi file program yang mempunyai user interface berbasis grafik (swing, awt, vector,dll) sehingga penulisan contract dilakukan pada kelas-kelas yang merepresentasikan data-data aplikasi (Model). Oleh karena itu, sebaiknya program dibuat dengan memisahkan kelas-kelas yang berisi user interface(view) dan kelas-kelas yang berisi data-data yang terlibat(model). Urutan pengecekkan contract pada JML yang diimplementasikan pada constructor pengecekkan invariant dilakukan pada akhir pemanggilan constructor. Untuk pengecekkan precondition dan postcondition sama seperti biasanya, yaitu precondition sebelum pemanggilan dan postcondition setelah pemanggilan. Saran JML adalah proyek yang masih terus mengalami perkembangan dan kedepannya masih akan ada pengembangan pada JML. Salah satunya pada kegunaan JML setelah implementasi, yaitu sebagai dokumentasi yang dikenal sebagai jmldoc. Dalam tugas akhir ini, penulis tidak mengimplementasi dan menganalisis hal tersebut. 36 Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org) Program Studi S1 Teknik Informatika Tugas Akhir - 2009 Daftar Pustaka [1] [2] [3] [4] [5] [6] [7] [8] [9] Booch, Grady., James Rumbaugh dan Ivar Jacobson. 1998. The Unified Modeling Language User Guide. Addison Wesley. Burdy, Lilian., Yoonsik Cheon, David R.Cok. dkk. An overview of JML tools and applications. Cok, David. 2004. Introduction to JML. University of Nijmegen;Eastment Kodak Company. Deitel, H.M. 2004. Java How To Program 6 th Edition. Prentice Hall. New Jersey USA. Dharwiyanti, Sri. Satria Wahono, Romi. 2003. Pengantar Unified Modelling Language (UML). http://www.ilmukomputer.com Diyar, M. Mahar. 2007. Implementation Of Design By Contract Using Aspect Oriented Programming With Java Programming Language.Case Study : Cd And Dvd Collection Application.Teknik Informatika, IT Telkom Bandung. Jai kaur, Puneet. Verma, Amandeep. Thapar, Simrandeep. 2007. Software Quality Metric for Object-Oriented Environments. Proceeding of National Conference and Challenges & Opportunities in Information Technology (COIT-2007) Keeton, Bryan. Cavaness, Chuck, and Friesen, Geoff. 2000 Special Edition Using Java 2 Standard Edition. Que Corporation. USA. Leavens, Gary T. dan Yoonsik Cheon. 2006. Design by Contract with JML. [10] Leavens, Gary T., Erik Poll. Curtis Clifton, dkk. JML Reference Manual. [11] Leavens, Gary T., Albert L. Baker dan Clyde Ruby. 1999. JML : A Notation for Detailed Design. [12] Leavens, Gary T. , Joseph R. Kiniry dan Erik Poll. 2007. JML Tutorial. http://jmlspecs.org [13] Meyer, Bertrand. 1992. Applying “Design by Contract”. Computer(IEEE) vol 25 halaman 40-51.USA. [14] ______________.2003.Building bug-free O-O software: An Introduction to Design by Contract. Eiffel Software Inc.www.eiffel.com. [15] Poll, Erik. Program Verification using JML and ESC/Java2. Radboud University Nijmigen. [16] Raghavan, Arun D. dan Gary T. Leavens. Desugaring JML Method Specifications. 37 Fakultas Teknik Informatika Powered by TCPDF (www.tcpdf.org) Program Studi S1 Teknik Informatika