Anda di halaman 1dari 69

SISTEM INFORMASI STOK DAN HARGA BARANG

BERBASIS SMS GATEWAY

INDRA SAPUTRA WARDHANA


7405.030.043

Dosen Pembimbing:
Arif Basofi, S.Kom
NIP. 132.303.872
Rengga Asmara, S.Kom
NIP. 132.310.244

JURUSAN TEKNOLOGI INFORMASI


POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA 2009

PROYEK AKHIR

SISTEM INFORMASI STOK DAN HARGA BARANG


BERBASIS SMS GATEWAY

INDRA SAPUTRA WARDHANA


7405.030.043

Dosen Pembimbing:
Arif Basofi, S.Kom
NIP. 132.303.872
Rengga Asmara, S.Kom
NIP. 132.310.244

JURUSAN TEKNOLOGI INFORMASI


POLITEKNIK ELEKTRONIKA NEGERI SURABAYA
INSTITUT TEKNOLOGI SEPULUH NOPEMBER
SURABAYA 2009
2

KATA PENGANTAR
Dengan segala puji syukur atas segala rahmat Allah SWT yang
melimpah sehingga selesailah Tugas Akhir saya berjudul :
SISTEM INFORMASI STOK DAN HARGA BARANG BERBASIS
SMS GATEWAY
Tugas akhir ini tak terlepas juga oleh jasa bimbingan para
dosen pembimbing yang dengan sabar memberikan bimbingan serta
dukungan baik teknis terlebih lagi moral.
Semoga Tugas Akhir ini dapat memberikan manfaat yang besar
bagi semua orang khususnya bagi mereka yang tertarik pada Teknologi
Informasi dan juga yang sedang mengikuti kuliah. Segala saran dan
kritik dari pembaca sangat di harapkan demi kesempurnaan Tugas Akhir
ini ,sehingga lebih bermanfaat di masa mendatang.

Surabaya, Februari 2009

Penulis

ABSTRAKSI
Tugas akhir ini menitikberatkan pada pembuatan sms gateway yang
teraplikasikan pada sistem informasi mini market dengan menggunakan
komponen open source GAMMU. mengapa dipilih Gammu ,Gammu
memberikan kemudahan bagi software developer untuk sms yang ingin
menulis program untuk mengirim dan menerima sms messages via
ponsel maupun modem GSM .
Dengan menggunakan fungsi-fungsi dari Gammu , kita tidak perlu
belajar command-command AT untuk mengontrol kerja ponsel atau
modem GSM . Amatlah mudah menuliskan skrip atau program untuk
'menyetir' command-line Gammu yang berjalan di background.
Gammu mensupport ponsel yang dapat bekerja pada mode AT
command . Gammu mensupport banyak model ponsel NOKIA , SE ,
Motorolla dsb , daftar model ponsel dan modem GSM yang disupport
oleh Gammu dapat ditemukan di website Gammu. karena komponen ini
mudah digunakan (walaupun tidak ada GUI) namun dibandingkan
dengan harus menuliskan AT command yang rumit pada hyper terminal
maka komponen ini akan sangat disukai developer,format commandcommand di GAMMU mirip seperti di windows command yang banyak
dikenal oleh para pengguna windows.
Layanan yang disediakan yaitu purchasing , notifikasi stok dan
laporan.
Kata kunci : sistem informasi stok , sms gateway , gammu , transaksi
pembelian

ABSTRACTION
This final assignment aims at the creation sms gateway which is
applied at minimart information sistem by using open source component
, GAMMU. why should GAMMU? , GAMMU is a free component giving
ease to software developer who want to write down codes or programs
aimed for sending and receiving sms messages either by cellphones or
GSM modems.
By using provided functions of GAMMU , we don't need to learn any
AT commands which is used to control cellphones or GSM modems. it is
easy to write any script or program which controls GAMMU commands
running in the background, we can use program maker such as delphi ,
visual basic or just C++ (in this case, I use PHP). GAMMU supports
(only) cellphone models which are able to work in AT command mode.
and also supports many models in NOKIA , SONY ERICCSON ,
MOTOROLLA etc, the list of supported cellphones can be seen on
GAMMU's website. since this componen is easy to use (no GUI though)
this component will be prefered by developer in developing sms gateway
application, its commands format is alike as windows command which is
well knows by many windows user.
This information system provides several services such as purchasing
, stock notification (for manager) and also transaction reports
Keyword

: stock information system , sms gateway , gammu ,


purchasing transaction

DAFTAR ISI
BAB 1
PENDAHULUAN
1.1 Latar Belakang ...............................................................
1.2 Tujuan ............................................................................
1.3 Permasalahan ..................................................................
1.4 Batasan Masalah .............................................................
1.5 Metodologi ......................................................................
1.6 Sistematika Pembahasan .................................................

1
2
3
4
5
6

BAB 2
TEORI PENUNJANG
2.1 Sms Gateway ..................................................................
2.2 Power Designer 10...........................................................
2.3 MySql .............................................................................
2.3.1
Membuat dan Menghapus Database .................
2.3.2
Menggunakan Database.....................................
2.3.3
Membuat Tabel .................................................
2.3.4
Mengisi Tabel ...................................................
2.3.5
Membaca dan Mengatur Isi Tabel ....................
2.4 Integrasi Antara PHP dan MySql ....................................
2.5 GAMMU .........................................................................
2.6 XAMPP ...........................................................................
2.7 Macromedia Dreamweaver MX ......................................
2.7.1
Memulai Dreamweaver MX .............................

7
10
12
13
13
14
14
15
15
17
19
21
22

BAB 3
PERENCANAAN DAN PEMBUATAN SISTEM
3.1 Gambaran Umum ............................................................
3.2 Rancangan Database .......................................................
3.3 Rancangan Interface Web ...............................................
3.4 Rancangan Penulisan Format SMS .................................
3.5 Pembuatan Pengenal Kode SMS .....................................
3.6 Flowchart Pembelian Barang ..........................................
3.7 Flow Chart Notifikasi Stok Habis Untuk Manager ........

25
26
28
30
31
33
35

BAB 4
PENGUJIAN DAN ANALISA SISTEM
4.1 Uji Coba ..........................................................................
4.2 Analisa .............................................................................

37
45

BAB 5
PENUTUP
5.1 Kesimpulan .....................................................................
5.2 Saran ................................................................................

57
57

DAFTAR PUSTAKA

DAFTAR GAMBAR
BAB 1
Gambar 1.1

Ilustrasi Umum System Informasi ...........................

BAB 2
Gambar 2.1 Sebuah Sms Gateway Berfungsi Sebagai Relay ......
Antara Dua Sms Center ...................................................................

Gambar 2.2

Sebuah Aplikasi Pesan Sms Menghubungkan

Smsc Tanpa Sms Gateway .......................................................


Gambar 2.3

Sebuah Aplikasi Sms Mengkoneksikan Smsc

Melalui Sms Gateway ...............................................................


Gambar 2.4

Sebuah Aplikasi Sms Menghubungkan Ponsel

Atau Modem Gsm/Gprs Melalui Sebuah Sms Gateway ........... 10


Gambar 2.5

Bidang Kerja Sybase Powerdesigner 11 ................. 11

Gambar 2.6

Mysql Client Yang Diakses Dari Command

Prompt
Gambar 2.7

............................................................................ 12
Window Command Prompt Untuk

Menjalankan Service Gammu .................................................. 18


Gambar 2.8
Ponsel

Komponen Gammu Sedang Berjalan Mengidentifikasi


............................................................................ 18

Gambar 2.9

Servis Apache Dan Mysql Sedang Berjalan

Dalam Gui Xampp .................................................................... 20


Gambar 2.10

Window Administrasi Mysql .................................. 21

Gambar 2.11

Insert Bar ............................................................... 22

Gambar 2.12

Property Inspector ................................................... 22

Gambar 2.13

Workspace Dreamweaver Mx ................................. 23

BAB 3
Gambar 3.1

Gambaran Umum Stakeholder Sistem

Informasi ................................................................................. 25
Gambar 3.2

Phisycal Data Diagram ............................................ 26

Gambar 3.3

Database Khusus Menampung Sms ........................ 27

Gambar 3.4

