Anda di halaman 1dari 33

6

BAB 2
LANDASAN TEORI

2.1 Object Oriented Programming


Object Oriented Programming adalah paradigma pemrograman yang
memandang perangkat lunak sebagai kumpulan objek yang saling berinteraksi di
dalam suatu sistem. (Azis, 2005, p. 2) Beberapa objek berinteraksi dengan saling
memberikan informasi satu terhadap yang lainnya. Masing-masing objek harus
berisikan informasi mengenai dirinya sendiri (encapsulation) dan objek yang
dapat dikaitkan (inheritance). (Febrian, 2004)
Dalam OOP, Class merupakan sekumpulan objek yang memiliki atributatribut dan method. (Lethbridge & Laganiere, 2002, pp. 29-31) Class merupakan
deskripsi dari satu atau lebih objek yang memiliki kesamaan atribut, layanan,
metode, hubungan, dan semantik, termasuk deskripsi cara membuat objek baru
dalam class. Ada juga yang disebut dengan super class, sebuah class induk yang
nantinya mempunyai class-class yang terdiri dari class dan subclass.
(Lethbridge & Laganiere, 2002, p. 50)
Objek dalam OOP adalah sebuah benda atau unit atau sifat kerja yang
memiliki atribut-atribut. (Lethbridge & Laganiere, 2002, p. 30) Objek adalah
sebuah abstraksi dari sesuatu pada domain masalah, menggambarkan
kemampuan untuk menyimpan informasi mengenai hal tersebut, berinteraksi
dengan hal tersebut atau keduanya.
Abtraksi prosedural dalam OOP disebut dengan operasi, yang menspesifikasi
tipe dari perilaku dan terdiri dari fungsi-fungsi. (Lethbridge & Laganiere, 2002,
p. 28)

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)

2.2 Waterfall Model


Waterfall Model merupakan dasar dari aktivitas proses yang terdiri dari
spesifikasi, pengembangan, validasi, evolusi dan semua direpresentasikan dalam
tahapan proses yang terpisah seperti spesifikasi kebutuhan, perancangan
perangkat lunak, implementasi, pengujian, dan sebagainya. (Sommerville, 2011,
p. 29)
Model dari software development process ini adalah model yang pertama kali
dipublikasikan yang diperoleh dari system engineering process yang umum
(Royce, 1970). Karena satu tahap ke tahap lainnya mengalir ke bawah, model ini
disebut sebagai Waterfall Model. Waterfall Model ini adalah contoh dari sebuah
proses yang bersifat plan-driven - secara prinsip, semua aktivitas proses harus

8
direncanakan dan diproses terlebih dahulu sebelum mulai mengerjakannya.
(Sommerville, 2011, p. 30)

Gambar 2.1 The Waterfall Model


(Sommerville, 2011, p. 30)

Tahapan dari Waterfall Model merefleksikan pokok-pokok dari aktivitas


pengembangan: (Sommerville, 2011, p. 31)
1. Requirements Analysis and Definition
Layanan yang diberikan oleh sistem, batasan sistem, dan tujuan
ditetapkan setelah melakukan konsultasi dengan pengguna sistem. Semua
didefinisikan secara rinci dan dibuat sebagai spesifikasi dari sistem.
2. System and Software Design
Proses perancangan sistem menyediakan kebutuhan hardware atau
software dengan menyediakan arsitektur dari keseluruhan sistem.
Perancangan sistem melibatkan pengidentifikasian dan penjelasan dari
abstraksi sistem dan hubungannya.
3. Implementation and Unit Testing
Pada tahap ini, perancangan sistem direalisasikan menjadi sebuah
program atau unit program. Pengujian unit melibatkan verifikasi untuk

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)

2.3 Unified Modeling Language (UML)


