BAB II LANDASAN TEORI 2.1 Web Service Web service adalah suatu sistem perangkat lunak yang dirancang untuk mendukung interoperabilitas dan interaksi antar sistem pada suatu jaringan. Web service digunakan sebagai suatu fasilitas yang disediakan oleh suatu web site untuk menyediakan layanan (dalam bentuk informasi) kepada sistem lain, sehingga sistem lain dapat berinteraksi dengan sistem tersebut melalui layananlayanan (service) yang disediakan oleh suatu sistem yang menyediakan web service. Web service menyimpan data informasi dalam format XML, sehingga data ini dapat diakses oleh sistem lain walaupun berbeda platform, sistem operasi, maupun bahasa compiler. Web service bertujuan untuk meningkatkan kolaborasi antar pemrogram dan perusahaan, yang memungkinkan sebuah fungsi di dalam Web Service dapat dipinjam oleh aplikasi lain tanpa perlu mengetahui detil pemrograman yang terdapat di dalamnya. Beberapa alasan mengapa digunakannya web service adalah sebagai berikut: 1. Web service dapat digunakan untuk mentransformasikan satu atau beberapa bisnis logic atau class dan objek yang terpisah dalam satu ruang lingkup yang menjadi satu, sehingga tingkat keamanan dapat ditangani dengan baik. 2. Web service memiliki kemudahan dalam proses deployment-nya, karena tidak memerlukan registrasi khusus ke dalam suatu sistem operasi. Web service cukup di-upload ke web server dan siap diakses oleh pihak-pihak yang telah diberikan otorisasi. II-1 II-2 3. Web service berjalan di port 80 yang merupakan protokol standar HTTP, dengan demikian web service tidak memerlukan konfigurasi khusus di sisi firewall. 2.1.1 Arsitektur Web Service Web service memiliki tiga entitas dalam arsitekturnya, yaitu: 1. Service Requester (peminta layanan) 2. Service Provider (penyedia layanan) 4. Service Registry (daftar layanan) Service Provider: Berfungsi untuk menyediakan layanan/service dan mengolah sebuah registry agar layanan-layanan tersebut dapat tersedia. Service Registry: Berfungsi sebagai lokasi central yang mendeskripsikan semua layanan/service yang telah di-register. Service Requestor: Peminta layanan yang mencari dan menemukan layanan yang dibutuhkan serta menggunakan layanan tersebut. II-3 2.1.2 Operasi-Operasi Web Service Secara umum, web service memiliki tiga operasi yang terlibat di dalamnya, yaitu: 1. Publish/Unpublish: Menerbitkan/menghapus layanan ke dalam atau dari registry. 2. Find: Service requestor mencari dan menemukan layanan yang dibutuhkan. 3. Bind: Service requestor setelah menemukan layanan yang dicarinya, kemudian melakukan binding ke service provider untuk melakukan interaksi dan mengakses layanan/service yang disediakan oleh service provider. 2.1.3 Komponen-Komponen Web Service Web service secara keseluruhan memiliki empat layer komponen seperti pada gambar di atas, yaitu: 1. Layer 1: Protokol internet standar seperti HTTP, TCP/IP 2. Layer 2: Simple Object Access Protocol (SOAP), merupakan protokol akses objek berbasis XML yang digunakan untuk proses pertukaran data/informasi antar layanan. II-4 3. Layer 3: Web Service Definition Language (WSDL), merupakan suatu standar bahasa dalam format XML yang berfungsi untuk mendeskripsikan seluruh layanan yang tersedia. 4. Layer 4: UDDI, adalah sebuah service registry bagi pengalokasian web service. UDDI mengkombinasikan SOAP dan WSDL untuk pembentukan registry API bagi pendaftaran dan pengenalan web service 2.2 HTTP HyperText Transfer Protocol (HTTP) adalah sebuah protokol jaringan lapisan aplikasi yang digunakan untuk sistem informasi terdistribusi, kolaboratif, dan menggunakan hipermedia. Penggunaannya banyak pada pengambilan sumber daya yang saling dokumen hiperteks, terhubung yang dengan kemudian tautan, yang membentuk World disebut Wide dengan Web pada tahun 1990 oleh fisikawan Inggris, Tim Berners-Lee. Hingga kini, ada dua versi mayor dari protokol HTTP, yakni HTTP/1.0 yang menggunakan koneksi terpisah untuk setiap dokumen, dan HTTP/1.1 yang dapat menggunakan koneksi yang sama untuk melakukan transaksi. Dengan demikian, HTTP/1.1 bisa lebih cepat karena memang tidak perlu membuang waktu untuk pembuatan koneksi berulangulang.. HTTP adalah sebuah protocol meminta/menjawab antara klien dan server. Sebuah klien HTTP (seperti web browser atau robot dan lain sebagainya), biasanya memulai permintaan dengan membuat hubungan ke port tertentu di sebuah server Webhosting tertentu (biasanya port 80). Klien yang mengirimkan permintaan HTTP juga dikenal dengan user agent. Server yang meresponnya, yang menyimpan sumber daya seperti berkas HTML dan gambar, dikenal juga sebagai origin server. Di antara user agent dan juga origin server, bisa saja ada penghubung, seperti halnya proxy, gateway, dan juga tunnel. HTTP tidaklah terbatas untuk penggunaan dengan TCP/IP, meskipun HTTP merupakan salah satu protokol aplikasi TCP/IP paling populer melalui II-5 Internet. Memang HTTP dapat diimplementasikan di atas protokol yang lain di atas Internet atau di atas jaringan lainnya. seperti disebutkan dalam "implemented on top of any other protocol on the Internet, or on other networks.", tapi HTTP membutuhkan sebuah protokol lapisan transport yang dapat diandalkan. Protokol lainnya yang menyediakan layanan dan jaminan seperti itu juga dapat digunakan. Sumber daya yang hendak diakses dengan menggunakan HTTP diidentifikasi dengan menggunakan Uniform Resource Identifier (URI), atau lebih khusus melalui Uniform Resource Locator (URL), menggunakan skema URI http: atau https: HTTP menetapkan sembilan metode (kadang disebut "verbs") yang menunjukkan tindakan yang ingin dilakukan terhadap sumber teridentifikasi. Hal yang diwakili sumber ini, berupa data yang sudah ada atau data yang diciptakan secara dinamis, bergantung pada implementasi peladen. Biasanya sumber ini berkaitan dengan berkas atau keluaran dari berkas pelaksana yang menetap di peladen. a) HEAD Meminta tanggapan yang identik dengan tanggapan yang sesuai dengan permintaan GET, namun tanpa badan tanggapan. Ini berguna untuk mengakses informasi meta yang tertulis dalam kepala tanggapan tanpa perlu mengangkut seluruh konten. b) GET Meminta representasi sumber tertentu. Permintaan menggunakan GET (dan beberapa metode HTTP lain) "tidak boleh memiliki kepentingan melakukan prinsip tindakan panduan selain pengaksesan".[3] W3C telah mengenai perbedaan ini dengan menerbitkan menyatakan, "desain aplikasi web harus mematuhi prinsip di atas, serta batasan sejenis."[4] II-6 c) POST Mengirimkan data untuk diproses (misalnya dari bentuk HTML) ke sumber teridentifikasi. Data dimasukkan dalam badan permintaan. Ini dapat menghasilkan pembentukan sumber baru atau pemutakhiran sumber yang sudah ada atau keduanya. d) PUT Mengunggah representasi sumber tertentu. e) DELETE Menghapus sumber tertentu. f) TRACE Menggaungkan kembali permintaan yang diterima, sehingga klien dapat melihat perubahan atau tambahan yang dilakukan oleh peladen perantara. g) OPTIONS Mengembalikan metode HTTP yang didukung peladen untuk URL tertentu. Ini dapat digunakan untuk memeriksa fungsionalitas peladen web dengan meminta '*' daripada fungsionalitas sumber tertentu. h) CONNECT Menukarkan koneksi permintaan dengan terowongan TCP/IP transparan, biasanya untuk memfasilitasi komunikasi terenkripsi SSL(HTTPS) melalui proksi HTTP tak terenkripsi.[5] i) PATCH Menerapkan modifikasi parsial terhadap sumber 2.3 JavaScript Object Notation (JSON) JSON (JavaScript Object Notation) adalah standar terbuka berbasis text yang ringan dan dirancang untuk pertukaran data yang bersifat human-readable. JSON berasal dari bahasa pemrograman Javascript untuk mempresentasikan II-7 struktur data sederhana dan array asosiatif yang disebut dengan objek. Walaupun hubungannya dengan javascript nyatanya JSON adalah independen dengan parser yang tersedia untuk hampir semua bahasa pemrograman C, C++, C#, Java, JavaScript, Perl, Python dll. Oleh karena sifat-sifat tersebut, menjadikan JSON ideal sebagai bahasa pertukaan-data. JSON terdiri dari dua struktur: Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array. Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence). Struktur-struktur data ini disebut sebagai struktur data universal. Pada dasarnya, semua bahasa pemprograman moderen mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format data mudah dipertukarkan dengan bahasa-bahasa pemprograman yang juga berdasarkan pada struktur data ini. Pada gambar dibawah ini merupakan contoh dalam penulisan JSON. II-8 2.4 Extensible Markup Language (XML) XML adalah bahasa markup untuk keperluan umum yang disarankan oleh W3C (World Wide Web Consortium) untuk membuat dokumen markup keperluan pertukaran data antar sistem yang beraneka ragam. XML merupakan kelanjutan dari HTML yang merupakan bahasa standar untuk Internet. Keunggulan XML: 1. Pintar. XML dapat menangani berbagai tingkat kompleksitas. 2. Dapat beradaptasi. Dapat mengadaptasi untuk membuat bahasa sendiri, seperti Microsoft membuat MSXML atau Macromedia mengembangkan MXML. 3. Sederhana. 4. Mudah dipindahkan. XML mempunyai kemudahan perpindahan yang bagus. 2.5 Unified Modeling Language (UML) Unified Modeling Language (UML) adalah bahasa standar untuk menuliskan cetak biru dari sebuah software. UML digunakan untuk menggambarkan, menspesifikasikan, membangun dan mendokumentasikan benda-benda atau bagian-bagian dari sebuah sistem perangkat lunak. UML cocok untuk kelompok pemodelan sistem dari sistem informasi sebuah perusahaan sampai aplikasi terdistribusi berbasis web dan sistem yang bersifat real time. UML merupakan bahasa yang ekspresif, menunjukkan semua II-9 gambaran-gambaran sistem yang dibutuhkan untuk membangun dan kemudian menyebarkan ke seluruh sistem. UML adalah sebuah bahasa dan hanya merupakan satu bagian dari metode pembangunan sebuah software. UML merupakan proses yang bias berdiri sendiri meskipun untuk optimalisasi digunakan juga dalam proses. 2.5.1 UML Building Blocks 2.5.1.1 Things Things adalah abstraksi yang merupakan bagian pertama dari sekumpulan bagian dalam pemodelan, relationship mengikat things ini bersama-sama, dan diagram merupakan sekumpulan grup dari things-things. Dalam UML things dibagi menjadi empat bagian: a. Structural things Structural things merupakan kata benda dari model UML, dimana sebagian besar merupakan bagian statis dari model yang menggambarkan elemen-elemen yang menjadi konsep Bagian-bagian yang berkaitan dengan structural things adalah: c.1. Class Class merupakan deskripsi dari sekumpulan objek yang mempunyai atribut, operasi, relationship dan sematik yang sama. Class mengimplementasikan satu atau lebih dari antarmuka. c.2. Interface Interface adalah kumpulan dari operasi-operasi yang menggambarkan layanan dari sebuah class atau component. Oleh karena itu interface merupakan gambaran lingkungan luar dari sebuah elemen. Interface boleh direpresentasikan menjadi satu bagian yang utuh dari sebuah class atau component atau hanya merupakan bagian kecil saja. Interface mendefinisikan sekumpulan II-10 operasi yang spesifik tapi tidak pernah menjadi implementasi dari sekumpulan operasi. c.3. Collaboration Collaboration mendefinisikan sebuah interaksi dan merupakan kumpulan fungsi-fungsi dari elemen yang bekerja sama untuk menyediakan lingkungan yang lebih besar dari semua elemen. Oleh karena itu, collaboration mempunyai struktur seperti lingkungan dan dimensi. Jadi collaboration menunjukkan implementasi dari pola yang membangun sistem. c.4. Use Case Use case menggambarkan sekumpulan aksi sekuen yang ditampilkan sistem sampai menunjukan hasil yang tampak dari actor khusus. Use case digunakan untuk menyusun behavioral things dalam pemodelan. Use case direalisasikan oleh collaboration. c.5. Active Class Active class adalah sebuah class dimana objeknya mempunyai satu atau lebih proses atau fungsi dan oleh karena itu bisa diinisialisasi menjadi pengatur aktivitas. Active class seperti sebuah class kecuali objeknya yang merepresentasikan elemen satu dengan elemen lain bekerja sama dalam lingkungan. c.6. Component Component menunjukkan suatu bagian fisik atau bagian yang bisa diganti dari sistem yang sesuai dan merealisasikan sekumpulan interface. Component biasanya merepresentasikan paket-paket fisik dari kebalikan elemen logika seperti class, interface dan collaboration. II-11 c.7. Node Node adalah elemen fisik yang ada ketika waktu running dan merepresentasikan sumber-sumber komputasi, yang umumnya mempunyai memori kecil dan seringkali kemampuan memproses. Sekumpulan component boleh terletak dalam node atau boleh bermigrasi atau pindah dari satu node ke node yang lain. b. Behavioral things Behavioral things menunjukkan bagian yang dinamis dari model UML. Behavioral things merupakan kata kerja dari sebuah model, merepresentasikan keadaan lingkunan tiap waktu dan bagian. Bagian-bagian yang berhubungan dengan behavioral things adalah: c.1. Interaction Interaction adalah behavior yang terdiri dari sekumpulan pesan yang saling tukar menukar antara sekumpulan objek dalam konteks khusus untuk menyelesaikan sebuah tujuan. Tingkah laku dari sekumpulan objek atau operasi individual kemungkinan dispesifisikasikan dengan interaction. Interaction meliputi nomor dari elemen lain, pesan, aksi sekuen, dan link. c.2. State Machine State machine adalah tingkah laku yang menunjukkan status-status yang sekuen dari objek atau interaksi status itu untuk merespon suatu kejadian. Tingkah laku dari sebuah class atau collaboration sebuah class bisa ditunjukkan dengan state machine. State machine meliputi nomor dari elemen lain, status yang terkandung, transisi, kejadian dan aktivitas-aktivitas. c. Grouping things Grouping things merupakan bagian yang organisasional dari model UML. Grouping things adalah suatu tempat dimana sebuah model bisa didekomposisi. II-12 Salah satu bagian dari grouping things adalah package. Package adalah tujuan mekanisme umum untuk pengaturan elemen-elemen di dalam grup. Structural things, behavioral things, dan grouping things yang lain bisa diletakan di dalam package. d. Annotational things Annotational things merupakan bagian penjelasan dalam model UML. Penjelasan ini berupa komentar-komentar atau ulasan-ulasan untuk menggambarkan, menjelaskan dan memberi tanda tentang beberapa elemen dalam model. Salah satu macam dari annotational things yang penting adalah note. Note merupakan simbol yang mudah untuk menyalin batasan atau komentar yang diambil dari satu elemen atau kumpulan elemen. 2.5.1.2 Relationship Dalam UML ada empat macam bentuk relationship yang merupakan relasi standar dari UML building block, yaitu : a. Dependency Dependency merupakan suatu bentuk relasi yang menghubungkan dua things dimana bisa dirubah menjadi satu things (independent things) yang mempengaruhi things yang lain (dependent things). b. Association Association merupakan bentuk relasi yang menggambarkan sekumpulan hubungan, dimana hubungan itu menghubungkan beberapa objek. Salah satu bentuk association adalah aggregation, yang merepresentasikan susunan relasi semua atau sebagian objek. c. Generalization Generalization adalah relasi khusus atau umum dimana sebuah objek dari elemen khusus (child) bisa digantikan oleh objek dari elemen yang umum (parent). Jadi struktur atau tingkah laku dari anak (child) mengambil struktur atau tingkah laku dari orang tuanya (parent). II-13 d. Realization Realization adalah bentuk hubungan antara class-class, dimana satu class yang spesifik melakukan perjanjian dengan class yang lain untuk melaksanakan perjanjian itu. Realization biasanya ditemukan dalam hubungan antara interface dengan class atau component dan juga antara use case dengan collaboration. 2.5.2 Diagram UML Diagram adalah presentasi grafik dari sekumpulan elemen, dimana kebanyakan dari elemen itu disalin dalam graph yang terhubung (connected graph) dari verteks (things) dan juga edge (relationship). Diagram digunakan untuk memvisualisasikan sistem dari berbagai perspektif, jadi diagram merupakan proyeksi dari sistem. 2.5.2.1 Use Case Diagram Use case diagram menampilkan sekumpulan use case dan actor dan juga relasi antar keduanya. Use case diagram mengalamatkan use case yang statis dari sistem. Use case diagram sangat penting dalam mengorganisasi dan memodelkan tingkah laku dari sistem. Use case diagram menjelaskan manfaat sistem jika dilihat menurut pandangan orang yang berada di luar sistem (actors). Diagram ini menunjukkan fungsionalitas suatu sistem atau kelas dan bagaimana sistem berinteraksi dengan dunia luar. Use case diagram dapat digunakan selama proses analisis untuk menangkap requirements sistem dan untuk memahami bagaimana sistem seharusnya bekerja. 2.5.2.2 Class Diagram Class diagram menunjukkan sekumpulan class, interface dan collaboration serta relationship. Class diagram merupakan diagram yang sering ditemukan dalam pemodelan berorientasi objek. Class diagram mengalamatkan perancangan statis dari sistem. Selama proses analisis, class diagram memperlihatkan aturan-aturan dan tanggung jawab entitas yang menentukan perilaku sistem. Selama tahap desain, II-14 class diagram berperan dalam menangkap struktur dari semua kelas yang membentuk arsitektur sistem yang dibuat. Class diagram juga merupakan fondasi untuk component diagram dan deployment diagram. 2.5.2.3 Object Diagram Object diagram menunjukkan sekumpulan objek dan relasinya. Object diagram merepresentasikan gambaran statis tentang hal-hal dari things yang ditemukan dalam class diagram. Object diagram mengalamatkan perancangan statis atau proses statis dari sistem sama seperti class diagram, tapi dilihat dari perspektif yang nyata atau merupakan bagian prototipenya. 2.5.2.4 Sequence Diagram Sequence diagram merupakan interaction diagram yang menekankan pada pemesanan waktu dari pesan yang disusun dalam suatu urutan waktu, dimana interaction diagram sendiri menggambarkan interaksi dari beberapa objek dan relasinya, serta pesan yang menghubungkan antara satu objek dengan objek yang lain. Diagram ini secara khusus berasosiasi dengan use case. Sequence diagram memperlihatkan tahap demi tahap apa yang seharusnya terjadi untuk menghasilkan sesuatu di dalam use case. 2.5.2.5 Collaboration Diagram Collaboration diagram merupakan interaction diagram yang menekankan pada susunan organisasi dari objek yang mengirim dan menerima pesan. Sequence diagram dan collaboration diagram merupakan diagram yang isomorfis yang berarti dari sequence diagram bisa dirubah menjadi collaboration diagram atau sebaliknya. Collaboration diagram digunakan sebagai alat untuk menggambarkan interaksi yang mengungkapkan keputusan mengenai perilaku sistem. 2.5.2.6 Statechart Diagram Statechart diagram menunjukan mesin status yang terdiri dari status, transisi, kejadian dan aktivitas dari sistem. Statechart diagram merupakan gambaran dinamis dari sistem. Statechart diagram sangat penting dalam II-15 memodelkan tingkah laku dari interface, class atau collaboration yang menekankan pada permintaan kejadian tingkah laku dari objek. 2.5.2.7 Activity Diagram Activity diagram merupakan bentuk khusus dari statechart diagram yang menunjukkan aliran aktivitas dalam sistem. Activity diagram merupakan gambaran dinamis dari sistem yang sangat penting digunakan dalam memodelkan fungsi dari sistem dan menekankan pada aliran kontrol antar objek. Activity diagram juga berguna ketika kita ingin menggambarkan perilaku paralel atau menjelaskan bagaimana perilaku dalam berbagai use case berinteraksi. 2.5.2.8 Component Diagram Component diagram menunjukkan organisasi dan ketergantungan (dependency) dari sekumpulan component. Component diagram merupakan implementasi statis dari sistem. Component diagram berhubungan dengan class diagram dimana satu component biasanya dipetakan dalam satu atau lebih class, interface dan collaboration. Diagram ini memperlihatkan pengaturan dan kebergantungan antara komponen-komponen software seperti source code, binary code dan komponen tereksekusi (executable component). 2.5.2.9 Deployment Diagram Deployment diagram menggambarkan konfigurasi saat pemrosesan dari node dan component. Deployment diagram berhubungan dengan component diagram dimana node biasanya menyertakan satu atau lebih component. Diagram ini memperlihatkan pemetaan software kepada hardware. 2.5.3 Unified Modeling Language (UML) View Setiap sistem yang kompleks selalu akan lebih baik jika didekati melalui himpunan-himpunan sudut pandang yang kecil dan berbeda. Sudut pandang tunggal senantiasa tidak mencukupi untuk melihat sistem yang besar dan kompleks. Dalam UML ada beberapa sudut pandang (view), yaitu: II-16 a. Use Case View Use case view tidak menspesifikasikan sistem perangkat lunak yang sesungguhnya. Use case view menggambarkan sistem dari sudut pandang pengguna, analis dan tester. Aspek statis digambarkan lewat use case diagram, sedangkan aspek dinamis digambarkan lewat interaction diagrams, statechart diagrams dan activity diagrams. b. Design View Design view menggambarkan keadaan, problem atau masalah serta solusi dari suatu sistem. Aspek statis akan digambarkan lewat class diagrams dan object diagrams, sedangkan aspek dinamis digambarkan lewat interaction diagrams, statechart diagrams dan activity diagrams. c. Process View Process view menggambarkan sinkronisasi serta konkurensi sistem yang meliputi thread dan process. Aspek statis digambarkan lewat class diagrams dan object diagrams, sedangkan aspek dinamis digambarkan lewat interaction diagrams, statechart diagrams dan activity diagrams. Process view sangat menekankan pada representasi thread dan process. d. Implementation View Implementation view menggambarkan file dan komponen lainnya yang mendukung kesatuan program perangkat lunak. Aspek statis digambarkan lewat component diagrams, sedangkan aspek dinamis digambarkan lewat interaction diagrams, statechart diagrams dan activity diagrams. e. Deployment View Deployment view menggambarkan satuan dan topologi perangkat keras yang mendukung sistem secara fisik. Deployment view meliputi distribusi dan instalasi sistem. Aspek statis digambarkan lewat deployment diagrams, sedangkan aspek dinamis digambarkan lewat interaction diagrams, statechart diagrams dan activity diagrams. II-17 2.6 Mengenal Rational Rose Rational Rose adalah software yang memiliki perangkat-perangkat pemodelan secara visual untuk membangun suatu solusi dalam rekayasa software dan pemodelan bisnis. Rational Rose dikeluarkan oleh perusahaan software bernama Rational Software, perusahaan yang mencetuskan ide pembentukan konsorsium bagi perusahaan-perusahaanyang memakai standar UML sebagai bahasa pemodelan di perusahaannya. Rational Rose memakai UML sebagai bahasa pemodelannya, ditambah beberapa fitur lain yang membuat Rational Rose menjadi software pemodelan visual yang terkemuka. Salah satu fitur yang ada di dalam Rational Rose adalah Rational Unified Process (RUP). Selain itu, Rational Rose memiliki kemampuan membuat solusi client/server, yang kemudian dapat diterapkan dan didistribusikan dalam lingkungan perusahaan. 2.6.1 Dasar-Dasar Pemodelan Dengan Rational Rose 2.6.1.1 Visual Modeling Visual Modeling adalah proses menggambarkan cetak biru suatu sistem secara grafis, terdiri dari komponen-komponen, interface, dan koneksi-koneksi yang ada di dalam sistem tersebut, agar mudah dipahami dan dikomunikasikan. Visual modeling dapat membantu kita untuk menampilkan elemen-elemen yang penting secara detil dari suatu masalah yang kompleks dan menyaring untuk kemudian membuang elemen-elemen yang tidak penting. Rational Rose menggunakan UML sebagai bahasa pemodelannya. Semua semantik dan notasi dalam UML dibuat untuk digunakan dalam visual modeling. Model yang dapat dikerjakan dengan UML ada dua, yaitu model bisnis dan model untuk rekayasa software. 2.6.1.2 Model dalam Rekayasa Software Membangun sebuah model dalam proses rekayasa software sangat penting sebagaimana pentingnya kita memiliki cetak biru untuk membangun suatu II-18 bangunan yang besar. Agar model yang dibuat termasuk kriteria model yang bagus, model yang dibuat harus: 1. Mengidentifikasi persyaratan-persyaratan (requirements) dan dapat menyampaikan informasi dengan jelas. 2. Berfokus pada bagaimana komonen-komponen sistem berinteraksi. 3. Dapat membantu untuk melihat hubungan antarkomponen. 4. Meningkatkan komunikasi antaranggota tim dengan menggunakan bahasa yang mudah dipahami, dalam hal ini bahasa grafis. 2.6.2 Beberapa Keunggulan Rational Rose dalam Pemodelan Rational Rose memiliki keunggulan, diantaranya: 1. Bahasa yang digunakan adalah bahasa pemodelan standar, yaitu UML, akan meningkatkan komunikasi intra tim. 2. Rational Rose mendukung round-trip engineering, sehingga kita dapat men-generate model ke dalam kode (Java, C++, Visual Basic, dan sebagainya) dan melakukan reverse engineering untuk menampilkan arsitektur software dan kode yang ada. Hal ini dapat dapat dilakukan secara bolak-balik sebagai proses iterative selama proses rekayasa software. 3. Model dan kode senantiasa singkron selama dalam development cycle. 4. Membangun software menggunakan Rational Rose memudahkan dalam memperbaiki software tersebut karena apabila suatu saat ditemukan requirement baru, bisa langsung digambarkan lagi sebagai software tersebut dalam UML. 5. Para user Rational Software dapat berkomunikasi walaupun bekerja dalam sistem operasi yang berbeda (Windows atau UNIX). 6. Dengan menggunakan Rose Web Publisher suatu tim dapat mengkomunikasikan model dan spesifikasinya dalam web browser. 7. Mendukung rekayasa software untuk sistem client/server sehingga Rational Rose merupakan software pemodelan visual yang tangguh dalam II-19 lingkungan client/server, e-business, dan lingkungan perusahaan terdistribusi. 2.6.3 Edisi Rational Rose Ada tiga edisi Rational Rose, yiatu: 1. Rose Modeler, tidak mendukung bahasa pemrograman apapun. 2. Rose Professional, mendukung satu bahasa pemrograman. 3. Rose Enterprise, mendukung banyak bahasa, yaitu CORBA, Visual C++, Java, dan sebagainya.