Halaman Utama Website28

Gambar 3.5

Halaman Informasi Penting Untuk Diketahui

User

................................................................................. 29

Gambar 3.6

Katalog Produk ....................................................... 29

Gambar 3.7

Format Penulisan SMS ............................................ 30

Gambar 3.8
Kecil

Ilustrasi Pemecahan Pesan Sms Menjadi Bagian-Bagian


............................................................................ 31

Gambar 3.9
Bekerja

Keterangan Bagaimana Fungsi Explode


................................................................................. 32

Gambar 3.10

Flowchart Pembelian Barang .................................. 33

Gambar 3.11

Flowchart Notifikasi Barang Kepada Manager

35

BAB 4
Gambar 4.1

Handphone Mengirimkan Pesan

Gambar 4.2

Isi Tabel Inbox

....................... 37

................................................. 37
9

Gambar 4.3
Tabel Pesan Dari Nomor Baru Yang Tak Dikenal
(Nomor Yang Diwarnai Merah Adalah Nomor Tak Dikenal) ...... 38
Gambar 4.4

Pesan Yang Diterima Bila Nomor Tak Dikenal...... 38

Gambar 4.5
Tak Dikenal

Handphone Mengirimkan Pesan Dengan Format Yang


............................................................................ 39

Gambar 4.6

Pesan Error Yang Diterima Bila Format Keliru ...... 40

Gambar 4.7
Tabel Berisi Katalog Barang Dan Kode Smsnya
(Kondisi Awal) ............................................................................ 41
Gambar 4.8

Pesan Order Barang ............................................... 41

Gambar 4.9

Pesan Di Dalam Tabel Inbox .................................. 41

Gambar 4.10

Pesan Di Dalam Tabel Temporary ........................ 42

Gambar 4.11 Pesan Yang Sudah Di-Query-Kan Di Dalam Tabel


Transaksi
............................................................................ 42
Gambar 4.12 Tabel Berisi Katalog Barang Dan Kode Smsnya
(Kondisi Akhir)
........................................................................ 43
Gambar 4.13 Tabel Yang Terdapat Barang Yang Mulai Kehabisan
Stok (Ditandai Kotak Kuning)
............................... 44
Gambar 4.14 Pesan Yang Diterima Oleh Manager Dari Servernya
Mengenai Stok Yang Hampir Habis
........................................ 44
Gambar 4.15
Service(Kiri)

Sms Processor Service(Kanan) Dan Notification


............................................................................ 45

Gambar 4.16 Pengaturan Interval Waktu Notifikasi (Dalam Detik )


Dan Nomor Handphone Manajer
........................................ 45
Gambar 4.17 Pesan Yang Masih Original(Kiri) Dan Yang Sudah
Diolah (Kanan) ............................................................................ 46

10

BAB 1
PENDAHULUAN
1.1 LATAR BELAKANG
Perkembangan teknologi yang semakin tinggi menuntut layanan yang
semakin mudah , cepat dan praktis.Teknologi SMS disebut sebagai
teknologi yang paling murah dan paling mudah dibandingkan teknologi
informasi sejenis misalkan internet dan email. Dengan menggunakan
teknologi tersebut dibuatlah system yang cukup murah namun tetap
efektif dalam mengerjakan pelayanan transaksi jual beli atau distribusi
barang dalam suatu market. Keuntungan cukup banyak diperoleh dari
kedua belah pihak , pihak distributor diuntungkan dengan murahnya
biaya pelayanan
yang dikeluarkan namun mampu memberikan
pelayanan yang belum ada sebelumnya , mulai dari pemberian
informasi, penyediaan barang yang selalu up to date , hingga penyediaan
jasa delivery. Pada sisi pelanggan diuntungkan dengan efisiensi tenaga
dan waktu , sehingga mereka menjadi lebih senang dalam melakukan
kegiatan berbelanja.

Gambar 1.1 Ilustrasi umum system informasi

11

1.2 TUJUAN PROYEK AKHIR


Tujuan dari Proyek akhir ini adalah membuat suatu layanan
system yang berfungsi sebagai alat pemesan sehingga konsumen tidak
perlu direpotkan dengan mendatangi toko untuk membeli barang.
Dan bagi sang manager , diharapkan system ini dapat
membantu dalam proses pengambilan keputusan , apakah toko yang
dikelolanya memerlukan supply atau stok barang yang baru atau tidak.
Hasil dari proyek akhir ini diharapkan dapat memberi wawasan
yang lebih luas tentang tekhnologi komunikasi pada handphone, yaitu
tentang SMS Gateway. Sehingga pada masa yang akan datang dapat
diimplementasikan ke system yang nyata dan berguna bagi masyarakat.

12

1.3 PERUMUSAN MASALAH


Adapun batasan masalah dalam proyek akhir ini adalah :
1.Memberi layanan pemesanan barang dan jasa delivery via sms
System ini berfungsi sebagai alat pemesan sehingga konsumen
tidak perlu direpotkan dengan harus mendatangi toko untuk membeli
barang , begitu pemesanan dilakukan , pengiriman barang akan segera
dilaksanakan.
Pada proyek ini , dibangun sebuah web interface yang berisi
catalog barang yang tersedia, informasi harga suatu produk, informasi
kode barang dan bagaimana format pemesanannya melalui SMS.
2.Memberi informasi kepada manager mengenai stok
System ini juga dapat dipakai sebagai tool pembantu manager
dalam mengambil keputusan , mengenai apakah toko yang dikelolanya
harus disuply barang persediaannya atau tidak, sehingga toko tidak
sampai kehabisan stok barang. Dengan cara memberikan notifikasi pada
handphone , sang manager diberitahu oleh komputer mengenai stok
barang apa saja yang mulai menipis yang harus segera disuply kembali.
System ini menggunakan sebuah PC sebagai server yang diisi
dengan PHP 5.dan MySQL dan melalui kabel data dihubungkan dengan
ponsel ,gateway informasi antara konsumen dan penjual.

13

1.4 BATASAN MASALAH


Batasan masalah dalam proyek akhir ini adalah sebagai berikut :
1. Sistem database yang dipakai adalah Individual DATABASE bukan
sistem terdistribusi.
2. Interface web menggunakan HTML dengan PHP
3. Software database yang digunakan adalah MySQL.
4. Sistem ini tidak menyediakan layanan pembayaran , pembayaran
dilakukan secara manual dan baru dicatat di database bila pembayaran
lunas.
5. Sistem ini tidak melayani transaksi antara toko dengan supplier ,
sehingga transaksi supply dilakukan di luar system.
6. Menggunakan komponen GAMMU (open source) sebagai komponen
utama gateway
7. Apabila barang yang dipesan melebihi stok , penulisan kode barang
keliru , format yang salah atau barang yang dipesan sudah habis maka
system akan memberikan warning error, meminta pengguna untuk
membenahinya dan meminta untuk mengirimkannya kembali.
8. Lokasi pemesan tidak dibatasi , bisa dalam kota maupun luar kota

14

1.5 METODOLOGI PROYEK AKHIR


Metodologi pembahasan pada proyek akhir ini direncanakan
seperti yang tercantum berikut ini:
1.

Studi literature
Pada tahapan ini, penulis mencari tahu serta mempelajari
segala bentuk literatur yang berhubungan dengan Proyek
Akhir ini, seperti perancangan database,pengetesan
handphone dengan komponen sms gateway agar bisa
berfungsi layaknya sms gateway dan di padu dengan
tampilan web yang menarik sehingga dapat dijadikan
referensi untuk membuat system serupa untuk tujuan
komersial.

2.

Perancangan dan Pembuatan User Interface


User interface menyediakan layanan bagi pelanggan
maupun operator . Bagi pelanggan yaitu dalam melakukan
pemesanan atau order barang kepada toko. Sedangkan bagi
operator ,interface ini digunakan untuk melakukan
administrasi seperti managemen user ,managemen barang
dan transaksi.

3.

Pengujian dan Perbaikan Program


Melakukan pengujian pada system informasi , apakah
system ini mampu bekerja seperti layaknya system
informasi toko yang sebenarnya mulai dari penanganan
transaksi jual beli, stok , user dsb. Ditambah lagi
pengetesan terhadap kemampuannya melakukan layanan
secara otomatis lewat sms.