UML adalah bahasa standar pemodelan untuk perangkat lunak dan
pengembangan sistem. (Miles & Hamilton, 2006, p. 1)
Merancang sebuah desain untuk sistem yang besar merupakan hal yang sulit.
Dari aplikasi desktop yang sederhana sampai sistem multi-tier dapat dibangun
dari ratusan, bahkan ribuan, komponen perangkat lunak dan perangkat keras.
Untuk melacak komponen apa yang dibutuhkan, apa yang dikerjakan,
bagaimana mencapai kebutuhan pelanggan, dan bagaimana menjelaskan sistem

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

Use Case Diagram


Use Case diagram menunjukkan bagaimana sistem yang sedang

dibangun digunakan untuk memenuhi kebutuhan pengguna. Sebuah use


case menampilkan sebuah fungsionalitas yang diberikan oleh sistem.
(Miles & Hamilton, 2006, p. 20) Yang ditekankan pada use case adalah
apa yang diperbuat sistem, dan bukan bagaimana. (Dharwiyanti &

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.

Gambar 2.2 Notasi Aktor Pada Use Case


(Miles & Hamilton, 2006, pp. 22-23)

Selain aktor, terdapat sebuah use case, communication line, dan


system boundaries untuk menggambarkan use case diagram secara utuh.
Sebuah use case menampilkan bagaimana sistem digunakan untuk
menyelesaikan pekerjaan aktor. Communication line menghubungkan
aktor dan use case untuk menunjukkan bahwa aktor tersebut
berpartisipasi di dalam use case. Sedangkan system boundaries
digunakan untuk menandakan pemisahan antara eksternal sistem (aktor)
dan internal sistem (use cases). Berikut ini adalah gambar dari gabungan
antara aktor, use case, communication line dan system boundaries.
(Miles & Hamilton, 2006, pp. 25-27)

Gambar 2.3 Contoh Sebuah Use Case


(Miles & Hamilton, 2006, p. 27)

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

berdasarkan contoh use case sebelumnya :

Gambar 2.4 Contoh Sebuah Use Case Description


(Miles & Hamilton, 2006, p. 28)

Gambar 2.5 Contoh Sebuah Use Case Description (Lanjutan)


(Miles & Hamilton, 2006, p. 29)

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:

Gambar 2.6 Diagram Use Case


(Miles & Hamilton, 2006, p. 40)

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 &

Hamilton, 2006, pp. 64-65)


Class dalam UML digambarkan sebagai persegi panjang dibagi
menjadi tiga bagian. Bagian paling atas berisi nama class, bagian tengah
berisi atribut atau informasi yang dimiliki oleh class tersebut, dan bagian
akhir berisi operasi yang menunjukkan behaviour dari class. (Miles &
Hamilton, 2006, p. 67)

Gambar 2.7 Class Diagram


(Miles & Hamilton, 2006, p. 67)

15
Gambar 2.8 Class State: Attributes
(Miles & Hamilton, 2006, p. 72)

Gambar 2.9 Class Behaviour: Operations


(Miles & Hamilton, 2006, p. 77)

Class mempunyai sifat visibility, sebuah sifat yang dapat


digunakan untuk mengatur akses ke atribut dan metode atau operation,
yaitu :

Private, hanya dapat digunakan oleh metode pada class tersebut,


tidak dapat dipanggil dari luar class yang bersangkutan.

Protected, hanya dapat dipanggil oleh class yang bersangkutan


(metode) dan anak-anak yang mewarisinya (generalization).

Public, dapat dipanggil oleh siapa saja.

Package, dapat dipanggil oleh class yang bersangkutan (metode)


dan class lain yang berada di dalam package yang sama.

2.3.3

Sequence Diagram
Sequence diagram memodelkan bagaimana sistem yang sedang

dibangun mendatangi tugasnya. Diagram ini menangkap semua urutan


interaksi pada bagian-bagian dari sistem. Dengan menggunakan
sequence diagram, pengembang bisa menjelaskan interaksi apa yang
akan dipanggil ketika sebuah use case dieksekusi dan dalam urutan

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)

