Rabu, 15 Juni 2011

Point of Sales Trial Version

Setelah sekian lama absen posting dan maintenance blog ini, akhirnya sekarang bisa juga untuk pulang dan menambah deretan posting. Untuk welcome back post ini saya akan memaparkan tentang sebuah Point of Sales Trial Version yang baru selesai saya kerjakan.
Point of Sales merupakan sebuah aplikasi penjualan yang biasa kita temui di minimarket maupun supermarket. Point of Sales sendiri merupakan sebuah aplikasi standart dalam tutorial VB karena mudah untuk dicerna baik dari segi logika maupun dari segi proses bisnisnya sebab contoh nya banyak ditemui di lapangan.
Pembuatannya sendiri saya lakukan menggunakan Visual Basic serta databasenya menggunakan MySQL (wampServer2) dan dibantu oleh HeidySQL.
Namun di sini saya hanya akan menjelaskan tentang listing Program bukannya tentang databasenya.
Untuk databasenya sendiri silahkan anda import langsung dengan menggunakan script berikut :
CREATE DATABASE TrialEsa;

USE trialesa;

CREATE TABLE TBarang (  Id VARCHAR(20) NULL,  Nama VARCHAR(50) NULL,  Harga INT NULL, 
PRIMARY KEY (Id) );

CREATE TABLE TJual (NoFak VARCHAR(20) NULL,  Tanggal TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
UserId VARCHAR(20) NULL,  PRIMARY KEY (NoFak) );

CREATE TABLE TRJual (NoFak VARCHAR(20) NULL,  Barang VARCHAR(20) NULL,  Jumlah INT(10)
NULL DEFAULT '0' );

CREATE TABLE TUser (Id VARCHAR(20) NULL,  Pass VARCHAR(20) NULL );

ALTER TABLE TUser  ADD PRIMARY KEY (Id);

ALTER TABLE tbarang  CHANGE COLUMN Harga Harga INT(11) NULL DEFAULT '0' AFTER Nama;

Insert Into Tbarang(Id,Nama) Values( '8712045015261' ,' SUST KID 3+ HONEY 1KG' );
Insert Into Tbarang(Id,Nama) Values( '8712045015209' ,' SUST KID 3+ VANILA 1KG' );
Insert Into Tbarang(Id,Nama) Values( '8712045015230' ,' SUST KID 3+ CHOCO 1KG' );
Insert Into Tbarang(Id,Nama) Values( '8712045010068' ,' SUST JUNIOR 1+ MADU 1KG' );
Insert Into Tbarang(Id,Nama) Values( '8712045007594' ,' SUST JUNIOR 1+ VANILA 1KG' );
Insert Into Tbarang(Id,Nama) Values( '8712045007488' ,' SUST SCHOOL 6+ VANILA 1KG' );

Minggu, 05 Juni 2011

Tutorial membuat koneksi database pada visual basic

Koneksi database pada visual basic memungkin untuk dibuat dengan berbagai cara dan tentunya juga dengan beragam pilihan database yang bisa kita pakai mulai dari yang paling jadul hingga yang paling update...
Salah satu database jadul yang sudah dibundel pada visual basic adalah ms. access 97. Sangat disarankan bagi anda yang baru belajar menggunakan visual basic karena cara penggunaanya yang sangat mudah namun mampu menampung data lebih baik bila dibandingkan dengan database yang terbaru sebab resource yang dibutuhkan tentunya jauh lebih kecil sehingga daya simpannya pun jauh lebih banyak untuk yang sekelas...
Langsung aja tentang cara penggunaannya...
Sebelumnya jalankan dulu visual basic dan buat dulu databasenya dengan cara :




Kemudian :



Lalu Save dengan nama terserah anda (Mis : DBase.mdb) dan buat dulu databasenya...
Setelah selesai membuat database kita kembali lagi ke visual basic dan buat satu form, satu komponen data serta satu komponen databound grid seperti terlihat pada gambar :



Robah Properti data seperti yang terlihat pada gambar berikut...