4.

Analisa
Melakukan analisa terhadap system informasi,apakah
sudah sesuai dengan aturan aturan pembuatan database
yang efektif dan efisien. Analisa terhadap penggunaan sms
gateway , yang lebih efisien dan lebih user friendly.

15

1.6

SISTEMATIKA PEMBAHASAN
Sistem pembahasan dalam pembahasan dalam penyusunan
laporan Proyek Akhir ini adalah sebagai berikut:
BAB I : PENDAHULUAN
Berisi tentang pendahuluan yang terdiri dari :

Latar Belakang

Tujuan

Permasalahan

Batasan Masalah

Metodologi

Sistematika Pembahasan
BAB II : TEORI PENUNJANG
Menjelaskan mengenai teori-teori dasar sebagai
landasan pelaksanaan proyek akhir ini, yaitu :
System kerja sms gateway
Database Mysql
BAB III : PERANCANAN DAN PEMBUATAN SISTEM
Menjelaskan perancangan sistem yang dibuat.
Menjelaskan beberapa tahap yang harus dilalui ketika proses
awal pembuatan sistem. Seperti desain interface website,
program-program yang dibutuhkan untuk notifikasi yang
masih dalam lingkungan website, serta pembuatan polling
untuk masukan.
BAB IV : PENGUJIAN DAN ANALISA
Berisi tentang analisa sistem, program yang telah
dibuat dan menganalisa pada bagian kuis untuk dievaluasi
kepada user agar sistem ini dapat bermanfaat bagi mereka.
BAB V : PENUTUP
Berisi kesimpulan dan saran untuk pengembangan dan
penyempurnaan proyek akhir ini, jika dimungkinkan untuk
masa yang akan datang.

16

BAB 2
TEORI PENUNJANG

2.1 SMS Gateway


Satu problem pengiriman sms yaitu smsc dikembangkan oleh
perusahaan yang berbeda menggunakan protocol komunikasi mereka
sendiri dan sebagian besar dari protocol-protokol ini adalah memiliki
keunikan sendiri. Sebagai contohnya , Nokia memiliki protocol smsc
yang disebut CIMD dimana vendor SMSC yang lain, seperti CMG ,
memiliki protocol SMSC yang disebut EMI. Kita tidak bisa
mengkoneksikan dua SMSC bila tidak mensupport protocol SMSC
umumnya. Untuk mengatasi masalah ini , sebuah sms gateway
ditempatkan antara dua SMSC ini. Ini akan diilustrasikan pada gambar
dibawah ini. Sms gateway bekerja sebagai sebuah relay antara dua
SMSC. Menerjemahkan satu protocol SMSC yang satu ke protocol yang
lain. Cara ini dapat dipakai oleh dua carrier yang berbeda untuk
menkonekkan SMSC , dengan tujuan untuk memudahkan pertukaran
pesan sms interoperator.

Gambar 2.1 sebuah sms gateway bekerja sebagai relay


antara dua sms-center.
Diantara dua carrier, para konten-provider dan developer
aplikasi sms juga menganggap sms gateway amatlah berguna.
Bayangkan situasi seperti ini. Anggaplah anda merupakan developer
aplikasi sms. Untuk mengirim dan menerima pesan sms di server anda,
17

satu sisi anda menghubungkan smsc milik suatu carrier. Carrier yang
berbeda mungkin menggunakan smsc dari vendor yang berbeda , yang
mana itu berarti aplikasi pesan sms anda membutuhkan support protocol
smsc-spesifik yang cukup banyak.(diilustrasikan gambar di bawah ini).
Dan pada akhirnya , tingkat kerumitan aplikasi sms dan waktu
pengembangannya pun meningkat.

Gambar 2.2.sebuah aplikasi pesan sms menghubungkan


SMSC tanpa sms gateway.

Untuk mengatasi problem ini , sebuah sms gateway dapat


disetup menghandle koneksi dengan SMSC. Sekarang aplikasi pesan
sms ini hanya butuh tahu cara koneksi ke sms gateway. Untuk
mensupport SMSC yang lebih banyak, anda perlu modifikasi setting sms
gatewaynya. Tidak ada source kode aplikasi sms yang dibutuhkan.
Penggunaan sms gateway dapat memperpendek waktu pengembangan
aplikasi sms.
18

Untuk menghubungkan sms gateway , anda dapat


menggunakan protocol SMSC seperti SMPP dan CIMD. Beberapa SMS
gateway mensupport interface HTTP/HTTPS. HTTP atau HTTPS lebih
mudah digunakan daripada SMSC protocol. Namun timbal baliknya
mungkin hanya ada sedikit fitur sms yang digunakan. Contohnya sebuah
sms gateway mungkin tidak mensupport pengiriman pesan gambar
melalui interface interface HTTP/HTTPS

Gambar 2.3. Sebuah aplikasi sms mengkoneksikan SMSC melalui


sms gateway

Disamping menggunakan koneksi langsung ke SMSC milik


carrier, cara lain untuk mengirimkan dan menerima sms di computer
yaitu menggunakan modem sms/ ponsel. Untuk melakukan ini aplikasi
sms anda harus mengetahui bagaimana cara berkomunikasi dengan
ponsel atau modem gsm/gprs menggunakan AT command.
Beberapa sms gateway dapat menghandle koneksi ke ponsel
dan modem gsm/gprs. Untuk menerima dan mengirim sms dengan
ponsel atau modem gsm/gprs, aplikasi sms hanya butuh mengetahui cara
berkomunikasi dengan sms gateway dan tidak membutuhkan sama
sekali mengetahui AT command.

19

Gambar 2.4 Sebuah aplikasi sms menghubungkan ponsel atau


modem gsm/gprs melalui sebuah sms gateway

2.2 POWER DESIGNER 10


PowerDesigner merupakan tool "enterprise modelling" yang
dikeluarkan oleh Sybase. PowerDesigner berjalan di windows sebagai
'native application' dan berjalan di bawah eclipse sebagai plugin .
PowerDesigner memiliki support sebagai berikut :
1.Business Process Modelling yang mensupport BPMN
2.Code Generation untuk Java , C# , VB.Net , Hibernate , EJB# ,
NHibernate , JSF , WinForm dan Power Builder
3.Data Modelling yang dapat bekerjasama dengan hampir semua system
RDBMS
4.Data Warehouse Modelling (WarehouseArchitech)
5.Eclipse plugin
6.Object modelling (UML 2.0 diagram)
7.Report generation
8.Repository
9.Requirement Analysis
10.XML . Modelling yang mensupport skema XML dan standar DTD
11.addon Visual Studio 2005

20

Gambar 2.5 Bidang kerja Sybase PowerDesigner 11

21

2.3 MYSQL
MySQL merupakan server basis data yang menggunakan teknik
relasional untuk menghubungkan antara tabel-tabel dalam basis data.
MySQL dikeluarkan secara gratis dibawah lisensi GNU General Public
License (GPL) seperti halnya PHP, sehingga tepatlah kiranya bila
MySQL dijodohkan dengan PHP untuk merancang halaman web yang
gratis namun handal. MySQL juga menyediakan source programnya
secara terbuka (open source) sehingga orang lain dapat mengubah atau
menambah kemampuan dari MySQL untuk keperluan khusussecara
pribadi. Dikarenakan kemampuannya yang handal (robust) dan
didukung dengan system multi-user (banyak pemakai) dan multi-thread
(beberapa prosedur dalam proses dijalankan secara bersama), maka
MySQL dapatlah bersaing dengan beberapa produk server basis data
commercial seperti MS Server 7, Oracle, dan lainnya.

Gambar 2.6 MySQL Client yang diakses dari Command


Prompt

Awal mula pengembangan MySQL dilakukan oleh perusahaan


komersial yang bernama MySQL AB, yang sudah menggunakan mSQL
untuk layanan bisnisnya. Perusahaan ini menggunakan mSQL untuk
22

menghubungkan antar table menggunakan teknik ISAM yang