Dan berikut ini adalah bentuk-bentuk dari panah pada sequence


diagram, setiap bentuk panah mempunyai arti yang berbeda.

Gambar 2.11 Bentuk-bentuk Panah Pada Sequence Diagram


(Miles & Hamilton, 2006, p. 115)

2.4 Diagram Aliran Dokumen (DAD)


Menurut (Mulyadi, 2001, pp. 58-63) diagram aliran dokumen adalah suatu
model yang menggambarkan aliran dokumen dan proses untuk mengolah
dokumen dalam suatu proses.
Berikut ini adalah tabel yang menjelaskan komponen-komponen dari diagram
aliran dokumen :
Tabel 2.1 Tabel Simbol-simbol Diagram Aliran Dokumen

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.

Persimpangan Garis Alir


Jika dua garis alir bersimpangan, untuk menunjukkan arah
masing-masing

garis,

salah

satu

garis

dibuat

sedikit

melengkung tepat pada persimpangan kedua garis tersebut.


Pertemuan Garis Alir
Simbol ini digunakan jika dua garis alir bertemu dan salah satu
garis mengikuti garis lainnya.
Proses
Simbol ini untuk menunjukkan tempat-tempat dalam sistem
informasi yang mengolah atau mengubah data yang diterima
menjadi data yang mengalir keluar. Nama pengolahan data
ditulis didalam simbol.
Mulai / Berakhir (terminal)
Simbol ini untuk menggambarkan awal dan akhir suatu sistem
akuntansi

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.

Memiliki sistem operasi didalamnya yang memungkinkan seseorang


menjalankan berbagai aplikasi, misalnya iOS, Windows Mobile,
Android, Symbian, ataupun Sistem Operasi Blackberry.

2.

Bisa digunakan mengakses web atau internet dan konten yang disajikan
pada browser, sudah hampir mendekati seperti layaknya seseorang
mengakses web lewat komputer.

3.

Kemampuan mengolah pesan pada smartphone juga telah dilengkapi


kemampuan mengirim email dan bahkan proses sinkronisasi dengan
komputer lokal ataupun server internet, sehingga dengan mudah dapat
mengakses pesan yang sama, baik melewati smartphone maupun
komputer.

Orang-orang menggunakan mobile phone mereka dimanapun, bahkan mereka


tetap membawanya sampai ke kamar kecil. Bukan hanya membawa smartphone
mereka ke mana pun mereka berada, tetapi juga menggunakan smartphone
untuk segala hal. Dari mulai memainkan games, menonton film, memeriksa
laporan cuaca, browsing internet, berinteraksi dengan teman-teman di jejaring
sosial, mendapatkan berita terbaru, dan bahkan untuk kebutuhan perbankan.
(Kaki, 2011)

2.6 Mobile Application


Mobile application juga biasa disebut denga mobile apps, yaitu istilah yang
digunakan untuk mendeskripsikan aplikasi internet yang berjalan pada
smartphone atau piranti mobile lainnya. Aplikasi mobile biasanya membantu
para penggunanya untuk bisa terkoneksi dengan layanan internet yang biasa

20
diakses pada PC atau mempermudah mereka untuk menggunakan aplikasi
internet pada piranti yang bisa dibawa. (Webopedia, 2011)

2.7 Perencanaan Keuangan


