BAB II LANDASAN TEORI 2.1 Metodologi Rekayasa Perangkat

advertisement
BAB II
LANDASAN TEORI
2.1
Metodologi Rekayasa Perangkat Lunak
Metodologi rekayasa perangkat lunak pada dasarnya berfungsi untuk membantu
menghasilkan perangkat lunak yang berkualitas. Metodologi pengembangan perangkat
lunak memberikan panduan dalam membangun sebuah perangkat lunak sehingga
diperoleh hasil yang sesuai dengan konsep awal yang telah direncanakan. Membanguan
perangkat lunak dibutuhkan beberapa serangkaian aktifitas yaitu menyangkut analisis
kebutuhan, kontruksi program, desain dan pengujian.
The traditional waterfall model is a sequential model. It separates system
development into distinct phases that are supposed to be completed in sequence, i.e.,
one phase should not be started before the preceding phase is completed. The phases
typically are analysis, design, programming, and testing. Depending on the type of
system, one might also need to consider integration with other systems. Waterfall-based
development models are widely used (Moløkken-Østvold, Kjetil, 2005). Pada dasarnya
model air terjun adalah model klasik yang bersifat sistematis, berurutan dalam
membangun perangkat lunak. Model ini termasuk model yang umum digunakan yang
diperkenalkan oleh Winston Royce sekitar tahun 1970. Disebut metode air terjun
karena tahap demi tahap yang dilalui harus menunggu selesainya tahap sebelumnya
dan berjalan berurutan.
Beberapa tahapan yang harus dilakukan pada model ini antara lain sebagai
berikut .
-
Analisa
Tahapan ini adalah mencari kebutuhan yang difokuskan pada domain informasi
dari perangkat lunak semisal fungsi-fungsi yang dibutuhkan, antar muka yang akan
dibuat. Proses pencarian kebutuhan yang berhubungan dalam pembutan perangkat lunak
sangat penting ketika perangkat lunak harus berhubungan dengan perangkat keras,
manusia, dan basis data. Analisa memungkinkan desainer untuk mendapatkan sifat-sifat
sistem dan menentukan kompleksitas untuk memverifikasi apakah sistem yang
dimodelkan memiliki sifat seperti itu (Hororwitz, Lung-chun liu, 1989).
-
Perancangan
Proses mengubah kebutuhan-kebutuhan diatas menjadi sebuah blueprint
kerangka perangkat lunak. Dalam hal ini terdapat empat atribut yaitu : Bagaimana
membentuk struktur data, arsitektur perangkat lunak, proses detil dan karakteristik antar
muka.
-
Pemrograman
Proses menterjemahkan hasil dari perancangan kedalam bahasa pemrograman
yang dimengerti oleh komputer. Proses ini biasa disebut dengan proses coding, dan
biasanya menggunakan bahasa pemrograman tertentu.
-
Pengujian
Proses pencocokan fungsi-fungsi perangkat lunak dengan blueprint yang sudah
dibuat pada tahap analisa dan perancangan. Dalam tahapan ini harus dipastikan bahwa
perangkat lunak bekerja sesuai dengan hasil yang diharapkan.
-
Perawatan
Proses pengembangan perangkat lunak lanjutan. Pada tahap ini ada
kemungkinan terjadinya error pada perangkat lunak yang tidak ditemukan pada tahapan
pengujian dan harus diperbaiki. Atau bisa saja terjadinya penambahan fitur-fitur seiring
dengan pertambahan usia perangkat lunak dan juga kemajuan teknologi.
Berikut adalah gambaran bagaimana tahapan yang berjalan pada metode air
terjun.
Gambar 2.1 Model WaterFall (Roger S. Pressman, 2010)
Alasan kenapa model air terjun ini banyak digunakan karena beberapa hal
sebagai berikut (Moløkken-Østvold, Kjetil, 2005).
-
Mudah dalam penerapannya.
-
Kualitas dari sistem yang dihasilkan akan baik. Hal ini karena dalam
pelaksanaannya secara bertahap.
-
Kebutuhan sistem dapat didefinisikan secara utuh dan dapat terukur.
-
Dokumentasi pengembangan sistem sangat terorganisir.
-
Jika terjadi masalah saat kebutuhan sistem di awal maka hal ini dapat segera
diidentifikasi.
Adapun kelemahan dari metode ini antara lain sebagai berikut.
-
Kesalahan kecil akan menjadi masalah besar jika tidak diketahui sejak awal
pengembangan yang berakibat pada tahapan selanjutnya.
-
Diperlukan manajeman yang baik.
-
Pada kenyataanya, jarang mengikuti urutan sekuensial seperti pada teori.
2.1.1
Analisa Berorientasi Objek (OOAD)
Object-oriented analysis and design (OOAD) is an alternative approach to
solving problems in systems development. Unlike both the classical and structured
approaches which focus on the development process, the object-oriented analysis and
design methods emphasize the definition, structure, and use of data (Garceau, Linda R;
Jancura, Elise G; Kneiss, John, 1993). Analisis berorientasi objek dan desain (OOAD)
didefinisikan sebagai sebuah pendekatan alternatif untuk memecahkan masalah dalam
pengembangan sistem. Hal ini tidak seperti pada pendekatan klasik dan terstruktur yang
berfokus pada proses pembangunan, analisis dan desain.
Tujuan dari analisis berorientasi objek adalah mempelajari permasalahan dengan
menspesifikasikanya atau mengobservasi permasalahan tersebut dengan berorientasi
objek. Keuntungan dari analisa berorientasi objek antara lain:
-
Terjadinya komunikasi yang baik antar user/analis sehingga pemodelan akan
menjadi lebih mudah.
-
Penggunaan ulang code program, meningkatkan fleksibilitas.
-
Peningkatan produktifitas dan keandalan yang lebih baik.
2.1.2
Desain Berorientasi Objek (OOD)
Desain berorientasi objek kini semakin banyak digunakan oleh para pengembang
perangkat lunak. Object-oriented (OO) technology offers the prospective user a number
of new choices in programming languages, tools, databases, and analysis/design
methodologies (Reid, 1994). Model desain ini mengubah model konseptual yang
dihasilkan dalam analisis berorientasi objek memperhitungkan kendala yang dipaksakan
oleh arsitektur yang dipilih dan setiap non fungsional seperti throughput, response time,
run, waktu platform lingkungan pengembangan atau bahasa pemrograman.
Karakteristik dari metodologi objek antara lain dipaparkan sebagai berikut ini.
-
Enkapsulasi (Encapsulation)
Data dan
prosedur atau fungsi
dikemas bersama-sama dalam suatu objek
sehingga prosedur atau fungsi dari luar tidak dapat mengaksesnya. Data
terlindung dari prosedur atau objek lain kecuali prosedur yang ada pada objek
itu sendiri.
-
Pewarisan (Inheritance)
Pewarisan bisa diartikan bahwa
atribut atau
metode dari
objek induk
diturunkan kepada anak objek, demikian seterusnya. Dengan adanya pewarisan
suatu kelas dapat ditentukan menjadi sub kelas sehingga sub kelas memiliki
sifat yang dimiliki oleh induknya.
-
Polimorfise (polymorphisme)
Polimorfisme diartikan bahwa operasi yang sama dimungkinkan mempunyai
perbedaan dalam kelas yang berbeda.
2.1.3
System development life cycle (SDLC)
SDLC (Daur Hidup Pengembangan Sistem) adalah proses yang digunakan oleh
analis sistem untuk mengembangkan sistem informasi, mulai dari perencanaan,
penentuan kebutuhan, perancangan, validasi sampai pelatihan dan penyerahan pada
konsumen. Tidak hanya penting untuk proses pengembangan perangkat lunak saja tetapi
juga untuk proses pemeliharaan perangkat lunak itu sendiri. The general framework for
any models of the SDLC passes through the common phases of software development
such as: initiation, planning, designing, implementing, and testing (Obeidat, Jasour A;
Nasereddin, 2013).
-
Initiation
Proses ini adalah tahapan untuk menentukan masalah yang ada dan
mendefiniskannya, serta melakuakan studi kelayakan. Diperlukan pengetahuan
ruang lingkup terhadap suatu sistem yang telah ada saat ini, tujuan dan manfaat
pembuatan sistem baru atau pengembangan dari sistem yang telah ada
sebelumnya.
-
Planning
Membuat perencanaan terhadap proyek dan dokumentasi untuk sistem
baru. Pada tahap ini diperhatikan juga bagaimana menetapkan mekanisme yang
dibutuhkan guna membangun sistem yang baru.
-
Designing
Mendesain sistem baru atau melakukan pengembangan terhadap sistem
yang sudah ada guna menyelesaikan masalah masalah yang dihadapi.
-
Implementating
Tujuan dari implementasi adalah melakukan spesifikasi
rancangan
logika kedalam kegiatan yang sebenarnya dari sistem informsai yang akan
dibangunnya atau dikembangkan. Mengimplementasikan sistem yang baru dan
juga memastikan sistem yang baru dapat berjalan secara optimal.
-
Testing
Pengujian yang dilakukan adalah secara menyeluruh bukan hanya pada
desain yang digunakan tetapi menguji semua sistem yang telah ditetapkan. Hal
ini dilakukan guna menghindari kesalahan seperti kesalahan penyimpanan,
image yang salah ataupun inputan dari user.
2.2
Unified modeling language (UML)
Unified Modeling Language (UML) has emerged as the software industry's
dominant modeling language. It is the de facto modeling language standard for
specifying, visualizing, constructing, and documenting the components of software
systems (Siau, Keng; Cao, 2001). UML adalah sebuah bahasa yang telah menjadi
standar dalam industri untuk menentukan, menggambarkan (visualisasi), membangun
dan mendokumentasikan komponen sistem perangkat lunak. Bahasa pemodelan UML
lebih cocok untuk pembuatan perangkat lunak dalam bahasa pemrograman berorientasi
objek (C#, C++, Java, VBNET), namun demikian bisa juga digunakan pada bahasa
pemrograman prosedural. Tujuan dari pemodelan sistem ini adalah untuk memodelkan
proses bisnis yang terjadi pada rancangan sistem yang dibuat dan mendokumentasikan
perangkat lunak yang akan dibuat, sehingga akan memudahkan dalam pengembangan
sebuah rancangan sistem.
UML adalah bahasa pemodelan visual untuk kebutuhan pemodelan sistem,
menggambarkan desain, dan menggambarkan rincian pelaksanaan. Grady Booch, Jim
Rumbaugh, dan Jacobson Ivars, dikenal secara kolektif sebagai "tiga Amigos" pada
Rational Software Corp, mempelopori pengembangan UML pada pertengahan 1990-an.
Unified Modeling Language (UML) meminjam konsep dari sejumlah besar metode
yang berbeda, dan dirancang khusus untuk pengembangan sistem berorientasi objek.
Segera setelah awal, UML muncul sebagai bahasa pemodelan yang dominan dalam
pngembangan perangkat lunak. Oleh Object Management Group (OMG) UML diterima
sebagai bahasa standar untuk analisis berorientasi objek dan desain. Selain itu, UML
telah diusulkan untuk standardisasi oleh Standards Organization (ISO) dan disetujui
sekitar tahun 2001.
Terdapat 9 diagram di UML yang digolongkan dalam 2 kategori statik dan
dinamik yang antara lain Class Diagram, Object Diagram, Component Diagram,
Deployment Diagram, Use Case Diagram, Sequence Diagram, Collaboration Diagram,
StateChart Diagram dan Activity Digaram. Adapun dalam bab ini akan dibahas tentang
Use Case Diagram, Class Diagram dan Sequence Diagram.
2.2.1
Use case Diagram
Use case Diagram menggambarkan fungsionalitas yang diharapkan dari sebuah
sistem. Pada use case diagram lebih menitik beratkan pada apa yang diperbuat oleh
sistem bukan bagaimana. Dengan adanya use case diagram maka hal ini bisa
menggambarkan kebutuhan sistem dari sudut pandang user dan hubungan antara use
case dan actor. Sebuah use case diagram dapat di-include oleh lebih dari satu use case
diagram lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik
keluar fungsionalitas yang umum. Sebuiah use case diagram juga dapat meng-extend
use case diagram lain dengan aktivitasnya sendiri. Notasi notasi yang digunakan dalam
pemodelan diagram use case dapat dilihat pada tabel berikut.
Tabel 2.1 Simbol UseCase Diagram
NO
GAMBAR
NAMA
KETERANGAN
Menspesifikasikan himpuan peran
1
Actor
yang pengguna mainkan ketika
berinteraksi dengan use case.
Hubungan dimana perubahan yang
terjadi pada suatu elemen mandiri
2
Dependency
(independent) akan mempengaruhi
elemen yang bergantung padanya
elemen
yang
tidak
mandiri
(independent).
Hubungan dimana objek anak
3
Generalization
(descendent) berbagi perilaku dan
struktur data dari objek yang ada
di atasnya objek induk (ancestor).
4
Include
Menspesifikasikan bahwa use case
sumber secara eksplisit.
Menspesifikasikan bahwa use case
5
Extend
target memperluas perilaku dari
use case sumber pada suatu titik
yang diberikan.
6
Association
7
System
Apa yang menghubungkan antara
objek satu dengan objek lainnya.
Menspesifikasikan
menampilkan
terbatas.
paket
sistem
yang
secara
Tabel 2.1 Simbol UseCase Diagram (Lanjutan)
Deskripsi dari urutan aksi-aksi
8
Use Case
yang ditampilkan sistem yang
menghasilkan suatu hasil yang
terukur bagi suatu actor
Interaksi aturan-aturan dan elemen
lain yang bekerja sama untuk
9
Collaboration
menyediakan prilaku yang lebih
besar dari jumlah dan elemenelemennya (sinergi).
Elemen fisik yang eksis saat
10
Note
aplikasi
dijalankan
dan
mencerminkan suatu sumber daya
komputasi
2.2.2
Class diagram
Class Diagram adalah diagram yang paling sering ditemui pada pemodelan
berbasis
UML. Diagram kelas merupakan spesifikasi yang jika diinstansiasi akan
menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain
berorientasi objek. Didalam sebuah diagram kelas terdapat kelas dan antar muka
beserta atribut dan operasinya. Relasi yang terjadi antar objek, batasan terhadap objek
objek yang saling berhubungan serta inheritance untuk organisasi kelas yang lebih baik
semua digambarkan dalam diagram kelas.
Dalam diagram kelas terdapat
dua komponen penting yaitu structural dan
behavioral. Ciri structural adalah adanya pembeda antar objek sedangkan behavioral
merupakan tingkah laku yang mampu dilakukan oleh objek. Diagram kelas
digambarkan seperti pada gambar berikut ini.
Tabel 2.2 Class Diagram
Nama
Atribut
Metoda
Atribut dan metode dapat memiliki salah satu sifat sebagai berikut.
1.
Private
Adalah sifat dimana atribut ataupun metode tidak dapat dipanggil selain dari
dalam kelas itu sendiri.
2.
Protected
Hanya dapat dipanggil oleh kelas yang bersangkutan dan anak-anak yang
mewarisinnya.
3.
Public
Sifat ini bisa dipanggil oleh siapa saja.
Dalam prakteknya interface tidak dapat langsung di instansiasikan, tetapi harus
diimplementasikan terlebih dahulu mejadi sebuah kelas. Dengan begitu interface
mendukung resolusi metode pada saat dirunning. Untuk simbol digram kelas sendiri
direpresentasikan pada table berikut ini.
Tabel 2.3 Simbol Class Diagram
NO
GAMBAR
NAMA
KETERANGAN
Hubungan dimana objek anak
(descendent) berbagi perilaku
1
Generalization
dan struktur data dari objek
yang ada di atasnya objek induk
(ancestor).
Tabel 2.3 Simbol Class Diagram(Lanjutan)
Upaya
2
Nary
Association
untuk
asosiasi dengan lebih dari 2
objek.
Himpunan
3
Class
menghindari
yang
dari
berbagi
objek-objek
atribut
serta
operasi yang sama.
Deskripsi dari urutan aksi-aksi
4
Collaboration
yang ditampilkan sistem yang
menghasilkan suatu hasil yang
terukur bagi suatu actor
5
Realization
Operasi
yang
benar-benar
dilakukan oleh suatu objek.
Hubungan dimana perubahan
yang terjadi pada suatu elemen
6
Dependency
mandiri
(independent)
mempegaruhi
bergantung
akan
elemen
padanya
yang
elemen
yang tidak mandiri
Apa
7
Association
yang
menghubungkan
antara objek satu dengan objek
lainnya
Hubungan antar kelas
1. Asosiasi, yaitu hubungan statis antar kelas. Umumnya menggambarkan kelas
yang memiliki atribut berupa kelas lain, atau kelas yang harus mengetahui
eksistensi kelas lain. Panah navigability menunjukkan arah query antar class.
2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”).
3. Pewarisan, yaitu hubungan hirarkis antar class. Kelas dapat diturunkan dari
kelas lain dan mewarisi semua atribut dan metoda kelas asalnya dan
menambahkan fungsionalitas baru, sehingga disebut sebagai anak dari kelas
yang diwarisinya. Kebalikan dari pewarisan adalah generalisasi.
4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu
kelas kepada kelas lain. Hubungan dinamis dapat digambarkan dengan
menggunakan sequence diagram yang akan dijelaskan kemudian.
2.2.3
Activity diagram
Activity diagram menggambarkan proses bisnis, urutan aktivitas dalam sebuah
proses, dan bagaimana tahapan-tahapan aktivitas dalam sebuah sistem berjalan. Activity
diagram sangat membantu dalam mengenalkan proses bisnis yang akan dibangun
kepada customer sekalipun mereka tidak mengerti dengan rekayasa perangkat lunak.
Hal ini sangat bermanfaat apabila kita membuat diagram ini terlebih dahulu dalam
memodelkan sebuah proses untuk membantu memahami proses secara keseluruhan.
Adapun notasi atau simbol dalam activity diagram dapat dilihat pada table sebagai
berikut.
Tabel 2.4 Simbol activity diagram
NO
GAMBAR
NAMA
KETERANGAN
Memperlihatkan
1
Activities
bagaimana
masing-masing kelas antarmuka
saling berinteraksi satu sama lain
State
2
Action
dari
mencerminkan
sistem
eksekusi
yang
dari
suatu aksi
3
4
Initial Node
Activity
Final Node
Bagaimana objek dibentuk atau
diawali.
Bagaimana objek dibentuk dan
dihancurkan
Tabel 2.4 Simbol activity diagram (Lanjutan)
Menggambarkan
Fork
5
satu
aliran
menyebabkan beberapa (dua atau
lebih) aktifitas dikerjakan secara
bersamaan.
Menggambarkan beberapa (dua
Fork
6
atau lebih) aliran menyatu untuk
melanjutkan ke sebuah aktifitas.
Sebuah activity
hanya bisa
mempunyai satu alur masuk dan
satu
7
Decision /
split merge
alur
keluar.
pemisahan
Sehingga
alur(split)
dan
penggabungan
(merge)
digambarkan
dengan
memanfaatkan simbol yang sama
yaitu
2.3
Bahasa Pemrograman Java
Dalam pengembangan rekayasa perangkat lunak bahasa pemrograman adalah
komponen penting yang akan menerjemahkan bahasa mesin dengan bahasa yang dapat
dimengerti oleh manusia. Dalam hal ini bahasa pemrograman adalah yang
mengkomunikasikan perangkat lunak dengan beberapa perangkat keras sehingga dapat
terjalin kesinambungan suatu sistem. Bahasa pemrograman sendiri dibagi menjadi dua
macam yaitu bahasa pemrograman tingkat tinggi dan bahasa pemrograman tingkat
rendah. Bahasa pemrogramn tingkat tinggi adalah bahasa pemrograman yang bisa
dimengerti oleh manusia. Sedangkan bahasa pemrograman tingkat rendah adalah bahasa
pemrograman yang hanya dimengerti oleh mesin.
Java adalah tergolong dalam satu jenis bahasa pemrograman tingkat tinggi yang
dibuat oleh sun microsystem dan dirilis pada tahun 1995. Java berjalan pada berbagai
sistem operasi seperti windows, mac os berbagai macam sistem dari UNIX, upgrade dan
fitur baru yang terdapat pada java mengubah wajah lingkungan pemrograman dan
memberinya definisi baru tentang OOP. Dengan sifatnya yang platform independent
membuat java dengan mudah dipindahkan antar berbagai jenis sistem operasi dan
berbagai jenis arsitektur komputer. Berbeda dengan bahasa C dan C++, semua tipe data
dalam bahasa java mempunyai ukuran yang konsisten di semua jenis platform. Source
code program Java sendiri tidak perlu dirubah sama sekali jika anda ingin mengkompile
ulang di platform lain. Hasil dari mengkompile source code Java bukanlah kode mesin
atau instruksi prosesor yang spesifik terhadap mesin tertentu, melainkan berupa
bytecode yang berupa file berekstensi (*.class). Bytecode tersebut dapat langsung
dieksekusi di tiap platform yang dengan menggunakan Java Virtual Machine (JVM)
sebagai interpreter terhadap bytecode tersebut. JVM sendiri adalah sebuah aplikasi yang
berjalan di atas sebuah sistem operasi dan menerjemahkan bytecode program java dan
mengeksekusinya, sehingga secara konsep bisa dianggap sebagai sebuah interpreter.
Ciri dari bahasa pemrograman java yaitu:
1.
Sederhana.
Bahasa pemrograman Java menggunakan sintaks mirip dengan C++
namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan
penggunaan pointer yang rumit dan multiple inheritance. Java juga
menggunakan automatic memory allocation dan memory garbage collection.
2.
Berorientasi objek (Object Oriented Program/OOP).
Java mengunakan pemrograman berorientasi objek yang membuat program
dapat dibuat secara modular dan dapat dipergunakan kembali. Pemrograman
berorientasi objek memodelkan dunia nyata kedalam objek dan melakukan
interaksi antar objek-objek tersebut.
3.
Terdistribusi.
Java dirancang sebagai aplikasi terdisitribusi dan jaringan dan dibuat untuk
membuat aplikasi terdistribusi secara mudah dengan adanya libraries
networking yang terintegrasi pada Java.
4.
Interpreter.
Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine
(JVM). Hal ini menyebabkan source code Java yang telah dikompilasi menjadi
Java bytecodes dapat dijalankan pada platform yang berbeda-beda.
5.
Robust.
Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai
kemampuan mendeteksi error secara lebih teliti dibandingkan bahasa
pemrograman
lain. Java mempunyai runtime-Exception handling untuk
membantu mengatasi error pada pemrograman.
6.
Aman.
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java
memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak
digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut.
Java menerapkan beberapa mekanisme keamanan untuk melindungi terhadap
kode berbahaya yang mungkin mencoba untuk menaklukkan sistem file.
Misalnya, Java tidak memiliki pointer. Contoh lain adalah bahwa java memiliki
Class Loader kelas yang mendefinisikan bagaimana kelas java yang diambil
melalui jaringan.
7.
Architecture Netral.
Program Java merupakan platform independent. Program cukup mempunyai
satu buah versi yang dapat dijalankan pada platform yang berbeda dengan Java
Virtual Machine.
8.
Portabel.
Source code maupun program Java dapat dengan mudah dibawa ke platform
yang berbeda-beda tanpa harus dikompilasi ulang.
9.
Keandalan Tinggi.
Keandalan (performance) pada Java sering dikatakan kurang tinggi. Namun
performance Java dapat ditingkatkan menggunakan kompilasi Java lain seperti
buatan Inprise, Microsoft ataupun Symantec yang menggunakan Just In Time
Compilers (JIT)
10.
Multithreaded.
Java mempunyai kemampuan untuk membuat suatu program yang dapat
melakukan beberapa pekerjaan secara sekaligus dan simultan.
11.
Dinamis
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan
pada suatu kelas dengan menambahkan properties ataupun method dapat
dilakukan tanpa menggangu program yang menggunakan kelas tersebut.
Sun membagi arsitektur java menjadi tiga bagian yaitu:
-
J2EE ( Java2 Enterprise Edition)
J2EE digunakan pada
aplikasi berbasis web, aplikasi client server dengan
sistem tersebar dan ragam kompleksitas yang tinggi.
-
J2SE (Java2 Second Edition)
Digunakan untuk membuat aplikasi di komputer desktop.
-
J2ME (Java2 Micro Edition)
Digunakan untuk membuat aplikasi yang berjalan pada pada perangkat mobile
atau pun wireless device.
2.4.
Sejarah Android
Android, Inc. berdiri di kota Palo Alto, salah satu kota terkenal di California
(USA), tepatnya pada bulan Oktober tahun 2003. Pendirinya terdiri dari tiga orang yang
ahli dalam bidang pengembangan aplikasi mereka adalah Andy Rubin, Rich Miner dan
Chris White. Pada mulanya mereka mengembangkan android untuk perangkat
elektronik sejenis kamera digital. Karena permintaan konsumen terhadap perangkat itu
tidak terlalu banyak akhirnya mereka mengalihkannya ke perangkat mobile smartphone
yang sudah diketahui besarnya peluang jika dapat diterapkan pada perangkat ini. Tidak
seperti sistem operasi lainnya. OS ini dikembangkan secara diam-diam meskipun dibuat
oleh orang-orang yang ahli dalam pengembangan aplikasi.
Tanggal 17 Agustus 2005 android diakuisisi google dengan membelinya secara
penuh dan menjadikan salah satu produk unggulanya. Salah satu faktor keberhasilan
android sebagai sistem operasi adalah terbukanya google terhadap perangkat lunak yang
diperbolehkan masuk (Open Source). Android juga telah memiliki komunitas developer
aplikasi tersendiri yang dapat menigkatkan fungsi perangkat seperti game android
misalnya dan mungkin saat ini sudah lebih dari sejuta aplikasi yang bisa dioperasikan
melalui Android, dan Google Play menjadi aplikasi market utamanya.
Pada November 2007 Google mulai mengembangkan ponsel Google dengan
operasi sistem mobile terbaru yang dinamai dengan android. Sistem operasi android ini
sebenarnya didasarkan pada kernel Linux dan dirancang oleh Open Handset Alliance
yang terdiri dari sekelompok puluhan pembuat hardware, carrier dan perusahaan terkait
perangkat mobile lainnya, diantaranya Google, HTC, Intel, Motorola, Qualcomm, TMobile, Nvidia dan yang lainya (Garfinkel, 2008). Open Handset Alliance dibentuk
untuk mengembangkan android yang bersifat open source yang source-nya diberikan
secara gratis bagi para pengembang (developer). Adapun untuk hak paten, google telah
membayar $2500000000 untuk mengakuisisi Motorola mobility dan portfolio sekitar
24.500 hak paten. (Reed, 2011).
2.5
Pengembangan android
Android dibuat dengan menggunakan dasar kernel linux 2.6 yang dipilih oleh
para developer dengan beberapa alasan sebagai berikut.
-
Security
Security atau keamanan adalah suatu service yang terdapat di kernel linux yang
dapat mengatur keamanan antara sistem dan aplikasi.
-
Manajemen memori
Kernel linux dapat mengatur managemen memori sehingga lebih hemat ketika
melakukan develop aplikasi.
-
Manajemen proses
Dengan manajemen proses , kernel linux ini dapat mengatur proses lebih baik,
mengatur resource yang diperlukan sesuai dengan kebutuhan
untuk
menjalankan aplikasi.
-
Network stack
Dengan service ini kernel linux dapat mengatur komunikasi jaringan.
-
Driver
Kernel linux menjamin sesuatu dapat berjalan dengan baik, berbagai manufaktur
hardware akan dapat bekerja dengan kernel ini.
Layaknya sebuah sistem operasi linux dengan beberapa varian distro, android
juga mengalami perkembangan versi yang signifikan. Adapun beberapa versi yang telah
dirilis oleh android antara lain adalah sebagai berikut (Kasman, 2013b).
a.
Versi 1.0 (Apple pie)
Android versi 1.0 dirilis pada tanggal 23 September 2008 yang memiliki kode
nama Apple pie serta ukuran layar 320x480 HVGA.
b.
Versi 1.1 (Banana bread)
Sebagai hasil pengembangan versi perdana, versi ini dirilis pada 9 Maret 2009.
Android versi ini dilengkapi dengan pembaruan estetis pada aplikasi, jam alarm,
voice search (pencarian suara), pengiriman pesan
dengan Gmail, dan
pemberitahuan email.
c.
Versi 1.5 (Cupcake)
Android 1.5 dirilis pada tanggal 30 April 2009 yang memiliki kode nama
Cupcake. Terdapat beberapa pembaruan, termasuk juga penambahan beberapa
fitur, yakni kemampuan merekam dan menonton video, mengunggah video ke
Youtube dan gambar ke picasa langsung dari telephone seluler, dukungan
Bluetooth, animasi layar, dan keyboard pada layar yang dapat menyesuaikan
dengan sistem.
d.
Versi 1.6 (Donut)
Android versi 1.6 dirilis pada tanggal 15 September 2009 yang memiliki kode
nama Donut. Versi ini merupakan perbaikan dari android Cupcake dengan
menampilkan proses pencarian yang lebih baik dibanding sebelumnya,
penggunaan baterai indikator dan kontrol applet VPN. Fitur lainnya adalah galeri
yang memungkinkan pengguna untuk memilih foto yang
akan dihapus,
kemampuan dial kontak, teknologi text to change speech (tidak tersedia pada
semua ponsel), pengadaan resolusi VWGA.
e.
Versi 2.0/2.1 (Eclair)
Android versi ini dirilis pada tanggal 3 Desember 2009
dilengkapi dengan
Google Maps 3.1.2 browser baru dan dukungan flash untuk kamera 3,2 MP,
digital zoom dan Bluetooth 2.1.
f.
Versi 2.2 (Froyo)
Android versi ini dengan sebutan Froyo, singkatan dari Frozeb Yogurt dirilis
pada 20 Mei 2010. Pada versi ini kecepatan kerja dan aplikasi naik 2 sampai 5
kali lebih cepat. Dan pada versi ini, ponsel android memiliki kemampuan untuk
menjadi hotspot Wifi.
g.
Versi 2.3 (Gingerbread)
Dirilis pada 6 Desember 2010 Gingerbread makin memanjakan para penggemar
game. Format video, peningkatan kualitas suara menjadi kelebihan Gingerbread
dibanding versi sebelumnya.
h.
Versi 3.0 (Honeycomb)
Dirilis pada tahun 2011 ini mendukung multi prosesor dan juga peningkatan
kemampuan hardware untuk grafis.
i.
Versi 4.0 (ICS: Ice Cream Sandwitch)
Versi ini dirilis pada tanggal 19 oktober 2011, membawa fitur honey comb
untuk smart phone dan menambahkan fitur baru termasuk membuka kunci
dengan pengenalan wajah, jaringan data pemantauan penggunaan dan control,
terpadu kontak jaringan social, perangkat tambahan fotografi, mencari email
secara offline, dan berbagi informasi dengan menggunakan FNC.
j.
Versi 4.4 (Kitkat)
Awal mula dinamakan KitKat untuk versi 4.4 pada sistem operasi android adalah
dikarenakan pada waktu itu KitKat merupakan permen yang menjadi favorit
pada masanya. "KitKat has been a favorite candy on the team for some time, so
for the 'K' release, we asked if they'd be willing to lend their iconic candy bar to
its name," a post on the Android Google+ page explained.(Moscaritolo, 2013).
Versi ini dirilis pada tanggal 3 september 2013, KitKat memulai debutnya pada
Nexus Google 5 pada tanggal 31 Oktober 2013, dan dioptimalkan untuk
beroperasi pada rentang yang lebih besar dari versi perangkat android
sebelumnya, memiliki 512 MB RAM sebagai minimum yang disarankan. Kitkat
menyediakan API level 19 dan API level 20 untuk pengembangan perangkat
lunak.
k.
Versi 5.0 (Lollypop)
Android 5.0 (Lollipop) diresmikan di bawah codename "Android L" pada
tanggal 25 Juni 2014. Pada tanggal 12 November 2014. Versi ini support untuk
aplikasi yang berjalan pada CPU dengan 64 bit. Dengan Project Volta perangkat
handset dengan sistem operasi lollypop menjadikan peningkatan unjuk kerja
battery yang tahan lama.
Download