merupakan rutin level rendah. Pengujian telah dilakukan dan
mendapatkan hasil yang memuaskan terutama mengenai kecepatan
akses basis data dan mudah disesuaikan guna memenuhi kebutuhan
pemakainya.
Untuk dapat mengatur database dengan MySQL harus mengerti
terlebih dahulu perintah perintah dasar dari server MySQL. Agar dapat
mengatur database yang ada, harus masuk dengan user administrator.
2.3.1. Membuat dan Menghapus Database
Hal pertama yang harus dimengerti dalam mengatur database
adalah bagaimana membuat database. Databse inilah yang digunakan
untuk menampung data. Perintah yang digunakan adalah :
mysql> CREATE DATABSE nama_database;
Perlu diperhatikan bahwa penulisan perintah adalah case
sensitif artinya dalam menulis perintah harus persis dengan
menggunakan huruf besar. Jika tidak persis maka perintah tersebut akan
dikenali sebagai perintah lain atau bahkan tidak dikenali. Tanda ;
digunakan untuk mengakhiri baris perintah.
Untuk menghapus database cukup digunakan perintah sebagai nerikut :
mysql> DROP DATABASE nama_database;
2.3.2. Menggunakan Database
Untuk mengarahkan database mana yang ditempati untuk
bekerja, digunakan perintah :
mysql> USE nama_database;
Database changed
Perintah tersebut harus selalu dikerjakan untuk memberitahukan
bahwa database tersebut akan dimanipulasi data yang ada didalamnya.

23

2.3.3. Membuat Tabel


Setelah berhasil membuat database dan menggunakannya,
langkah selanjutnya adalah mengisi database tersebut dengan tabel
tabel. Karena tabel tabel tersebut baru dan belum terisi maka
digunakan perintah USE nama_tabel; untuk mengarahkan di database
mana tabel akan dibuat.
Untuk membuat tabel, maka perlu dirancang terlebih dahulu,
yang meliputi jumlah field, tipe field serta atribut pelengkapa yang
lainnya.
2.3.4. Mengisi Tabel
Sekarang tabel yang telah dibuat dapat diisikan data. Cara untuk
mengisi dapat dibedakan dalam dua cara, pertama dengan memasukkan
data satu persatu untuk masing masing baris, cara kedua adalah
dengan mengubah file .txt yang berisi data ke dalam tabel yang
diinginkan. File .txt yang akan dimasukkan sebaiknya ditempatkan pada
direktori yang sama dengan program yang dijalankan agar
mempermudah pemindahan ke tabel. Perintah yang digunakan untuk
memasukkan file adalah sebagai berikut :
mysql> LOAD DATA LOCAL INFILE nama_file.txt INFO TABEL
nama_tabel;
Sedangkan untuk menghapus data yang terdapat dalam tabel
tersebut adalah dengan perintah :
mysql> DELETE FROM nama_tabel WHERE (kondisi);

24

2.3.5. Membaca dan Mengatur Isi Tabel


Untuk membaca semua data dari sebuah tabel digunakan
perintah SELECT * FROM nama_tabel;. Selain dapat dibaca secara
keseluruhan, juga dapat dilakukan pembacaan data tertentu pada tabel.
Untuk menampilkan data di dalam tabel yang sesuai yang diinginkan di
sebuah kolom, digunakan perintah sebagai berikut :
mysql> SELECT * FROM nama_tabel WHERE (kondisi);
Perintah tersebut berarti program diperintahkan untuk
menampilkan semua data dari tabel yang diinginkan yang memenuhi
kondisi yang dimasukkan.
Selain manampilkan data dari sebuah tabel berdasarkan karakter
tertentu yang terdapat di dalam sebuah kolom data tersebut, untuk tipe
data DATE, dapat juga dipilih data berdasarkan data tanggal yang ada.
Sebagai contoh, untuk menampilkan data yang bertanggal sebelum
tanggal 17 Juli 2003 atau kalau dituliskan dalam format DATE adalah
2003-07-17, maka digunakan perintah berikut :
mysql> SELECT * FROM nama_tabel WHERE tanggal <=2003-0317;
Di samping menampilkan semua data, MySQL juga memberikan
kemudahan untuk menampilkan data berdasarkan kolom yang
diinginkan.
2.4 INTEGRASI ANTARA PHP DAN MYSQL
Aplikasi web yang dapat dibuat dengan menggunakan PHP dan
MySQL sangatlah bermacam macam. Umumnya, aplikasi dengan
menggunakan PHP dapat berdiri sendiri tanpa memanfaatkan database
MySQL. Akan tetapi tidak sebaliknya jika ingin aplikasi tersebut
ditampilkan melalui web.

25

Untuk mengintegrasikan PHP dengan sistem database MySQL,


pertanyaan pertama yang timbul adalah bagaimana mengakses database
MySQL menggunakan web atau PHP. Sebuah file yang berekstensi
.php atau .php3 dapat dieksekusi langsung lewat sebuah browser dengan
menyembunyikan kode-kode pemrograman PHP, dan menampilkan
kode kode html yang dimengerti oleh browser. PHP inilah yang
digunakan sebagai antar muka ke web atau user sekaligus penghubung
dengan database. Namun, ini terjadi jika file .php atau .php3 diakses
secara langsung dari browser. Jika file tersebut dieksekusi setelah aksi
dari sebuah form html dijalankan, PHP disini sering berfungsi sebagai
penghubung ke database dan baru menjadi antar muka ke user setelah
aksi tadi diproses dan ditampilkan.
Untuk menampilkan data dari database yang pertama harus
terdapat databasenya terlebih dahulu. Dan kemudian untuk mengakses
database tersebut dari program PHP digunakan listing sebagai berikut :
$db

=
mysql_connect(server_database,
password_login);

user_login,

Listing diatas kurang lebih berfungsi sebagai login. Yang


pertama adalah ke server database, biasanya adalah localhost. Parameter
selanjutnya adalah nama login yang digunakan untuk mengakses
database. Jika pasword_login belum diisi pada server, parameter ini
dapat dikosongkan. Perintah selanjutnya adalah untuk mengakses
database tertentu :
mysql_select_db(nama_database,$db);
Perintah diatas berarti memilih database yang ingin digunakan.
Perintah ini setara dengan perintah USE nama_database dari server
database yang tercantum dalam variabel $db. Kemudian dapat dilakukan
akses terhadap tabel atau objek dalam database tersebut dan melakukan
beberapa macam operasi terhadap data yang ada didalamnya.

26

2.5 GAMMU
Gammu mensupport ponsel yang dapat bekerja pada mode AT
command . Gammu mensupport banyak model ponsel NOKIA , SE ,
Motorolla dsb , daftar model ponsel dan modem GSM yang disupport
oleh Gammu dapat ditemukan di website Gammu.
Gammu menggunakan command-line bukan interface GUI ,
sehingga agak menyulitkan bagi pemula atau non software developer,
namun tidak kalah powerful dengan versi GUI-nya yang berganti nama
dengan Wammu (dikembangkan dengan wxPhython).
Gammu memberikan kemudahan bagi software developer
untuk sms yang ingin menulis program untuk mengirim dan menerima
sms messages via ponsel maupun modem GSM . Dengan menggunakan
fungsi-fungsi dari Gammu , kita tidak perlu belajar command-command
AT untuk mengontrol kerja ponsel atau modem GSM . Amatlah mudah
menuliskan skrip atau program untuk 'menyetir' command-line Gammu
yang berjalan di background.
Untuk menjalankan Gammu pengguna hanya memerlukan :
1.Instalasi database sms (yang sudah disediakan oleh gammu
dalam bentuk sintaks sql) ke dalam database MySql. Buka halaman
admin MySql dan import sintaks sql yang sudah disediakan.
2.Menginstal driver untuk ponsel. Setelah driver ponsel
terinstal maka otomatis ponsel akan dikenali oleh computer dan port nya
dinomori oleh computer. Port inilah yang akan menjadi jalan masuk dan
keluarnya data. Dan jangan lupa mencatat port yang digunakan oleh
ponsel untuk pengaturan konfigurasi Gammu.
3.Mengatur konfigurasi port yang digunakan oleh Gammu. Ini
merupakan langkah yang penting , karena apabila penulisan konfigurasi
di dalam Gammu tidak cocok dengan port yang digunakan oleh ponsel
maka Gammu tidak akan berjalan.
4.Setelah semua selesai maka bisa dicoba kemampuannya
dengan mengirim atau menerima sms. Caranya dengan mengetikkan
gammu smsd MYSQL smsdrc pada command prompt. Kemudian
pada halaman MySql cari table outbox, isikan pesan yang akan dikirim
27