Perencanaan keuangan pribadi merupakan proses mengatur keuangan untuk
mencapai kepuasan ekonomi setiap individu. Proses perencanaan ini
memungkinkan seseorang untuk dapat mengontrol situasi finansialnya. Setiap
orang memiliki posisi dan kegiatan finansial yang berbeda, oleh karena itu
perencanaan ini harus direncanakan secara baik dan benar untuk memenuhi
tujuan dan kebutuhan spesifik. Rencana keuangan yang bersifat komprehensif
mampu meningkatkan kualitas kehidupan seseorang dan juga meningkatkan
kepuasan diri sendiri dengan mengurangi ketidakpastian tentang kebutuhan dan
tujuan pada masa yang akan datang. (Kapoor, Dlabay, & Hughes, 2004)
Banyak keuntungan yang didapat dengan melakukan perencanaan keuangan
yang baik. Salah satunya adalah seseorang akan menjadi lebih efektif dalam
memperoleh, menggunakan dan melindungi sumber daya keuangan pribadinya,
karena ia menyadari akan kondisi keuangannya pada saat itu. Dengan
mengetahui kondisi keuangan, seseorang juga akan menjadi lebih baik dalam
mengatur keuangannya agar terhindar dari pengeluaran yang berlebihan, hutang,
dan ketergantungan pada orang lain untuk keamanan ekonomi. Selain itu, tiap
individu akan terbebas dari rasa khawatir terhadap kondisi keuangan mereka
karena

dengan

perencanaan

keuangan

mereka

dapat

mengestimasikan

keuangannya untuk masa depan, mengantisipasi biaya pengeluaran dan


mencapai tujuan ekonomi pribadi. (Kapoor, Dlabay, & Hughes, 2004)

21
2.7.1

Proses Perencanaan Keuangan


Perencanaan keuangan adalah prosedur yang terus berlangsung,
statusnya berubah setiap kali situasi dan posisi keuangan dalam
kehidupan berubah. (Keown, 2010) Pada dasarnya perencaan keuangan
mempunyai setidaknya tiga komponen. Seseorang harus mengetahui
kondisi awal keuangan, tujuan finansial, dan cara pencapaian tujuan
finansial. (Hananto, 2011) Namun, terdapat 5 tahapan dasar untuk
perencanaan keuangan pribadi yang lebih rinci yang akan dijelaskan
berikut ini. (Keown, 2010; Keown, 2010)

2.7.1.1

Tahap 1: Mengevaluasi Kesehatan Keuangan


Tahap ini dimulai dari pemeriksaan terhadap situasi finansial

pada saat ini. Seseorang harus mengetahui 3 hal, yaitu:


1. Seberapa banyak uang yang diperoleh
2. Berapa besar pengeluaran yang dilakukan
3. Barang apa saja yang telah dibelanjakan
Untuk bisa bertahan secara finansial, seseorang harus dapat
melihat gambaran finansialnya secara utuh, dimana ia membutuhkan
pencatatan yang baik, terutama dalam memperhatikan pengeluaran.
Melacak apa yang dibelanjakan hanya membutuhkan waktu
untuk memasukkan semua pengeluaran setiap hari ke dalam suatu
buku atau program komputer. Ini memang hal yang membosankan,
namun cara ini dapat memberikan seseorang gambaran akan
keuangannya menjadi lebih jelas dan juga kemampuan untuk
mengontrol situasi finansialnya.

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

Tahap 2: Menentukan Tujuan Finansial


Tahap berikutnya adalah menentukan tujuan finansial atau

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

Tahap 3: Mengembangkan Rencana


Ini adalah tahap dimana seseorang harus mengetahui

bagaimana cara mencapai tujuan finansial. Caranya bisa dengan


melakukan budgeting atau membuat strategi investasi (menabung)
yang

nantinya

seseorang

bisa

mendapatkan

tujuan

finansial

pribadinya masing-masing.

2.7.1.4

Tahap 4: Mengimplementasikan Rencana


Penting halnya untuk seseorang tetap berdiri pada rencana

yang sudah ditetapkan sebelumnya. Untuk mengimplementasikan dan


menetap pada rencana seseorang perlu untuk melacak semua
pemasukkan dan pengeluaran, dan juga terus memantau tujuan
finansialnya. Rencana keuangan inilah yang digunakan untuk
mencapai sasaran finansial.

2.7.1.5

Tahap 5: Meninjau Kemajuan, Mengevaluasi Ulang,


Merevisi Rencana
Mengevaluasi ulang rencana sebelumnya juga penting dalam

