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 atribut- atribut 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)

2012-1-00100-IF

Embed Size (px)

DESCRIPTION

thank

Citation preview

  • 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 atribut-

    atribut 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)

    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

    Gambar 2.1 The Waterfall Model

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

    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 bahasa-

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

    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.2 Notasi Aktor Pada Use Case

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

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

    gambar berikut mencontohkan sebuah Use Case Description

    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)

  • 13

    Hubungan antar use case dapat diekspresikan menggunakan

    dan . Relasi digunakan untuk

    memecahkan sistem menjadi bagian-bagian yang lebih mudah untuk

    diatur. Sedangkan relasi 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

    Gambar 2.6 Diagram Use Case

    (Miles & Hamilton, 2006, p. 40)

  • 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

    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

    Gambar 2.8 Class State: Attributes

    (Miles & Hamilton, 2006, p. 72)

    Gambar 2.9 Class Behaviour: Operations

    (Miles & Hamilton, 2006, p. 77)

  • 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

    Dan berikut ini adalah bentuk-bentuk dari panah pada sequence

    diagram, setiap bentuk panah mempunyai arti yang berbeda.

    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

    Gambar 2.10 Contoh Interaksi Pada Sequence Diagram

    (Miles & Hamilton, 2006, p. 112)

    Gambar 2.11 Bentuk-bentuk Panah Pada Sequence Diagram

    (Miles & Hamilton, 2006, p. 115)

  • 18

    Simbol Keterangan

    dalam simbol.

    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)

    Ya

    Tidak

  • 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 aplikasi-

    aplikasi 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

    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)

    Gambar 2.14 Arsitektur iOS

    (Apple, 2010)

  • 30

    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

    Gambar 2.15 Top 15 Manufacturers

    (Media, 2011)

    Gambar 2.16 Top 20 Mobile Phones

    (Media, 2011)

  • 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 dengan alat pendukung lainnya dan

    merupakan aplikasi utama yang digunakan selama

    pengembangan.

  • 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)