Dan robah properti Databound Grid (DataSource : Data1). Lalu jalankan. Maka anda melihat hasilnya saat itu juga...
Mudah bukan. Silahkan bertanya bila ada yang kurang jelas. Semoga sedikit bisa membantu...

Sabtu, 04 Juni 2011

Belajar bahasa pemograman objek

Bagi anda semua yang berniat untuk memulai mempelajari bahasa pemograman saya sangat menyarankan untuk memulainya dari yang paling mudah dan tentunya berbasis objek sehingga saya memulainya dengan mengajarkan visual basic.
Kenapa visual basic, sebab disamping saya juga memulai belajar dari visual basic menurut saya pribadi membuat program sangatlah tidak mudah apalagi kalau program yang mau dibuat tersebut memiliki kompleksitas yang tinggi sehingga nantinya bagi yang baru akan mulai belajar akan memicu rasa bosan dan akan tertanam bahwa membuat sebuah program sanagat, sangat sangat susah.
Sebenarnya tidak terlalu susah kalau hanya untuk program yang sederhana cuma yang susah adalah menangkap gambaran dari program yang akan dibuat dan menuangkannya dalam berbagai perintah.
Sebelum benar2 memasuki untuk membuat program, tahukah anda buat apa program dibuat dan pekerjaan yang bagaimana yang memang harus dibuatkan dalam sebuah program?
Pernahkan anda melakukan sebuah pekerjaan yang berulang2 setiap harinya? Mulai dari pagi sampai jam kerja habis anda hanya melakukan hal yang sama setiap hari.
Dalam kehidupan sehari2 misalnya anda menyapu rumah, membersihkan tempat tidur, memotong rumput, memberi makan peliharaan, mencuci motor(bila anda melakukan setiap hari) serta rutinitas lainnya. Maka untuk melakukan itu anda bisa membuat bisa membuat robot yang bakalan rutin melakukan hal yang sama setiap harinya.
Kalau dalam pekerjaan dikantor, anda misalkan seorang kepala gudang yang melakukan pencatatan barang mask dan barang keluar setiap hari serta menghitung stock yang tinggal lalu mencocokannya dengan yang tercatat pada buku anda. Hal pencatatan ini tentunya bakalan anda lakukan berulang2 kali dan cara menghitungnya bakalan tetap sama selamanya. Maka untuk itu anda membuat sebuah program inventory yang bakalan melakukannya.
Apa kelebihan dari menggunakan program dari pada dikerjakan sendiri. Toh yang bakalan mengerjakannya juga kita koq? Tentunya bakalan ada pertanyaan demikian...
Kalau anda yang melakukannya sendiri, apakah anda yakin dengan pengurangan dan penambahan yang anda lakukan. Walaupun hanya penambahan dan pengurangan satu digit (2 + 4 misalnya) namun sekali2 pasti bakalan ada kesalahan. Belum lagi kalau anda lupa melakukan pengurangan dengan jumlah stock dan hanya mencatatnya dalam pembukuan barang keluar, tentunya ga bakalan ketemu dimana selisihnya.
Beda halnya dengan komputer yang bakalan mengerjakan semua hal yang sudah diperintahkan. Komputer bukanlah benda pintar yang bisa kerja sendiri namun komputer benda yang teliti dan teratur sehingga sekali anda merekam perintah melakukan sesuatu ga bakalan berobah sebelum anda sendiri yang merobahnya. Beda dengan anda maupun orang lain yang banyak khilafnya...
Bahasa pemograman sendiri ada tingkatannya namun yang paling susah adalah bahasa pemograman cliper karna mash berbasis text dan warnanyapun kurang menarik namun sangat powerful sebab tidak memakan resource memori yang banyak.
Ditahap awal pembelajaran ada baiknya anda mempelajari Visual Basic terlebih dahulu karena memang ini yang paling mudah dan paling banyak referensinya baik didunia maya maupun melalui buku2 pembelajaran yang banyak dijual oleh orang2.
Meskipun mudah, visual basic tidak dapat diremehkan karena kelengkapan komponen serta dukungan dari developernya sendiri yaitu Windows membuatnya menjadi pilihan popoler bagi programmer pro dibandingkan dengan bahasa pemograman sekelas seperti delphi, foxpro dan lain sebagainya....