menjalankan rencana tersebut. Karena mungkin saja ditengah


perjalanan dalam mencapai tujuan finansial, terdapat kondisi-kondisi
tak

terduga

seperti

menikah

atau

mempunyai

anak

yang

membutuhkan pengeluaran uang yang lebih. Untuk itu, seseorang


harus merevisi kembali rencana sebelumnya untuk mengimbangi
kondisi finansial saat itu demi pencapaian tujuan.

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)

2.7.3 Tujuan Finansial


Membantu seseorang mengatur keuangan adalah dengan mencapai
target atau goal yang telah ditetapkan sebelumnya. (Weirich, 1983, p. 48)
Tipe dari goal atau tujuan finansial bisa beragam. Seseorang dapat
menspesifikasikan tujuan finansialnya ke dalam keinginannya untuk
membeli sesuatu, atau mungkin mempunyai goal untuk terlepas dari
hutang kredit. Seseorang menginginkan untuk mempunyai sejumlah uang
dalam jangka waktu tertentu juga bisa disebut sebagai goal. Atau hal
sederhana seperti menabung sejumlah uang tiap bulannya dapat dijadikan
sebagai goal agar kelak uang tersebut dapat berguna dikemudian hari.
(Madura, 2004)
Seseorang harus dapat menentukan tujuan finansial secara realistis
agar nantinya tujuan tersebut bisa tercapai. Sebuah rencana keuangan
yang membuat seseorang harus menabung hampir semua dari
pemasukkannya juga sia-sia jika ia tidak bersedia untuk mengikuti
rencana tersebut. Ketika satu rencana gagal, ketertarikan akan
perencanaan keuangan akan menghilang. Dengan mengurangi tingkat

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)

Gambar 2.12 Jumlah Rata-Rata Aplikasi Pada Mobile Phone


(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.

Gambar 2.13 Jumlah Rata-Rata Penggunaan Aplikasi Pada Mobile Phone


(MarketingCharts, 2011)

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

Gambar 2.14 Arsitektur iOS


(Apple, 2010)

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

Gambar 2.15 Top 15 Manufacturers


(Media, 2011)

Gambar 2.16 Top 20 Mobile Phones


(Media, 2011)

Keunggulan lain yang dimiliki oleh iPhone (Agung, 2009) adalah:


1. Memiliki layar sentuh berukuran 3.5 dengan resolusi 480x320 pixel
dengan jenis layar capacitive touch screen.
2. Browser Safari bisa menampilkan huruf-huruf karakter Cina dan
mengakomodasi 16 bahasa dunia.
3. Menggunakan speaker built-in sehingga mampu menyajikan suara
dengan kencang, tidak pecah dan amat jernih.
4. Memiliki virtual keyboard yang sangat nyaman digunakan.
5. Memiliki tampilan menu yang bisa digeser sehingga anda bisa
menampilkan banyak aplikasi dalam sebuah layar iPhone.
6. GPS yang terintegrasi

31
7. Memori internal antara 4, 8, 16, 32, 64 GB.
8. Memiliki fasilitas jaringan Wi-Fi, 3G, GPRS dan EDGE.

2.10 iOS SDK dan Xcode


iOS SDK (Software Development Kit) yang bekerja pada komputer
Macintosh menyediakan antarmuka, tools dan semua sumber yang digunakan
untuk membangun aplikasi iOS. (Apple, iOS Technology Overview, 2010)
Apple memberikan sebagian besar sistem untuk antarmuka mereka ke
dalam paket yang disebut dengan framework atau kerangka kerja. Framework
adalah sebuah direktori yang berisi library dan sumber-sumber seperti header
files, gambar, aplikasi bantuan, dan lain-lain yang digunakan untuk mendukung
library yang tersedia. Framework digunakan dengan cara me-link framework
yang diinginkan ke dalam proyek aplikasi. Menghubungkan framework dengan
proyek yang dibuat memberi akses ke semua fitur dari framework tersebut dan
juga memungkinkan untuk development tools mengetahui dimana menemukan
suatu file tertentu. (Apple, iOS Technology Overview, 2010, pp. 14-15)
Komponen yang ada pada SDK termasuk:

Xcode Tools alat yang mendukung pengembangan aplikasi iOS,


termasuk:
1. Xcode sebuah alat yang mendukung pengembangan untuk
mengelola proyek aplikasi dan memungkinkan untuk mengedit,
mengkompilasi, menjalankan dan memperbaiki error pada kode.
Xcode

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

semua tentang teknologi iOS dan proses

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)

