BAB 2 LANDASAN TEORI
2.1
Teori Utama
2.1.1 Rekayasa Perangkat Lunak 2.1.1.1 Pengertian Perangkat Lunak Perangkat lunak adalah: 1. Perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang diinginkan; 2. Struktur data yang memungkinkan program memanipulasi informasi secara proporsional; 3. Dokumen yang menggambarkan operasi dan kegunaan program (Software is: 1. Instructions (computer programs) that when executed provide desired function and performance, 2. Data structures that enable the programs to adequately manipulate information, 3. Documents that describe the operation and use of the programs.) (Pressman, 2001, pg 6).
2.1.1.2 Pengertian Rekayasa Perangkat Lunak Menurut definisi Fritz Bauer pada konferensi seminar Rekayasa Perangkat Lunak: A Report on a Conference Sponsored by the NATO Science Committee tahun 1969, “[Rekayasa perangkat lunak adalah] pengembangan dan penggunaan prinsip pengembangan suara untuk memperoleh perangkat lunak secara ekonomis yang reliable 7
8 dan bekerja secara efisien pada mesin nyata ([Software Engineering is] the establishment and use of sound engineering principles in order to obtain economically Software thet is reliable and works efficiently on real machines)”. (Pressman, 2001, pg 20). Menurut IEEE Standards Collection: Rekayasa perangkat lunak tahun 1993, Rekayasa perangkat lunak: 1. Aplikasi dari sebuah pendekatan kuantifiabel, disiplin dan sistematis kepada pengembangan, operasi dan pemeliharaan perangkat lunak; yaitu aplikasi dari rekayasa perangkat lunak. 2. Studi tentang pendekatan-pendekatan seperti pada 1 (Software Engineering: 1. The application of the systematic, disciplined, quantifiable approach to development, operation, and maintenanceof Software; that is, the application of engineering to Software. 2. The study of approaches as in 1). (Pressman, 2001, pg 20).
2.1.1.3 Model Air Terjun (Waterfall Model) Model air terjun atau bisa disebut dengan sekuensial linier atau siklus kehidupan klasik mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuensial yang dimulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan. Pada masa lalu, pengembang menggunakan pendekatan air terjun dimana suatu tugas pada tingkatan tertentu dikerjakan setelah tugas lain pada tingkatan sebelumnya dikerjakan. Sekarang, pengembang dapat bergerak maju atau mundur sesuai dengan yang dibutuhkan. Model air terjun melingkupi aktivitas-aktivitas sebagai berikut:
9 •
Rekayasa dan Pemodelan Sistem (System/Information Engineering and Modeling) Karena perangkat lunak merupakan bagian dari sebuah sistem yang lebih besar, kerja dimulai dengan membangun syarat dari semua elemen sistem dan mengalokasikan beberapa subset dari kebutuhan ke perangkat lunak tersebut. Pandangan sistem ini penting ketika perangkat lunak harus berhubungan dengan elemen-elemen yang lain seperti perangkat lunak, manusia dan database. Rekayasa dan analisis sistem menyangkut pengumpulan kebutuhan pada tingkat sistem dengan sejumlah kecil analisis serta desain tingkat puncak. Rekayasa informasi mencakup juga pengumpulan kebutuhanpada tingkat bisnis strategis dan tingkat area bisnis (Because Software is always part of a larger system (a business), work begins by establishing requirements for all system elements and then allocating some subset of these requirement of Software. This system view is essential when Software must interact with other elements such as hardware, people and databases. System engineering and analysis encompass requirements gathering at the system level with a small amount of top level design and analysis. Information engineering encompasses requirements gathering at the strategic business level and at the business area level).
•
Analisis kebutuhan perangkat lunak (Software Requirement Analysis) Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya pada perangkat lunak. Untuk memahami sifat program yang dibangun, analis harus memahami domain informasi, tingkah laku, unjuk kerja, dan antarmuka (interface) yang diperlukan. Kebutuhan baik untuk sistem maupun perangkat lunak didokumentasikan dan dilihat lagi dengan customer (The requirement gathering process is intensified and focused specifically on Software. To understand the nature
10 of the program(s) to be built, the Software engineer (“analyst”) must understand the information domain for the Software, as well as required function, behavior, performance and interface. Requirements form both the system and the Software are documented and reviewed with the customer). •
Desain (Design) Desain perangkat lunak sebenarnya adalah proses multi langkah yang berfokus pada empat atribut sebuah program yang berbeda; struktur data, arsitektur perangkat lunak, representasi antarmuka dan detil (algoritma) prosedural. Proses desain menterjemahkan syarat/kebutuhan ke dalam sebuah representasi perangkat lunak yang dapat diperkirakan demi kualitas sebelum dimulai pengkodean. Sebagaimana persyaratan, desain didokumentasikan dan menjadi bagian dari konfigurasi perangkat lunak (Design is actually a multi step process that focuses in four distinct attributes program, data structure, Software architecture, interface representation, and procedural (algorithmic) detail. The design process translates requirement into a representation of the Software that can be assessed for quality before coding begins. Like requirements, the design is documented and becomes part of the Software configuration).
•
Pengkodean (Code Generation) Desain harus diterjemahkan ke dalam bentuk mesin yang bisa dibaca. Langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan cara yang lengkap, pembuatan kode dapat diselesaikan dengan cara mekanis (The design must be translated into a machine-readable form. The code generation step performs this task. If design is performed in a detailed manner, code generation can be accomplished mechanistically).
11 •
Pengujian (Testing) Sekali kode dibuat, pengujian program dimulai. Proses pengujian berfokus pada logika internal perangkat lunak, memastikan bahwa semua pernyataan sudah diuji, dan pada eksternal fungsional yaitu mengarahkan pengujian untuk menemukan kesalahan-kesalahan dan memastikan bahwa input yang dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang dibutuhkan (Once code has been generated, program testing begins. The testing process focuses on the logical internals of the Software, ensuring that all statement have been tested, and op the functional externals; that is, conducting test to uncover errors and ensure that defined input will produce actual results that agree with required results).
•
Pemeliharaan (Support) Perangkat lunak akan mengalami perubahan setelah disampaikan kepada customer. Perubahan yang terjadi karena kesalahan-kesalahan, karena perangkat lunak harus disesuaikan dengan mengakomodasi perubahan di dalam lingkungan eksternalnya, atau karena customer membutuhkan perkembangan fungsional atau untuk kerja. Pemeliharaan perangkat lunak mengaplikasi lagi setiap fase program sebelumnya dan tidak membuat yang baru lagi (Software will undoubtedly undergo change after it is delivered to the customer. Change will occur because errors have been encountered, because the Software must be adapted to accommodate changes in its external environment (e.g., change required because of a new operating system or peripheral device), or because the customer requires functional or performance enhancements. Software support/maintenance replies each of the preceding phases to an existing program rather than a new one).
12
2.1.2 Analisis dan Perancangan Berorientasi Objek (Object Oriented Analysis and Design / OOAD) 2.1.2.1 Pengertian Objek Objek dikarakterisasi oleh sejumlah operation dan state yang mempengaruhi operation (An object is characterized by a number of operations an a state which remembers the effect of these operations). (Booch, 1992, pg 44). Objek adalah hal nyata atau abstrak yang berisi informasi (attributes yang menerangkannya) dan method yang dapat memanipulasi informasi (An object is a real or abstract item that contains information (the attributes that describe it) and method that allow it to be manipulated). (Haigh, 2001, pg 12). Objek adalah pembungkusan data (disebut properti) yang mendeskripsikan orang, objek, tempat, kejadian, atau sesuatu yang berlainan, dengan semua proses (disebut metode) yang diizinkan untuk menggunakan atau memperbaharui data dan propertiproperti tersebut. Satu-satunya cara untuk mengakses atau memperbaharui data objek adalah dengan menggunakan proses-proses objek yang didefinisikan sebelumnya. (Whitten, 2004, pg 179).
2.1.2.2 Pengertian Orientasi Objek Orientasi objek merupakan teknik untuk memodelkan sistem (Object-orientation is a technique for system modeling). Dengan menggunakan orientasi objek, kita memodelkan sistem sebagai objek yang berinteraksi (Using object-orientation as a base, we model the system as a number of objects that interact). (Booch, 1992, pg 42).
13 2.1.2.3 Analisis Berorientasi Objek (Object Oriented Analysis) Analisis Berorientasi Objek (Object Oriented Analysis / OOA) adalah sebuah teknik model driven yang mengintegrasikan data dan proses ke dalam konstruksi yang disebut objek. Model-model OOA adalah gambar-gambar yang mengilustrasikan objekobjek sistem dari berbagai macam perspektif, seperti struktur, behaviour, dan interaksi objek-objek. (Whitten, 2004, pg 179). Analisis berorientasi objek (Object Oriented Analysis / OOA) merupakan pendekatan yang digunakan untuk: 1. Mempelajari objek yang sudah ada untuk mengetahui apakah mereka dapat digunakan kembali atau diadaptasi untuk pemakaian baru, atau 2. Menentukan satu objek baru atau yang dimodifikasi yang akan digabung dengan objek yang sudah ada ke dalam suatu aplikasi komputasi bisnis yang sangat berguna. (Whitten, 2004, pg 408). Analisis berorientasi objek (Object Oriented Analysis / OOA) melihat pada domain masalah, dengan tujuan untuk memproduksi model konseptual dari informasi yang tersedia pada domain yang akan dianalisa. (Wikipedia, 2007).
2.1.2.4 Perancangan Berorientasi Objek (Object Oriented Design) Perancangan Berorientasi Objek (Object Oriented Design / OOD) adalah pendekatan yang digunakan untuk menentukan solusi perangkat lunak dalam hal menggunakan objek, atribut, dan metodenya. (Whitten, 2004, pg 648). Perancangan berbasis objek mengubah model konseptual yang dihasilkan pada tahap analisis berorientasi objek yang termasuk dalam batasan yang ditetapkan oleh arsitektur yang dibutuhkan dan batasan non-fungsional lainnya berdasarkan teknologi
14 dan lingkungan, seperti hasil transaksi, rseponse time, run-time platform, lingkungan pengembangan, atau bahasa pemrograman. (Wikipedia, 2007).
2.1.2.5 Analisis dan Perancangan Berorientasi Objek (Object Oriented Analysis and Design / OOAD) Analisis dan Perancangan Berorientasi Objek merupakan kumpulan alat dan teknik untuk pengembangan sistem yang akan menggunakan teknologi objek untuk mengkonstruksi sebuah sistem dan perangkat lunaknya. (Whitten, 2004, pg 27).
2.1.3 Unified Modeling Language (UML) 2.1.3.1 Sejarah UML Di era tahun 1990, banyak metode berbeda yang muncul. Ada 3 metode yang paling populer yaitu OMT (Rumbaugh), Booch, dan OOSE (Jacobson). Setiap metode memiliki nilai dan penekanan masing-masing. Jacobson kuat di bidang analisis dan lemah di bidang lain. Beberapa waktu kemudian, Booch menulis buku keduanya, yang mengadopsi banyak teknik analisis yang baik yang didukung oleh Rumbaugh dan Jacobson. Penggunaan notasi yang berbeda menimbulkan kebingungan sejak satu simbol memiliki banyak arti yang berbeda bagi setiap orang. Akhir dari kerancuan yang terjadi menghasilkan suatu kesimpulan yaitu Unified Modeling Language (UML). 2.1.3.2 Pengertian UML UML adalah sebuah bahasa yang digunakan untuk memperinci, memvisualisasi, dan mendokumentasikan artifact dari sebuah sistem berorientasi objek dalam
15 perkembangan (UML is a language used to specify, visualize, and document the artifacts of an object-oriented system under development). (Quatrani, 2000, pg 6) UML adalah bahasa standar untuk menulis perencanaan Software. UML dapat digunakan untuk menggambarkan, menetapkan, membangun, dan mendata artifact dari sistem intesif Software (The Unified Modeling Language (UML) is a standard language for writing Software blueprints. The UML may be used to vizualize, specify, construct, and document the artifacts of a Software-intensive system). (Booch, 1999, pg 13).
2.1.3.3 Diagram Pada UML Diagram adalah presentasi grafik dari kumpulan elemen, yang sering diubah menjadi gambar yang terhubung pada bentuk dan hubungannya. UML terdiri beberapa diagram antara lain : 1. Class Diagram Class Diagram adalah diagram yang menunjukkan sekumpulan kelas, interface, dan kolaborasi dan hubungannya satu sama lain (A Class Diagram is a diagram that shows a set of classes, interfaces, and collaborations and their relationship). (Booch, 1999, pg 25) Class Diagram menggambarkan tipe-tipe objek dalam sistem dan berbagai jenis hubungan statis yang ada diantaranya (A Class Diagram describes the types of objects in the system and the various kinds of static relationship that exist among them). (Fowler, 2000, pg 49) Class Diagram menunjukkan atribut-atribut dan operasi-operasi dari class dan batasan yang digunakan sesuai dengan objek yang berhubungan.
16
-dateReceived -isPrepaid -number : String -price : Long +dispatch() +close()
*
1 -name -address +creditRating() : String
1
-contactName -creditRating -creditLimit +remind() +billForMonth() : Integer Line item
(creditRating()==”poor”)
*
*
-quantity : Integer -price : Long -isSatisfied : Boolean
-creditCard
0..1
*
1
Gambar 2.1 Contoh Class Diagram
2. Use Case Diagram Use Case Diagram menunjukkan kumpulan dari use case, aktor dan hubungannya. Diagram ini penting, khususnya dalam mengatur dan memperagakan tingkah laku sistem (A Use Case Diagram shows a set of use cases and actors (special kind of class) and their relationship. These diagram are especially important in organizing and modeling the behaviour of a system). (Booch, 1999, pg 25)
17
Gambar 2.2 Contoh Use Case Diagram
3. Sequence Diagram Interaction diagram menunjukkan interaksi, yang terdiri dari kumpulan objek dan hubungannya, termasuk pesan yang mungkin dikirim diantaranya. Sequence Diagram adalah Interaction diagram yang menekankan pengurutan waktu dari pesanpesan (An Interaction diagram shows an interaction, consisting of a set of objects and their relationship, including the messages that may be dispatched among them. A Sequence Diagram is an interaction diagram that emphasizes the time-ordering of messages). (Booch, 1999, pg 25)
18
Gambar 2.3 Contoh Sequence Diagram
4. Statechart Diagram Statechart Diagram menunjukkan sebuah state machine, yang berisikan pernyataan, transisi, kejadian, dan aktivitas. Diagram tersebut penting dalam membuat model dan tingkah laku dari suatu interface, class atau collaboration dan menekankan pengurutan kejadian tingkah laku sebuah objek, yang mana khususnya berguna dalam sistem pembuatan model reaktif (A Statechart Diagram shows a state machine, consisting of states, transitions, events, and activities. They are especially important in modeling the behaviour of an interface, class, or collaboration and emphasizes the event-ordered behaviour of an object, which is especially useful in modeling reactive system). (Booch, 1999, pg 333)
19
Gambar 2.4 Contoh Statechart Diagram
5. Collaboration Diagram Collaboration Diagram adalah Interaction diagram yang menekankan struktur organisasi dari objek yang mengirim dan menerima pesan (A collaboration diagram is an interaction diagram that emphasizes the structural organization of the objects that send and receive messages). (Booch, 1999, pg 25) Buyer, seller, lot, offer Sale Buyer
Seller
1 *
1 seller
*
Offer
Lot
Gambar 2.5 Contoh Collaboration Diagram
20 6. Object Diagram Object Diagram menunjukkan kumpulan dari objek dan hubungannya antar objek. Object Diagram menampilkan gambaran statis dari hal yang ada dalam Class Diagram. Diagram ini menunjukkan penggambaran desain statis atau penggambaran proses statis dari sebuah sistem seperti misalnya Class Diagram, tetapi dari perspektif kasus asli atau prototype (An Object Diagram shows a set of objects and their relationship. Object Diagram represent static snapshot of instances of the things found in Class Diagrams. These diagrams address the static design view or static process view of a system as do Class Diagrams, but from the perspective of real or prototypical cases). (Booch, 1999)
c : Company
d1 : Departement
d2 : Departement
Name = “Sales”
Name = “R&D” link
d3 : Departement object
Attribute value
Name = “US Sales”
Anonymous object manager p : person
: ContactInformation
-name = "Erin" -employeeID = 4362 -title = "VP of Sales"
Gambar 2.6 Contoh Object Diagram
21 7.
Activity Diagram Activity Diagram adalah jenis khusus dari Statechart Diagram yang
menunjukkan alur dari aktivitas yang satu ke aktivitas lainnya dalam sebuah sistem. Diagram ini penting khususnya dalam membentuk fungsi dari sebuah sistem dan menekankan alur kontrol antar objek (An Activity Diagram is a special kind of a Statechart Diagram that shows the flow from activity to activity within a system. They are especially important in modeling the function of a system and emphasizes the flow of control among object). (Booch, 1999, pg 25)
Gambar 2.7 Contoh Activity Diagram
22 8. Component Diagram Component Diagram menunjukkan organisasi dan ketergantungan antar kumpulan komponen. Diagram ini berhubungan dengan Class Diagram dimana komponen secara khusus dipetakan menjadi satu atau lebih class, interface, atau collaboration (A Component Diagram shows the organizations and dependencies among a set of components. They are related to Class Diagrams in that a component typically maps to one or more classes, interfaces, or collaborations). (Booch, 1999, pg 25)
Gambar 2.8 Contoh Component Diagram
9.
Deployment Diagram Deployment Diagram menunjukkan konfigurasi dari waktu proses node dan
komponen yang hidup di dalamnya. Diagram ini berhubungan dengan Component Diagram yang mana suatu node menyertakan satu atau lebih komponen (A Deployment Diagram shows the configuration of run-time processing nodes and the components that live on them. They are related to Component Diagrams in that a node typically encloses one or more components). (Booch, 1999, pg 25)
23 node internet
connection
Modem bank
caching server
caching server
node
local network
primary server
server
server
server
Gambar 2.9 Contoh Deployment Diagram
2.1.4 PHP PHP merupakan HTML-embedded scripting language, maksudnya adalah sebuah bahasa pemrograman yang bisa dimasukkan ke dalam penggunaan HTML. PHP mudah digunakan, dan juga merupakan alat yang multiguna. PHP mengkombinasikan fitur-fitur terbaik dari bahasa pemrograman modern untuk menciptakan pendekatan yang unik untuk membuat aplikasi web. Walaupun banyak tersedia bahasa pemrograman, namun PHP didesain dari dasar hingga ke atas dengan menggunakan pemikiran web development. Semua faktor ini membuat PHP teratur dan siap untuk diakses, sebuah bahasa pemrograman yang mudah dikembangkan tapi tidak terlalu sulit. (Allen, 2002, pg xix).
24 PHP merupakan script untuk pemrograman script web server-side, script yang membuat dokumen HTML secara on the fly, dokumen HTML yang dihasilkan dari suatu aplikasi bukan dokumen HTML yang dibuat dengan menggunakan editor teks atau editor HTML. Dengan menggunakan PHP maka maintenance suatu situs web menjadi lebih mudah. Proses update data dapat dilakukan dengan menggunakan aplikasi yang dibuat dengan menggunakan script PHP. PHP/FI merupakan nama awal dari PHP. PHP – Personal Home Page, FI adalah Form Interface. Dibuat pertama kali oleh Rasmus Lerdoff. PHP, awalnya merupakan program CGI yang dikhususkan untuk menerima input melalui form yang ditampilkan dalam web browser. Software ini disebarkan dan dilisensikan sebagai perangkat lunak Open Source. PHP secara resmi merupakan kependekan dari PHP-HyperText Preprocessor, merupakan bahasa script server-side yang disisipkan pada HTML. PHP secara mendasar dapat mengerjakan semua yang dapat dikerjakan oleh program CGI, seperti mendapatkan data dari form, menghasilkan isi halaman web yang dinamik, dan menerima cookies. (Sidik, 2006, pg 3) PHP dapat berjalan pada semua jenis sistem operasi, antara lain pada Linux dan varian Unix, Microsoft Windows, Mac OS X, RISC OS, dan masih banyak lagi. Selain itu PHP juga dapat berjalan pada beberapa jenis web server, antara lain Apache, Microsoft Internet Information Services, Personal Webserver, Netscape, dan Iplanet Server, Caudium, Xitami, OmniHTTPd, dan masih banyak lagi. Output yang dihasilkan oleh PHP pun bukan hanya HTML, namun juga dalam bentuk gambar, file PDF, serta gambar animasi menggunakan Libswf dan Ming. Output yang lain dengan jenis teks dapat berupa XHTML dan XML.
25 PHP juga mendukung banyak database populer yang sering digunakan dalam beberapa web server, antara lain Adabas D, Ingres, Oracle, dBase, InterBase, Ovrimos, Empress, FrontBase, PostgreSQL, mSQL, Solid, Hyperwave, Direct MS-SQL, Sybase, IBM DB2, MySQL, Velocis, Informix, ODBC, dan Unix dbm.(Hafiz, 2006, pg 2)
2.1.5 Basis Data 2.1.5.1 Pengertian Basis Data Basis data atau Database adalah kumpulan file yang saling terkait. Database memiliki kemampuan untuk berbagi pakai data yang sama di banyak aplikasi dan sistem. (Whitten, 2004, pg 518) Basis data adalah serangkaian file terstruktur pada komputer yang diatur dengan sangat efisien (A database is a seies of structured files on a computer that are organized in highly efficient manner). (Maslakowski, 2000, pg 10)
2.1.5.2 SQL SQL atau Structured Query Language merupakan sebuah standar yang digunakan secara luas dan diterima dalam dunia industri untuk mendefinisikan, memanipulasi, dan mengatur data dan mengendalikan bagaimana perubahan tersebut diaplikasikan terhadap database yang dibuat menggunakan tabel, indeks, keys, baris, dan kolom untuk menyimpan data (SQL, or Structured Query Language, is a widely accepted industry standard for defining, changing, and managing data and controlling how changes to the database are made by using tables, indexes, keys, rows, and columns to store data.). (Coffman, 1999, pg 4)
26 2.1.5.3 MySQL MySQL adalah sebuah sistem manajemen relasi database yang bersifat open source, memiliki level Enterprise, dan multithreaded, maksudnya adalah selain dia bebas digunakan karena bersifat open source, dia juga bisa digunakan pada aplikasi yang berbeda pada waktu yang bersamaan. (Maslakowski, 2000, pg 10). MySQL adalah sebuah sistem manajemen relasi database (Relational Database Manajemen System / RDBMS) yang bersifat free, yang termasuk dalam komunitas Open Source. Selain karena sifatnya yang free, adapun kelebihan MySQL sebagai berikut : (MySQL is a free RDBMS, which fully joined the Open Source Community. Besides its free feature, MySQL provides a whole lot of other features :) •
Open Source Software, MySQL dilengkapi dengan source code yang lengkap. Ini berarti kita bisa mempelajari source code tersebut dan mengubahnya sesuai dengan kebutuhan kita. Karena merupakan open source software, bisa ditemukan banyak support dari software lain (Open Source Software : The MySQL package comes with the complete source code. This means that you may study the source code and modify it to suit your paricular needs. Being open source has another importance ramification: you can find a high degree of support from third parties).
•
SQL Support, seperti yang bisa dilihat, terdapat kata ‘SQL’ di dalam MySQL, dikarenakan MySQL men-support SQL, sebuah bahasa yang digunakan untuk membuat query data dari sebuah database. Walaupun sintak yang digunakan sedikit berbeda dari RDMBS yang satu dengan RDMBS yang lainnya , tetapi konsep yang digunakan masih sama. MySQL menggunakan bahasa SQL-nya sendiri, tapi konsep dasarnya masih sama (SQL Support : As the “SQL” in MySQL suggest, MySQL supports SQL (Structured Query Language), a standard high-level language used to
27 make queries for data required from a database. Although the SQL syntax is slightly different from one RDMBS to another, the underlying concepts are much the same. MySQL uses its own set of SQL commands but the basic concept still survives). •
Superb performance and reliability, MySQL memiliki performa yang sangat cepat dan terpercaya bahkan di lingkungan yang memiliki kebutuhan yang kompleks (Super performance and reliability: MySQL is remarkably fast and reliable even in a most demanding environment).
•
Ease of use, MySQL merupakan sebuah manajemen relasi database yang sederhana namun memiliki fitur-fitur yang kuat. Bahkan, database MySQL sebenarnya merupakan kumpulan direktori dimana tabel – tabel database disimpan di file yang berbeda. Memindahkan sebuah database atau tabel database, pada kenyataannya hanyalah menghapus sebuah direktori atau file. MySQL juga mudah untuk di-install dan digunakan. MySQL dilengkapi dengan aplikasi client/server dan juga dilengkapi dengan tools lain yang berfungsi memudahkan administrasi database (Ease of use: MySQL is a relatively simple database management systems in spite of its powerful features. In fact, MySQL’s databases are nothing but a bunch of directories where database tables are kept in separate files. Removing a database or a database table is, in reality, simply deleteing a directory or a file. MySQL is easy to set up and manage. It comes with a complete suite of client/server applications plus a number of utilities that make the database administration easy).
•
Free support, kita bisa mendapatkan support gratis yang bisa didapatkan dari pengguna MySQL yang lain, atau dari komunitas MySQL, atau website dimana website tersebut melakukan share-knowledge antar user. Jika membutuhkan
28 technical support yang lebih besar, bisa meminta bantuan ke developer dengan biaya yang miminum (Free support : You can get a certain degree of professional support from other user who use MySQL by various means: MySQL newsgroups, mailing lists, independent web sites that freely sharetheir knowledge; among others. If you need a higher level of technical support, you can always ask it form the developers at minimal cost). •
Cross-platform, MySQL bisa berjalan di atas platform UNIX maupun WINDOWS (Cross-platform : MySQL can run either the UNIX or Windows platform.).
(Choi, 2000, pg 384)
2.1.6 Interaksi Manusia dan Komputer (IMK) 2.1.6.1 Pengertian Interaksi Manusia dan Komputer Interaksi Manusia dan Komputer adalah ilmu yang berhubungan dengan perancangan, evaluasi, dan implementasi sistem komputer interaktif untuk digunakan oleh manusia, serta studi fenomena-fenomena besar yang berhubungan dengannya. (Shneiderman, 1998, pg 8). Interaksi manusia dan komputer melibatkan perancangan, implementasi, dan evaluasi dari sistem yang interaktif dalam konteks tugas dan pekerjaan pengguna (Human-Computer interface involves the design, implementation, and evaluation of interactive systems in the context of the user’s task and work). (Dix, 1997, pg 3). Interaksi manusia dengan komputer adalah pembahasan yang sangat luas, dimana ruang lingkupnya bertambah dari teknik informatika menjadi ilmu pengetahuan manusia seperti psikologi, bahasa, dan ergonomi (Human interaction with computers is an open-ended subject area, whose scope extends from computer science and
29 engineering inti human science such as psychology, linguistics, and ergonomics). (Downtown, 1991, pg 11).
2.1.6.2 Delapan Aturan Emas Dalam merancang sistem interaktif ada prinsip yang harus diperhatikan oleh designer untuk mendapatkan tampilan yang baik dan fungsional bagi customer. Prinsip tersebut, menurut Shneiderman ada delapan aturan paling penting dalam merancang tampilan. Berikut adalah delapan aturan emas: •
Berusaha untuk tetap Konsisten Prinsip ini sering dilanggar namun dengan mengikutinya maka dapat menipu karena ada banyak jenis konsistensi. Konsistensi urutan aksi dibutuhkan pada situasi yang serupa; istilah yang sama harus digunakan pada tanda, menu dan layar pembantu; dan warna, tampilan, penggunaan huruf kapital, form dan lainlain harus diterapkan dengan konsisten secara keseluruhan. (The rule is the most frequently violated one, but following it can be tricky because there are many forms of consistency. Consistent sequence of actions should be required in similar situations,; identical terminology should be used in prompts, menus, and help screens; and consistent color, layout, capitalization, forms and so on should be employed throughout).
•
Memungkinkan frequent users menggunakan shortcut Karena
penggunaan
yang
meningkat,
maka
pengguna
menginginkan
pengurangan jumlah interaksi dan peningkatan tahapan interaksi. Singkatnya, special keys, komentar tersembunyi dan fasilitas yang umum dibutuhkan oleh user yang sering berkunjung dan memiliki pengetahuan. Waktu tanggapan yang
30 pendek dan kecepatan pemunculan tampilan merupakan salah satu ketertarikan bagi frequent users. (As the frequency of the use increases, so do the users desires to reduce the numbers of interactions and to increase the phase of interaction. Abbreviations, special keys, hidden commands, and macro facilities are appreciated by frequent knowledgeable users. Short response times and fast display rates are other attraction, for frequent users). •
Memberikan umpan balik yang informatif Untuk setiap aksi user harus ada umpan balik, untuk aksi yang sering terjadi dan kurang penting maka tanggapan bisa sederhana, sedangkan pada aksi yang jarang terjadi dan sangat penting maka tanggapan harus lebih mendetil. (For every user action, there should be system feedback, for frequent and minor actions, the response can be modest, whereas for infrequent and major actions the response should be more substantial).
•
Merancang dialog yang memberikan penutupan (keadaan akhir) Urutan aksi harus diatur menjadi kelompok-kelompok dengan awal, pertengahan dan akhir. Umpan balik yang informatif pada penyelesaian kelompok tersebut memberikan operator kepuasan dalam pencapaian, kelegaan, serta tanda untuk meninggalkan kemungkinan dan pilihan dari pikiran mereka dan sebagai petunjuk bahwa sudah dapat mempersiapkan untuk kelompok aksi berikutnya. (Sequences of actions should be organized into groups with a beginning, middle and end. The informative feedback at the completion of group of actions gives operator satisfaction of accomplishment, a sense of relief, the signal to drop contingency plans and options from their minds, and an indication that the way is clear to prepare for the next group of actions).
31 •
Memberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana Sebisa mungkin, desain sistem yang tidak memungkinkan user melakukan kesalahan yang fatal. Jika user membuat kesalahan maka sistem harus mengurangi kesalahan dan menawarkan instruksi yang sederhana, membangun dan jelas untuk perbaikan. (As much as possible, design the system such that users cannot make a serious error. If users make an error, the system should defect the error and offer simple, constructive and specific instructions for recovery).
•
Memungkinkan pembalikan aksi yang mudah Sebisa mungkin, aksi harus dapat dibalik. Feature ini meringankan kekhawatiran, semenjak user mengetahui bahwa kesalahan mungkin terjadi, atas penelusuran pilihan yang tidak bisa. Unit pengembali mungkin merupakan aksi tunggal, tugas memasukkan data, atau kelompok aksi yang lengkap seperti memasukkan nama dan alamat. (As much as possible, actions should be reversible. This feature relieves anxiety, since the users knows that errors can be undone, this encouraging exploration of unfamiliar options. The units of reversibility may be a single action, a data-entry task, or a complete group of actions such as entry of a name and address block).
•
Mendukung pusat kendali internal (internal focus of control) Operator berpengalaman meninginkan perasaan bahwa mereka memiliki kuasa terhadap sistem dan sistem menanggapi aksi mereka. Aksi yang mengejutkan,
32 pemasukkan data yang lamban, dan ketidakmampuan atau kesulitan dalam menangani informasi penting, dan ketidakmampuan untuk memperoleh aksi dapat menimbulkan kecemasan dan ketidakpuasan. (Experienced operators strongly desire the sense that they are in charge of the system and that the system response to their actions. Surpricing system actions, tedious actions of data entries, inability or difficulty in obtaining necessary information, and inability to produce the action desired all build anxiety and dissatisfaction). •
Mengurangi beban ingatan jangka pendek Batasan dari ingatan manusia membutuhkan tampilan yang sederhana, serangkaian tampilan halaman yang kuat, frekuensi gerakan window dikurangi, cukup waktu bagi penyesuian kode, alat bantu mengigat dan urutan aksi. (The limitation of human information processing in short term memory requires that displays be kept simple, multiple page displays be consolidated, window-motion frequency be reduced and sufficient training time be allotted for codes, mnemonics and sequence of actions).
2.2
Teori Pendukung
2.2.1 E-commerce 2.2.1.1 Pengertian E-commerce
33 Electronic Commerce (e-commerce / EC) menggambarkan pembelian, penjualan, dan pertukaran produk, layanan, dan informasi melalui jaringan komputer, khususnya internet (Electronic Commerce (e-commerce / EC) describes the buying, selling, and exchanging of products, services, and information via computer networks, primarily the internet). (Turban, 2003, pg 275). Electronic Commerce (e-commerce) merupakan pembelian dan penjulanan barang dan layanan dengan menggunakan internet.(Whitten, 2004, pg21).
2.2.1.2 Keuntungan E-commerce Keuntungan e-commerce bagi organisasi diantaranya adalah: 1. Memperluas pangsa pasar perusahaan untuk pasar nasional dan internasional 2. Memungkinkan perusahaan untuk mendapatkan bahan dan layanan dari perusahaan lain dengan cepat dan murah 3. Memperpendek atau bahkan menghilangkan jalur distribusi pemasaran, membuat harga produk menjadi murah dan meningkatkan keuntungan perusahaan 4. Mengurangi biaya dalam mengadakan, memproses, membagikan, menyimpan, dan mendapatkan informasi karena digitalisasi proses 5. Memungkinkan inventarisasi yang minimal dengan memudahkan pengaturan jalur persediaan 6. Biaya komunikasi yang lebih rendah karena biaya internet yang murah 7. Membantu perusahaan kecil untuk berkompetisi dengan perusahaan besar 8. Memungkinkan pasar yang sesuai Keuntungan e-commerce bagi customer diantaranya adalah:
34 1. Biasanya menyediakan produk dan layanan yang lebih murah dengan mengijinkan customer untuk membandingkan harga secara online 2. Memberikan customer pilihan yang lebih banyak 3. Memungkinkan customer untuk berbelanja atau melakukan transaksi 24 jam dalam sehari, pada hampir disemua lokasi 4. Mendapatkan informasi yang sesuai dan lengkap dalam waktu yang singkat 5. Memungkinkan customer untuk mendapatkan produk khusus 6. Memungkinan customer untuk bekerja atau belajar di rumah 7. Memungkinakan penawaran secara elektronik 8. Memungkinkan customer untuk berinteraksi di electronic communities dan saling bertukar ide dan pengalaman. Keuntungan e-commerce bagi masyarakat diantaranya adalah: 1. Memungkinkan individu untuk bekerja dirumah dan jarang bepergian, yang menyebabkan berkurangnya kemacetan dan polusi udara 2. Memungkinkan produk untuk dijual dengan harga yang lebih rendah, dengan demikian akan meningkatkan standar hidup masyarakat 3. Memungkinkan masyarakat pada negara berkembang dan daerah pedalaman untuk merasakan produk dan layanan yang tidak tersedia di daerah mereka 4.
Memfasilitasi layanan publik seperti layanan pemerintah
2.2.1.3 Batasan E-commerce Batasan yang bersifat teknis pada e-commerce diantaranya adalah:
35 1. Tidak ada standar penerimaan yang bersifat universal bagi kualitas, keamanan dan kehandalan 2. Kurangnya telecommunication bandwidth 3. Alat pemgembangan software masih terus berkembang 4. Kesulitan dalam mengintegrasikan software internet dan e-commerce pada beberapa aplikasi dan database yang ada 5. Membutuhkan tambahan web server tertentu pada server jaringan 6. Pengaksesan internet yang mahal dan/atau merepotkan bagi banyak pengguna internet Batasan yang bersifat nonteknis pada e-commerce diantaranya adalah: 1. Tidak terselesaikannya masalah legalitas 2. Keterbatasan peraturan nasional dan internasional dan standar industri 3. Keterbatasan
metodologi
yang
matang
untuk
mengukur
keuntungan
dan
memperbaiki e-commerce 4. Banyak penjual dan pembeli menunggu kestabilan e-commerce sebelum mereka terlibat 5. Penolakan customer untuk mengubah penjualan nyata ke dalam bentuk virtual 6. Pandangan bahwa e-commerce mahal dan tidak aman 7. Kurangnya jumlah penjual dan pembeli yang ada
2.2.1.4 Tipe-tipe E-commerce Ada beberapa tipe e-commerce, diantaranya adalah:
36 1. Business-to-business (B2B) B2B adalah bentuk perdagangan elektronik yang paling kompleks dan pada akhirnya dapat berkembang menjadi bisnis elektronik – pemrosesan yang lengkap, tanpa kertas, dan digital terhadap semua transaksi bisnis secara virtual yang muncul di dalam dan diantara bisnis. (Whitten, 2004, pg 22).
2. Business-to-consumers (B2C) Dalam kasus ini penjual adalah sebuah organisasi, sedangkan pembeli adalah individu. (Turban, 2003, pg 275). 3. Collaborative commerce (c-commerce) Dalam e-commerce tipe ini, rekanan bisnis bekerja sama secara elektronik. Kerja sama ini biasanya terjadi antara rekanan bisnis selama jalur persediaan. (Turban, 2003, pg 275). 4. Consumers-to-business (C2B) Dalam kasus ini konsumen memperkenalkan kebutuhan tertentu akan sebuah produk atau layanan, dan organisasi belomba-lomba untuk menyediakan produk dan layanan bagi konsumen. (Turban, 2003, pg 275). 5. Consumers-to-consumers (C2C) Dalam kasus ini individu menjual produk atau layanan kepada individu lainnya. (Turban, 2003, pg 275). 6. Intrabusiness (intraorganizational) commerce Dalam kasus ini organisasi menggunakan e-commerce secara internal untuk mengembangkan operasinya. (Turban, pg 275, 2003). 7. Government-to-citizens (G2C)
37 Dalam kasus ini pemerintah menyediakan layanan bagi penduduknya melalui teknologi e-commerce. Pemerintah bisa melakukan bisnis dengan pemerintah lain (G2G) atau dengan pelaku bisnis (G2B). (Turban, 2003, pg 275). 8. Mobile commerce (m-commerce) Ketika e-commerce dilakukan pada lingkungan tanpa kabel, seperti penggunaan telpon genggam untuk mengakses internet, maka hal itu disebut mcommerce. (Turban, 2003, pg 275).
2.2.2 Internet Internet adalah jaringan komputer terbesar di dunia yang merupakan jaringan dari sebuah jaringan. Internet tidak hanya merupakan kumpulan dari jaringan komunikasi elektronik antara bisnis, konsumen, pemerintahan, sekolah dan organisasi lainnya tetapi juga telah membuka kemungkinan-kemungkinan baru yang menantang cara tradisional dari interaksi, berkomunikasi dan melakukan bisnis. (Turban, 2003, pg 200). Internet adalah kumpulan jaringan komputer interkoneksi, dihubungkan dengan kabel tembaga, kabel fiber optik, wireless, dan lain-lain. (Wikipedia, 2007).
2.2.3 World Wide Web (WWW) World Wide Web (WWW) adalah aplikasi yang digunakan untuk transportasi fungsi. Teknologi yang digunakan World Wide Web diciptakan oleh Timothy BernersLee yang pada tahun 1989 mengusulkan sebuah jaringan global dari dokumen hypertext yang dapat memungkinkan para peneliti untuk bekerja bersama. (Turban, 2003, pg 214).
38 2.2.4 Hypertext Markup Language (HTML) Hypertext Markup Language (HTML) merupakan bahasa standar bagi web yang memformat dokumen dan menyatukan link dynamic hypertext ke penyimpanan dokumen lain pada komputer yang sama ataupun berbeda (The web is based on a standard hypertext language called HTML, which formats documents and incorporates dynamic hypertext links to other documents stored on the same of different computers). (Turban, 2003, pg 214).
2.2.5 Java script Sebuah bahasa pemrograman yang dikembangkan oleh Netscape untuk memungkinkan web authors untuk mendesain situs yang interaktif. Walaupun memiliki banyak kesamaan dalam fitur dan struktur dari Java, tetapi java script dikembangkan secara independen. Java script bisa berinteraksi dengan HTML,memungkinkan web authors untuk mengembangkan situs mereka dengan konten yang dinamik. Java script dikombinasikan dengan berbagai software dan merupakan open source yang bisa digunakan siapapun tanpa harus membeli license. Java script didukung oleh berbagai browser seperti Netscape dan Microsoft, walaupun Internet Explorer hanya mendukung sebagian, yang dalam Microsoft disebut Jscript (A scripting language developed by Netscape to enable Web authors to design interactive sites. Although it shares many of the features and structures of the full Java language, it was developed independently. Java script can interact with HTML source code, enabling Web authors to spice up their sites with dynamic content. Java script is endorsed by a number of Software companies and is an open language that anyone can use without purchasing a license. It is
39 supported by recent browsers from Netscape and Microsoft, though Internet Explorer supports only a subset, which Microsoft calls Jscript). (anonymous, 2007)
2.2.6 Hypertext Transfer Protocol (HTTP) HyperText Transfer Protocol (HTTP) menjelaskan bagaimana klien dan server berkomunikasi. HTTP [merupakan] sebuah protokol yang digunakan untuk mentransfer halaman web melalui internet (HTTP defines how clients and servers communicate. HTTP, the protocol used to transfer ewb pages through the internet). (Connolly, 2006, pg 999). Hypertext Transfer Protocol (HTTP) adalah peraturan resmi komunikasi yang digunakan unutk mentransfer atau menyampaikan informasi pada world wide web. (Wikipedia, 2007).
2.2.7 Web Browser Web browser merupakan aplikasi yang dijalankan PC (dalam internet berada pada sisi klien) untuk menyediakan antarmuka grafis interaktif untuk mencari, menemukan dan melihat dokumen-dokumen teks, suara, animasi, dan sumber-sumber multimedia yang lain dalam web. (Vaughan, 2006, pg 294). Browser mampu untuk berkomunikasi melalui HTTP, mengatur HTML, dan menampilkan tipe data tertentu seperti GIF (Graphics Interchange Format) dan JPEG (Joint Photographic Expert Group) untuk grafik dan Microsoft Window WAV untuk suara (A browser is capable of communicating via HTTP, managing HTML, and displaying certain data types, such as GIF (Graphics Interchange Format) and JPEG
40 (Joint Photographic Expert Group) for graphics and Microsoft Window WAV for sound). (Turban, 2003, pg 214).
2.2.8 Web Server Cara kerja web melibatkan komunikasi antar dua komputer, satu server dan satu klien. Server mengirimkan file ketika klien memintanya. (Vaughan, 2006, pg 294). Web server meng-host website internet atau intranet. Server ini berkomunikasi dengan klien dengan memberikan kepada klien tersebut dokumen-dokumen (dalam format-format seperti HTML) dan data (pada format-dormat seperti XML). (Whitten, 2004, pg486)
2.2.9 Sistem Penjualan 2.2.9.1 Pengertian Penjualan Penjualan adalah transfer hak atas barang untuk mendapatkan sumber atas barang lainnya, seperti kas atau janji untuk membayar kas (piutang). (Widjajanto, 1999, pg 122).
2.2.9.1 Pengertian Sistem Penjualan Sistem penjualan adalah suatu kerangka kerja dari seluruh kegiatan transaksi penjualan yang dikoordinasikan untuk menghasilkan informasi yang dibutuhkan oleh manajemen. (Cushing, 1994, pg 533).