5 BAB II LANDASAN TEORI 2.1. Konsep Dasar Sistem 2.1.1. Definisi Sistem Berikut ini adalah teori-teori tentang pengertian sistem yang ditemukan oleh para ahli, yaitu : Menurut Djon Irwanto (Perancangan Object Oriented Software dengan UML, 2006), “Sistem adalah sekumpulan komponen-komponen yang mengimplementasikan model dan fungsionalitas yang dibutuhkan, komponen-komponen tersebut saling berinteraksi dalam sistem guna mentransformasi input yang diberikan kepada sistem tersebut menjadi output yang berguna dan bernilai bagi aktornya”. Sedangkan menurut Al- Bahra Bin Ladjamudin (Analisis dan Perancangan Sistem Informasi, 2005) : “ Sistem adalah seperangkat elemen –elemen yang terintegrasi dengan maksud yang sama untuk mencapai suatu tujuan bersama.” Sedangkan menurut J. Djamil, MBA (Sistem Informasi Manajemen, 1997) : “ Sistem adalah seperangkat elemen yang digabungkan satu dengan lainnya untuk tujuan bersama.” Jadi dari tiga pernyataan di atas penulis dapat mengambil kesimpulan bahwa sistem adalah hal yang sangat penting untuk melakukan suatu kegiatan dan mencapai suatu sasaran dan tujuan yang lebih baik. 6 2.1.2. Pengertian Sistem Komputerisasi Menurut Herwindo ST dan Ali Akbar, (Mengenal Sistem Komputer Masa Kini, 2005) Sistem ini adalah sekelompok metode atau posedur, sekelompok objek-objek yang berhubungan terorganisir atau saling berkaitan satu dengan yang lain membentuk satu kesatuan secara keseluruhan untuk mencapai suatu fungsi atau tujuan tertentu. Menurut Herwindo ST dan Ali Akbar, (Mengenal Sistem Komputer, 2005) Komputer adalah alat yang berfungsi sebagai pengolah data yang menghasilkan informasi, selain itu komputer juga merupakan alat bantu untuk menganalisa sistem dan menyelesaikan masalah-masalah oleh karena itu komputer sangat diperlukan untuk membantu kegiatan-kegiatan yang berhubungan dengan manajemen didalam perusahaan itu sendiri. Dalam era informasi teknologi komputer sangat penting didalam perusahaan atau organisasi. Komputer diciptakan untuk membantu manusia dalam memecahkan masalah, disitulah komputer dapat digunakan sesuai dengan fungsinya. 2.2. Konsep Dasar Informasi Menurut Raymond McLeod (Sistem Informasi Manajemen, 1995), informasi adalah sebagai data yang telah diolah menjadi bentuk yang lebih berarti bagi penerimanya. Alat pengolah informasi dapat meliputi komputer, elemen non komputer atau kombinasinya. 2.2.1. Kualitas Informasi Kualitas informasi sangat dipengaruhi atau ditentukan oleh tige hal sebagai berikut: 7 a. Relevan (Relevancy) Seberapa jauh tingkat relevansi informasi tersebut terhadap kenyataan kejadian masa lalu, kejadian hari ini, dan kejadian yang akan datang. b. Akurat (Accuracy) Suatu informasi dikatakan berkualitas jika seluruh kebutuhan informasi tersebut telah tersampaikan. c. Tepat Waktu (Timeliness) Berbagai proses dapat diselesaikan dengan tepat waktu, laporan-laporan yang dibutuhkan dapat disampaikan tepat waktu. 2.2.2. Nilai Informasi Suatu informasi dikatakan bernilai bila manfaatnya lebih efektif dibandingkan dengan biaya mendapatkannya dan sebagian besar informasi tidak dapat tepat ditaksir keuntungannya dengan satuan nilai uang, tetapi dapat ditaksir nilai efektifitasnya. 2.3. Aplikasi Sistem Aplikasi adalah Cara Sistem Informasi yang dapat membantu pemakai akhir dan organisasi menyelesaikan pekerjaan dan mempertemukan strategi objektif. Langkah-Langkah Aplikasi Sistem: - Desain dan implementasikan komponen dari aplikasi terdistribusi Anda. - Mengkompilasi kode source dan menghasilkan stub. - Membuat class. - Menjalankan aplikasi. 8 2.4. Analisis Sistem Menurut Al-Bahra Bin Ladjamudin (Analisis dan Desain Sistem Informasi, 2005), analisis sistem adalah orang yang menganalisa sistem dengan mempelajari masalah-masalah yang timbul dan menentukan kebutuhan-kebutuhan pemakai serta menidentifikasikan pemecahan yang beralasan. 2.4.1. Langkah-Langkah Analisis Sistem Menurut Jogianto HM, (Analisis dan disain Sistem Informasi, 2001) langkah-langkah dalam tahap analisis sistem hampir sama dengan yang akan dilakukan dalam mengidentifikasikan proyek-proyek sistem yang akan dikembangkan di tahap perencanaan sistem. Perbedaannya terletak dalam ruang lingkup tugasnya. Di analisis sistem ini, penelitian yang dilakukan oleh analisis sistem adalah penelitian terinci, sedangkan di perencanaan sistem sifatnya hanya penelitian pendahuluan. Di dalam tahap analisis sistem terdapat langkah-langkah dasar yang harus dilakukan oleh analisis sistem , sebagai berikut: 1. Identify, yaitu mengidentifikasikan masalah 2. Understand, yaitu memahami kerja dari sistem yang ada. 3. Analyz , yaitu menganalisis sistem 4. Report, yaitu membuat laporan hasil analisis 2.5. Desain Sistem Menurut Jogianto HM, ( Analisa dan Desain Sistem Informasi, 2001) Desain sistem dapat diidentifikasikan sebagai: “Tahap setelah analisis dari siklus pengembangan sistem; pendefinisian dari kebutuhan-kebutuhan 9 fungsional dan persiapan untuk rancang bangun implementasi; menggambarkan bagaimana suatu sistem dibentuk.” 2.5.1. Tujuan Desain Sistem Tahap desain sistem mempunyai dua maksud atau tujuan utama, yaitu: 1. Untuk memenuhi kebutuhan para pemakai sistem. 2. Untuk memberikan gambaran yang jelas dan rancang bangun yang lengkap kepada pemrogram komputer dan ahli-ahli teknik yang terlibat. Tujuan yang kedua ini lebih condong pada desin sistem yang terinci, yaitu pembuatan rancang bangun yang jelas dan lengkap untuk nantinya digunakan untuk pembuatan program komputernya. 2.6. Analisis Berorientasi Obyek Menurut A. Suhendar dan Hariman G (Pemrograman Berorientasi Objek, 2002) pengertian Object-Oriented Analysis adalah sebagai berikut : “ Object-Oriented Analysis adalah metode analisis yang memeriksa requirements (syarat / keperluan yang harus dipenuhi oleh suatu sistem) dari sudut pandang kelas-kelas dan obyek-obyek yang ditemui dalam ruang lingkup permasalahan.“ Metodologi adalah cara sistematis untuk mengerjakan pekerjaan analisis dan desain. Demikian pula didefinisikan oleh A. Suhendar dan Hariman G (Pemrograman Berorientasi Objek, 2002) “ Metodologi Berorientasi Obyek adalah metode penyelesaian masalah dengan menggunakan pendekatan berorientasi obyek” Metodologi pengembangan sistem berorientasi obyek mempunyai tujuh karakteristik utama, yaitu : 10 1. Abstraction Memfokuskan pada apakah objek dan apa yang dikerjakan oleh objek tersebut. 2. Inheritance Sarana untuk menghilangkan penulisan ulang terhadap kode yang dapat digunakan berulang kali, yang dapat menyiakan banyak waktu, ketidakkonsistenan dan meningkatkan resiko menimbulkan kesalahan. 3. Polymorphisme Mendefiniskan ulang atribut-atribut yang bernama sama pada kelaskelas yang berbeda. 4. Encapsulation Pemisahan aspek-aspek eksternal objek, yang dapat diakses oleh objekobjek lain. 5. Message Sending Cara untuk berhubungan antara suatu objek dengan objek lain. 6. Association Hubungan relasi antar objek. 7. Aggregation Bentuk khusus dari asosiasi. Unified Modelling Language (UML) adalah salah satu alat bantu yang sangat handal dalam dunia pengembangan sistem berorientasi obyek karena UML menyediakan bahasa pemodelan visual yang memungkinkan bagi pengembang sistem untuk membuat cetak biru atas visi mereka ke bentuk baku, mudah dipahami lengkap dengan mekanisme efektif untuk berbagi dan mengkomunikasikan rancangan mereka dengan yang lain. UML merupakan kesatuan dari bahasa pemodelan yang dikembangkan oleh: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). Metode dari ketiganya digabungkan dengan membuang elemen yang tidak praktis ditambah dengan elemen-elemen dari 11 metode lain yang lebih efektif dan elemen-elemen baru yang belum ada pada metode terdahulu sehingga UML lebih ekspresif dan seragam daripada metode lainnya. Pendekatan-pendekatan yang dipakai dalam analisa berorientasi obyek antara lain : Pendekatan top down yaitu memecahkan masalah kedalam bagianbagian terkecil atau per level sehingga mudah untuk diselesaikan. Pendekatan modul yaitu membagi sistem ke dalam modul-modul yang dapat beroperasi tanpa ketergantungan. Pengunaan alat-alat bantu dalam bentuk grafik dan teks sehingga mudah untuk mengerti serta dikoreksi apabila terjadi perubahan. Pendekatan dalam analisa berorientasi obyek dilengkapi dengan alat–alat dan tehnik-tehnik yang dibutuhkan dalam pengembangan sistem, sehingga hasil akhir dari sistem yang dikembangkan akan didapatkan sistem yang dapat terdefinisi dengan baik dan jelas. Maka analisa berorientasi obyek akan dilengkapi dengan alat dan tehnik di dalam mengembangkan sistem. Alat bantu yang digunakan dalam analisa berorientasi obyek antara lain sebagai berikut. 2.6.1. Class Diagram Menurut Munawar (Pemodelan Visual dengan UML,2005) Class adalah deskripsi kelompok obyek-obyek dengan properti, perilaku dan relasi yang sama. Class diagram bisa memberikan pandangan global atas sebuah sistem. Hal tersebut tercermin dari class-class yang ada dan relasi satu dengan lainnya. Menurut Dharwiyanti (Pengantar Unified Modelling Language,2003) Class adalah sebuah spesifikasi yang jika diinstanisasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (attribute/property) suatu sistem 12 sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (method/function). Class Diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok: - Nama (Stereotype) - Attribute - Metoda (Operation) Attribute dan operation dapat memiliki salah satu sifat berikut: - Private, tidak dapat dipanggil dari luar class yang bersangkutan. - Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya. - Public, dapat dipanggil oleh siapa saja. Hubungan Antar Class 1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class. 2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas.”). 3. Pewarisan, yaitu hubungan hirarki antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi. 4. Hubungan dinamis, yaitu rangkaian pesan (message) yang dipassing dari satu class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan sequence diagram yang akan dijelaskan kemudian. 13 Gambar 2.1 : Contoh Class Diagram 2.6.2. Use Case Diagram Diagram use case menunjukan tiga aspek dari system yaitu actor, use case dan system/ sub system boundary. Actor mewakili peran orang, system yang lain atau alat ketika berkomunikasi dengan use case. Gambar 2.2 Use Case Diagram 14 Use case diagram terdiri dari : 1. Actor Actor adalah abstraction dari orang dan system yang lain yang mengaktifkan fungsi dari target system. Orang atau system bisa muncul dalam beberapa pesan. 2. Use Case Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Setiap use case harus diberi nama yang menyatakan apa hal yang dicapai dari hasil interaksinya dengan actor. Nama use case boleh terdiri dari beberapa kata dan tidak boleh ada dua use case yang memiliki nama yang sama. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. 3. Relasi/ Asosiasi Use Case Asosiasi menggambarkan aliran data atau informasi. Asosiasi atau relasi juga digunakan untuk menggambarkan bagaimana actor terlibat dalam use case. Relasi (relationship) digambarkan sebagai bentuk garis antara dua simbol dalam use case diagram. Gambar 2.3 Contoh dari sebuah relasi 15 Selain terdapat relasi-relasi antara actor dan use case, juga terdapat relasi-relasi antara use case-use case. Ada beberapa jenis relasi antara use case, yaitu: 1. Include, digunakan untuk menggambarkan bahwa suatu use case merupakan fungsionalitas dari use case lainnya. Biasanya digunakan untuk menghindari pengkopian suatu use case karena sering dipakai. Gambar 2.4 Use Case Inclusion 2. Extend, digunakan untuk menunjukan bahwa satu use case merupakan tambahan fungsional dari use case yang lain jika kondisi atau syarat tertentu yang dipenuhi. Gambar 2.5 Use Case Extension 16 3. Generalization atau Inheritance, Dibuat ketika ada perlakuan khusus dan merupakan pola hubungan base-parent use case. Digambarkan dengan garis berpanah tertutup dari base use case ke parent use case. Gambar 2.6 Generalization Selain relasi antara actor dan use case serta relasi antara use case-use case, adapula Actor Generalisasi. Dapat digunakan bila ada satu use case yang dipakai oleh lebih dari satu actor, maka dimunculkan satu actor baru yang dapat mewakili actor-actor tersebut pada hal-hal yang bersifat umum. Maksud dari generalisasi antara actor adalah spesialisasi actor yang bisa berpartisipasi di semua use case yang diasosiasikan dengan actor yang lebih general. 17 Gambar 2.7 Actor Generalization 2.6.3. Sequence Diagram Menurut Dharmawiyanti, (Pengantar Unified Modelling Language, 2003) Sequence diagram menggambarkan interasksi antar objek di dalam dan di sekitar sistem termasuk pengguna, display dan sebagainya berupa message yang digambarkan terhadap waktu. Sequence diagram terdiri atas dimensi vertical (waktu) dan dimensi horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk menggambarkan scenario atau rangkaian langkah-langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang mentrigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal dan output apa yang dihasilkan. Masing-masing objek, termasuk actor, memiliki lifeline vertikal. Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. 18 Activation bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya sebuah message. Menurut Munawar (Pemodelan Visual dengan UML, 2005) Sequence Diagram digunakan untuk menggambarkan perilaku pada sebuah scenario. Diagram ini menunjukkan sejumlah contoh obyek dan message (pesan) yang diletakkan diantara obyek-obyek ini di dalam use case. Menunjukkan interakasi yang terjadi antar objek. Diagram ini menekankan pada basis keberurutan waktu dari pesan-pesan yang terjadi. 2.6.3.1. Obyek/Participant Obyek diletakkan di dekat bagian atas diagram dengan urutan dari kiri ke kanan. Setiap participant terhubung dengan garis titik-titik yang disebut lifeline. Sepanjang lifeline ada kotak yang disebut activation. Activation mewakili sebuah eksekusi operasi dari participant. Panjang kotak ini berbanding lurus dengan durasi activation. Gambar 2.8 Paricipant pada sebuah Sequence Diagram 19 2.6.3.2. Message Sebuah message bergerak dari satu participant ke participant yang lain dan dari satu lifeline ke lifeline lain. Sebuah participant bisa mengirim sebuah message kepada dirinya sendiri. Simple Synchronous Asynchronous Gambar 2.9 Simbol-Simbol Message 2.6.4. Collaboration Diagram Menurut Dharwiyanti, (Pengantar Unified Modelling Language,2003) Collaboration diagram juga menggambarkan interaksi antar objek seperti sequence diagram, tetapi lebih menekankan pada peran masing-masing objek dan bukan pada waktu penyampaian message. Setiap message memiliki sequence number, di mana message dari level tertinggi memiliki nomor 1. Messages dari level yang sama memiliki prefiks yang sama. Menurut Munawar (Pemodelan Visual dengan UML, 2005) Collaboration diagram adalah bentuk lain dari sequence diagram. Bila sequence diagram diorganisir menurut waktu maka collaboration diagram diorganisir menurut ruang/space. Collaboration diagram merupakan asosiasi diantara obyek-obyek. Panah di dekat garis asosiasi menunjukkan message, sedangkan content message ditunjukkan dengan label. Angka pada message menunjukkan urutan message. 20 Dengan collaboratioan diagram memungkinkan untuk memodelkan pengiriman sebuah message ke banyak obyek pada class yang sama. Demikian juga halnya untuk menunjukkan adanya obyek aktif yang mengendalikan aliran dari message. Diagram ini merupakan diagram interaksi. Diagram ini menekankan pada organisasi struktur dari objek-objek yang mengirim dan menerima pesan. 7: calcTotal( ) 3: calcPrice( ) 6: calcDis countedValue( ) 1: addProduct( ) OrderLine Order 4: getDis countedValue( ) 2: getProductPrice( ) 5: getBas eValue( ) Product Cus tom er Gambar 2.10 Collaboration diagram untuk order 2.6.5. Activity Diagram Activity diagram adalah tehnik untuk mendeskripsikan logika prosedural, proses bisnis dan aliran kerja dalam banyak kasus. Activity diagram mempunyai pesan seperti halnya flowchart, letak perbedaannya adalah Activity diagram bisa mendukung perilaku pararel sedangkan flowchart tidak bisa. Sebuah activity diagram mempunyai : 21 1. Start point (initial node). Gambar 2.11 Start Point 2. End Point (activity final node). Gambar 2.12 End Point 3. Activities, menggambarkan proses bisnis dan dikenal sebagai activity state. Digambarkan dengan bentuk seperti dibawah ini dan diberi keterangan. Gambar 2.13 Activities 4. Jenis activities a. Black hole activities Ada masukan dan tidak ada keluaran, biasanya digunakan jika dikehendaki ada 1 atau lebih transisi. Gambar 2.14 Black Hole Activities 22 b. Miracle activities Tidak ada masukan dan ada keluaran, biasanya dipakai pada waktu start point dan dikehendaki ada 1 atau lebih transisi. Gambar 2.15 Miracle Activities c. Parallel activities Suatu activity yang berjalan secara berbarengan. Terdiri dari : - Fork (percabangan) Mempunyai 1 transisi masuk dan 2 atau lebih transisi keluar. Gambar 2.16 Fork Ketika ada lebih dari 1 transisi masuk ke fork yang sama, gabungkan dengan sebuah decision point. Gambar 2.17 Fork dengan Decision Point 23 - Join (penggabungan) Gambar 2.18 Join Fork harus berhubungan dengan join. d. Decision points Decision point mempunyai transisi (sebuah garis dari atau ke decision point). Setiap transisi yang ada harus mempunyai guard (kunci). Hindarkan decision point yang berlebihan. Decision point digambarkan dengan lambang wajik atau belah ketupat, seperti : Gambar 2.19 Decision Point e. Guards (kunci) - Sebuah kondisi benar sewaktu melewati sebuah transisi. - Digambarkan dengan diletakkan diantara tanda [ ..... ] - Setiap transisi dari / ke decision point harus mempunyai guard. - Guards harus konsisten dan tidak overlap. Contoh: X< 0 , X = 0 dan X > 0 konsisten X<=0 dan X>=0 tidak konsisten - Guards harus lengkap logikanya. 24 Contoh : X<0 dan X>0, bagaimana jika X=0? - Gunakan [otherwise] guard untuk menangkap suatu kondisi yang belum terdeteksi. f. Swimlane Sebuah cara untuk mengelompokkan activity berdasarkan actor (mengelompokkan activity dalam sebuah urutan yang sama). Actor bisa ditulis nama actor ataupun sekaligus dengan lambang actor (stick figure) pada use case diagram. Swimlane digambarkan secara vertical, walaupun kadang – kadang digambarkan secara horizontal. Activity diagram menunjukan apa yang terjadi, tetapi tidak menunjukan siapa yang melakukan apa. Jika diinginkan Activity Diagram bisa dibagi dalam partition untuk menunjukan siapa melakukan apa, hal ini disebut SwimLane. Contoh penerapan Partition dalam Activity Diagram. 25 Gambar 2.20 Activity Diagram 2.6.6. State Machine Diagram Diagram ini adalah state-machine diagram, berisi state, transisi, kejadian dan aktivitas. Diagram ini penting dalam memodelkan perilaku antarmuka, kelas dan kolaborasi dan menekankan kepada urutan kejadian. Gambar 2.21 Simbol Statechart Diagram 26 UML juga memberi pilihan untuk menambahkan detil ke dalam simbol tersebut dengan membagi menjadi 3 area yaitu nama state, state variabel dan activity. Nama State Variabel Activities Gambar 2.22 Penambahan detil ke state 2.6.7. Package Diagram Menurut Munawar (Pemodelan Visual dengan UML, 2005) Package adalah pengelompokan konstuksi yang memungkinkan untuk mengambil konstruksi tersebut di UML dan mengelompokkan elemen-elemen tersebut secara bersama-sama menjadi level yang lebih tinggi. Penggunaan yang umum dilakukan adalah mengelompokkan class, meskipun harus tetap diingat bahwa package bisa digunakan untuk setiap bit dari UML. Manfaat utama penggunaan package adalah penerapannya pada sistem skala besar untuk mendapatkan gambaran saling ketergantungan diantara component-component utama pada sistem. 27 leas ing pres entation as s et pres entation UI fram ewo rk leas ing do m ain as s et do m ain leas ing da ta m apper as s et da ta m apper databa s e Gambar 2.23 Cara Menampilkan Package Diagram 2.6.8. Object Diagram Menurut Munawar (Pemodelan Visual dengan UML, 2005) Object Diagram adalah gambaran objek-objek secara ringkas di sebuah sistem pada suatu waktu. Objek diagram sering disebut sebagai instance diagram karena menunjukkan instance-instance dari class. Objek diagram bisa digunakan untuk menunjukkan contoh konfigurasi dari objek-objek. Hal ini sangat berguna untuk menunjukkan hubungan yang mungkin ada di antara objekobjek yang sangat kompleks. Diagram ini menunjukkan sekumpulan objek dan keterhubungannya. Diagram objek berguna untuk abstract modeling dan perancangan program-program sesungguhnya. 28 R: Robot [bergerak] 1: Lingkungan a1: Area : Element A2: Area d1: Dinding d2: Dinding Lebar=36 Lebar=96 d3: Dinding Lebar=36 Gambar 2.24 Pemodelan Struktur Obyek Lebar=96 29 2.7. Java Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan pada berbagai platform sistem operasi (Jardiknas, 2007:3). Java yang bersifat open source dikenal ketangguhannya sejak tahun 1994. Ketangguhan pada Java tidak lepas dari komponen yang disediakan olah java, salah satunya adalah Applet. Applet pada program java sangat dikenal oleh masyarakat internet dikarenakan animasi dan aplikasi dinamisnya yang telah membuat banyak website tidak lagi terkesan kaku. Sehingga banyak orang yang kemudian berlomba-lomba untuk mempelajari dan membuat applet demi kepentingan websitenya masing-masing. Tidak hanya Applet, sebenarnya Java juga dapat membuat berbagai aplikasi GUI (Graphical User Interface) yang dapat berjalan pada berbagai platform (sistem operasi manapun), termasuk Microsoft Windows dan Linux X-Windows. Untuk keperluan ini, Java telah menyediakan kumpulan class di dalam Java Foundation Class (JFC), dengan user interface yang dinamakan SWING (Sanjaya, 2003:1). JFC memiliki kelebihan pada berbagai kepentingan pemrograman visual, sehingga programmer bisa memilih Look and Feel yang diinginkan. Dengan demikian hasil yang ditampilkan bisa menyerupai Windows, Macintosh, atau X-Windows. 30 Gambar 2.25 Program Java dapat dieksekusi pada platform yang berbeda (Raharjo, 2007:4) Kemampuan Java berjalan di berbagai sistem operasi tidak lepas dari keberadaan Java Virtual Machine (JVM) yang menjembatani antara byte code (hasil kompilasi kode Java) dan hardware (Sanjaya, 2003:3). Agar dapat dijalankan pada sebuah komputer, sebuah kode program harus di dikompilasi (compile) dan kemudian diterjemahkan (interpred) terlebih dahulu. Java menerapkan proses kompilasi sebagai compiler dan proses menerjemahkan sebagai interpreter dalam satu kesatuan. Konsepnya sederhana, kode program yang ditulis menggunakan bahasa Java (berekstensi .java) di kompilasi oleh compiler menjadi suatu kode objek, atau yang biasa disebut dengan byte code (berekstensi .class). Selanjutnya, byte code diterjemahkan baris demi baris oleh interpreter. Dengan demikian, proses kompilasi (compile) dan menerjemah (interpred) hanya dilakukan sekali ketika ketika kode program tersebut dieksekusi. Berikut gambar proses pembentukan program di dalam Java. 31 Gambar 2.26 Proses pembentukan dan eksekusi program di dalam Java (Raharjo, 2007:3) 2.8. J2SDK (Java 2 Software Development Kit) J2SDK merupakan software yang dikeluarkan olah Sun yang berisi kompiler dan interpreter java dan bersifat free. Software ini dapat di download pada situs http://www.sun.com dan menggunakannya tanpa harus membayar lisensi. Software ini dapat berjalan pada berbagai platform system operasi, diantaranya; Windows, DOS, Intel Unix(Linux), dan Solaris. 2.9. Text Editor dan Java IDE Text Editor merupakan software yang berfungsi menuliskan kode-kode program yang akan dibuat. Berbeda dengan Text Editor, Java IDE (Integrated Development Environtment) mempunyai fasilitas untuk semua kebutuhan pemprograman, mulai dari Text Editor, compiler/ interpreter, sistem help, dan beberapa fitur lain yang sangat bermanfaat dalam penulisan 32 kode. Code auto-complete dan syntax highlight adalah salah satu fitur yang bermanfaat dalam membantu penulisan kode. Berikut ini beberapa software Java IDE yang paling banyak digunakan dalam komunitas Java, yaitu sebagai berikut: 1. NetBeans Software ini merupakan IDE menarik yang layak digunakan untuk mengembangkan berbagai tipe aplikasi, mulai dari aplikasi console, visual, enterprise, sampai mobile. Akan tetapi, software ini membutuhkan RAM yang besar agar dapat berjalan maksimal. 2. Eclipse Software ini merupakan IDE yang dikembangkan oleh IBM. Sama halnya dengan NetBeans, software Eclipse juga membutukan RAM yang relative besar. IDE ini banyak digunakan utnuk mengembangkan aplikasi-aplikasi yang kompleks (baik visual maupun console) dan pengembangan aplikasi-aplikasi mobile. 3. JCreator Software ini merupakan IDE yang sederhana dan cepat. Biasa digunakan untuk mempelajari kode-kode program sederhana. 2.10. Java Generasi ke-2 Dari pertama kali dikembangkan, hingga saat ini java memiliki dua generasi. Generasi ke-2 Java disebut dengan istilah Java 2. Menurut Irawan Sanjaya (Java untuk Orang Awam, 2007) Java generasi ke-2 (Java 2) terbagi menjadi tiga kategori, yaitu: 1. J2EE (Java 2 Enterprise Edition) J2EE ditujukan bagi lingkungan Internet atau aplikasi terdistribusi dalam skala besar. Biasa juga digunakan pada pemrograman aplikasi server, atau aplikasi berbasis web server. 33 2. J2SE (Java 2 Standard Edition) J2SE ditujukan untuk lingkungan workstation, seperti pembuatan aplikasi-aplikasi desktop. 3. J2ME (Java 2 Micro Editon) J2ME ditujukan untuk lingkungan dengan sumber daya terbatas, seperti smartcard, ponsel, dan PDA. Banyak juga digunakan untuk pembuatan aplikasi pada wireless device atau mobile service. 2.11. IDE Netbeans IDE NetBeans berlisensikan Sun Public License. NetBeans bersifat open-source. NetBeans sebagai IDE ditujukan untuk memudahkan pembuatan program yang menggunakan bahasa pemrogramman Java. Dalam NetBeans, pemrograman dilakukan berbasiskan visual dan event-driven. Sama seperti IDE yang dikeluarkan oleh Borland Delphi dan Microsoft Visual Studio. Untuk membuat dialog atau user-interface, tidak lagi membuat teks program secara manual baris per baris, tetapi cukup klik pada component-pallete. Maka teks program akan dihasilkan secara otomatis. NetBeans mencakup compiler atau builder, dan debugger internal. Hal ini sangat memudahkan proses perancangan program. Proses deployment dan/atau tes dapat juga dilakukan dari dalam NetBeans. NetBeans juga mendukung source-control. Pemakaian internal VCS (Version Contro System), ataupun menggunakan VCS eksternal. NetBeans juga dirancang untuk memudahkan perancangan dan pemakaian komponen Beans. Komponen dapat dibuat dan didaftarkan di dalam palette dari IDE NetBeans, dan nantinya dapat dipakai di dalam program Java. NetBeans membuat proses pembuatan komponen JavaBeans menjadi sangat mudah. Tersedia template dan wizard yang tinggal dipakai untuk membuatnya. Kemudian, kerangka kode program akan dihasilkan untuk Beans secara auto-generated. 34 Pemrograman standar Java (J2SE) dapat dilakukan oleh NetBeans, selama J2SE tersedia di dalam sistem komputer. Pemrograman web dan enterprise dapat dilakukan secara visual. Koneksi server database melalui JDBC dapat dilakukan dari dalam NetBeans sendiri, baik pada saat perancangan maupun pada saat proses deployment program. Pembuatan komponen Beans untuk aplikasi web, maupun perancangan EJB (Enterprise JavaBean) juga dapat dilakukan secara visual dan event-driven. JavaBeans, JSP (Java Server Page), entity-bean, session-bean, webmodule (service-locator dan servlet), web-service di dalam NetBeans memakai wizard yang telah disediakan. Distribusi NetBeans juga menyertakan paket web-server Apacher Jakarta Tomcat. Server ini dapat diakses dari dalam NetBeans, baik pada saat proses perancangan maupun pada saat deployment aplikasi web. Di dalam NetBeans, semua perancangan dan pemrograman dilakukan di dalam kerangka sebuah proyek. Proyek NetBeans merupakan sekumpulan file yang dikelompokan di dalam satu kesatuan. Seperti halnya sebuah proyek dalam pemrograman, file-file beserta isinya akan ditempatkan di dalam satu direktori. Meskipun demikian, ada juga proyek yang dapat menangani file-file yang terpisah direktorinya. File-file yang diletakkan secara terpisah disebut juga proyek bebas (free-form).