Category Archives: Programming

Semua tentang pemrograman

Sultan POS initial release

icon_512Setelah beberapa bulan develop, akhirnya hari ini saya berkesempatan untuk merilis aplikasi software minimarket yang saya buat. Namun saya yakin software tersebut masih banyak bug sana sini. Tujuan dari rilis pertama ini adalah melihat bagaimana publik merespon software tersebut, karena jika tidak ada respon yang bagus mungkin nanti akan saya kesampingkan proyek FOSS tersebut.

OK langsung saja pada rilis pertama ini software memiliki feature sebagai berikut :

  • Network : menggunakan websocket, menggunakan design client server.
  • Multi harga : 1 barang bisa memiliki multi harga untuk pembelian dalam jumlah tertentu.
  • Kategori : pengkategorian barang
  • Suplier
  • Multi user dan permission : bisa menambah user dan hak akses
  • Laporan penjualan
  • Laporan uang masuk
  • Laporan transaksi
  • Penghitungan margin : untuk harga beli disetting manual
  • Database pelanggan : pelanggan dapat memiliki poin dan dapat membeli secara piutang
  • Pembayaran bisa tunai dan dengan kartu kredit
  • Database : SQLite dan MySQL

Continue reading

Minimarket POS : Sultan POS

Berlatar belakang karena seringnya mendapatkan pertanyaan dari temen “ada aplikasi POS minimarket gratis yang bagus apa ya, di internet jarang yang gratis”. Dan juga ketika saya berbalanja di toko-toko swalayan di beberapa tempat, mereka masih menggunakan sistem jadul yaitu DOS dan juga Windows XP. Rata-rata komputer yang mereka gunakan tergolong tua, mungkin itu alasan mereka menggunakan DOS dan XP.

Dari cerita diatas akhirnya sayapun terpikir untuk membuat satu software POS minimarket yang jalan di atas sistem operasi yang up to date yaitu GNU/Linux. Dan software saya buat dengan menggunakan bahasa C++ dengan framework Qt. Kenapa menggunakan C++ dan Qt adalah karena pilihan inilah yang paling tepat jika saya ingin menginginkan performa yang bagus pada hardware2 tua. Selain pada hardware tua, saya juga memiliki target untuk menjalankan software tersebut pada komputer murah yaitu Raspberry Pi. Continue reading

Javascript html ke pdf dan direct print

Setelah menelusuri banyak library yang dapat mengkonvert dari html ke pdf dengan javascript dan belum menemukan library yang sangat memuaskan hati karena hasil dari convert PDF tidak sesuai dengan keinginan. Dan akhirnya saya menulis library sendiri dan saya kasih nama Pulas. Pulas bukan berarti tidur, tapi pulas adalah mewarnai. Pulas adalah bahasa jawa dan mungkin hanya orang tertentu yang mengerti bahasa ini.

Arsitektur Pulas

Pulas terdiri dari 1 aplikasi desktop yang saya tulis dengan library Qt dan 1 library javascript. Dimana aplikasi desktop inilah yang bertanggung jawab untuk berkomunikasi secara langsung ke printer. Aplikasi desktop ini menjalan web socket server dimana library javascript itu nanti akan berkomunikasi. Komunikasi semua dilakukan dengan data format JSON untuk memudahkan dalam parsing.

Dalam mengkonvert dari html ke pdf atau printer, aplikasi desktop menggunakan Webview. Sehingga Pulas dapat benar-benar mempresentasikan setiap kode html, css, dan javascript ke pdf atau printer. Continue reading

Golang – Time to String and String to Time


Time ke String

Untuk menformat golang time ke string terdapat beberapa cara yaitu menggunakan time.String() atau time.Format().

  • time.String() : akan menghasilkan string dengan format waktu ISO. Contoh : 2009-11-10 23:00:00 +0000 UTC


    Golang Playground
  • time.Format() : dapat digunakan untuk memformat string seperti yang kita inginkan.

    Golang Playground

Continue reading

Go – Concurrency

Concurency atau threading adalah proses/pekerja yang menjalankan program atau kode. Contoh thread dalam dunia nyata yaitu katakan kita sedang membangun rumah dan orang yang bekerja sebagai pembangun rumahnya adalah thread / worker. Dan semakin banyak tukang yang ada maka perkerjaan membangun rumah akan cepat selesai.

Dan dengan berkembangnya processor saat ini yang lebih menekankan kepada banyaknya processor, multi thread programming sangatnya cocok untuk digunakan, karena nantinya setiap core pada processor dapat menghandle thread masing-masing. Namun pemrogramman multi thread ini tidaklah semudah yang kita analogikan tadi seperti adanya masalah tentang ketergantungan 1 thread dengan yang lain dan adanya resource / data yang diakses oleh beberapa thread secara bersamaan. Namun pada golang semua sudah dikemas dalam 1 kesatuan yang lebih mudah yaitu dengan goroutine dan channel.


Goroutines

Continue reading

Golang – Json

Json (Javascript Object Notation) merupakan format file yang saat ini begitu banyak digunakan, dan bahkan menggeser keberadaan xml saat ini. Di Golang menyediakan package yang dapat digunakan untuk memproses json ini.


Encoding

Encoding atau mengkonvert variable dalam Go ke string dengan format json. Fungsi yang dapat digunakan untuk encoding yaitu :

Perhatikan contoh berikut :

http://play.golang.org/p/ddQgDvmBvv

Continue reading

Golang – Konversi String

Golang menyediakan package untuk konversi string yaitu package strconv. Pada package ini disedikan banyak fungsi yang dapat digunakan untuk mengkonversi dari string ke tipe lain dan sebaliknya.


String ke Integer

Untuk konversi dari string ke integer terdapat 2 fungsi yaitu :

  • func Atoi(s string) (i int, err error)
  • func ParseInt(s string, base int, bitSize int) (i int64, err error)
    base : base integer yang akan di parsing, nilainya 10 (desimal normal), 8 (hexadesimal)
    bitSize : ukuran dari bit dari string yang akan di konversi

Untuk lebih jelas silakan check contoh berikut :

http://play.golang.org/p/Fk_VIt0aJw


Integer ke String

Continue reading

Golang – Interface

Golang interface adalah 2 hal, deretan method dan juga type data. Mari kita lihat bagaimana sebuah interface didefinisikan.

http://play.golang.org/p/E3_kaGTWJW

Continue reading

Golang – Embeded Struct

Kita dapat memasukkan struct ke dalam struct seperti halnya tipe data biasa. Seperti terlihat pada kode dibawah ini.

Pada contoh di atas kita dapat mengakses posisi dari circle dan rectangle dengan pengakses variable p, dan mendapatkan nilai dari x dan y nya. Struct diatas adalah struct normal tidak ada keistemewaan.

Continue reading

Golang – Method

Method adalah fungsi yang hanya dapat dipanggil dari/oleh instance sebuah type. Method hampir sama dengan fungsi hanya saja ditambahkan recievernya yaitu sebuah type. Type disini bisa berupa apa saja. Perhatikan contoh berikut.

Continue reading