2.11 iOS Human Interface Guideline


Antarmuka yang baik adalah antarmuka yang mengikuti prinsip perancangan
antarmuka. Prinsip tersebut didasari oleh cara orang atau pengguna berpikir,
bukan dari kemampuan pirantinya. Antarmuka yang tidak menarik,

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

menggunakan pengetahuan dan keterampilan yang mereka miliki di satu


aplikasi ke aplikasi lain. Aplikasi yang konsisten bukan berarti meniru
aplikasi lain, namun hanya mengambil keuntungan dari standar dan
paradigma yang sudah jelas dirasakan nyaman oleh pengguna.
3. Kendali Pengguna
Inisiasi dan pengontrolan aksi pada aplikasi adalah pengguna, bukan
aplikasi itu sendiri. Aplikasi memang diharapkan dapat memberikan saran
untuk melakukan aksi atau mengingatkan tentang konsekuensi berbahaya,
namun aplikasi tidak boleh mengambil keputusan sendiri diluar kontrol user.
Jadi aplikasi yang baik adalah aplikasi yang seimbang antara memberikan
pengguna apa yang mereka butuhkan, juga membantu pengguna untuk
menghindari hal-hal yang tidak diinginkan. Pengguna mengekspektasikan
aplikasi untuk dapat membatalkan suatu operasi sebelum operasi tersebut

34
dimulai,

mengkonfirmasi

aksi

yang

akan

dilakukan,

dan

bisa

memberhentikan operasi yang sedang berlangsung.

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)

2.12.1 Cocoa Touch


Cocoa Touch, berbeda dengan Cocoa, merupakan ekstensi dari Cocoa
untuk aplikasi pada sistem operasi iOS pada iPhone, iPad dan iPod
Touch. Cocoa Touch digunakan untuk menambahkan fungsi sensor gerak
dan animasi.
Cocoa Touch mengatur dan mengelola interaksi pengguna pada iOS.
Karena Cocoa Touch merupakan ekstensi dari Cocoa, maka semua
teknologi Cocoa Touch berasal dari Cocoa. Cocoa Touch dan antarmuka

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)

2.15 Core Data


Core Data adalah sebuah framework yang menyediakan solusi untuk
tugas-tugas umum yang berhubungan dengan siklus objek dan pengelolaan
objek. (Apple, Core Data, 2010, pp. 17-19)
Fitur dari Core Data antara lain:
1. Menyediakan bantuan untuk melakukan undo dan redo.
2. Mampu mengatur konsistensi dari relasi antar objek.
3. Dapat mengurangi memori yang berkelebihan dari suatu program
dengan memuat objek-objek.
4. Melakukan validasi terhadap nilai properti dari sebuah objek secara
otomatis.
5. Mengizinkan pengguna mengubah skema yang telah ada dengan
lebih mudah.
6. Menggunakan

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

menyediakan infrastuktur untuk mengatur dan menyimpan objek dan


mengambil objek tersebut dari sebuah tempat penyimpanan, seperti SQLite.
Core Data tidak menghilangkan keharusan pengguna untuk menulis kode.
Walaupun pengguna dapat menggunakan Data Modeling Tool dan Interface
Builder pada Xcode, untuk aplikasi yang lebih nyata, pengguna tetap harus
menulis kode.

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)

Anda mungkin juga menyukai