pada field textdecoded kemudian nomor ponsel tujuan pada


destinationnumber
5.Selang beberapa detik sms akan terkirim dan apabila berhasil
terdelivery maka program berhasil berjalan sesuai yang diinginkan
Sintaks untuk menjalankan fungsi-fungsi gammu , termasuk kirim dan
terima sms :

Gambar 2.7 Window command prompt untuk menjalankan


service Gammu

Gambar 2.8 Komponen Gammu sedang berjalan


mengidentifikasi ponsel

28

2.6 XAMPP
XAMPP merupakan paket web server cross-platform yang
gratis dan open source, terdiri atas Apache server , Mysql database , dan
interpreter untuk skrip yang ditulis dalam PHP atau Perl.
Akronim dari XAMPP = X(merupakan cross-platform) , A(untuk
Apache) , M(untuk Mysql) , P(untuk PHP) , P(untuk Perl)
Program ini dirilis dibawah GNU general public licence dan bekerja
sebagai web server gratis yang mudah digunakan yang mampu
menhandle halaman dinamis. XAMPP tersedia untuk Microsoft
Windows , Linux , Sun Solaris dan Mac OS X, dan terutama digunakan
untuk proyek pengembangan web.
XAMPP hanya membutuhkan sebuah file zip, tar ataupun exe
untuk berjalan (artinya file-file nya dipaketkan dalam format file
tersebut) , hanya membutuhkan sedikit konfigurasi atas macam-macam
komponennya agar dapat berjalan. menginstal XAMPP tidak
membutuhkan waktu yang terlalu lama dari pada menginstall masingmasing komponen secara terpisah.
Secara resmi , para desainer XAMPP menciptakan ini hanya
sebagai alat development saja , untuk memudahkan para pembuat
website dan programmer untuk mengetes hasil kerja mereka di komputer
mereka sendiri tanpa harus akses ke internet. untuk membuat ini
semudah mungkin , banyak fitur sekuriti yang didisable secara
default,namun dalam praktiknya XAMPP digunakan oleh banyak server
untuk menampung web pages di internet. tool spesial yang di berikan
untuk password proteksi merupakan bagian paket yang paling penting.
XAMPP juga memberikan support untuk menciptakan dan
memanipulasi database dalam Mysql dan SqlLite
Disini sengaja penulis memakai paket XAMPP karena dalam
proses instralasinya maupun penggunaannya amatlah mudah (bahkan
pemulapun dapat memakainya). Berbeda dengan program sejenis seperti
apache tomcat dsb yang mengharuskan pengguna untuk menginstal
paket secara terpisah. Dan terkadang memerlukan pengetahuan yang
lebih tentang bagaimana mengaktifkannya. Terkadang juga antara satu
komponen dengan komponen lain terjadi crash (misalkan apache dan
mysql yang tidak kompatibel satu dengan yang lain).
29

Dalam system ini service yang digunakan adalah Apache dan


Mysql saja , anda bisa mengaktifkannya dengan menekan tombol Start
dan mulai menggunakan fasilitasnya. Dan untuk halaman administrasi
MySql anda tidak perlu mencarinya dengan membuka program yang
lain(terpisah) disitu juga disediakan halaman khusus admin , dengan
menekan tombol Admin tepat disebelah tombol Start

Gambar 2.9 Servis apache dan Mysql sedang berjalan dalam GUI
XAMPP

30

Gambar 2.10 Window administrasi MySql

2.7 MACROMEDIA DREAMWEAVER MX


Dreamweaver
memiliki beberapa fungsi penting dalam
pembuatan suatu halaman web sperti Layout View - yang
memungkinkan para designer halaman web dapat langsung
menempatkan tabel dan sel di halaman webnya. juga terdapat beberapa
fungsi tambahan seperti team collaboration dan peningkatan
kemampuan multimedia.

31

2.7.1 MEMULAI DREAMWEAVER


Bila kita membuat suatu halaman web dengan Dreamweaver
maka selain 'document window' kita juga akan bekerja dengan tiga
toolbar dan panel utama yaitu : Insert Bar, Property Inspector dan Site
Panel.
catatan : Jika Insert Bar dan Property Inspector tidak ada saat kita
menjalankan Dreamweaver maka kita bisa menampilkannya dengan
mengklik menu window kemudian pilih Insert BAr dan Property
Inspector.
Document window menampilkan dokumen atau halaman web
yang sedang kita buat. pada bagian bawah Document Window , kita bisa
melihat nama file dari semua dokument yang sedang kita buka. dengan
meng-klik nama file tersebut maka kita akan dengan mudah berpindah
antara dokument satu dengan yang lain.
Insert Bar terdiri dari beberapa macam icon untuk memasukkan
berbagai macam object web seperti gambar, layer dan tabel. Insert Bar
ini terdiri dari beberapa tab yang masing-masing terdiri dari beberapa
icon yang berkesesuaian.

Gambar 2.11 Insert Bar


Property inspector menampilkan property dari object yang kita
pilih di dalam document. seprti tinggi dan lebar suatu gambar.

Gambar 2.12 Property Inspector


Sedangkan Site Panel memungkinkan kita untuk menampilkan
dan mengatur semua file dan folder yang merupakan bagian dari website
kita.
32

Gambar 2.13 Workspace Dreamweaver MX

Dreamweaver dapat menampilkan dokument dengan tiga cara :


Design View, Code View dan Code and Design View.
Pada Design View, kita bisa menampilkan dan mengedit
dokumen secara visual. Tampilan dari Design View sama seperti bila
kita menampilkannya dengan web Browser.
Pada Code View kita bisa mengedit langsung halaman web kita
dengan menuliskan kode HTML, javascript, PHP , ASP dan berbagai
macam kode-kode yang lain. tidak terlalu diperlukan untuk bekerja
dengan Code View ini, karena hampir semua fungsi yang kita perlukan
untuk membuat suatu web dapat dilakukan lewat Design View
Sedangkan Code dan Design View kita bisa melihat Code View
dan Design View secara bersamaan dalam satu tampilan window.

33

---Halaman ini sengaja dikosongkan---

34

BAB 3
PERENCANAAN DAN PEMBUATAN
SISTEM
3.1 GAMBARAN UMUM

Gambar 3.1 Gambaran umum stakeholder sistem informasi


Gambar diatas merupakan gambaran umum desain system
informasi toko. Disini terdapat tiga stake holder (yang berperan dalam
database) yaitu toko dan customer/pelanggan.
System ini dapat melayani :
1.Jasa pemesanan barang oleh customer kepada toko dan toko
memberikan jasa delivery nya
2.Memberikan notifikasi kepada manager mengenai stok barangnya
yang menipis agar mengisinya kembali dengan stok yang baru

35

3.2 RANCANGAN DATABASE

Gambar 3.2 Phisycal Data Diagram


36

Sedangkan untuk database penyimpanan sms masuk dan keluar


dan segala adminstrasinya penulis buat database terpisah , berikut
gambarannya :

Gambar 3.3 Database khusus menampung sms

Bagian yang diberi warna orange adalah bagian yang paling


sering digunakan yaitu untuk menyimpan outbox , inbox dan buku
alamat.

37

3.3 RANCANGAN INTERFACE WEB


PHP disini digunakan sebagai tampilan untuk catalog barang,
baik barang yang tersedia maupun yang tidak. Berikut tampilan halaman
utamanya

Gambar 3.4 Halaman Utama Website

38

Gambar 3.5 Halaman Informasi penting untuk diketahui user

Gambar 3.6 Katalog produk

39

3.4 RANCANGAN PENULISAN FORMAT SMS


Format penulisan barang dan jumlahnya disini haruslah betulbetul teliti , karena setiap spasi dan tanda koma akan sangat berpengaruh
akan bisa tidaknya sms tersebut dimengerti oleh computer. Apabila ada
kesalahan kecil misalkan salah menaruh tanda koma ataupun kelebihan
satu spasi maka computer akan menganggap sms tersebut salah dan akan
meminta user untuk mengirimkannya kembali dengan format yang
benar.