Jumat, 03 Juni 2011

Setting gammu sebagai sms gateway Part II

Menyambung article terdahulu "Setting gammu sebagai sms gateway" kali ini saya mengasumsikan bahwa anda sudah memiliki segala kebutuhan yang nantinya bakalan dipakai untuk pembuatan SMS Gateway dengan gammu ini.
Silahkan anda extract terlebih dahulu gammu pada directory C: (Biasanya sih C, namun kalau pengen beda ga masalah) lalu cari file dengan nama "gammurc" (tanpa tanda kutip dan tanpa ekstensi) dan buka make Text Editor (Notepad, Wordpad, WS, etc) dan samakan dengan ini :
[gammu]

; isikan nomor port di bawah ini
port = com6:

; isikan jenis connection di bawah ini
connection = at2400
; --------------------------------------------------
; Konfigurasi di bawah ini hanya diisi
; jika hp/modem yang ingin dipasang lebih dari 1
; --------------------------------------------------

[gammu1]

; isikan nomor port di bawah ini
;port =

; isikan jenis connection di bawah ini
;connection =

[gammu2]

; isikan nomor port di bawah ini
;port =

; isikan jenis connection di bawah ini
;connection = 
 Sesuaikan bagian yang saya bold dengan settingan Modem anda lalu save.
Masuk ke CMD (DOS) dan masuk ke direktori gammu yang sebelumnya telah dibuat dan kettikkan Gammu Identify lalu ENTER.

