Aplikasi Penjualan Voucher dan Pulsa Elektrik Pada Perluasan ...

Click here to load reader

  • date post

    08-Dec-2016
  • Category

    Documents

  • view

    232
  • download

    6

Embed Size (px)

Transcript of Aplikasi Penjualan Voucher dan Pulsa Elektrik Pada Perluasan ...

  • 1

    Aplikasi Penjualan Voucher dan Pulsa Elektrik

    Pada Perluasan Cabang CV Dian Mulya Menggunakan Java

    J2SE, Netbean IDE 6.1 dan MySQL

    Hasil penelitian

    Diajukan oleh

    Nama : Dwi Ary Bowo

    No. Mahasiswa : 50404216

    Jurusan : Teknik Informatika

    Angkatan : 2004

    Telah disetujui oleh Dosen Pembimbing

    Pada tanggal

    Dosen Pembimbing,

    (Prof. Dr. Bernardus E . F. Da Silva, MSc., DEA)

    BAB I

    PENDAHULUAN

    1.1 Latar Belakang Masalah Dewasa ini telepon selular sudah merupakan barang umum yang bagi sebagian orang

    seakan-akan menjadi barang wajib untuk dimiliki, seiring dengan pertumbuhan

    penggunaan telepon selular pertumbuhan penggunaan pulsa juga berbanding lurus

    dengannya. Hal ini menunjukkan bahwa pulsa telepon selular sudah merupakan

    kebutuhan pokok bagi pemilik telepon selular, yang bisa disejajarkan posisinya dengan

    makanan.

    Ini menimbulkan peluang usaha yang menjanjikan serta prospek yang panjang.

    Berdasarkan fakta itulah CV Dian Mulya ingin membuat cabang dari gerai penjualan

    pulsa yang ada dengan menambahkan beberapa gerai penjualan tambahan. Berdasarkan

    pengalaman yang didapat dari gerai penjualan sebelumnya, masalah utama adalah pada

    saat pembukuan yang masih dengan cara tradisional yaitu menggunakan buku. Dimana

    pada saat konsumen melakukan transaksi pembelian pulsa elektrik, biasanya mereka

    disodorkan buku dan diminta untuk mencatat nomor handphone dan besar pulsa yang

    mereka inginkan. Setelah itu penjual atau karyawan akan menggunakan telepon

    selularnya untuk mengirimkan pulsa dengan cara mengirim SMS ke provider yang

    bersangkutan dengan format penulisan yang telah ditetapkan oleh provider tersebut.

  • 2

    Bertitik tolak dari kekurangan inilah penulis mencoba membuat sebuah aplikasi

    penjualan voucher dan pulsa elektrik pada perluasan cabang CV Dian Mulya

    menggunakan Java J2SE, Netbeans IDE 6.0 dan MySQL. Untuk membantu mengatasi

    kekurangan pada transaksi penjualan dengan cara tradisional seperti pencatatan transaksi

    yang masih dilakukan dengan cara tradisional yaitu penggunaan buku, pengetikan format

    sms yang ditentukan provider dengan cara menulis manual pada telepon selular yaitu

    dengan menggunakan metode penggunaan computer yang dihubungkan dengan telepon

    selular menggunakan kabel data, dimana untuk melakukan transaksinya, karyawan atau

    penjual hanya memasukkan data yang terdapat pada aplikasi penjualan pulsa elektrik

    melalui computer dan setelah itu aplikasi secara otomatis yang akan mengirim SMS

    kepada provider berupa kode format sesuai prosedur yang ditentukan provider.

    1.2 Batasan Masalah Dalam hal ini penulis membatasi masalah pada perancangan sistem yang menggunakan

    UML (Unified Modelling Language), perancangan database, pembuatan aplikasi dan juga

    uji coba. Dari segi perancangan database membahas tentang tabel, field-field dan juga

    relational dari tabel-tabel yang digunakan. Dari segi pembuatan aplikasi membahas

    tentang tampilan form yang dibuat seminimalis mungkin sehingga aplikasi dapat dengan

    mudah digunakan pemakainya (user friendly).

    1.3 Tujuan Penelitian Tujuan dari penelitian ini adalah membangun sebuah aplikasi penjualan voucher dan

    pulsa elektrik menggunakan komputer dan telepon selular yang dihubungkan melalui

    media kabel data. Serta memberikan kemudahan bagi karyawan atau pengguna dalam

    melakukan transaksi dimana pegawai tidak harus mengetik secara manual melalui telepon

    selular atau menghafal kode format penulisan yang diajukan oleh provider. Pemberian

    laporan penjualan dan absensi karyawan yang akurat kepada pemilik. Serta dapat

    digunakan sebagai acuan untuk membuat usaha yang sama seperti CV Dian Mulya yaitu

    membuat gerai penjualan voucer dan pulsa elektrik.

    1.4 Metode Penelitian Guna memperoleh bahan-bahan dan informasi yang dibutuhkan dalam perancangan,

    dilakukan studi lapangan pada tempat-tempat penjualan voucher dan pulsa elektrik.

    Selain itu penulis juga mencari artikel-artikel yang ada hubungannya dengan tema

    penulisan ilmiah penulis. Untuk menunjang penelitian, dilakukan pula kajian kepustakaan

    dengan mengumpulkan dan mempelajari berbagai referensi dari buku, web site dan

    catatan-catatan kuliah mengenai perancangan basis data, pemrograman bahasa Java dan

    MySQL 5 sehingga dapat dijadikan landasan untuk melakukan penelitian.

    1.5 Sistematika Penulisan

    Untuk lebih memudahkan pembaca dalam memahami isi penulisan akhir ini, maka

    penulis membuat sistematika penulisan dalam lima bab, di mana bab yang satu dengan

    yang lain saling berkaitan.

    Bab I menguraikan tentang alasan pemilihan judul atau latar belakang masalah,

    pembatasan masalah, perumusan masalah, tujuan penelitian serta manfaat dari penelitian.

    Bab II membahas tentang konsep-konsep aplikasi layanan SMS, MySQL sebagai

  • 3

    perangkat lunak pembuat database, dan java sebagai perangkat lunak untuk membuat

    aplikasi.

    Bab III membahas tentang perancangan sistem, pembuatan aplikasi dan implementasi.

    Bab IV menjelaskan tentang uji coba program, hasil dari ujicoba dan pembahasan.

    Bab V merupakan bab penutup yang berisi kesimpulan masalah berdasarkan hasil

    penelitian dan diakhiri dengan saran-saran dari penulis.

  • 4

    BAB II

    LANDASAN TEORI

    2.1 Perkembangan SMS (Short Message Service)

    Dewasa ini teknologi Short Message Service (SMS) sangatlah diminati oleh semua

    golongan masyarakat, baik muda atau tua, pria atau wanita, demikian juga untuk seluruh

    tingkat ekonomi. Bahkan SMS sudah menjadi komoditi bisnis yang menguntungkan.

    SMS secara umum dapat diartikan sebuah service atau layanan yang memungkinkan

    dikirimkannya atau ditransmisikannya pesan teks pendek dari dan ke mobile phone, fax,

    mesin, atau IP address. Disebut pesan teks pendek karena pesan yang dikirimkan hanya

    berupa karakter teks dan tidak lebih dari 160 karakter. Pengiriman SMS menggunakan

    saluran signalling, bukan saluran suara, sehingga kita dapat menerima SMS walaupun

    kita sedang melakukan komunikasi suara.

    Beberapa keunggulan penggunaan SMS, sehingga banyak diminati masyarakat :

    1. Pesan dalam SMS pasti akan dikirim ke tujuan. Jika nomor tujuan tidak aktif atau

    diluar service area, maka pesan akan disimpan di SMSC server dan akan dikirimkan

    segera setelah nomor tujuan aktif kembali. Pesan juga akan tetap terkirim ke tujuan

    walaupun nomor tujuan sedang sibuk.

    2. Pesan SMS dapat dikirim ke banyak penerima sekaligus pada saat bersamaan.

    3. Pesan SMS dapat dikirimkan ke berbagai jenis tujuan seperti e-mai, IP ataupun

    aplikasi lain.

    4. Dapat diintegrasikan dengan aplikasi content untuk berbagai macam keperluan seperti

    registrasi membership, pemilihan award, bintang TV, iklan, kuis, games, votting,

    chatting, reservasi, request informasi, sensus atau survey dan lain-lain tergantung dengan

    kegunaan dan fungsi aplikasi content yang berhubungan dengan SMSC.

    5. Harganya murah

    Dalam perkembangannya, SMS mulai dikenalkan pada era teknologi wireless generasi ke

    2 (2G). Di Eropa, SMS mulai diperkenalkan pada tahun 1991, pada saat mulai digunakan

    GSM yang merupakan teknologi 2G yangdigunakan di negara-negara eropa.

    Selanjutnya, SMS kemudian dikembangkan menjadi EMS (Enhanced Message Service),

    dimana jumlah karakter yang dikirim melalui EMS dalam satu SMS menjadi lebih

  • 5

    banyak dan dapat digunakan untuk mengirim pesan berupa non-karakter (dapat berupa

    gambar sederhana). Demikian juga pengiriman pesan yang lebih dari 160 karakter, akan

    dapat dipecah menjadi beberapa buah dimana masing-masingnya terdiri dari tidak lebih

    dari 160 karakter.

    Misalnya pesan yang dikirim terdiri dari 200 karakter, maka pesan ini akan dipecah

    menjadi 2 buah SMS (1 buah dengan 160 karakter dan 1 SMs dengan 40 karakter). Kedua

    SMS ini akan dikirimkan menjadi 2 SMS terpisah dan di sisi penerima akan digabungkan

    menjadi satu SMS lagi. Selain itu, EMS juga memungkinkan pengiriman data gambar

    sederhana dan rekaman suara.

    Kemudian saat mulai digunakannnya teknologi seperti GPRS, maka service pengiriman

    pesanpun berkembang, tidak hanya sebatas teks saja, tapi juga bisa dalam bentuk gambar

    dan suara (multimedia), service ini dikenal dengan nama MMS (Multimedia Message

    Service). Dengan MMS user dapat mengirimkan pesan lebih hidup karen dapat berupa

    gambar (statik dan bergerak), suara ataupun gabungan keduanya.

    2.1.1 Arsitektur Jaringan SMS

    Pada Gambar 2.1 menunjukkan salah satu contoh arsitektur jaringan GSM dengan SMS

    center (SMSC) di dalamnya.

    Gambar 2.1 Arsitektur Jaringan SMS

  • 6

    Dengan SMS, kita dapat mentransmisikan pesan singkat dari dan ke Mobile Subscriber

    (MS). Pengiriman pesan sengkat ini dimungkinkan dengan adanya sebuah SMSC ( Short

    message Service Center). Secara umum SMSC berfungsi menerima SMs yang dikirim,

    emnyimpannya untuk sementara, dan mengirimkan SMS tersebut ke mobile subscriber

    (MS) ataupun ESME tujuan.

    External Short Message Entities (ESME) adalah device selain MS yang dapat berfungsi

    untuk menerima atau mengirim SMS. Pada umumnya ESME dipakai untuk menciptakan

    layanan yang lebih beragam kepada pelanggan ataupun untuk meningkatkan performance

    jaringan telekomunikasi dari operator telekomunikasi wireless yang bersangkutan.

    Bila sebuah SMS dikirimkan dari MS A ke MS B, maka SMS itu akan diteruskan oleh

    BSS ke MSC dan kemudian ke SMSC. SMSC berfungsi mengirimkan SMS tersebut ke

    MS B. Untuk keperluan ini, SMSC harus tahu bagaimana status subscriber (aktif atau

    tidak aktif), dimana lokasi MS B berada. Informasi-informasi mengenai MS B ini didapat

    dari HLR.

    Jika misalnya MS B dalam keadaan aktif, maka SMSC akan mengirimkan SMS ke MS B

    melalui MSC A, MSC B dan kemudian MS B. Bila misalnya MS B dan MS A adalah MS

    dari 2 operator yang berbeda, maka pada saat pengiriman SMS dari A ke B, maka SMS

    tersebut hanya akan melalui SMSC A, tidak singgah lagi di SMSC B.

    Jika misalnya, MS B dalam keadaan tidak aktif, maka SMS tidak akan diforward dan

    diteruskan ke MSB, tapi akan disimpan untuk sementara di SMSC pada kondisi ini,

    SMSC A akan selalu berkomunikasi dengan HLR untuk mengetahui kondisi MS B. Bila

    suatu saat SMSC mendapatkan informasidari HLR bahwa MS B aktif kembali, maka

    SMS akan diteruskan ke MSC A, MSC B, dan MS B.

    Gambar 2.2 menunjukkan alur skenario pengiriman SMS MO dari MS ke ESME (SMS

    Originating).

  • 7

    Gambar 2.2 Skenario SMS MO (Mobile Originating)

    MS diaktifkan dan terdaftar ke networknya (1), setelah itu MS mengirimkan SMS ke

    MSC (2). MSC berkomunikasi dengan VLR untuk memverifikasi bahwa pesan yang

    dikirimkan sesuai dengan supplementary service yang ada dan MS tidak sedang dalam

    keadaan diblok untuk mengirimkan SMS (3). MSC mengirimkan SMS ke SMSC dengan

    menggunakan operasi forward short message (4). SMSC meneruskan SMS ke SME.

    Secara optional, SMSC dapat juaga menerima acknowledgement bahwa SMS telah

    diterima SME (5). SMSC memberitahukan MSC bahwa SMS telah dikirimkan ke SME.

    2.2 Java

    Java adalah bahasa pemrograman serbaguna. Java dapat digunakan untuk

    membuat suatu program sebagaimana Anda membuatnya dengan bahasa seperti Pascal

    atau C++. Yang lebih menarik, Java juga mendukung sumber daya Internet yang saat ini

    populer, yaitu World Wide Web atau yang sering disebut Web saja. Java juga mendukung

    aplikasi client/server, baik dalam jaringan lokal (LAN) maupun jaringan berskala luas

    (WAN).

  • 8

    2.2.1 Versi Awal

    Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan

    Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus

    dikembangkan pada versi selanjutnya:

    1. java.lang: Peruntukan kelas elemen-elemen dasar.

    2. java.io: Peruntukan kelas input dan output, termasuk penggunaan file.

    3. java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas

    penanggalan.

    4. java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan

    komputer lain menggunakan jaringan TCP/IP.

    5. java.awt: Kelas dasar untuk aplikasi antar muka dengan pengguna (GUI)

    6. java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada webbrowser.

    2.2.2 Kelebihan dan Kekurangan Java

    Kelebihan:

    1. Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di beberapa platform

    / sistem operasi komputer, sesuai dengan prinsip write once, run every where. Dengan

    kelebihan ini pemrogram cukup menulis sebuah program java dan dikompilasi (diubah,

    dari bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu

    hasilnya dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini

    memungkinkan sebuah program berbasis java dikerjakan diatas operating system Linux

    tetapi dijalankan dengan baik di atas Microsoft Windows. Platform yang didukung

    sampai saat ini adalah Microsoft Windows, Linux, Mac OS dan Sun Solaris.

    2. OOP, singkatan dari Object Oriented Programming yang artinya semua aspek yang

    terdapat di Java adalah objek. Java merupakan salah satu bahasa pemrograman berbasis

    object murni. Semua tipe data diturunkan dari kelas dasar Object. Hal ini sangat

    memudahkan programmer untuk mendesain, membuat, mengembangkan dan

    mengalokasi kesalahan sebuah program dengan basis java secara cepat, tepat, mudah dan

    terorganisir. Kelebihan ini menjadikan java sebagai salah satu bahasa pemograman

    termudah, bahkan untuk fungsi fungsi yang advance seperti komunikasi antara komputer

    sekalipun.

  • 9

    3. Library Kelas Sangat Lengkap, Java terkenal dengan kelengkapan library (kumpulan

    program program yang disertakan dalam pemrograman java) yang sangat memudahkan

    dalam penggunaan oleh para programmer untuk membangun aplikasinya. Kelengkapan

    library ini ditambah dengan keberadaan komunitas Java yang besar yang terus menerus

    membuat library-library baru untuk melingkupi seluruh kebutuhan pembangunan

    aplikasi.

    4. Garbage Collection, memiliki fasilitas pengaturan penggunaan memori sehingga

    programmer tidak perlu melakukan pengaturan memori secara langsung.

    Kekurangan:

    1. Write once, debug everywhere. Ada beberapa hal yang tidak kompatibel antara

    platform satu dengan platform lain. Untuk J2SE, misalnya SWT-AWT bridge yang

    sampai sekarang tidak berfungsi pada Mac OS X.

    2. Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari executable code

    menjadi source code. Ini dimungkinkan karena executable Java merupakan bytecode

    yang menyimpan banyak atribut bahasa tingkat tinggi, seperti nama-nama kelas, method,

    dan tipe data. Hal yang sama juga terjadi pada Microsoft .NET Platform. Dengan

    demikian, algoritma yang digunakan program akan lebih sulit disembunyikan.

    3. Heavy memory usage. Penggunaan memori untuk program berbasis Java jauh lebih

    besar daripada bahasa tingkat tinggi generasi sebelumnya seperti C/C++ dan Pascal (lebih

    spesifik lagi, Delphi dan Object Pascal). Biasanya ini bukan merupakan masalah bagi

    pihak yang menggunakan teknologi terbaru (karena trend memori terpasang makin

    murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat dengan mesin

    desktop berumur lebih dari 4 tahun.

    2.2.3 OOP Pada Java

    OOP (Object Oriented Programming) yaitu proses pembuatan program / aplikasi dengan

    cara menyusunnya dari beberapa object (komponen yang lebih kecil). Object atau

    komponen itu sendiri juga bisa tersusun dari object yang lain. Pemrograman OOP

    memiliki berbagai kelebihan dibandingkan dengan konsep pemrograman lain. Kelebihan

    OOP antara lain kemampuan untuk mewariskan elemen program ke program lain

    (inheritance), dapat menyembunyikan kerumitan program dengan encapsulation,

  • 10

    pembuatan beberapa fungsi dengan nama sama tapi memiliki parameter dan atribut yang

    berbeda dengan overloading, pembutan fungsi baru yang menimpa fungsi lain dengan

    overriding.

    1. Atribut dan Method

    Atribut merupakan aspek individual yang membedakan sebuah object dengan object

    lainnya. Misalkan sebuah object Motor, maka atribut yang dimiliki motor adalah warna,

    jumlah, roda, merek dan lain sebagainya. Dalam pembuatan object di java, atribut

    didefinisikan menggunakan variable instance. Tipe-tipe atribut didefinisikan dalam class,

    dan setiap instance yang dibuat dari class tersebut menyimpan atributnya masing-masing

    di dalam variable instance.

    Method merupakan kemampuan sebuah object untuk melaksanakan sesuatu. Dengan kata

    lain, method merupakan fungsi (subroutine) yang didefinisikan di dalam class dan

    beroperasi pada instance yang dibuat dari class tersebut.

    2. Constructor

    Constuctor merupakan method yang bernama sama dengan class-nya yang digunakan

    untuk inisialisasi object. Sebuah class dapat memiliki banyak constructor dengan

    overloading, yaitu membuat method yang bernama sama tetapi memiliki parameter dan

    implementasi yang berbeda.

    Pada saat instance dari class dibuat, maka object yang terjadi adalah hasil inisialisasi

    dari constructor. Apabila class memiliki lebih dari satu constructor maka constructor

    yang bekerja adalah yang memiliki parameter yang sesuai dengan pembuatan instance.

    3. Abstract dan Interface

    Abstract

    Suatu method dari suatu class dapat dibuat tanpa implementasi kode apapun. Method

    seperti itu disebut method abstract dan untuk menggunakannya harus didefinisikan

    dahulu pada turunan class tersebut. Suatu class yang memiliki method abstract maka

    menjadi class abstract. Suatu class abstract tidak dapat digunakan untuk membuat objek.

    Namun demikian suatu class abstract tetap dapat diturunkan.

  • 11

    InterfaceAdalah suatu abstraksi dari class. Interface hanya berisi daftar field dan method

    tanpa detail kode. Suatu class yang mengimplementasikan suatu interface maka class

    tersebut harus mendefinisikan method yang terdapat pada interface tersebut.

    4. Penanganan Kesalahan Pada Java

    Java menggunakan model exception dalam menangani kesalahan pada program. Oleh

    karena pemeriksaan pada tahap kompilasi program Java sangat ketat, suatu method yang

    berpotensi untuk membangkitkan kesalahan harus ditangani dengan struktur

    trycatchfinally atau dengan menyatakan bahwa pada method tersebut berpotensi

    menbangkitkan kesalahan.

    Struktur dari blok try.catch.finally adalah sebagai berikut:

    try

    {

    .statement yang berpeluang untuk terjadinya kesalahan.

    }

    catch(classexception pengenal)

    {

    .statement yang akan dikerjakan apabila kesalahan terjadi.

    }

    finally

    {

    .statement yang akan dikerjakan baik apabila kesalahan terjadi maupun tidak.

    }

    Jika dikehendaki untuk melakukan aksi yang berbeda untuk setiap tipe eksepsi yang

    muncul, maka blok trycatch tersebut dapat ditulis sebagai berikut:

    try

    {

    .statement yang berpeluang untuk terjadinya kesalahan.

    }

    catch(classexception1 pengenal)

    {

    .statement yang akan dikerjakan apabila kesalahan 1 terjadi.

  • 12

    }

    catch(classexception2 pengenal)

    {

    .statement yang akan dikerjakan baik apabila kesalahan 2 terjadi.

    }

    .

    2.2.4 GUI (Graphical User Interface)

    Class dapat digambarkan sebagai cetakan untuk membuat object dengan karakteristik

    sesuai yang dimiliki oleh class tersebut. Class menyediakan kemampuan bagi object-

    object yang dibangun dari class tersebut. Class dapat dipandang sebagai gambaran umum

    dari sebuah object, sedangkan bentuk aktual object dalam java disebut instance.

    Analoginya, andaikan Class sebagai gambar rancangan sebuah gedung, maka instance

    adalah gedung yang telah dibangun berdasarkan rancangan tersebut. Jadi sebenarnya

    tidak ada perbedaan antara Object dan Instance, hanya saja object merupakan definisi

    umum sedangkan instance merupakan sebutan bagi object yang nyata terlihat. Keduanya

    mengacu pada benda yang sama.

    Dalam java, class dikelompokkan berdasarkan fungsi umumnya, misalkan untuk

    membuat program berbasis GUI (Graphical User Interface), atau fungsi lainnya.

    Kelompok class ini disebut class library. Pemrograman tidak perlu repot membuat class

    library, karena development kit yang ada telah membuat library sedemikian rupa,

    sehingga mudah digunakan. Misalnya library java.awt untuk memprograman GUI.

    Dengan adanya program berbasis grafis ini, mengolah database akan menjadi lebih

    mudah, disamping tampilannya lebih menarik. Beberapa bagian dasar GUI adalah:

    1. JLabel

    JLabel namaLabel = new JLabel(label);

    Sama seperti namanya, class ini akan membuat suatu label pada sebuah window.

    2. JTextField

    JTextField namaText = new JTextField(jumlah_karakter_max);

    JTextField adalah suatu class yang akan memudahkan kita dalam membentuk isian text

    pada suatu frame.

  • 13

    3. JButton

    JButton namaButton = new JButton(label_pada_button);

    JButton adalah suatu class yang akan membantu kita membentuk objek tombol.

    4. JFrame

    JFrame sebenarnya adalah suatu class yang disediakan untuk memudahkan kita dalam

    membuat suatu window.

    5. JInternalFrame

    Sama halnya dengan JFrame, JInternalFrame akan membantu kita dalam membuat

    window. Bedanya JInternalFrame akan berada didalam suatu window lainnya, jadi tidak

    dapat berdiri sendiri seperti JFrame.

    6. JMenu

    JMenu akan membuat objek menu bar pada sebuah frame.

    7. ActionListener

    ActionListener bukan merupakan suatu objek, melainkan sebuah class yang akan

    menampung aksi-aksi dari sebuah objek (yang banyak dipakai disini adalah tombol).

    Aksi-aksi itu akan ditampung dalam sebuah metode bernama ActionPerformed. Jadi bila

    kita menggunakan ActionListener, maka kita harus menyertakan metode

    ActionPerformed pada class tersebut.

    8. Container

    Container.setLayout(new GridLayout(jumlah_baris, jumlah_kolom));

    Container akan membantu kita dalam mengatur penempatan objek seperti text, label,

    ataupun tombol. Ada banyak cara yang disediakan untuk mengatur penempatan objek.

    GridLayout akan membagi sebuah window menjadi beberapa baris dan kolom sesuai

    yang kita masukkan pada saat setLayout. Dan penempatan objeknya dimulai dari kiri atas

    lalu kekanan.

    Empat hal utama untuk membangun program berbasis GUI menggunakan swing yaitu:

    1. Menciptakan dan konfigurasi component

    Untuk menciptakan component GUI sama seperti membuat object lain dalam java,

    dengan menjalankan constructor. Setiap component dapat dilihat karakteristiknya dalam

    dokumentasi java.

    2. Menambahkan component pada container

  • 14

    Setiap component dalam java harus diletakkan di dalam container. Container dalam java

    terdapat di java.awt.Container. Container yang sering digunakan yaitu JFrame dan

    JDialog. Untuk program berbasis web, dapat menggunakan container Applet dalam class

    java.applet.Applet.

    Ketiga container tersebut merupakan top level-container, yaitu container dasar yang

    menjadi tempat dasar bagi component dan container yang lain. Selain tiga di atas masih

    ada beberapa container lain seperti JPanel.

    3. Mengatur tata letak component

    Setelah meletakkan component dalam container, maka component dapat diatur ukuran

    dan tata letaknya. Selain itu dapat juga diatur warna dan bentuknya. Untuk mengatur lay-

    out, object yang digunakan yaitu LayoutManager.

    4. Menangani kejadian (event-handling) yang dihasilkan oleh component

    Component seringkali mengalami kejadian seperti button diklik, frame digeser, dan lain

    sebagainya. Kejadian merupakan hasil interaksi user dan program. Kejadian ini lebih

    lanjut disebut dengan event. Agar program dapat merespon event, maka perlu adanya

    event-listener.

    2.3 MySQL

    MySQL adalah suatu database server yang sangat terkenal didunia dan merupakan Open

    Source SQL database(database SQL yang open source ). MySQL mendukung berbagai

    platform, serta kecepatan aksesnya cukup bisa diandalkan. Selain itu, kemudahannya

    dalam integrasi ke berbagai aplikasi juga membantu dalam mengembangkan sistem

    aplikasi. Pemakai-pun tidak harus membayar untuk bisa menggunakannya, karena paket

    program ini dapat digunakan secara bebas.

    2.3.1 Sejarah MySQL

    MySQL dikembangkan oleh sebuah perusahaan Swedia yang bernama MySQL AB, yang

    pada saat itu bernama T.c.X DataKonsult AB, dimulai sejak tahun 1994-1995. Tujuan

    mula-mula perusahaan tersebut membuat MySQL untuk mengembangkan aplikasi web

    yang dimiliki kliennya.

  • 15

    Saat itu Michael Widenius atauMonty, pengembang satu-satunya MySQL di T.c.X,

    memiliki aplikasi UNIREG dan rutin ISAM yang dibuat sendiri dan sedang mencari

    interface (antarmuka) SQL untuk dijalankan pada MySQL. Mula-mula T.c.X

    menggunakan mSQL atau mini SQL. Namun menurut Michael Widenius mSQL tidaklah

    terlalu cepat dan fleksible. Bahkan versi pertamanya tidak memiliki index. Disebabkan

    hal tersebut, ia mernutuskan untuk membuat sendiri mesin SQL yang interfacenya seperti

    mSQL, tetapi memiliki kemampuan yang lebih dalam memenuhi kebutuhan

    dibandingkan jika menggunakan mSQL. MySQL versi 1.0dirilis pada bulan Mei1996

    secara terbatas kepada empat orang temannya. Baru kemudian dibulan Oktober, versi

    3.1.1.0 dilepas kemasyarakat umum.

    Nama MySQL (baca:mai es kju el) tidak jelas diambil dari mana. Ada yang bilang

    diambil dari huruf pertama dan terakhir nama panggilan Michael Widenius Monty

    kemudian ada yang bilang kat My diambil dari nama putri Monty. Namun sebenarnya,

    sourcecode MySQL dilihat prefiks my memang sudah terdapat dimana-mana, prefiks ini

    sering menjadi prefiks umum bila seseorang membuat kode costum tersendiri untuk suatu

    program.

    2.3.2 STRUCTURE QUERY LANGUAGE ( S Q L )

    Jenis SQL

    1. Interactive : langsung dapat dioperasikan.

    2. Embedded : disisipkan ke dalam sebuah program ( Cobol, C, Fortran ).

    Pengelompokan Statement SQL

    1. Data Definition Language ( DDL )

    DATABASE

    TABLE

    *CREATE *DROP

    INDEX

    VIEW

    *ALTER TABLE

    2. Data Manipulation Language ( DML )

  • 16

    INSERT, SELECT, UPDATE, DELETE

    3. Data Access

    GRANT, REVOKE

    4. Data Integrity

    RECOVER TABLE

    5. Auxiliary

    UNLOAD, LOAD, RENAME COLUMN

    2.4 Unified Modeling Language (UML)

    Saat ini piranti lunak semakin luas dan besar lingkupnya, sehingga tidak bisa lagi dibuat

    asal-asalan.Piranti lunak saat ini seharusnya dirancang dengan memperhatikan hal-hal

    seperti scalability, security, dan eksekusi yang robust walaupun dalam kondisi yang sulit.

    Selain itu arsitekturnya harus didefinisikan dengan jelas, agar bug mudah ditemukan dan

    diperbaiki, bahkan oleh orang lain selain programmer aslinya. Keuntungan lain dari

    perencanaan arsitektur yang matang adalah dimungkinkannya penggunaan kembali

    modul atau komponen untuk aplikasi piranti lunak lain yang membutuhkan fungsionalitas

    yang sama.

    Pemodelan (modeling) adalah proses merancang piranti lunak sebelum melakukan

    pengkodean (coding). Model piranti lunak dapat dianalogikan seperti pembuatan

    blueprint pada pembangunan gedung. Membuat model dari sebuah sistem yang kompleks

    sangatlah penting karena kita tidak dapat memahami sistem semacam itu secara

    menyeluruh. Semakin komplek sebuah sistem, semakin penting pula penggunaan teknik

    pemodelan yang baik. Dengan menggunakan model, diharapkan pengembangan piranti

    lunak dapat memenuhi semua kebutuhan pengguna dengan lengkap dan tepat, termasuk

    faktor-faktor seperti scalability, robustness, security, dan sebagainya.

    Kesuksesan suatu pemodelan piranti lunak ditentukan oleh tiga unsur, yang kemudian

    terkenal dengan sebuan segitiga sukses (the triangle for success). Ketiga unsur tersebut

    adalah metode

    pemodelan (notation), proses (process) dan tool yang digunakan. Memahami notasi

    pemodelan tanpa mengetahui cara pemakaian yang sebenarnya (proses) akan membuat

    proyek gagal. Dan pemahaman terhadap metode pemodelan dan proses disempurnakan

  • 17

    dengan penggunaan tool yang tepat.

    2.4.1 Apa itu UML

    Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah menjadi standar

    dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti

    lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Dengan

    menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak,

    dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan

    apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga

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

    prosedural dalam VB atau C. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi

    dan syntax/semantik.

    Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai

    diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax

    mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML

    terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD

    (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar

    Jacobson OOSE (Object-Oriented Software Engineering).

    2.4.2 Sejarah UML

    Sejarah UML sendiri cukup panjang. Sampai era tahun 1990 seperti kita ketahui puluhan

    metodologi pemodelan berorientasi objek telah bermunculan di dunia. Diantaranya

    adalah: metodologi booch [1], metodologi coad [2], metodologi OOSE [3], metodologi

    OMT [4], metodologi shlaer-mellor [5], metodologi wirfs-brock [6], dsb. Masa itu

    terkenal dengan masa perang metodologi (method war) dalam pendesainan berorientasi

    objek. Masing-masing metodologi membawa notasi sendiri-sendiri, yang mengakibatkan

    timbul masalah baru apabila kita bekerjasama dengan group/perusahaan lain yang

    menggunakan metodologi yang berlainan.

  • 18

    Dimulai pada bulan Oktober 1994 Booch, Rumbaugh dan Jacobson, yang merupakan tiga

    tokoh yang boleh dikata metodologinya banyak digunakan mempelopori usaha untuk

    penyatuan metodologi pendesainan berorientasi objek. Pada tahun 1995 direlease draft

    pertama dari UML (versi 0.8). Sejak tahun 1996 pengembangan tersebut dikoordinasikan

    oleh Object Management Group (OMG http://www.omg.org). Tahun 1997 UML

    versi 1.1 muncul, dan saat ini versi terbaru adalah versi 1.5 yang dirilis bulan Maret 2003.

    Booch, Rumbaugh dan Jacobson menyusun tiga buku serial tentang UML pada tahun

    1999 [7] [8] [9]. Sejak saat itulah UML telah menjelma menjadi standar bahasa

    pemodelan untuk aplikasi berorientasi objek.

    2.4.3 Konsepsi Dasar UML

    Dari berbagai penjelasan rumit yang terdapat di dokumen dan buku-buku UML.

    Sebenarnya konsepsi dasar UML bisa kita rangkumkan dalam gambar 2.3.

    Gambar 2.3 Konsepsi Dasar UML

    Abstraksi konsep dasar UML yang terdiri dari structural classification, dynamic

    behavior, dan model management, bisa kita pahami dengan mudah apabila kita melihat

    gambar diatas dari Diagrams. Main concepts bisa kita pandang sebagai term yang akan

    muncul pada saat kita membuat

    diagram. Dan view adalah kategori dari diagaram tersebut.

    Untuk menguasai UML, sebenarnya cukup dua hal yang harus kita perhatikan:

  • 19

    1. Menguasai pembuatan diagram UML

    2. Menguasai langkah-langkah dalam analisa dan pengembangan dengan UML

    Seperti juga tercantum pada gambar diatas UML mendefinisikan diagram-diagram

    sebagai berikut:

    1. use case diagram

    2. class diagram

    3. statechart diagram

    4. activity diagram

    5. sequence diagram

    2.4.3.1 Pengertian Use Case Diagram

    Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem.

    Yang ditekankan adalah apa yang diperbuat sistem, dan bukan bagaimana. Sebuah

    use case merepresentasikan sebuah interaksi antara aktor dengan sistem. Use case

    merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah

    daftar belanja, dan sebagainya. Seorang/sebuah aktor adalah sebuah entitas manusia atau

    mesin yang berinteraksi dengan system untuk melakukan pekerjaan-pekerjaan tertentu.

    Use case diagram dapat sangat membantu bila kita sedang menyusun requirement sebuah

    sistem, mengkomunikasikan rancangan dengan klien, dan merancang test case untuk

    semua feature yang ada pada sistem. Sebuah use case dapat meng-include fungsionalitas

    use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa

    use case yang di-include akan dipanggil setiap kali use case yang meng-include

    dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case

    lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar

    fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain

    dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case

    menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain.

    2.4.3.2 Pengertian Class Diagram

  • 20

    Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek

    dan merupakan inti dari pengembangan dan desain berorientasi objek. Class

    menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan

    untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan

    struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti

    containment, pewarisan, asosiasi, dan lain-lain.

    Class memiliki tiga area pokok :

    1. Nama (dan stereotype)

    2. Atribut

    3. Metoda

    Atribut dan metoda dapat memiliki salah satu sifat berikut :

    1. Private, tidak dapat dipanggil dari luar class yang bersangkutan

    2. Protected, hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak

    yang mewarisinya

    3. Public, dapat dipanggil oleh siapa saja

    Class dapat merupakan implementasi dari sebuah interface, yaitu class abstrak yang

    hanya memiliki metoda. Interface tidak dapat langsung diinstansiasikan, tetapi harus

    diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung

    resolusi metoda pada saat run-time.

    Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package.

    Kita juga dapat membuat diagram yang terdiri atas package.

    Hubungan Antar Class

    1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang

    memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain.

    Panah navigability menunjukkan arah query antar class.

    2. Agregasi, yaitu hubungan yang menyatakan bagian (terdiri atas..).

    3. Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class

    lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan

    fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Kebalikan dari

    pewarisan adalah generalisasi.

  • 21

    4. Hubungan dinamis, yaitu rangkaian pesan (message) yang di-passing dari satu

    class kepada class lain. Hubungan dinamis dapat digambarkan dengan menggunakan

    sequence diagram yang akan dijelaskan kemudian.

    Gambar 2.5 Contoh Class Diagram

    2.4.3.3 Pengertian Statechart Diagram

    Statechart diagram menggambarkan transisi dan perubahan keadaan (dari satu state ke

    state lainnya) suatu objek pada sistem sebagai akibat dari stimuli yang diterima. Pada

    umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki

    lebih dari satu statechart diagram).

    Dalam UML, state digambarkan berbentuk segiempat dengan sudut membulat dan

    memiliki nama sesuai kondisinya saat itu. Transisi antar state umumnya memiliki kondisi

    guard yang merupakan syarat terjadinya transisi yang bersangkutan, dituliskan dalam

    kurung siku. Action yang dilakukan sebagai akibat dari event tertentu dituliskan dengan

    diawali garis miring.

    Titik awal dan akhir digambarkan berbentuk lingkaran berwarna penuh dan berwarna

    setengah .

  • 22

    Gambar 2.6 Contoh Statechart Diagram

    2.4.3.4 Pengertian Activity Diagram

    Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang

    dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan

    bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel

    yang mungkin terjadi pada beberapa eksekusi.

    Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah

    action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal

    processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal

    sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan

    proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat

    direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang

    berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem

    untuk melakukan aktivitas.

    Sama seperti state, standar UML menggunakan segiempat dengan sudut membulat untuk

    menggambarkan aktivitas. Decision digunakan untuk menggambarkan behaviour pada

    kondisi tertentu. Untuk mengilustrasikan proses-proses paralel (fork dan join) digunakan

    titik sinkronisasi yang dapat berupa titik, garis horizontal atau vertikal. Activity diagram

    dapat dibagi menjadi beberapa object swimlane untuk menggambarkan objek mana yang

    bertanggung jawab untuk aktivitas tertentu.

  • 23

    Gambar 2.7 Contoh Activity Diagram

    2.4.3.5 Pengertian Sequence Diagram

    Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem

    (termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan

    terhadap waktu. Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi

    horizontal (objek-objek yang terkait). Sequence diagram biasa digunakan untuk

    menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai

    respons dari sebuah event untuk menghasilkan output tertentu. Diawali dari apa yang

    men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi secara internal

    dan output apa yang dihasilkan. Masing-masing objek, termasuk aktor, memiliki lifeline

    vertikal.

    Message digambarkan sebagai garis berpanah dari satu objek ke objek lainnya. Pada fase

    desain berikutnya, message akan dipetakan menjadi operasi/metoda dari class. Activation

    bar menunjukkan lamanya eksekusi sebuah proses, biasanya diawali dengan diterimanya

    sebuah message.

  • 24

    Untuk objek-objek yang memiliki sifat khusus, standar UML mendefinisikan icon khusus

    untuk

    objek boundary, controller dan persistent entity.

    Contoh sequence diagram :

    Gambar 2.8 Contoh Sequence Diagram

    2.5 AT Command

    AT Command berasal dari kata attention command. Attention berarti peringatan atau

    perhatian, command berarti perintah atau instruksi. Maksudnya ialah perintah atau

    instruksi yang dikenakan pada modem atau handset.

    AT command diperkenalkan oleh Dennis Hayes pada tahun 1977 yang dikenal dengan

    smart modem. Modem bekerja pada baud rate 300 bps. Modem ini terdiri dari sederet

    instruksi yang mengatur komunikasi dan fitur-fitur di dalamnya. Salah satu contoh

    sederhana penggunaan AT Command misalnya komunikasi dua buah computer

    menggunakan port COM(port R-232). AT Command mempunyai dua mode, yaitu mode

    data (data mode) dan mode perintah (command mode). Untuk berpindah dari mode data

    menuju mode perintah dipisahkan oleh tiga tanda plus dan jeda selama satu detik.

    Dalam perkembangannya AT Command banyak diterapkan pada mobile handset (telepon

    selular). Instruksi dasar AT Command hamper digunakan hamper oleh semua merk

  • 25

    telepon selular. Namun demikian, ada beberapa instruksi yang ditambahkan sendiri pada

    handset tersebut oleh vendor pembuatnya.

    Penggunaan AT Command pada handset telah mempermudah untuk mengetahui segala

    informasi yang terdapat pada handset tersebut. Dengan menggunakan instruksi tertentu

    kita dapat mengetahui merk, nomor imei dan lain lain. Selain itu dengan AT Command

    kita bisa menyeting instruksi atau mengaktifkan instruksi pada handset untuk melakukan

    fungsi tertentu, misalnya melakukan panggilan, mengirim sms, dan sebagainya. Perlu

    diketahui masing-masing vendor handset biasanya menyertakan AT Command yang

    mendukung produk tersebut.

    2.5.1 AT Command dan Hyper Terminal

    Mengakses AT Command melalui Hyperterminal sangat mudah dilakukan. Hal pertama

    yang harus dilakukan adalah memastikan komputer dan handset telah terhubung melalui

    port COM(menggunakan kabel R 232) atau melalui COM virtual pada windows

    (biasanya menggunakan kabel USB sebagai port COM, khusus penggunaan kabel USB

    pastikan bahwa driver kabel tersebut telah terinstal).

    Pada tabel 2.1 dapat kita lihat sebagian dari perintah-perintah AT command yang akan

    digunakan pada aplikasi yang akan dibuat.

    Tabel 2.1 Perintah dasar AT Command

    AT Command Keterangan

    AT Mengecek apakah Handphone telah terhubung

    AT+CMGF Untuk menetapkan format mode dari terminal

    AT+CSCS Untuk menetapkan jenis encoding

    AT+CNMI Untuk mendeteksi pesan SMS baru masuk secara

    otomatis

    AT+CMGL Membuka daftar SMS yang ada pada SIM Card

    AT+CMGS Mengirim pesan SMS

    AT+CMGR Membaca pesan SMS

    AT+CMGD Menghapus pasan SMS

    ATE1 Mengatur ECHO

    ATV1 Mengatur input dan output berupa naskah

    AT+CGMI Mengecek Merek HP

    AT+CGMM Mengecek Seri HP

    AT+CGMR Mengecek Versi Keluaran HP

    AT+CBC Mengecek Baterai

  • 26

    AT Command Keterangan

    AT+CSQ Mengecek Kualitas Sinyal

    AT+CCLK? Mengecek Jam (waktu) pada HP

    AT+CALM= Mengecek Suara/dering HP saat di Telepon (ada Telepon

    Masuk)

    n adalah adalah angka yang menunjukkan jenis dering

    0 = berdering

    1 dan 2 = Silent (Diam)

    AT^SCID Mengecek ID SIM CARD

    AT+CGSN Mengecek Nomor IMEI

    AT+CLIP=1 Menampilkan nomor telepon pemanggil

    AT+CLCC Menampilkan nomor telepon yang sedang memanggil

    AT+COPN Menampilkan Nama Sumua Operator di dunia

    AT+COPS? Menampilkan nama operator dari SIM yang digunakan

    AT+CPBR= Membaca nomor telepon yang disimpan pada buku

    telepon (SIM CARD)

    n adalah nomor urut penyimpanan

    AT+CPMS= Mengatur Memori dari HP

    md adalah memori yang digunakan

    ME = Memori HP

    SM = Memori SIM CARD

  • 27

    BAB III

    PERANCANGAN DAN IMPLEMENTASI

    Pada bab ini akan dibahas bagaimana merancang dan membangun sebuah Aplikasi

    Penjualan Voucher dan Pulsa Elektrik pada Perluasan Cabang CV Dian Mulya dengan

    menggunakan Java 2 Standart Edition, Netbeans IDE 6.0 dan MySQL.

    3.1. Perancangan Sistem Menggunakan UML

    Perancangan sistem pada aplikasi ini digunakan dengan menggunakan Unified

    Modelling Language (UML). Perancangan model sistem pada aplikasi ini digambarkan

    melalui Use Case Diagram, Class Diagram, Sequence Diagram dan Activity Diagram.

    3.1.1 Use Case Diagram

    Use Case Diagram digunakan untuk menggambarkan fungsionalitas yang diharapkan

    dari sebuah sistem dan mendeskripsikan fungsi sebuah sistem dari sudut pandang

    pengguna sistem.Pada diagram ini terdapat tiga aktor yang merupakan pengguna sistem,

    yaitu customer, karyawan, dan aplikasi. Customer sebagai aktor yang melakukan

    transaksi pembelian, memiliki use case melakukan transaksi pembelian lalu memberikan

    nomor telepon selular dan nominal pulsa yang akan dibeli. Aktor karyawan memiliki use

    case memasukkan nomor telepon dan nominal pulsa dari customer ke aplikasi.

    Selanjutnya aplikasi penjualan mengirimkan SMS ke provider penyedia pulsa elektrik

    dan memberikan status pengiriman pulsa elektrik atau pemberitahuan stok voucher jika

    yang dibeli adalah voucher kepada aktor karyawan. Setelah itu aktor karyawan n

    memeberikan status pengiriman pulsa elektrik kepada customer atau memberikan

    voucher kepada customer.

  • 28

    Gambar 3.1 Use Case Diagram

    3.1.2 Class Diagram

    Class Diagram digunakan untuk menggambarkan keadaan (atribut/properti) suatu sistem,

    sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi).

    Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek

    dan merupakan inti dari pengembangan dan desain berorientasi objek. Pada gambar 3.2

    terdapat Class Petugas, Class Penjualan_Pulsa_Elektrik, Class Pulsa_Elektrik, Class

    Voucher dan Class Penjualan_Voucher.

  • 29

    Gambar 3.2 Class Diagram

    Class Petugas memiliki atribut berupa id_petugas, nama_petugas, pswd, dan hak. Class

    ini memiliki operasi berupa melakukan absensi, transaksi penjualan pulsa elektrik, dan

    transaksi penjualan voucher. Class Penjualan_Pulsa_elektrik memiliki atribut berupa

    faktur, no_hp, id_provider, harga_beli, harga_jual, tanggal, status, dan id_petugas. Class

    ini memiliki operasi berupa mengurangi saldo pulsa elektrik. Class Pulsa_elektrik

    memiliki atribut id_operator, nama, harga_beli, harga_jual, harga_pulsa, dan kode_isi.

    Class Penjualan_Voucher memiliki atribut berupa no_faktur, total, tanggal, id_petugas.

    Class ini memiliki operasi berupa mengurangi stok. Class Voucher memiliki atribut

    id_barang, nama, harga_beli, harga_jual, dan stok.Pada gambar 3.2 petugas dapat

    memilih antara melakukan penjualan voucher atau penjualan pulsa elektrik.

  • 30

    3.1.3 Sequence Diagram

    Gambar 3.3 Sequence Diagram

    Sequence diagram mendokumentasikan komunikasi atau interaksi dari aktor customer,

    karyawan, dan aplikasi. Objek karyawan akan login terlebih dahulu sebagai absensi

    seteleh itu objek aplikasi akan mengecek username, password, dan hak akses dar

    karyawan. Aktor customer berinteraksi dengan objek karyawan dengan melakukan

    transaksi pembelian dan memberikan nomor telepon selular dan jumlah nominal pulsa

    yang akan dibeli. Objek karyawan akan memasukkan nomor telepon selular dan nominal

    pulsa yang akan dibeli ke aplikasi, Lalu objek aplikasi penjualan mengirimkan SMS ke

    provider penyedia pulsa elektrik dan memberikan status pengiriman pulsa elektrik kepada

    objek karyawan setelah itu objek karyawan akan memberikan laporan status pengiriman

    pulsa elektrik atau memberikan voucher jika customer membeli voucher.

    3.1.4 Activity Diagram

    Activity diagram digunakan untuk menggambarkan proses paralel yang mungkin terjadi

    pada beberapa eksekusi. Aktifitas awal dari proses ini dimulai oleh customer dengan

    melakukan transaksi pembelian kepada karyawan, dan memberikan nomor telepon selular

    dan jumlah pulsa yang ingin dibeli, kemudian karyawan menginput nomor telepon selular

    dan jumlah pulsa yang akan dibeli ke aplikasi. Selanjutnya aplikasi penjualan

  • 31

    mengirimkan SMS ke provider penyedia pulsa elektrik dan memberikan status

    pengiriman pulsa elektrik atau informasi mengenai stok voucher. Setelah itu karyawan

    memberikan laporan pengiriman pulsa elektrik atau memberikan voucher jika yang dibeli

    adalah voucher. Lalu customer menerima pulsa elektrik atau voucher yang dipesan.

    Gambar 3.4 Activity Diagram

    3.2 Perancangan Hardware

    Untuk membuat dan mengembangkan aplikasi ini, penulis menggunakan spesifikasi

    perangkat lunak dan perangkat keras sebagai berikut.

    A. Perangkat Lunak

    Spesifikasi perangkat lunak yang digunakan untuk membuat aplikasi ini adalah sebagai

    berikut :

  • 32

    1. Windows XP SP 2 sebagai sistem operasi.

    2. Java NetBeans IDE 6.1 sebagai perangkat lunak program Java.

    3. MySQL sebagai server database.

    4. MySQL ODBC 3.51 Driver sebagai konektor Java dan MySQL.

    B. Perangkat Keras

    Spesifikasi perangkat keras yang digunakan untuk mengembangkan dan menguji coba

    aplikasi ini adalah sebgai berikut :

    1. Prosesor Intel Pentium 4 2,4 GHz.

    2. Memori V-Gen DDR-SDRAM 512 Mb.

    4. Hardisk Maxtor 80 Gb.

    5. Monitor LCD 17 Advance.

    6. Mouse dan Keyboard.

    7. Kabel Data Sony Ericsson T610.

    6. HandPhone Sony Ericsson T610

    Gambar 3.5 Perancangan Hardware

    3.3 Perancangan Aplikasi

    Perancangan aplikasi ini terdiri dari perancangan struktur database dan perancangan input

    aplikasi penjualan pulsa elektrik. Berikut ini adalah perancangannya.

  • 33

    3.3.1 Rancangan Struktur Database

    Untuk menjelaskan hasil yang diinginkan dan menghindari kerangkapan data, aplikasi ini

    menggunakan satu database yaitu database db_dian_mulya yang terdiri dari 8 tabel

    relasional, yaitu tabel tb_petugas, tb_absensi, tb_operator, tb_jual_pulsa_elektrik,

    tb_sisa_pulsa, tb_barang, tb_detail_jual, tb_jual.

    A. Tabel tb_petugas

    Digunakan untuk tempat penyimpanan data Petugas. Struktur tabelnya terdiri dari

    beberapa field, yaitu :

    Tabel 3.1 Struktur Tabel tb_petugas

    Nama Field Jenis

    Field Lebar

    Keterangan

    Id_petugas Char 4 Primari Key

    nama Varchar 45 Nama petugas

    pswd Varchar 45 Password buat login

    Hak Varchar 10 Tingkatan petugas (user atau admin)

    B. Tabel tb_absensi

    Digunakan untuk tempat menyimpan data absensi pegawai. Strukturnya terdiri dari

    beberapa field yaitu :

    Tabel 3.2 Struktur Tabel tb_absensi

    Nama Field Jenis

    Field Lebar

    Keterangan

    id_petugas Char 4 Foreign Key

    tanggal Varchar 20 Tanggal absensi

    jam_masuk Varchar 10 Jam pada saat login aplikasi

    jam_keluar Varchar 10 Jam pada saat keluar aplikasi

    C. Tabel tb_operator

    Digunakan untuk tempat penyimpanan data provider. Struktur tabelnya terdiri dari

    beberapa field, yaitu :

  • 34

    Tabel 3.3 Struktur Tabel tb_operator

    Nama Field Jenis

    Field Lebar

    Keterangan

    Id_operator Char 4 Primary Key

    Nama_operator Varchar 20 Nama operator (Simpati, IM3 ,dll)

    Harga_beli Integer 7 Harga beli pulsa elektrik

    Harga_jual Integer 7 Harga jual pulsa elektrik

    Harga_pulsa Integer 7 Nominal pulsa elektrik

    Kode_isi Varchar 20

    Kode format untuk SMS (SM20)

    SM = Kode untuk simpati

    20 = nominal pulsa

    D. Tabel tb_jual_pulsa_elektrik

    Digunakan untuk tempat penyimpanan data transaksi penjualan pulsa elektrik. Struktur

    tabelnya terdiri dari beberapa field, yaitu :

    Tabel 3.4 Struktur Tabel tb_jual_pulsa_elektrik

    Nama Field Jenis

    Field Lebar

    Keterangan

    faktur Char 8 Primary Key

    no_hp Varchar 16 Nomor telepon selular pembeli

    id_operator Char 4 Foreign Key

    harga_beli Integer 7 Harga beli pulsa elektrik

    harga_jual Integer 7 Harga jual pulsa elektrik

    tanggal Varchar 20 Tanggal transaksi penjualan pulsa

    status Varchar 20 Status pengiriman pulsa

    id_petugas Char 4 Foreign Key

    E. Tabel tb_sisa_pulsa

    Digunakan untuk tempat penyimpanan data saldo pulsa elektrik. Struktur tabelnya terdiri

    dari satu field, yaitu :

  • 35

    Tabel 3.5 Struktur Tabel tb_sisa_pulsa

    Nama Field Jenis

    Field Lebar

    Keterangan

    sisa_pulsa Integer 12 Saldo pulsa elektrik

    F. Tabel tb_barang

    Digunakan untuk menyimpan data barang atau voucher yang akan dijual. Struktur

    tabelnya terdiri dari beberapa field, yaitu :

    Tabel 3.6 Struktur Tabel tb_barang

    Nama Field Jenis

    Field Lebar

    Keterangan

    id_barang Char 4 Primary Key

    nama Varchar 45 Nama untuk voucher cth Im3 10.000

    harga_beli Integer 7 Harga beli voucher

    harga_jual integer 7 Harga

    stok integer 7 Stok barang yang ada

    G. Tabel tb_jual

    digunakan untuk menyimpan data transaksi pembelian voucher. Struktur tabelnya terdiri

    dari beberapa field, yaitu :

    Tabel 3.7 Struktur Tabel tb_jual

    Nama Field Jenis

    Field Lebar

    Keterangan

    no_faktur Char 8 Primary Key

    total Integer 7 Total harga dari voucher yang dibeli

    tanggal Varchar 40 Tanggal transaksi pembelian

    id_petugas Char 4 Foreign Key

    H. Tabel tb_detail_jual

  • 36

    digunakan untuk tempat penyimpanan detail dari penjualan voucher, dihitung per faktur

    dapat lebih dari beberapa barang atau voucher. Struktur tabelnya terdiri dari beberapa

    field, yaitu :

    Tabel 3.8 Struktur Tabel tb_detail_jual

    Nama Field Jenis

    Field Lebar

    Keterangan

    no_faktur Char 8 Foreign Key

    nama Varchar 45 Nama untuk voucher cth Im3 10.000

    jumlah Integer 7 Jumlah voucher yang dibeli

    harga_beli Integer 7 Harga beli barang saat transaksi

    harga_jual Integer 7 Harga jual pada saat transaksi

    Total detail Integer 7 Total harga transaksi

    3.3.2 Rancangan Tampilan Aplikasi

    Perancangan tampilan desain output.

    3.4 Implementasi

    Pada tahap ini penulis memulai pembuatan aplikasi dengan menstransformasikan semua

    rancangan sistem, rancangan database dan rancangan program ke dalam script program

    Java.

    3.4.1 Pembuatan Database

    Setelah melakukan perancangan database, maka penulis membuat database dengan

    menggunakan MySQL 5.0. Berikut ini merupakan langkah langkah dalam pembuatan

    database :

    A. Masuk direktory MySQL yang telah kita install melalui command prompt, setelah itu

    ketikkan mysql u root h localhost p

    B. Masukkan password root untuk dapat melakukan login ke dalam database server.

    (dalam hal ini penulis, password MySQL pada penulis adalah tidak ada)

  • 37

    Gambar 3.16 Prompt Login Database MySQL

    C. Untuk membuat database pulsa digunakan sintax :

    CREATE DATABASE db_dian_mulya;

    D. Untuk menggunakan database yang telah dibuat digunakan sintax :

    USE db_dian_mulya;

    E. Untuk membuat tabel tb_petugas digunakan sintax :

    CREATE TABLE tb_petugas (

    `id_petugas` CHAR(4) NOT NULL,

    `nama` VARCHAR(45) NOT NULL,

    `pswd` VARCHAR(10) NOT NULL,

    `hak` VARCHAR(5) NOT NULL,

    PRIMARY KEY(`id_petugas`)

    )

    F. Untuk membuat tabel tb_operator digunakan sintax :

    CREATE TABLE tb_operator (

    `id_operator` CHAR(4) NOT NULL,

    `nama_operator` VARCHAR(20) NOT NULL,

    `harga_beli` INTEGER UNSIGNED NOT NULL,

    `harga_jual` INTEGER UNSIGNED NOT NULL,

    `harga_pulsa` INTEGER UNSIGNED NOT NULL,

    `kode_isi` VARCHAR(20) NOT NULL,

    PRIMARY KEY(`id_operator`)

    )

  • 38

    G. Untuk membuat tabel tb_barang digunakan sintax :

    CREATE TABLE tb_barang (

    `id_barang` CHAR(4) NOT NULL,

    `nama` VARCHAR(45) NOT NULL,

    `harga_beli` INTEGER UNSIGNED NOT NULL,

    `harga_jual` INTEGER UNSIGNED NOT NULL,

    `stok` INTEGER UNSIGNED NOT NULL,

    PRIMARY KEY(`id_barang`)

    )

    H. Untuk membuat tabel tb_sisa_pulsa digunakan sintax :

    CREATE TABLE tb_sisa_pulsa (

    `sisa_pulsa` int );

    I. Untuk membuat tabel tb_jual_pulsa_elektrik digunakan sintax :

    CREATE TABLE tb_jual_pulsa_elektrik (

    `faktur` CHAR(8) NOT NULL,

    `no_hp` VARCHAR(16) NOT NULL,

    `id_operator` VARCHAR(20) NOT NULL,

    `harga_beli` INTEGER UNSIGNED NOT NULL,

    `harga_jual` INTEGER UNSIGNED NOT NULL,

    `tanggal` VARCHAR(20) NOT NULL,

    `status` VARCHAR(10) NOT NULL,

    `id_petugas` CHAR(4) NOT NULL,

    PRIMARY KEY(`faktur`),

    CONSTRAINT `FK_tb_jual_pulsa_elektrik_1` FOREIGN KEY `FK_tb_jual_pulsa_elektrik_1`

    (`id_petugas`)

    REFERENCES `tb_petugas` (`id_petugas`)

    ON DELETE CASCADE

    ON UPDATE CASCADE,

    CONSTRAINT `FK_tb_jual_pulsa_elektrik_2` FOREIGN KEY `FK_tb_jual_pulsa_elektrik_2`

    (`id_operator`)

    REFERENCES `tb_operator` (`id_operator`)

    ON DELETE CASCADE

    ON UPDATE CASCADE

  • 39

    )

    J. Untuk membuat tabel tb_jual digunakan sintax :

    CREATE TABLE tb_jual (

    `no_faktur` CHAR(8) NOT NULL,

    `total` INTEGER UNSIGNED NOT NULL,

    `tanggal` VARCHAR(40) NOT NULL,

    `id_petugas` CHAR(4) NOT NULL,

    PRIMARY KEY(`no_faktur`),

    CONSTRAINT `FK_tb_jual_1` FOREIGN KEY `FK_tb_jual_1` (`id_petugas`)

    REFERENCES `tb_petugas` (`id_petugas`)

    ON DELETE CASCADE

    ON UPDATE CASCADE

    )

    K. Untuk membuat tabel tb_detail_jual digunakan sintax :

    CREATE TABLE `db_dian_mulya`.`tb_detail_jual` (

    `no_faktur` CHAR(8) NOT NULL,

    `id_barang` CHAR(4) NOT NULL,

    `jumlah` INTEGER UNSIGNED NOT NULL,

    `harga_beli` INTEGER UNSIGNED NOT NULL,

    `harga_jual` INTEGER UNSIGNED NOT NULL,

    `total_detail` INTEGER UNSIGNED NOT NULL,

    CONSTRAINT `FK_tb_detail_jual_1` FOREIGN KEY `FK_tb_detail_jual_1` (`no_faktur`)

    REFERENCES `tb_jual` (`no_faktur`)

    ON DELETE CASCADE

    ON UPDATE CASCADE,

    CONSTRAINT `FK_tb_detail_jual_2` FOREIGN KEY `FK_tb_detail_jual_2` (`id_barang`)

    REFERENCES `tb_barang` (`id_barang`)

    ON DELETE CASCADE

    ON UPDATE CASCADE

    )

    3.4.2 Pembuatan Program

    Untuk pembuatan program digunakan perangkat lunak pemrograman Java J2SDK 1.6.0.

    J2SDK merupakan seperangkat alat pengembangan program Java, yang dapat digunakan

  • 40

    untuk membuat, menguji, mendokumentasikan, dan menjalankan program Java. Sebagai

    alat bantu untuk menuliskan kode pemrograman java digunakan NetBeans IDE 6.1.

    Berikut ini merupakan langkah-langkah pembuatan program Java dengan menggunakan

    program NetBeans IDE 6.1.

    1. Mengaktifkan program NetBeans IDE 6.1 dengan mengklik shortcut program

    NetBeans IDE 6.1 pada desktop.

    Gambar 3.17 Halaman NetBeans IDE 6.1

    2. Untuk membuat project baru pilih menu File New Project. Setelah itu akan muncul

    kotak dialog New Project.

  • 41

    Gambar 3.18 Tampilan New Project

    3. Setelah itu pilih folder Java yang terdapat pada kotak Catagories dan pilih Java

    Appliction pada kotak Project. Selanjutnya klik tombol Next, maka akan muncul kotak

    dialog New Java Application yang berfungsi untuk mengatur nama project, lokasi

    project, dan beberapa pengaturan lainnya.

  • 42

    Gambar 3.19 Tampilan Kotak Dialog New Java Application

    4. Masukkan nama project yang akan dibuat dan klik tombol Finish untuk mengakhiri

    pembuatan project baru. Untuk membuat aplikasi yang akan dibuat terlihat lebih

    menarik dan mudah digunakan, maka aplikasi ini dibuat dengan tampilan GUI

    (Graphical User Interface).

    5. Untuk membuat file berbasis GUI dari aplikasi yang akan dibuat dengan cara

    mengklik pada menu File New File, akan muncul kotak dialog New File. Pada kotak

    Catagories pilih folder Swing GUI Form dan pada kotak File Type pilih Jframe Form.

  • 43

    Gambar 3.20 Tampilan Kotak Dialog New File

    6. Masukkan nama class yang akan dibuat pada kotak Class Name. Selanjutnya klik

    tombol Finish untuk mengakhiri proses pembuatan file baru.

    3.4.3 Penjelasan Kode Program

    Pada tahap ini penulis menjelaskan mengenai kode program yang dibuat dalam penulisan

    ini dengan menggunakan bahasa pemrograman java.

    1. Utama.java

    Program ini merupakan program utama yang dijadikan sebagai frame induk yang berisi

    menu yang dapat memanggil program java lainnya yang dijadikan sebagai frame child.

    Isi dari menu tersebuat adalah menu File dengan submenu Log In, Log Out, dan Keluar,

    menu Data dengan submenu Petugas, Operator dan voucher, menu Transaksi dengan

    submenu Pulsa Elektrik dan Voucher, menu Laporan dengan submenu Laporan Penjualan

    Pulsa Elektrik, Penjualan Voucher, dan Absensi Karyawan.

    Agar setiap menu dapat memanggil program ketika mendapat event klik dari pengguna,

    maka setiap menu akan memanggil method yang berbeda tergantung dari program yang

  • 44

    akan dipanggil. Blok kode program yang berada dalam method tersebut akan memanggil

    program dan menjadikannya form child dalam program utama

    2. koneksi_database.java

    Program ini merupakan program yang berisi kode untuk melakukan koneksi ke database

    server MySQL. Program ini akan dipanggil oleh setiap program yang membutuhkan

    koneksi terhadap database sehingga mengurangi penulisan kode yang sama secara

    berulang-ulang. Konektor yang dipakai untuk menghubungkan program dengan database

    server MySQL menggunakan program JConnector.

    3. Login.java

    Program ini digunakan untuk menjaga keamanan data, sehingga hanya pengguna yang

    mengetahui user dan password yang dapat menggunakan aplikasi ini. Apabila data user

    atau data password yang dimasukkkan salah, maka akan tampil pesan kesalahan dan user

    tidak dapat masuk ke menu utama. Kode program berikut ini digunakan untuk

    autentifikasi user dan juga sebagai absensi pada saat masuk ke aplikasi.

    4. Petugas.java

    Program ini digunakan untuk memasukkan, mengubah, dan menghapus data petugas. Di

    dalam program ini juga terdapat tabel yang manampilkan data petugas.

    5. Operator.java

    Program ini digunakan untuk memasukkan, mengubah, dan menghapus data operator. Di

    dalam program ini juga terdapat tabel yang manampilkan data operator yang ada.

    6. Voucher.java

    Program ini digunakan untuk memasukkan, mengubah, dan menghapus data voucher,

    seperti nama, harga jual, harga beli, stok. Di dalam program ini juga terdapat tabel yang

    manampilkan data voucher yang ada.

    7. Penjualan_Pulsa.java

    Program ini digunakan untuk melakukan transaksi penjualan pulsa elektrik. Dalam

    program ini pengguna hanya memasukkan atau memilih data kedalam aplikasi penjualan

    pulsa elektrik, setelah itu aplikasi akan mengirimkan SMS ke provider penyedia pulsa

    elektrik untuk melakukan transaksi pengiriman pulsa elektrik sesuai dengan jumlah pulsa

    yang akan dibeli.

    8. trans_voucher.java

  • 45

    Program ini digunakan untuk melakukan transaksi penjualan voucher. Dalam program

    ini pengguna hanya memilih data voucher yang akan dibeli, setelah itu aplikasi akan

    mengurangi stok yang ada.

    9. laporan_voucher.java

    Program ini digunakan untuk melihat laporan dari penjualan voucher, berfungsi untuk

    melihat jumlah total penjualan, total pembelian dan total pendapatan. Laporan juga dapat

    dilihat berdasarkan waktu ( harian, bulanan, dan tahunan ) serta dapat dilihat berdasarkan

    petugas, ataupun keduanya.

  • 46

    BAB IV

    HASIL DAN PEMBAHASAN

    4.1 Spesifikasi Perangkat yang Digunakan untuk Pengujian

    Spesifikasi yang digunakan untuk menguji aplikasi ini adalah prosessor Intel Pentium

    4.2 GHz RAM 512 MB, dengan sistem operasi Microsoft Windows XP SP 2, telepon

    selular Sony Ericson type T610 dan kabel data.

    4.2 Pengujian

    Untuk menguji aplikasi ini pertama-tama pengguna menjalankan file yang bernama

    skripsi_bowo, sehingga akan muncul tampilan menu utama seperti pada Gambar 4.1.

    Gambar 4.1 Tampilan Menu Utama

    Setelah itu pengguna aplikasi harus login terlebih dahulu, login digunakan untuk

    keamanan data. Sehingga hanya pengguna yang memiliki izin saja yang dapat masuk ke

    dalam aplikasi. Dalam form login, pengguna harus memasukkan username dan password

    yang sesuai, jika tidak aplikasi akan memblok dan tidak mengizinkan pengguna untuk

    menggunakan aplikasi. Untuk pengguna yang telah login, waktu pada saat masuk akan

    dicatat sebagai absensi. Form login dapat dilihat pada gambar 4.2.

  • 47

    Gambar 4.2 Tampilan Form Login

    Pada aplikasi terdapat 2 hak akses. Hak akses yang pertama adalah sebagai user dan hak

    akses yang kedua adalah sebagai admin. Jika pengguna login sebagai admin maka

    pengguna dapat menambah, mengubah, dan menghapus data. Baik itu data pegawai,

    maupun data pulsa elektrik dan voucher. Juga dapat melihat laporan dari penjualan pulsa

    elektrik, voucher dan juga absensi dari karyawan. Sebagai admin juga dapat melakukan

    transaksi penjualan. Sedangkan jika pengguna login sebagai user maka hanya dapat

    melakukan transaksi penjualan saja.

    Perbedaan menu yang tersedia pada saat login sebagai admin dan user dapat dilihat pada

    gambar 4.3.

    Gambar 4.3 Perbedaan Menu User dan Admin

    Untuk menu data, hanya dapat diakses oleh admin. Pengguna atau admin dapat mengolah

    data yang bisa dikatakan sebagai master data dari aplikasi, seperti data petugas, data

    operator dan data voucher.

    Pada form data petugas, pengguna dapat menambah, merubah dan menghapus data

    petugas. Untuk menambah petugas, pertama klik tombol TAMBAH, lalu masukkan data

  • 48

    seperti nama, password dan pilih hak aksesnya, setelah lengkap klik tombol OK. Untuk

    merubah data petugas klik tombol EDIT lalu klik data yang ingin diedit pada tabel,

    setelah itu ubah datanya dan klik tombol OK untuk menyelesaikan perubahan data. Untuk

    menghapus data klik tombol HAPUS lalu pilih data yang ingin dihapus pada tabel,

    setelah itu klik tombol OK untuk menghapus data yang telah dipilih. Form petugas dapat

    kita lihat pada gambar 4.4.

    Gambar 4.4 Form Admin Petugas

    Data operator digunakan untuk mengolah data penjualan pulsa elektrik yaitu berupa

    nama operator, harga jual, harga beli, harga pulsa dan juga kode pengiriman SMS ke

    penyedia layanan pulsa elektrik.Untuk menambah data operator pertama kita klik tombol

    TAMBAH, lalu masukkan data dengan lengkap setelah itu klik tombol OK untuk

    menyimpan datanya. Untuk merubah data operator klik tombol EDIT lalu klik data yang

    ingin diedit pada tabel, setelah itu ubah datanya dan klik tombol OK untuk

    menyelesaikan perubahan data. Untuk menghapus data klik tombol HAPUS lalu pilih

    data yang ingin dihapus pada tabel, setelah itu klik tombol OK untuk menghapus data

    yang telah dipilih. Form operator dapat dilihat pada gambar 4.5.

  • 49

    Gambar 4.5 Form Admin Operator Pulsa Elektrik

    Untuk data voucher digunakan untuk mengolah data untuk penjualan voucher seperti

    penambahan stok barang dalam hal ini voucher, harga jual, dan harga beli voucher. Untuk

    menambah data voucher pertama kita klik tombol TAMBAH, lalu masukkan data dengan

    lengkap setelah itu klik tombol OK untuk menyimpan datanya. Untuk merubah data

    voucher klik tombol EDIT lalu klik data yang ingin diedit pada tabel, setelah itu ubah

    datanya dan klik tombol OK untuk menyelesaikan perubahan data. Untuk menghapus

    data klik tombol HAPUS lalu pilih data yang ingin dihapus pada tabel, setelah itu klik

    tombol OK untuk menghapus data yang telah dipilih. Form voucher dapat dilihat pada

    gambar 4.6.

  • 50

    Gambar 4.6 Form Admin Voucher

    Untuk melakukan transaksi penjualan pulsa elektrik terdapat menu pada transaksi lalu

    pilih menu pulsa elektrik. Untuk melakukan transaksi pertama pengguna harus

    mengkoneksikan komputer dengan telepon selular menggunakan kabel data setelah itu

    pilih port setting. port komunikasi pada aplikasi dengan default COM4, Bytes per

    seconds dengan default 9600 dan data bitsnya dengan default 8. untuk setiap jenis merk

    telepon selular biasanya memiliki port setting yang berbeda. Setelah itu kita klik tombol

    CONNECT. Jika penyetingan pada port setting benar maka informasi seperti merk HP,

    jenis perangkat, imei dan providernya akan terlihat. Jika tidak maka perlu untuk

    menyeting kembali pilihan pada port setting.

    Setelah terkoneksi pengguna dapat melakukan transaksi penjualan pulsa elektrik dengan

    hanya memilih operator yang digunakan oleh pembeli, pulsa yang ingin dibeli dan nomor

    tujuan pengiriman pulsa elektrik setelah itu klik tombol OK. Semua status pada saat

    pengiriman adalah belum terkirim untuk mengubahnya kita hanya perlu mengklik data

    pada tabel untuk mengubah statusnya, dimana akan muncul form konfirmasi apakah

  • 51

    pulsa telah terkirim. Untuk konfirmasi status pengiriman pulsa dapat mengklik tombol

    CEK COMPLAIN maka aplikasi akan mengirim SMS ke penyedia layanan pulsa

    elektrik, lalu penyedia layanan pulsa elektrik akan mengirim status ke telepon selular

    yang digunakan pengguna aplikasi melalui SMS yang akan masuk ke inbox pengguna.

    Untuk menambah saldo dari deposit pulsa elektrik yang dimiliki pengguna dapat

    mengklik tombol +SALDO. Ketika kita mengklik tombol +SALDO maka akan muncul

    form dimana kita dapat menambahkan saldo dari deposit pulsa yang telah ada. Setelah itu

    kita klik OK.

    Dan untuk mengecek SMS yang masuk dapat mengklik tombol CEK INBOX. Sedangkan

    untuk membaca SMS yang masuk, pengguna hanya perlu mengklik tabel dari SMS

    INBOX, setelah itu isi dari SMS akan terbaca di ISI SMS. Form penjualan pulsa elektrik

    dapat dilihat pada gambar 4.7.

    Gambar 4.7 Form Transaksi Penjualan Pulsa Elektrik

  • 52

    Untuk melakukan transaksi pembelian voucher, pengguna harus masuk ke menu

    transaksi lalu pilih voucher setelah itu akan muncul form untuk transaksi penjualan

    voucher. Disini pengguna hanya memasukkan jenis voucher dan berapa banyak yang

    akan dibeli customer. Pengguna akan dapat melihat total dari transaksi penjualan.

    Transaksi penjualan voucher dapat dilihat pada gambar 4.8.

    Gambar 4.8 Form Transaksi Penjualan Voucher

    Untuk laporan pada aplikasi dibagi menjadi tiga laporan yaitu laporan penjualan pulsa

    elektrik , laporan penjualan voucher, dan laporan absensi karyawan. Saat admin atau

    pengguna ingin melihat laporan penjualan pulsa elektrik, pengguna harus mengklik menu

    laporan lalu memilih menu laporan pulsa elektrik. Disini pengguna melihat data

    penjualan secara keseluruhan pada sebuah tabel. Untuk melihat data yang diinginkan

    pengguna secara terperinci seperti berdasarkan waktu, pengguna dapat mengklik check

    box berdasarkan waktu, setelah itu pengguna diminta memilih pilihan yaitu harian,

    bulanan atau tahunan. Untuk harian kita diminta memasukan tanggal, bulan dan tahun,

    sedangkan untuk bulanan kita diminta untuk memasukkan bulan dan tahun saja, dan

  • 53

    untuk tahunan kita diminta memasukkan tahun yang kita ingin lihat datanya setelah itu

    kita klik tombol LIHAT. Selain berdasarkan waktu, pengguna juga dapat melihat

    berdasarkan operator telepon selular, ataupun berdasarkan keduanya.

    Gambar 4.9 Form Laporan Penjualan Pulsa Elektrik

    Ketika admin atau pengguna ingin melihat laporan penjualan voucher, pengguna

    mengklik menu laporan dan memilih laporan voucher. Pengguna akan melihat form

    laporan dimana data yang ditampilkan adalah data penjualan voucher secara keseluruhan.

    Untuk melihat data yang diinginkan pengguna secara terperinci seperti berdasarkan

    waktu, pengguna dapat mengklik check box berdasarkan waktu, setelah itu pengguna

    diminta memilih pilihan yaitu harian, bulanan atau tahunan. Untuk harian kita diminta

    memasukan tanggal, bulan dan tahun, sedangkan untuk bulanan kita diminta untuk

    memasukkan bulan dan tahun saja, dan untuk tahunan kita diminta memasukkan tahun

    yang kita ingin lihat datanya setelah itu kita klik tombol LIHAT. Selain berdasarkan

    waktu, pengguna juga dapat melihat berdasarkan petugas pada saat transaksi, ataupun

    berdasarkan keduanya.

  • 54

    Gambar 4.10 Form Laporan Penjualan Voucher

    Ketika admin atau pengguna ingin melihat laporan untuk absensi karyawan, pengguna

    mengklik menu laporan dan memilih laporan absensi karyawan. Pengguna akan melihat

    form laporan dimana data yang ditampilkan adalah data absensi secara keseluruhan.

    Untuk melihat data yang diinginkan pengguna secara terperinci seperti berdasarkan

    waktu, pengguna dapat mengklik check box berdasarkan waktu, setelah itu pengguna

    diminta memilih pilihan yaitu harian, bulanan atau tahunan. Untuk harian kita diminta

    memasukan tanggal, bulan dan tahun, sedangkan untuk bulanan kita diminta untuk

    memasukkan bulan dan tahun saja, dan untuk tahunan kita diminta memasukkan tahun

    yang kita ingin lihat datanya setelah itu kita klik tombol LIHAT. Selain berdasarkan

    waktu, pengguna juga dapat melihat berdasarkan nama petugas, ataupun berdasarkan

    keduanya.

  • 55

    Gambar 4.11 Form Laporan Absensi Karyawan

    4.3 Hasil Pengujian

    Berdasarkan pengujian di atas, dapat terlihat bahwa program dapat berjalan. Untuk

    menilai keberhasilan aplikasi yang dibuat, penulis melakukan uji coba program pada 20

    orang pengguna, dimana masing-masing orang diberi pengarahan selama 5 menit untuk

    penggunaan program, setelah itu pengguna mencoba aplikasi yang telah dibuat, dan

    mengisi kuisioner yang diberikan penulis. Penulis mengelompokkan penilaian

    berdasarkan tampilan program, cara penggunaan program, fasilitas pada program,

    kegunaan program dan ketepatan program. Data hasil pengujian dapat dilihat pada Tabel

    4.1.

    Tabel 4.1 Hasil Kuisioner

    Pertanyaan Nama

    1 2 3 4 5 6 7 8 9 10

    Sugeng R N S SS SS S SS SS SS SS SS

    Rizal SS S SS SS S SS SS S S SS

    Dicki S N SS S S SS SS S S S

    Ryan S S SS SS S SS S S S S

    Dandy S N S S N S S N S S

  • 56

    Danu N N N N N S N S S S

    Opik N TS N N N S N N S S

    Markus N TS S S N S S N S S

    Ozi S N S S S SS SS S SS SS

    Izul S N SS SS S SS SS SS SS S

    Aank S N S N S S S S N S

    Dimas S N S N S N S N S N

    Niea SS N SS S SS S SS SS S SS

    Nina S N SS S S N S N SS S

    Kholik S N S N S SS S N S N

    Budi S N S N S N S N S SS

    Faizah SS N SS S S S S SS S SS

    Siti S N SS S S N SS S S SS

    Iwan N TS N TS S TS S S S N

    Dina S N N S S S S S N S

    Untuk mengetahui kesimpulan dari setiap pertanyaan penulis menggunakan sistem bobot,

    pada tabel 4.2 ditetapkan bobot nilai dari setiap jawaban.

    Tabel 4.2 Bobot Nilai

    No Jawaban Bobot

    1. Sangat Setuju (SS) 5

    2. Setuju (S) 4

    3. Normal (N) 3

    4. Tidak Setuju (TS) 2

    5. Sangat Tidak Setuju (STS) 1

    Pada pertanyaan nomor 1 dan 2 pada kuisioner, penulis menitik beratkan kepada tampilan

    program. Pada tabel 4.3 dapat dilihat bobot nilai untuk tampilan program.

    Tabel 4.3 Bobot Nilai Tampilan Program

    Nomor Pertanyaan SS S N TS STS

    1 dan 2 3 15 19 3 0

    Total Bobot 15 60 57 6 0

    Nilai bobot untuk tampilan program adalah :

  • 57

    Berdasarkan bobot yang didapat di atas yaitu 3,45, maka dapat dikatakan bahwa tampilan

    program pada aplikasi adalah baik.

    Pada pertanyaan nomor 3 dan 4 pada kuisioner, penulis menitik beratkan kepada cara

    penggunaan program. Pada tabel 4.4 dapat dilihat bobot nilai untuk cara penggunaan

    program.

    Tabel 4.4 Bobot Nilai Cara penggunaan Program

    Nomor Pertanyaan SS S N TS STS

    3 dan 4 13 16 10 1 0

    Total Bobot 65 64 30 2 0

    Nilai bobot untuk cara penggunaan program adalah :

    Berdasarkan bobot yang didapat di atas yaitu 4,025, maka dapat dikatakan bahwa untuk

    penggunaan program adalah mudah dimengerti.

    Pada pertanyaan nomor 5 dan 6 pada kuisioner, penulis menitik beratkan kepada

    kegunaan program. Pada tabel 4.5 dapat dilihat bobot nilai untuk kegunaan program.

    Tabel 4.5 Bobot Nilai Kegunaan Program

    Nomor Pertanyaan SS S N TS STS

    5 dan 6 8 23 8 1 0

    Total Bobot 40 92 24 2 0

    Nilai bobot untuk cara penggunaan program adalah :

    Berdasarkan bobot yang didapat di atas yaitu 3,95, maka dapat dikatakan bahwa program

    yang dibuat sangat berguna untuk transaksi penjualan pulsa elektrik maupun penjualan

    voucher.

    40 + 92 + 24 + 2

    2 x 20 = 3,95

    65 + 64 + 30 + 2

    2 x 20 = 4,025

    15 + 60 + 57 + 6

    2 x 20 = 3,45

  • 58

    Pada pertanyaan nomor 7 dan 8 pada kuisioner, penulis menitik beratkan kepada fasilitas

    pada program. Pada tabel 4.6 dapat dilihat bobot nilai untuk fasilitas pada program.

    Tabel 4.6 Bobot Nilai Fasilitas Pada Program

    Nomor Pertanyaan SS S N TS STS

    7 dan 8 11 20 9 0 0

    Total Bobot 55 80 27 0 0

    Nilai bobot untuk fasilitas pada program adalah :

    Berdasarkan bobot yang didapat di atas yaitu 4,05, maka dapat dikatakan bahwa fasilitas

    pada program untuk transaksi penjualan pulsa elektrik maupun penjualan voucher adalah

    sangat baik.

    Pada pertanyaan nomor 9 dan 10 pada kuisioner, penulis menitik beratkan kepada

    ketepatan program. Pada tabel 4.7 dapat dilihat bobot nilai untuk ketepatan program.

    Tabel 4.7 Ketepatan Program

    Nomor Pertanyaan SS S N TS STS

    9 dan 10 11 24 5 0 0

    Total Bobot 55 96 15 0 0

    Nilai bobot untuk fasilitas pada program adalah :

    Berdasarkan bobot yang didapat di atas yaitu 4,15, maka dapat dikatakan bahwa

    ketepatan program adalah sangat baik, baik untuk transaksi penjualan maupun pada

    laporan.

    4.4 Perbedaan Antara Sistem Lama dan Sistem Baru yang Telah Diuji

    Sistem baru dalam penjualan pulsa elektrik dan voucher dibuat untuk

    menggantikan sistem yang lama baik dalam hal mempermudah pengguna dalam

    55 + 96 + 15

    2 x 20 = 4,15

    55 + 80 + 27

    2 x 20 = 4,05

  • 59

    melakukan transaksi maupun dalam hal laporan. Berikut adalah perbedaan antara sistem

    lama dan sistem baru.

    Berdasarkan media yang digunakan.

    a. sistem lama : menggunakan buku untuk mencatat transaksi dan handphone.

    b. sistem baru : menggunakan komputer, kabel data, dan handphone.

    Berdasarkan cara penggunaan dalam hal transaksi.

    a. sistem lama : untuk penjualan pulsa elektrik pengguna harus mengetik sms secara

    manual pada handphone, dimana pengguna harus memasukkan kode ke provider

    penyedia layanan pulsa elektrik berdasarkan permintaan pelanggan. sedangkan untuk

    penjualan voucher menggunakan buku untuk mencatat transaksinya.

    b. sistem baru : untuk penjualan pulsa elektrik, pengguna hanya memasukkan nomor

    handphone pelanggan dan memasukkan nominal pulsa yang diinginkan pada aplikasi,

    lalu aplikasi secara otomatis yang akan mengirim sms ke penyedia layanan pulsa elektrik.

    untuk voucher, pengguna hanya mengklik voucher yang diinginkan pelanggan pada

    aplikasi.

    Berdasarkan laporan yang didapat dari sistem.

    a. sistem lama : untuk laporan keuangan dapat dilihat pada buku, tetapi untuk mengetahui

    jumlah keuntungan, pengguna harus menghitung secara manual.

    b. sistem baru : laporan dapat dilihat baik secara harian, bulanan, dan tahunan. serta

    keuntungan dapat dengan mudah diketahui karena aplikasi secara otomatis

    menghitungnya. selain laporan keuangan, aplikasi juga dapat menampilkan laporan

    absensi dari karyawan.

    Berdasarkan software yang digunakan

    a. sistem lama : tidak menggunakan software apapun.

    b. sistem baru : menggunakan bahasa pemrograman Java dan MySQL untuk

    databasenya. Karena bahasa pemrograman Java dan databasenya menggunakan MySQL

    yang bersifat open source maka aplikasi ini dapat diperjualbelikan.

    Berdasarkan kemudahan untuk pemilik counter pulsa

    a.sistem lama : pemilik harus mengecek secara berkala ke counter, untuk melihat

    pembukuan, dan absensi terhadap karyawan juga tidak dpt diketahui.

  • 60

    b.sistem baru : pemilik dapat melihat pembukuan tanpa harus menghitung kembali

    keuntungan yang di dapat, karena aplikasi secara otomatis menghitungnya. Kontrol

    terhadap karyawan juga dapat dilakukan dengan adanya pencatatan absensi yang

    mencatat jam masuk sebagai log in pada aplikasi dan jam keluar sebagai log out.

    4.5 Pembahasan Hasil Program

    Program yang dibuat telah dapat menggantikan transaksi penjualan secara tradisional,

    dimana program dapat memberikan kemudahan untuk pengguna baik dalam hal laporan

    maupun pada saat transaksi penjualan, program juga dibuat untuk mudah dimengerti

    walaupun oleh pengguna yang baru menggunakannya.

    Program juga dapat meminimalisir kesalahan dari pengguna pada saat transaksi penjualan

    pulsa elektrik, karena kode sms akan dikirim secara otomatis oleh program. Dalam hal

    laporan, pengguna dipermudah untuk melihat total keuntungan yang diperoleh baik

    secara harian, bulanan atau tahunan. Pemilik kios penjualan pun dipermudah untuk

    mengontrol karyawannya, dengan adanya laporan absensi karyawan.

  • 61

    BAB V

    PENUTUP

    5.1 Kesimpulan

    Berdasarkan hasil ujicoba pada tahap sebelumnya, diperoleh bobot nilai yang baik untuk

    setiap point yang diuji seperti tampilan program, cara penggunaan program yang mudah

    dimengerti, kegunaan program, fasilitas pada program dan ketepatan program. Hal ini

    membuktikan bahwa program yang dibuat sangat baik digunakan untuk menggantikan

    transaksi penjualan pulsa elektrik maupun voucher secara tradisional dan penggunaan

    buku untuk pencatatan laporan.

    Penggunaan program juga tidak dapat dilakukan oleh sembarang orang karena dilengkapi

    dengan sistem login. Untuk transaksi penjualan pulsa elektrik pengguna hanya diminta

    untuk memilih operator customer dan besarnya nominal yang dibeli oleh customer,

    selanjutnya program yang akan mengirim kode SMS ke provider penyedia layanan pulsa

    elektrik sehingga meminimalisir kesalahan dari pihak pengguna.

    5.2 Saran

    Untuk penggunaan program sebaiknya pengguna memastikan dahulu port komunikasi

    yang digunakan pada saat menghubungkan komputer dan telepon selular menggunakan

    kabel data, karena pada program yang dibuat tidak terdapat fasilitas untuk mendeteksi

    port komunikasi secara otomatis. Dari segi laporan juga kemungkinan dapat

    dikembangkan dengan adanya SMS request sehingga pemilik kios tidak perlu datang

    untuk melihat laporan. Untuk pengubahan status penjualan pulsa elektrik dari belum

    terkirim ke terkirim juga dapat dikembangkan dengan program yang dapat mengecek isi

    SMS yang masuk dan mengubah status secara otomatis tanpa adanya campur tangan

    pengguna. Untuk mengurangi masalah antrian pelanggan yang mungkin terjadi pada saat

    transaksi, maka sistem dapat dikembangkan untuk pelayanan paralel.

  • 62

    LAMPIRAN

    LAMPIRAN A

    LISTING PROGRAM

    File koneksi_database.java

    import java.util.*;

    import java.sql.*;

    public class koneksi_database

    {

    public Connection koneksiDatabase()

    {

    try

    {

    Class.forName("org.gjt.mm.mysql.Driver");

    }

    catch (ClassNotFoundException cnfe)

    {

    System.out.println(cnfe);

    }

    Connection koneksi = null;

    try

    {

    koneksi =

    DriverManager.getConnection("jdbc:mysql://localhost/db_dian_mulya", "root", "");

    }

  • 63

    catch (SQLException sqle)

    {

    System.out.println(sqle);

    }

    return koneksi;

    }

    File utama.java import java.sql.*;

    import java.awt.*;

    import java.awt.event.*;

    import java.util.Calendar;

    import java.util.logging.Level;

    import java.util.logging.Logger;

    import javax.swing.*;

    public class Utama extends javax.swing.JFrame {

    // manggil prosedur koneksiDatabase pada class koneksi_database pada file koneksi_database.java

    Connection kon = new koneksi_database().koneksiDatabase();

    // ================================ BATAS EDIT ==========================

    public String Vtgl="", Vjam="";

    private void bisa_menu_admin()

    {

    this.jMenu1.setVisible(true);

    this.jMenu2.setVisible(true);

    this.jMenu3.setVisible(true);

    this.jMenuItem5.setEnabled(false);

    this.jMenuItem6.setEnabled(true);

    }

    private void bisa_menu_user()

    {

    this.jMenu1.setVisible(false);

    this.jMenu2.setVisible(true);

    this.jMenu3.setVisible(false);

    this.jMenuItem5.setEnabled(false);

    this.jMenuItem6.setEnabled(true);

    }

    private void tidak_menu()

    {

    this.jMenu1.setVisible(false);

    this.jMenu2.setVisible(false);

    this.jMenu3.setVisible(false);

    this.jMenuItem5.setEnabled(true);

    this.jMenuItem6.setEnabled(false);

    }

    private void absen_keluar()

    {

    try {