BAGI CUSTOMER UNTUK MEMESAN BARANG


[KODE SMS][spasi][JUMLAH]
CONTOH :

OSD 5,FSD 2,HGB 3


BAGI MANAJER
UNTUK NOTIFIKASI APABILA BARANG MULAI HABIS

Warning! Barang berikut akan habis:


[kodebarang],[kodebarang],
CONTOH

Warning! Barang berikut akan habis:


Oreo 150gr,ABC sardines 155gr
Gambar 3.7 Format penulisan SMS

40

3.5 PEMBUATAN PENGENAL KODE SMS


Bagian ini termasuk salah satu bagian terpenting dari
keseluruhan system informasi , karena tanpa bagian ini system tidak
akan bisa melayani request barang dari customer ke toko , maupun dari
manager kepada supplier. Semua sms yang masuk akan disimpan
kedalam database tidak peduli formatnya benar ataupun salah , setelah
berada di dalam database barulah sms tersebut diproses kebenarannya.
Dan semua syarat kebenaran telah terlewati maka langkah selanjutnya
adalah memisahkan kode-kode tersebut ke dalam format yang lebih
dimengerti oleh database untuk dapat diproses.
Lihat ilustrasi di bawah :

Gambar 3.8 Ilustrasi pemecahan pesan sms menjadi


bagian-bagian kecil
Itu semua diproses dalam halaman PHP, tidak oleh MySql
maupun oleh Gammu karena keduannya tidak memberikan fasilitasfasilitas semacam itu. Untuk itu diperlukan fungsi PHP yang berguna
memecah string menjadi bagian-bagian yang lebih berguna. Fugnsi
tersebut adalah EXPLODE(). Untuk lebih jelas mengenai bagaimana
fungsi tersebut bekerja lihat gambar berikut :

41

Gambar 3.9 Keterangan bagaimana fungsi Explode bekerja

Argument pertama yang diambil oleh fungsi explode adalah


pemisahnya(delimiter / dynamite) yang digunakan untuk memisahmisah argument kedua, string awal. Explode memberikan pengembalian
berupa potongan potongan string yang tersimpan dalam sebuah array
(dan tersusun berdasarkan nomor dimulai dari 0). Pada contoh diatas
diambil string yang panjang 800-555-5555 , yang kemudian diambil
tanda - sebagai pemisah atau dynamite dan kemudian oleh fungsi
explode dirubahlah string tersebut menjadi potongan potongan
tersimpan dalam array.

42

3.6 FLOWCHART PEMBELIAN BARANG


Di dalam system ini terdapat ketentuan ketentuan sebelum
barang benar-benar dapat diterima oleh si pemesan . Yang pertama si
pemesan haruslah merupakan member atau pelanggan yang sudah
terdaftar di database took. Apabila belum terdaftar maka pembeli tidak
akan bisa menikmati layanan yang diberikan. Untuk berlangganan
pembeli perlu datang ke bagian administrasi took untuk melakukan
registrasi.
START

T ID A K
R E G IS T E R D U L U

P E M B E L I IN G IN
M EM BELI
BARANG

M E L IH A T -L IH A T
KATALO G DI
W EB

APAKAH C ALO N
PEM BELI SU D AH
TERDAFTAR

M E N G IR IM K A N
PESAN
P E R M IN T A A N V IA
SMS

YA

T ID A K
FORM AT SM S
BENAR

YA

T ID A K
BARANG YANG
D IM IN T A T E R S E D IA

YA

F IN IS H

TRANSAKSI
D IC A T A T

BARANG
D IK IR IM K A N

Gambar 3.10 Flowchart pembelian barang


43

Yang kedua format pesan sms yang dikirimkan haruslah


sesuai dengan format yang telah ditentukan, termasuk penulisan tanda
koma dan spasi haruslah benar-benar sesuai dengan ketentuan. Yang
ketiga yaitu apakah barang yang diminta masih tersedia , ataukah jumlah
barang yang tersedia mencukupi jumlah permintaan. Apabila ketiga
syarat tersebut terpenuhi maka layanan pembelian dan delivery dapat
diberikan.

44

3.7 FLOW CHART NOTIFIKASI STOK HABIS UNTUK


MANAGER

Gambar 3.11 Flowchart notifikasi barang kepada manager


Ini merupakan flow chart notifikasi computer kepada manager
mengenai stok yang hampir habis (atau yang sudah habis). Computer
melakukan pemeriksaan setiap hitungan waktu tertentu (menggunakan
trigger) terhadap stok setiap barang. Apabila barang tersebut mendekati
habis (disini computer menganggap angka 10 adalah jumlah yang
hampir habis) maka computer akan mengirimkan peringatan kepada
manager untuk segera melakukan tindakan agar barang selalu tersedia.
45

---Halaman ini sengaja dikosongkan---

46

BAB 4
UJI COBA DAN ANALISIS SISTEM
Pengujian merupakan langkah penting yang harus dilakukan
untuk mengetahui apakah sistem yang telah dibuat sesuai dengan apa
yang direncanakan dimana hal tersebut dapat diamati dari hasil-hasil
yang dipperoleh selama pengujian sistem.
Selain itu, pengujian bertujuan untuk mengetahui kelebihan dan
kekurangan dari sistem yang telah dibuat. Hasil pengujian tersebut
nantinya akan dianalisa untuk mengetahui penyebab terjadinya
kekurangan sistem :
4.1 UJI COBA
Pengujian dilakukan pertama-tama dengan melakukan
pengiriman sms kepada ponsel server , apabila sms yang dikirim dapat
diterima dan disimpan di database maka untuk langkah awal sistem ini
berjalan.

Gambar 4.1 Handphone mengirimkan pesan

Gambar 4.2 Isi tabel inbox

47

Langkah berikutnya yaitu mencoba mengirimkan pesan ke


ponsel server dengan menggunakan server yang belum dikenal
nomornya (belum teregistrasi) :

Gambar 4.3 Tabel Pesan dari nomor baru yang tak dikenal (nomor
yang diwarnai merah adalah nomor tak dikenal)

Gambar 4.4 Pesan yang diterima bila nomor tak dikenal


Selanjutnya diuji coba pengiriman sms dengan format yang
salah yang tidak sesuai dengan aturan format yang dikenal oleh server :

48

Gambar 4.5 Handphone mengirimkan pesan dengan format yang


tak dikenal

49

Apabila pesan yang diterima tidak sesuai dengan format yang


dikenali oleh server maka server akan mengirimkan pesan error seperti
di atas , dan pesan tersebut diperuntukkan bagi pesan yang ada kesalah
an pada kode sms (kode sms untuk barang) yang dikirimkan , juga bila
stok yang diminta melebihi batas yang tersedia di toko saat pemesanan
dilakukan.

Gambar 4.6 Pesan error yang diterima bila format keliru


Berikut percobaan pengiriman pesan sms yang berisi order
barang , untuk mengetahui kode sms untuk barang yang dimaksud
hendaklah pemesan melihat dulu isi web katalog yang disediakan karena
bila tidak pemesan tidak akan bisa memesan barang yang dimaksud,
berikut contohnya :

50

Gambar 4.7 Tabel berisi katalog barang dan kode smsnya (kondisi
awal)

Gambar 4.8 Pesan order barang


Pesan yang dikirimkan oleh pengguna akan di masukan dalam
tabel inbox server :

Gambar 4.9 Pesan di dalam tabel inbox


Langkah selanjutnya pesan tersebut akan diproses yaitu :
1.item-item yang dipisahkan oleh tanda koma , akan disimpan dalam
tabel tersendiri (temporary)

51

Gambar 4.10 Pesan di dalam tabel temporary


2.kemudian masing-masing item di query-kan dengan tabel barang ,
setelah cocok maka , hasil query tersebut disimpan dalam tabel transaksi

Gambar 4.11 Pesan yang sudah di-query-kan di dalam tabel