Bila muncul beberapa keterangan tentang modem anda maka anda sudah sukses untuk setting awal modem anda.
Masuk ke database lalu buat sebuah database dengan nama terserah anda lalu import kan perintah SQL berikut :
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for daemons
-- ----------------------------
CREATE TABLE `daemons` (
  `Start` text NOT NULL,
  `Info` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for gammu
-- ----------------------------
CREATE TABLE `gammu` (
  `Version` int(11) NOT NULL default '0'
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for inbox
-- ----------------------------
CREATE TABLE `inbox` (
  `UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `ReceivingDateTime` timestamp NOT NULL default '0000-00-00 00:00:00',
  `Text` text NOT NULL,
  `SenderNumber` varchar(20) NOT NULL default '',
  `Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compression','Unicode_Compression') NOT NULL default 'Default_No_Compression',
  `UDH` text NOT NULL,
  `SMSCNumber` varchar(20) NOT NULL default '',
  `Class` int(11) NOT NULL default '-1',
  `TextDecoded` varchar(160) NOT NULL default '',
  `ID` int(10) unsigned NOT NULL auto_increment,
  `RecipientID` text NOT NULL,
  `Processed` enum('false','true') NOT NULL default 'false',
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for outbox
-- ----------------------------
CREATE TABLE `outbox` (
  `UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `InsertIntoDB` timestamp NOT NULL default '0000-00-00 00:00:00',
  `SendingDateTime` timestamp NOT NULL default '0000-00-00 00:00:00',
  `Text` text,
  `DestinationNumber` varchar(20) NOT NULL default '',
  `Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compression','Unicode_Compression') NOT NULL default 'Default_No_Compression',
  `UDH` text,
  `Class` int(11) default '-1',
  `TextDecoded` varchar(160) NOT NULL default '',
  `ID` int(10) unsigned NOT NULL auto_increment,
  `MultiPart` enum('false','true') default 'false',
  `RelativeValidity` int(11) default '-1',
  `SenderID` varchar(255) default NULL,
  `SendingTimeOut` timestamp NULL default '0000-00-00 00:00:00',
  `DeliveryReport` enum('default','yes','no') default 'default',
  `CreatorID` text NOT NULL,
  PRIMARY KEY  (`ID`),
  KEY `outbox_date` (`SendingDateTime`,`SendingTimeOut`),
  KEY `outbox_sender` (`SenderID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for outbox_multipart
-- ----------------------------
CREATE TABLE `outbox_multipart` (
  `Text` text,
  `Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compression','Unicode_Compression') NOT NULL default 'Default_No_Compression',
  `UDH` text,
  `Class` int(11) default '-1',
  `TextDecoded` varchar(160) default NULL,
  `ID` int(10) unsigned NOT NULL default '0',
  `SequencePosition` int(11) NOT NULL default '1',
  PRIMARY KEY  (`ID`,`SequencePosition`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for pbk
-- ----------------------------
CREATE TABLE `pbk` (
  `GroupID` int(11) NOT NULL default '-1',
  `Name` text NOT NULL,
  `Number` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for pbk_groups
-- ----------------------------
CREATE TABLE `pbk_groups` (
  `Name` text NOT NULL,
  `ID` int(11) NOT NULL auto_increment,
  PRIMARY KEY  (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for phones
-- ----------------------------
CREATE TABLE `phones` (
  `ID` text NOT NULL,
  `UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `InsertIntoDB` timestamp NOT NULL default '0000-00-00 00:00:00',
  `TimeOut` timestamp NOT NULL default '0000-00-00 00:00:00',
  `Send` enum('yes','no') NOT NULL default 'no',
  `Receive` enum('yes','no') NOT NULL default 'no',
  `IMEI` varchar(35) NOT NULL,
  `Client` text NOT NULL,
  `Battery` int(11) NOT NULL default '0',
  `Signal` int(11) NOT NULL default '0',
  `Sent` int(11) NOT NULL default '0',
  `Received` int(11) NOT NULL default '0',
  PRIMARY KEY  (`IMEI`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

-- ----------------------------
-- Table structure for sentitems
-- ----------------------------
CREATE TABLE `sentitems` (
  `UpdatedInDB` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
  `InsertIntoDB` timestamp NOT NULL default '0000-00-00 00:00:00',
  `SendingDateTime` timestamp NOT NULL default '0000-00-00 00:00:00',
  `DeliveryDateTime` timestamp NULL default NULL,
  `Text` text NOT NULL,
  `DestinationNumber` varchar(20) NOT NULL default '',
  `Coding` enum('Default_No_Compression','Unicode_No_Compression','8bit','Default_Compression','Unicode_Compression') NOT NULL default 'Default_No_Compression',
  `UDH` text NOT NULL,
  `SMSCNumber` varchar(20) NOT NULL default '',
  `Class` int(11) NOT NULL default '-1',
  `TextDecoded` varchar(160) NOT NULL default '',
  `ID` int(10) unsigned NOT NULL default '0',
  `SenderID` varchar(255) NOT NULL,
  `SequencePosition` int(11) NOT NULL default '1',
  `Status` enum('SendingOK','SendingOKNoReport','SendingError','DeliveryOK','DeliveryFailed','DeliveryPending','DeliveryUnknown','Error') NOT NULL default 'SendingOK',
  `StatusError` int(11) NOT NULL default '-1',
  `TPMR` int(11) NOT NULL default '-1',
  `RelativeValidity` int(11) NOT NULL default '-1',
  `CreatorID` text NOT NULL,
  PRIMARY KEY  (`ID`,`SequencePosition`),
  KEY `sentitems_date` (`DeliveryDateTime`),
  KEY `sentitems_tpmr` (`TPMR`),
  KEY `sentitems_dest` (`DestinationNumber`),
  KEY `sentitems_sender` (`SenderID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `gammu` VALUES ('10');
Kembali ke directory gammu lalu buka file "smsdrc" (tanpa tanda kutip dan tanpa ekstensi) dan lakukan setting seperti yang berikut :
[gammu]
# isikan no port di bawah ini
port = com6:
# isikan jenis connection di bawah ini
connection = at2400
[smsd]
service = mysql
logfile = smsdlog
debuglevel = 0
phoneid = MyPhone1
commtimeout = 10
sendtimeout = 10
deliveryreport = no
PIN = 1234

# -----------------------------
# Konfigurasi koneksi ke MySQL
# -----------------------------
pc = localhost

# isikan user untuk akses ke MySQL
user = root
# isikan password user untuk akses ke MySQL
password =
# isikan nama database untuk Gammu
database = tgasrpl
Perhatikan yang sudah saya bold dan sesuaikan dengan database serta modem anda.
Balik ke CMD lalu masuk ke directory gammu serta ketikkan perintah "Gammu-smsd -c smsdrc -i" dan enter...
Anda bisa menjalankan service nya pada service yang ada di Control Panel dengan catatan anda sudah mengkoneksikan HP serta menghidupkan server SQL anda...
Silahkan dicoba...
Pada postingan berikutnya, saya akan menerangkan tentang bagaimana menggunakan gammu melalui perintah sql. Jadi silahkan anda persiapkan SQL Client anda seperti SQL Front, Heidy SQL, atau terserah anda maa yang nyaman... Sampai jumpa pada postingan berikutnya...

Setting gammu sebagai sms gateway

Postingan awal kayaknya bakalan saya mulai dengan tema yang sedikit agak berat namun menarik untuk diikuti yaitu tentang SMS Gateway. Sebenarnya untuk yang sudah advance terutama dalam hal programming gammu bukanlah hal luar biasa karena inti dari penggunaan program ini hanya anda sebagai user. Bukanlah Programmer.
Namun bagai yang masih awam, tentunya bakalan sangat perhatian mereka sebab SMS Gateway sendiri bisa digunakan untuk berbagai kebutuhan baik komersil maupun hanya sebatas hobi.
Berikut hal yang bisa dilakukan dengan gammu :
  • SMS Autorespon. Yaitu membalas SMS secara otomatis tentunya dengan format yang sudah anda tentukan sendiri...
  • SMS Polling. Ingat ga dengan AFI, Idola Cilik, KDI, dll yang mengajak anda untuk ikut serta dalam pemilihan pesertanya melalui SMS. Tentunya dengan sedikit olahan anda bakalan bisa membuat hal yang serupa.
  • Scheduled SMS. Entah benar atau salah penulisannya, namun yang saya maksud disini adalah SMS terjadwal sehingga dengan melakukan berbagai pengaturan anda bisa mengirimkan SMS secara otomatis kepada teman atau rekan anda apakah untuk SMS Ulang Tahun, Just Info, etc
  • SMS Masal. Sebagai orang marketting atau PR tentunya anda bakalan membutuhkan media yang bisa anda gunakan untuk mengirimkan SMS secara massal kepada orang lain dengan format dan isi yang sama. Ga kebayang bukan kalau anda harus mengirimnya melalui HP. Dengan gammu hanya satu kali yang anda kerjakan maka SMS anda akan terkirim kesemuanya tanpa campur tangan lagi.
  • Masih banyak lagi hal menarik yang bisa anda lakukan dengan prngolahan database gammu yang tentunya anda bakalan lebih creative dari saya untuk menciptakan alat tersebut.
Beberapa hal yang harus anda persiapkan untuk menggunakan GAMMU antara lain :
  • HP. Persyaratan HP yang bisa anda pakai adalah HP yang support untuk AT Command (biasanya HP Cina sudah support untuk gammu) dan konektivitas ke komputer (terserah mau makai bluetooth atau kabel data yang penting bisa konek).
  • Kabel data atau bluetooth untuk koneksi dari HP ke Komputer.
  • Komputer sebagai core dari semuanya.
  • Software gammu yang bisa anda googling sendiri.
  • WampServer. Sebaiknya anda memakai WampServer 2 karena itu yang saya pakai
 Silahkan anda cari dulu kelima hal yang saya sebutkan diatas sehingga kita bisa sama2 mempraktekkannya. Nanti akan saya lanjutkan ke postingan berikutnya untuk praktek. Bila masih ada yang kurang jelas, jangan sungkan2 bertanya. Insya ALLAH akan saya jawab secepatnya...