BAB 2
LANDASAN TEORI
7
Istilah lain terdapat encapsulation/pengkapsulan, yang merupakan pembatasan
ruang lingkup program terhadap data yang diproses supaya data terlindungi oleh
prosedur atau objek lain, kecuali prosedur yang berada di objek itu sendiri.
(Lethbridge & Laganiere, 2002, p. 50)
Polymorphism adalah konsep yang menyatakan bahwa sesuatu yang sama
dapat mempunyai bentuk dan perilaku yang berbeda, bahwa operasi yang sama
mungkin memiliki perbedaan dalam class yang berbeda. (Lethbridge &
Laganiere, 2002, p. 36)
Pada OOP, terdapat juga yang disebut dengan inheritance (pewarisan), yaitu
kepemilikan yang bersifat implicit dari fitur subclass yang didefinisikan dalam
superclass. Fitur tersebut mencakup variables dan method. (Lethbridge &
Laganiere, 2002, p. 37)
8
direncanakan dan diproses terlebih dahulu sebelum mulai mengerjakannya.
(Sommerville, 2011, p. 30)
9
memastikan apakah setiap unit memenuhi spesifikasi sistem.
4. Integration and System Testing
Setiap unit program dan program-program yang sudah ada diintegrasikan
dan diuji sebagai satu keutuhan sistem untuk memastikan apakah
kebutuhan sistem sudah terpenuhi. Setelah melakukan pengujian, sistem
baru disebarkan ke pengguna.
5. Operation and Maintenance
Dilakukan instalasi terhadap sistem dan digunakan dalam prakteknya.
Maintenance melibatkan koreksi terhadap error yang tidak ditemukan
pada tahap sebelumnya, memperbaiki implementasi dari unit sistem dan
meningkatkan layanan yang diberikan oleh sistem sebagai kebutuhan baru
yang ditemukan.
Waterfall model digunakan hanya jika semua kebutuhan sudah
dimengerti dan tidak berubah secara radikal pada tahap pengembangan.
(Sommerville, 2011, p. 32)
10
ke tim kerja lainnya dibutuhkan sebuah pemodelan, ini adalah dimana UML
dibutuhkan.
Dalam merancang sebuah sistem, mengatur kompleksitas adalah salah satu
alasan utama mengapa harus membuat model. Pemodelan membantu para
pengembang untuk dapat fokus, dapat mendokumentasikan, menangkap
keseluruhan sistem dan mengkomunikasikan aspek-aspek penting dalam sistem
yang sedang dirancang.
UML tepat digunakan untuk memodelkan sistem dari mulai memodelkan
informasi sistem untuk perusahaan hingga aplikasi web, bahkan untuk sistem
yang rumit sekalipun. UML menggunakan class dan operation dalam konsep
dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasabahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun
demikian, UML tetap dapat digunakan untuk perancangan aplikasi prosedural
dalam VB atau C. (Dharwiyanti & Wahono, 2003)
UML mendefinisikan diagram-diagram, antara lain:
Use case diagram
Class diagram
Sequence diagram
2.3.1
11
Wahono, 2003)
Diluar sistem terdapat aktor yang digambarkan dengan istilah
stick man atau sebuah box. Seperti yang terdapat pada Gambar 2.1,
dimana terdapat dua pilihan untuk menggambarkan seorang aktor.
12
Use case diagram yang menunjukan use cases dan aktor
merupakan awalan yang baik, namun diagram tersebut tidak
menampilkan rincian yang cukup untuk mengerti sistem. Cara yang
paling baik untuk mengekspresikan informasi tersebut adalah dalam
bentuk tulisan yang disebut dengan Use Case Description. Gambargambar
berikut
mencontohkan
sebuah
Use
Case
Description
13
Hubungan antar use case dapat diekspresikan menggunakan
<<include>> dan <<extend>>. Relasi <<include>> digunakan untuk
memecahkan sistem menjadi bagian-bagian yang lebih mudah untuk
diatur. Sedangkan relasi <<extend>> adalah sebuah cara untuk
menunjukkan bahwa sebuah use case mungkin dapat sepenuhnya
menggunakan behavior dari use case lain. Selain itu use case diagram
juga dapat menggunakan generalisasi untuk beberapa kasus yang
berbeda, misalnya terdapat beberapa tipe dalam membangun sebuah
blog. Use case Create a new Blog Account bisa digeneralisasi
menjadi dua tipe, yaitu Regular Blog Account atau Editorial Blog
Account. (Miles & Hamilton, 2006, pp. 30-40)
Berikut adalah contoh use case diagram secara utuh:
2.3.2
Class Diagram
Class bisa disebut sebagai bagan yang digunakan untuk
14
membangun dan mendefinisikan objek-objek. Sehingga setiap hal yang
dibangun dari sebuah class disebut sebagai objek atau instances.
Deskripsi dari sebuah class mencakup dua bagian: informasi yang akan
dimiliki oleh objek dan behaviour yang akan didukung objek tersebut.
Ini yang membedakan object-oriented dengan yang lainnya, bahwa state
information dan behaviour digabungkan dalam satu definisi class,
dimana objek-objek dapat terbentuk dari class tersebut.
(Miles &
15
Gambar 2.8 Class State: Attributes
(Miles & Hamilton, 2006, p. 72)
2.3.3
Sequence Diagram
Sequence diagram memodelkan bagaimana sistem yang sedang
16
seperti apa interaksi-interaksi tersebut akan terjadi. (Miles & Hamilton,
2006, pp. 108-109)
Dalam sequence diagram terdapat bagian-bagian yang disebut
dengan participant, time, message, dan activation bars. Participant
adalah bagian-bagian dari sistem yang berinteraksi dengan satu sama
lain selama sequence berjalan. Time menunjukkan urutan dimana semua
interaksi berlangsung sesuai dengan waktu. Time pada sequence
diagram ditunjukkan dengan garis titik-titik vertikal. Message dalam
sequence ditunjukkan menggunakan panah dari participant yang ingin
mengirimkan pesan ke participant lain. Message Caller adalah sebutan
untuk participant yang mengirim message dan Message Receiver untuk
participant yang menerima message. Actiovation bars menunjukkan
bahwa sebuah participant sedang melakukan sesuatu untuk jangka
waktu tertentu. Activation bars dapat ditampilkan pada awal pengiriman
message dan ujung dari penerimaan message. Hal ini menunjukkan
bahwa Message Caller sibuk pada saat mengirim message dan Message
Receiver sibuk pada saat message sudah diterima. (Miles & Hamilton,
2006, pp. 109-114)
17
Gambar 2.10 Contoh Interaksi Pada Sequence Diagram
(Miles & Hamilton, 2006, p. 112)
Simbol
Keterangan
Dokumen
Simbol ini digunakan untuk menggambarkan semua jenis
dokumen, yang merupakan formulir untuk merekam data
terjadinya suatu transaksi.
Keputusan
Simbol ini menggambarkan keputusan yang harus dibuat
dalam proses pengolahan data. Keputusan yang dibuat ditulis
18
Simbol
Keterangan
dalam simbol.
Ya
Tidak
Garis Alir
Simbol ini menggambarkan arah proses pengolahan data.
garis,
salah
satu
garis
dibuat
sedikit
2.5 Smartphone
Smartphone adalah sebuah device yang memungkinkan untuk melakukan
komunikasi (seperti telepon atau SMS) juga di dalamnya terdapat fungsi PDA
(Personal Digital Assistant) dan berkemampuan seperti layaknya komputer.
(Rikez, 2010)
19
Kemampuan yang dimiliki sebuah smartphone adalah:
1.
2.
Bisa digunakan mengakses web atau internet dan konten yang disajikan
pada browser, sudah hampir mendekati seperti layaknya seseorang
mengakses web lewat komputer.
3.
20
diakses pada PC atau mempermudah mereka untuk menggunakan aplikasi
internet pada piranti yang bisa dibawa. (Webopedia, 2011)
dengan
perencanaan
keuangan
mereka
dapat
mengestimasikan
21
2.7.1
2.7.1.1
22
Menghitung pemasukkan akan lebih mudah dibandingkan
dengan menghitung pengeluaran. Karena kadang terdapat transaksi
pengeluaran yang tidak mempunyai bukti, sehingga sedikit sulit untuk
melacak semua hal detil yang dibelanjakan. Namun seperti yang
sudah disebutkan sebelumnya, untuk membuat perencanaan seseorang
harus mengetahui kemana ia menghabiskan uangnya. Pengeluaran
dikategorikan menjadi beberapa klasifikasi; makanan, pakaian dan
aksesoris, transportasi, rekreasi, kesehatan dan perawatan medis,
perumahan dan alat-alat rumah tangga, biaya pajak, dan lain-lain.
Selain kategori, pengeluaran juga dibagi menjadi dua tipe, yaitu
variable expenditure (pengeluaran yang tidak harus dilakukan) dan
fixed expenditure (pengeluaran
yang
harus
dilakukan
setiap
bulannya.)
2.7.1.2
goal yang ingin seseorang capai. Tiap individu perlu mencatat goal
ini dan menentukan kapan uang untuk mencapai tujuan tersebut
dibutuhkan. Kadang banyak orang yang melewatkan tahap ini karena
mereka tidak mengetahui bagaimana cara pencapaiannya. Yang harus
dilakukan hanya atur tujuan apa yang diinginkan, dan memutuskan
kesediannya untuk membuat komitemen keuangan yang diperlukan
untuk mencapainya.
23
2.7.1.3
nantinya
seseorang
bisa
mendapatkan
tujuan
finansial
pribadinya masing-masing.
2.7.1.4
2.7.1.5
terduga
seperti
menikah
atau
mempunyai
anak
yang
24
2.7.2 Pencatatan Keuangan
Financial records atau pencatatan keuangan berguna dalam
memahami keadaan finansial seseorang dan penting untuk mengetahui
hal apa yang harus disimpan dan hal apa yang harus dibuang. (Marthur,
1984, p. 35) Selain itu, financial records juga dapat digunakan untuk
memantau alur perjalanan uang. Jika tidak mengetahui kapan uang telah
masuk dan keluar, pengelolaan keuangan tidak akan sukses. Records
yang baik adalah yang mempunyai rincian uang masuk, uang keluar,
waktu uang masuk dan keluar, jumlah uang dan kemana uang
dikeluarkan. (York, 2005)
Records datang dalam berbagai media. Banyak yang masih dibuat di
atas kertas, misalnya, korespondensi, voucher, kontrak dan dokumen
pendukung. Informasi juga dapat dicatat dalam sebuah buku, jurnal,
register, atau hasil cetakan komputer. Akhir-akhir ini juga banyak
aplikasi komputer yang membuat catatan keuangan, namun hanya
mungkin ada dalam format elektronik. (Kimberly Barata, 2011, p. 11)
Beberapa orang juga menggunakan aplikasi Microsoft Excel untuk
menyimpan catatan pengeluaran, namun aplikasi ini mengandung
sejumlah besar fitur yang tidak mudah untuk pemula. Microsoft Excel
merupakan aplikasi yang berisi ratusan rumus dan memerlukan waktu
yang lama untuk menguasai aplikasi ini dengan mudah. (Foster, 2011)
Seperti yang telah diterangkan sebelumnya, pencatatan dapat
dilakukan di berbagai media, salah satunya adalah media kertas. Namun,
akan lebih mudah jika pencatatan dapat dilakukan menggunakan media
seperti sebuah sistem pencatatan yang selalu dekat dengan keberadaan
25
seseorang, sehingga seseorang dapat mencatat dan merubah data
keuangan dengan lebih mudah. (Weirich, 1983, p. 56) Terlebih lagi
pencatatan manual atau pencatatan menggunakan media non-mobile
tidak efektif dan efisien. Proses transaksi dan pembuatan laporan secara
manual sering terjadi kesalahan jika terdapat banyak data sehingga
laporan sering kurang akurat. (Setiawan, Satoto, & Fatchurrohim, 2008,
p. 1)
26
goal yang ingin dicapai dan menjadikannya lebih realistis, rencana yang
layak dapat dikembangakan.
Waktu pencapaian tujuan finansial dapat dikategorikan menjadi short
term (dalam satu tahun kedepan), intermediate term (antara satu atau 5
tahun kedepan), atau long term (lebih dari 5 tahun). Contohnya seperti
membeli mobil untuk 6 bulan kedepan bisa diklasifikasikan sebagai short
team goal, membayar pinjaman uang untuk 3 tahun kedepan sebagai
intermediate goal dan menabung untuk hari tua sebagai long term goal.
2.8
iOS Device
iOS terdiri dari sistem operasi dan teknologi yang digunakan untuk
menjalankan aplikasi native pada peranti seperti iPad, iPhone, dan iPod Touch.
Meskipun mempunyai teknologi yang didapat dari Mac OS X, iOS khusus
dirancang untuk memenuhi kebutuhan lingkungan mobile, yang pasti akan
berbeda dari aplikasi desktop. Jika sebelumnya telah mencoba mengembangkan
aplikasi untuk Mac OS X, pasti akan banyak teknologi sama yang ditemukan
pada iOS, namun ada beberapa teknologi yang hanya tersedia untuk iOS itu
sendiri, seperti antarmuka yang Multi-Touch dan accelerometer. (Apple, iOS
Technology Overview, 2010)
Mendapatkan aplikasi untuk iPhone atau iOS device lainnya sangat mudah,
yaitu bisa didapatkan melalui Apple Application Store. Apple Application Store
ini sendiri mempunyai User Experience yang lebih baik dibandingkan
dengan smartphone lainnya, yang mana baik untuk penjualan aplikasi.
Pengguna iPhone, iPod Touch maupun iPad tertarik dalam pembelian aplikasi,
oleh karena itu mereka membeli iOS device yang ada. (Bumb, 2011)
27
Pengguna Apple iOS platform yang mengunduh aplikasi mobile memiliki
nilai rata-rata tertinggi untuk jumlah aplikasi dan menggunakan aplikasiaplikasi tersebut beberapa kali perhari. Hal ini berdasarkan data yang
dikeluarkan pada bulan April 2011 oleh The Nielsen Company. Pengguna
Android,
menempati
posisi
ke-dua
pada
ke-dua
kategori
tersebut.
(MarketingCharts, 2011)
Diantara para pengguna Apple iOS yang mengunduh aplikasi, rata-rata
aplikasi yang mereka miliki adalah 48. Hal ini memberikan pengguna Apple
iOS jumlah rata-rata tertinggi dari aplikasi mobile; pengguna Android
mengikuti dengan 35 aplikasi, nomor yang merupakan 27% lebih rendah.
Pengguna Palm hanya memiliki rata-rata 21 aplikasi pada mobile phone
mereka, setengah dari jumlah rata-rata aplikasi yang dimiliki oleh pengguna
iOS rata-rata. (MarketingCharts, 2011)
28
Selain memiliki jumlah rata-rata tertinggi dari aplikasi, pengguna iOS juga
memiliki tingkat tertinggi (68%) dalam menggunakan aplikasi-aplikasi tersebut
beberapa kali sehari. Android mengikuti iOS dengan nilai 60%, jumlah
pengguna Android yang menggunakan aplikasinya beberapa kali dalam sehari.
Arsitektur pada iOS serupa dengan arsitektur dasar yang terdapat pada Mac
OS X. Pada level tertinggi, iOS bekerja sebagai perantara antara perangkat
keras dengan aplikasi yang muncul pada layar, seperti yang terdapat pada
Gambar 2.6. Aplikasi akan berkomunikasi dengan perangkat keras melalui satu
set antarmuka yang melindungi aplikasi tersebut dari perubahan perangkat
keras. Pemisahan ini membuat pengembangan aplikasi untuk menjadi lebih
mudah karena dapat bekerja untuk tetap konsisten pada piranti apapun walau
mempunyai kemampuan perangkat keras yang berbeda. (Apple, iOS
Technology Overview, 2010, pp. 13-14)
29
2.9
Kelebihan iPhone
Hasil penelitian menunjukkan bahwa Apple menempati posisi pertama pada
daftar
15
perusahaan
penghasil
barang
elektronik
mencakup
iPhone
(smartphone), iPad dan iPod Touch dengan presentase sebesar 32% (Gambar
2.8). Apple iPhone sendiri juga terdapat pada posisi paling atas dari daftar 20
telepon genggam terbaik (Gambar 2.9). (Media, 2011, p. 2)
30
31
7. Memori internal antara 4, 8, 16, 32, 64 GB.
8. Memiliki fasilitas jaringan Wi-Fi, 3G, GPRS dan EDGE.
terintegrasi
merupakan
aplikasi
pengembangan.
dengan
utama
alat
pendukung
yang
lainnya
digunakan
dan
selama
32
2. Interface Builder alat yang digunakan untuk merancang
antarmuka secara visual. Objek antarmuka yang dibuat disimpan
pada suatu file dan dimuat ke aplikasi saat runtime.
3. Instruments alat yang digunakan untuk menganalisa perfoma
dan mendeteksi kesalahan. Instruments bisa digunakan untuk
mendapatkan informasi mengenai perilaku runtime dari aplikasi
dan mengidentifikasikan kemungkinan kesalahan.
4. iOS Simulator aplikasi Mac OS X yang mensimulasikan
teknologi iOS, mengizinkan pengembang untuk menguji aplikasi
iOS secara lokal pada komputer Macintosh yang digunakan.
5. iOS Developer Library referensi dan dokumentasi konsep yang
menjelaskan
pengembangan aplikasi.
Walaupun aplikasi bisa dicoba pada iOS Simulator, pengembang juga
dimungkinkan untuk menguji aplikasinya ke piranti yang sesungguhnya
menggunakan Xcode dan Instruments. iOS Simulator ideal untuk membangun
dan menguji aplikasi secara cepat namun tidak bisa menggantikan pengujian
pada piranti sesungguhnya. Untuk mencoba aplikasi ke salah satu piranti iOS,
pengembang harus terdaftar pada iOS Developer Program. (Apple, iOS
Technology Overview, 2010, p. 15)
33
menyulitkan atau tidak logis akan membuat aplikasi yang canggih sekalipun
menjadi tidak baik. (Apple, iOS Human Interface Guideline, 2011, pp. 20-23)
1. Aesthetic Integration
Integritas estetika tidak menggunakan tampilan cantik sebagai acuan
untuk mengukur, namun seberapa baik tampilan aplikasi tersebut
terintegrasi dengan fungsinya. Sebuah aplikasi harus memberikan pengguna
pesan yang jelas tentang tujuan dari aplikasi tersebut. Sebagai contoh, bila
suatu aplikasi menyediakan kegunaan produktif bagi pengguna, namun
tampilan antarmukanya aneh dan tidak karuan, tentu akan membuat
pengguna untuk kesulitan dalam menginterpretasi.
2. Konsistensi
Konsistensi
pada
antarmuka
memungkinkan
pengguna
untuk
34
dimulai,
mengkonfirmasi
aksi
yang
akan
dilakukan,
dan
bisa
2.12 Cocoa
Cocoa dan Cocoa Touch framework yang bekerja untuk Mac OS X dan
iOS adalah sebuah kerangka kerja yang terintegrasi ke dalam Xcode. Cocoa itu
sendiri merupakan salah satu API (Application Programming Interface)
berbasis objek milik Apple Inc. API Cocoa yang bertingkat tinggi membuat
pengembang lebih mudah untuk menambahkan animasi, jaringan, tampilan
platform asli, dan karakter untuk aplikasi dengan hanya beberapa baris kode.
Cocoa framework terdiri dari libraries, API dan runtimes. Dengan
menggunakan Cocoa, pengembang dapat membangun aplikasi dengan cara
yang sama dengan Mac OS X. Aplikasi otomatis akan mempunyai karakter dan
tampilan yang sama dengan Mac OS X. Cocoa dengan menggunakan Xcode
adalah cara yang paling baik untuk membuat aplikasi untuk Mac. (Apple,
Cocoa: Mac OS X Technology Overview, 2011)
35
iOS benar-benar dirancang ulang untuk menangani multi-touch. Semua
fitur antarmuka yang biasa digunakan pada platform iOS seperti iPhone,
iPad dan iPod Touch telah disediakan pada Cocoa Touch framework.
(Apple, Cocoa: Mac OS X Technology Overview, 2011)
Dibangun di atas paradigma Model-View-Controller, Cocoa Touch
menyediakan dasar yang kuat untuk menciptakan sebuah aplikasi
menarik. Ketika dikombinasikan dengan alat pengembang pada Xcode
seperti Interface Builder, keduanya akan menjadi mudah dan
menyenangkan ketika menggunakan sistem drag-and-drop pada saat
pembuatan aplikasi.
2.13 UIKit
UIKit adalah sebuah framework yang menyediakan kelas-kelas untuk
membangun dan mengatur perancangan antarmuka aplikasi iOS. UIKit
menyediakan objek, event handling, penggambaran model, windows, views,
dan kontrol yang didesain secara spesifik untuk antarmuka layar sentuh.
(Apple, UIKit Framework References, 2011, p. 26)
2.14 Objective-C
Objective-C adalah sebuah bahasa yang berorientasi objek. Bahasa ini
digunakan pada Mac OS X dan piranti iOS. Objective-C sendiri merupakan
sebuah kombinasi dari dua bahasa; C dan Smalltalk.
Pada tahun 1970, beberapa pengembang yang berasal dari Bell Labs
membuat sebuah bahasa yang dinamakan C. Bahasa C ini memudahkan
36
pengembang dalam membuat program karena mampu bekerja pada berbagai
sistem operasi.
Pada tahun 1980, bahasa C menjadi bahasa yang sangat terkenal. Ditahun
inilah, Bred Cox dan Tom Love pengembang dari Stepstone menggabungkan
bahasa C dengan bahasa Smalltalk. Bahasa C itu sendiri merupakan bahasa
yang prosedural, yaitu menggunakan langkah beraturan untuk membaca suatu
program. Sedangkan Smalltalk adalah bahasa yang berorientasi objek, yaitu
tidak memproses program secara prosedural namun menggunakan objek untuk
menyelesaikan pekerjaan. Kedua bahasa ini digabung dan menjadi bahasa yang
dinamakan Objective-C. (Bennett, Fisher, & Lees, 2010, pp. 97-98)
NSFetchedResultsController
untuk
terintegrasi
37
dengan Cocoa pada Mac OS X.
7. Mengumpulkan accessor (getter metoda yang mengembalikan
nilai dari private class) yang sesuai untuk relasi to-many.
8. Mengelompokkan dan mengorganisasi data pada memori dan pada
antarmuka.
9. Mendukung penyimpanan objek pada tempat penyimpanan data
eksternal.
10. Meng-compile query dengan baik.
11. Menyediakan fitur locking untuk mengatasi permasalahan pada
multi-writer.
Terdapat banyak alasan mengapa Core Data baik untuk digunakan. Salah
satunya adalah jumlah kode yang ditulis untuk mendukung layer model dari
aplikasi akan menjadi 50% sampai 70% lebih sedikit (dihitung dari baris
kode). Ini dikarenakan oleh fitur-fitur yang disediakan oleh Core Data.
Core Data mempunya kode dimana kualitasnya dijaga melalui tes unit
dan sudah digunakan setiap harinya untuk aplikasi-aplikasi yang bervarian.
Framework ini sudah sangat teroptimisasi. Untuk menyediakan keamanan
dan error-handling yang baik, Core Data juga menyediakan skalabilitas
memori untuk solusi apapun.
Selain dari keuntungan diatas, Core Data juga mampu untuk terintegrasi
dengan baik dengan Mac OS X tool. Model design tool mampu membantu
para pengguna untuk membuat skema secara cepat dan mudah. Pengguna
juga bisa menggunakan template pada Instruments application untuk
mengukur performa Core Data dan untuk menangani bermacam masalah.
Pada desktop Mac OS X, Core Data juga terintegrasi dengan Interface
38
Builder untuk membantu pengguna membangun antarmuka berdasarkan
skema model yang dibuat.
Core Data sendiri bukan merupakan sebuah basis data relasional atau
Relational
Database
Management
System
(RDBMS).
Core
Data
2.15.1 SQLite
SQLite merupakan sebuah sistem manajemen basis data relasional
yang bersifat public domain, yaitu bebas untuk digunakan untuk tujuan
apapun, komersial atau pribadi. SQLite ini dikembangan oleh D. Richard
Hipp. Tidak seperti kebanyakan basis data SQL lainnya, SQLite tidak
memiliki proses server yang terpisah. SQLite membaca dan menulis
langsung ke sebuah file disk. SQLite merupakan sebuah basis data SQL
lengkap dengan beberapa tabel, indeks, dan views yang berada dalam
sebuah file disk. Format file basis data SQLite adalah cross-platform,
sehingga bisa digunakan pada sistem operasi manapun. (SQLite, 2002)