transaksi
Begitu transaksi sudah benar , artinya pesan yang diterima
sesuai dan sudah memenuhi kondisi persyaratannya (mulai dari
registrasi user, format sms , jumlah stok yang mencukupi) maka barang
akan segera dikirimkan ke alamat pengirim. Data detail mengenai
pengirim sendiri didapat dari tabel customer yang di-query-kan dengan
nomor ponsel pengirim.
Berikut adalah kondisi tabel barang setelah transaksi dilakukan
, perhatikan stok yang telah berkurang :

52

Gambar 4.12 Tabel berisi katalog barang dan kode smsnya (kondisi
akhir)
Dan fitur yang tidak ketinggalan dari sistem ini , yaitu
notifikasi kepada manager apabila barang yang di dalam toko mulai
habis disini ditetapkan apabila barang kurang dari 10 maka barang
tersebut dianggap habis oleh sistem dan akan memberitahu manager
mengenai ini melalui sms

53

Gambar 4.13 Tabel yang terdapat barang yang mulai kehabisan


stok (ditandai kotak kuning)

Gambar 4.14 Pesan yang diterima oleh manager dari servernya


mengenai stok yang hampir habis

54

4.2 ANALISA.

Gambar 4.15 Sms Processor service(kanan) dan Notification


service(kiri)
Kedua service di atas ada pada halaman 'link' yang hanya bisa
diakses oleh user yang sudah login alias admin ,tanpa login terlebih
dahulu link service di atas tidak muncul.
Link yang pertama yang disebut Sms Processor Service
digunakan untuk mengolah segala pesan yang masuk. Dengan
diaktifkannya service ini ,pesan yang masuk akan diolah menjadi data
yang bisa dimengerti oleh sistem dan transaksi bisa dilakukan.
Sedangkan link yang kedua yang disebut Notification Service
digunakan untuk memberikan notifikasi kepada manajer mengenai datadata produk yang habis stoknya. Interval waktu notifikasi bisa
dikonfigurasi per satuan waktu

Gambar 4.16 pengaturan interval waktu notifikasi (dalam detik


)dan nomor handphone manajer

55

Perhatikan! , jangan mematikan service-service tersebut di atas


apabila anda ingin sms yang masuk tetap bisa diproses. Apabila serviceservice tersebut di-close maka sms masuk tidak akan bisa diproses. Dan
juga notifikasi kepada manajer tentang barang yang running-out tidak
bisa dilakukan.
Semua pesan sms yang masuk , tersimpan dalam tabel inbox.
Pesan dengan format yang telah ditetapkan,akan diproses lebih lanjut
oleh program agar bisa dimengerti. Dimulai dari explode sms ,berikut
ilustrasinya :

Gambar 4.17 Pesan yang masih original(kiri) dan yang sudah diolah
(kanan)
Figur di sisi kiri menunjukkan tabel inbox dengan pesan sms
yang masih berupa pesan original yang belum diolah,sedangkan figur di
sebelah kanan menunjukkan pesan yang sudah diolah,dipisah-pisahkan .
Ini dilakukan oleh kode-kode dibawah ini :

56

<?php
include "sql_smsd.php";
$Result = mysql_query("SELECT * FROM inbox
where `read`=0 limit 1");
while($RRow = mysql_fetch_array($Result)){
$hasil = mysql_query("SELECT * FROM
minimart.customer");
while($baris= mysql_fetch_array($hasil)){
if($RRow[SenderNumber]==$baris[NOMORHPCUS
TOMER])
{$cocok=1;break 1;}
else
$cocok=0;
}
mysql_query("INSERT INTO minimart.inbox
SET TextDecoded = '$RRow[TextDecoded]' ,
SenderNumber = '$RRow[SenderNumber]'") or exit
("exit");
mysql_query("UPDATE `inbox` SET `read` =
1 WHERE id=$RRow[ID]") or die ("die");
echo "<br>$RRow[SenderNumber] ->
$cocok<br>";
if($cocok==0) //cocok=0 artinya nomor
hape itu gak ada dalam database
{
mysql_query("INSERT INTO
outbox(TextDecoded,DestinationNumber) VALUES
('Maaf!! Nomor anda tidak dikenali,mohon daftar
dulu di toko-toko kami
terdekat','$RRow[SenderNumber]')");
mysql_query("UPDATE `inbox` SET
`read` = 1 WHERE id=$RRow[ID]");
echo ("ada nomor tak dikenal tuh
;)");

57

}
$cocok=0;
}
//mengkopi data dari smsd.inbox ke
minimart.inbox
include "sql2.php";
$result = mysql_query("SELECT * FROM inbox
where `read`= 0");
if(!$result)
die("permintaan gagal dilaksanakan");
while($row = mysql_fetch_array($result) )
//menyimpan hasil dalam bentuk array , index
array menyatakan kolom
{
$variabel =
explode(",",$row[TextDecoded]); //memisahkan
kalimat kolom tertentu (pesan barang dengan
koma)
for($i=0;$i<count($variabel);$i++)
{
$isi=explode(" ",$variabel[$i]);
mysql_query("INSERT INTO
temporary(kodesms,jumlahitem,nomorhpcustomer,wa
ktuorder,id) VALUES
('$isi[0]','$isi[1]','$row[SenderNumber]','$row
[UpdatedInDB]',$row[ID])"); //baris[3]=nomor
hape
}
mysql_query("UPDATE `inbox` SET `read` =
1") or die ("die");
}
?>

58

Kemudian setelah diproses menjadi data yang bisa


dimengerti, data-data tersebut di-lookup ke tabel-tabel
dalam database ,termasuk tabel barang,tabel user dan tabel
transaksi.
Kode-kode berikut yang akan melakukan lookup dan
merubah segala yang berkaitan dengan transaksi,hal yang
dilakukan termasuk :

melakukan perubahan stok barang

perubahan kredit pengguna

memberi pesan kepada customer mengenai total


harga barang yang dipesan

dan juga mengenai nama barang-barang apa saja


yang telah dipesan (masing-masing dalam sms yang
terpisah )

memberi pesan error apabila stok barang yang


dipesan kurang dari yang diminta dan juga apabila
kredit yang dimiliki user tidak cukup untuk
memesan barang yang dimaksud
Berikut kode-kodenya :

<p>::SMS Processor is running ..</p>


<p>::Please don't close this window to
keep the service running::..</p>
<?
include "explode_sms.php";
include "sql2.php";
echo "<meta http-equiv=\"refresh\"
content=\"1\">";
//query kesatu
//sql diatas digunakan untuk merubah stok
59

doang hmm.. :-/


//hey kalo barang yang dibeli kurang stok
gimana?
//kalo uang yang dimiliki tidak mencukupi
gimana?
//berikut menentukan apakah pesanan
tersebut bisa diproses atau tidak
$result_impossible = mysql_query("SELECT *
FROM customer LEFT JOIN temporary USING
(nomorhpcustomer) LEFT JOIN keterangankode
USING (KODESMS) LEFT JOIN barang USING
(IDBRG) where waktuorder is not null and
`done` =0 and idbrg is not null ");
while($rowi =
mysql_fetch_array($result_impossible))
{
$biaya=
$rowi[HARGABRG]*$rowi[jumlahitem];
if($rowi[jumlahitem]>=$rowi[STOKBRG]
or $rowi[kredit]<=$biaya)
mysql_query("UPDATE
temporary SET done=2 WHERE
id_temp=$rowi[id_temp]") or
die("impossible :D");
}
$result = mysql_query("SELECT * FROM
customer LEFT JOIN temporary USING
(nomorhpcustomer) LEFT JOIN keterangankode
USING (KODESMS) LEFT JOIN barang USING
(IDBRG) where waktuorder is not null and
`done` =0 and idbrg is not null ");
while($row =
mysql_fetch_array($result))
{
//berikut mengubah stoknya:
$stok=$row[STOKBRG]$row[jumlahitem];

60

mysql_query("UPDATE barang SET


stokbrg=$stok WHERE idbrg=$row[IDBRG]") or
exit ("gak bisa ngeset stok barang D: ");
}
//kalo ada sms yang ngawur , ini neh !! :)
$result2 = mysql_query("SELECT * FROM
customer LEFT JOIN temporary USING
(nomorhpcustomer) LEFT JOIN keterangankode
USING (KODESMS) LEFT JOIN barang USING
(IDBRG) where idbrg is null and
waktuorder is not null and done =0 ");
while($row2 =
mysql_fetch_array($result2))
{
echo "ada sms ngawur :D :D";
mysql_query("INSERT INTO
smsd.outbox(DestinationNumber,TextDecoded)
VALUES ($row2[NOMORHPCUSTOMER],'Error !!
Periksalah Format Pesan atau Kodesms') ")
or exit("allww D:");
mysql_query("UPDATE temporary SET
`done`=1 WHERE id_temp=$row2[id_temp]") or
exit("allww2 D:");
}
//query kedua
//codes below's usage is to notify
customer about things or products they
have ordered
$result = mysql_query("
SELECT *
FROM `temporary`
LEFT JOIN customer
USING ( nomorhpcustomer )
LEFT JOIN keterangankode
USING ( kodesms )
LEFT JOIN barang
USING ( idbrg )

61

WHERE namacustomer IS NOT NULL and `done`


=0 and idbrg is not null
GROUP BY id limit 1");
//mengelompokkan berdasarkan ID ;P
//query ini mencontoh yang ada di
nota_utama.php :))
if(!empty($result))
{
while($row=mysql_fetch_array($result
)){
//query dua setengah :D :D
$result2=mysql_query("SELECT *
, hargabrg * jumlahitem AS total FROM
`temporary` LEFT JOIN customer USING (
nomorhpcustomer ) LEFT JOIN keterangankode
USING ( kodesms ) LEFT JOIN barang USING
( idbrg ) WHERE namacustomer IS NOT NULL
AND id =$row[id]");

$sms .= 'Anda Telah Memesan:


';
while($row2 =
mysql_fetch_array($result2))
{
$nama_brg =
explode(" ",$row2['NAMABRG']);
$sms .=
$nama_brg[0]. $nama_brg[1] .',';
}
mysql_query("INSERT INTO
smsd.outbox(DestinationNumber,TextDecoded)
Values
('$row[nomorhpcustomer]','$sms')")or die
("wah D:");
unset($sms,$nama_brg);
}
}

62

//Mengirim SMS Informasi kredit dan total


harga kepada Pelanggan tercinta ;P
//mengubah jumlah kredit
//query ketiga
//limit 1
$result=mysql_query("SELECT * , SUM(
hargabrg * jumlahitem ) AS total_umum FROM
`temporary` LEFT JOIN customer USING (
nomorhpcustomer ) LEFT JOIN keterangankode
USING ( kodesms ) LEFT JOIN barang USING (
idbrg ) WHERE namacustomer IS NOT NULL and
`done`=0 and idbrg is not null GROUP BY id
limit 1");
while($row=mysql_fetch_array($result
))
{
$nama=$row[NAMACUSTOMER];
$hp=$row[nomorhpcustomer];
$kredit=$row[kredit]$row[total_umum];
$pesan='Mr/Mrs.' .$nama.',
Total belanja anda adalah
Rp.'.$row[total_umum].', sisa kredit anda
adalah Rp.'.$kredit.' Terima kasih telah
berbelanja di tempat kami';
echo $pesan;
echo "<br>";
mysql_query("UPDATE customer
SET kredit = '$kredit' , status =
'$status' WHERE IDCUSTOMER =
'$row[IDCUSTOMER]' ") or exit ("gak bisa
ngeset kredit");
mysql_query("INSERT INTO
smsd.outbox(DestinationNumber,TextDecoded)
Values ('$hp','$pesan')")or die ("wah
D:");
mysql_query("UPDATE temporary
SET `done`=1 WHERE id=$row[id] ");

63

$i++;
}
//mengirim pesan Error entah karena stok
tidak valid atau kredit tidak cukup
$result = mysql_query("
SELECT *
FROM `temporary`
LEFT JOIN customer
USING ( nomorhpcustomer )
LEFT JOIN keterangankode
USING ( kodesms )
LEFT JOIN barang
USING ( idbrg )
WHERE namacustomer IS NOT NULL and `done`
=2 and idbrg is not null
GROUP BY id limit 1");
//mengelompokkan berdasarkan ID ;P
//query ini mencontoh yang ada di
nota_utama.php :))
if(!empty($result))
{
while($row=mysql_fetch_array($result
)){
//query dua setengah :D :D
$result2=mysql_query("SELECT *
, hargabrg * jumlahitem AS total FROM
`temporary` LEFT JOIN customer USING (
nomorhpcustomer ) LEFT JOIN keterangankode
USING ( kodesms ) LEFT JOIN barang USING
( idbrg ) WHERE namacustomer IS NOT NULL
AND done=2 AND id =$row[id]");

$sms .= 'Unable to
process,check stock or credit: ';
while($row2 =
mysql_fetch_array($result2))
{

64

$nama_brg =
explode(" ",$row2['NAMABRG']);
$sms .=
$nama_brg[0]. $nama_brg[1] .',';
mysql_query("UPDATE temporary SET
`done`=3 WHERE id_temp=$row2[id_temp] ");
}
//mysql_query("UPDATE temporary SET
done=2 WHERE id_temp=$row[id_temp]") or
die("impossible :D");
mysql_query("INSERT INTO
smsd.outbox(DestinationNumber,TextDecoded)
Values
('$row[nomorhpcustomer]','$sms')")or die
("wah D:");
unset($sms,$nama_brg);
}
}
?>

65

--Halaman ini sengaja dikosongkan--

66

BAB 5
PENUTUP
5.1 KESIMPULAN

1. System ini berfungsi sebagai alat pemesan sehingga konsumen


tidak perlu melakukan shopping untuk membeli barang tapi
cukup melalui SMS.
2. System ini juga dipakai sebagai tool pembantu manager dalam
mengelola ketersediaan barang di minimarketnya , yang mana
sistem memberitahu manager akan stok barang yang habis
ataupun yang akan habis. Sehingga manager mengetahui
barang atau produk apa saja yang perlu disupply , sehingga
toko tidak sampai kehabisan stok barang

5.2 SARAN
1.

Saat percobaan ini dilakukan , penulis hanya menggunakan


ponsel Motorola c380 , hasilnya sms yang keluar dan masuk
maksimal hanya 30 per menit. dan ini akan menghambat
produktifitas apabila digunakan dalam perdagangan. agar
kemampuannya lebih baik , penulis sarankan agar memakai
GSM modem / GPRS modem sebagai gateway, terbukti
kemampuannya meningkat 3 kali lipat.

2.

Interfacenya menggunakan PHP, ini bisa diganti dengan yang


lain misalkan ASP, XHTML, ataupun Flash agar tampilan lebih
menarik dan atraktif

3.

Untuk pengembangan ke depan , apabila komponen ini


(GAmmu) dirasa cukup rumit , anda bisa menggunakan
'program' sejenis yang sudah terdapat tampilan GUInya,
komponen tersebut adalah WAMMU yang juga open source
dan lebih menarik (secara interface) daripada Gammu.

4.

Koneksi PHP dan MySql dibutuhkan suatu webserver , disini


penulis memakai XAMPP for win32, yang dikenal sebagai web
67

server yang mudah digunakan ,proses instalasi mudah ,


pengaktifan dan penon-aktifan setiap service mudah karena
didukung oleh GUI yang simpel.
5.

Tidak semua merek ponsel dan juga tipe ponsel disupport oleh
Gammu , agar tidak terjadi kesalahan dalam membuat sistem ,
sebaiknya dicek dulu apakah ponsel yang digunakan disupport
oleh Gammu atau tidak, untuk list merek dan tipe ponsel yang
disupport
dapat
dilihat
di

www.gammu.org/wiki/index.php

68

DARTAR PUSTAKA
1. http://www.gammu.org/wiki/index.php?title=Main_Page ->
segala informasi yang berkaitan dengan gammu dan
implementasinya pada segala operating system
2. http://cihar.com/gammu/ -> situs download komponen
Gammu
3. http://freshmeat.net/projects/gammu/ -> perkembangan
proyek gammu oleh developer
4. DC. Green, Komunikasi Data, Cetakan Keempat, ANDI,
Yogyakarta, 2002.
5. Khang, Bustam, Ir, Trik Pemrograman Aplikasi Berbasis
SMS, Elex Media Komputindo, Jakarta, 2003.

69

Anda mungkin juga menyukai