Pinjaman modal untuk Startup IT

0

Beberapa hari lalu ada pertanyaan menggelitik tentang bagaimana mencari pinjaman untuk startup IT. Pertanyaan ini ditanyakan oleh Fariz di milis IT Project Management indonesia (it-project-indonesia@googlegroups.com). Dijawab oleh Daud dengan sangat baik, kira-kira begini pertanyaan dan jawabanya :

Pertanyaan :

saya mau bertanya mengenai masalah modal nih.
saya sudah tahu beberapa jalur untuk mendapatkan modal seperti
1. crowd funding di beberapa web
2. incubator bisnis khusus IT seperti bandung valley dan BTP
3. cari investor perorangan
ada yang bisa menjelaskan ke saya cara peminjaman modal ke bank untuk bisnis IT ?
atau kalau mau menjelaskan lagi lebih rinci 3 poin di atas jg boleh, atau ada cara lain ?

Jawabanya :

Untuk mendapatkan pinjaman dari bank harus memenuhi persyaratan dari bank pemberi kredit (beragam bisa tanya ke CS-nya masing2), kalau di BRI untuk KUR micro/perorangan maksimal 20jt, bunga 22% per tahun, legalitas individu (KTP, KK), legalitas usaha (NPWP, SIUP, Surat Keterangan Usaha), lama usaha minimal 6 bulan.
Kalo mau agak gede bisa coba di bank jatim atau bank mandiri, plafon bisa sampai 500jt (tergantung jenis usaha).

pinjaman dari bank sifatnya mengikat, kalau anda berhasil mendapat pinjaman maka sesuai kesepakatan pengembalian (plus bunga) akan ditagih entah usaha sudah untung atau belum.

pinjaman dari bank tidak cocok untuk usaha yg belum jalan / masih ide, atau sudah jalan tapi cashflow / perhitungan revenue belum pasti.

inkubator, belum punya pengalaman langsung, tapi yg saya tahu, kalau di komunitas biasanya ada yang mau nyeponsorin ide bagus, beberapa komunitas seperti bursaide memberi pendanaan dari level ide (sesudah seleksi ketat), komunitas lain seperti stasion setahu saya ada angelnya, jadi kalo pada saat demo produk anda dinilai potensial biasanya ada kucuran dana (anda perlu punya minimum viable product, bukan sekedar ide). rajin2 aja ikut komunitas startup, biasanya banyak info dan link di sana.

hutang ke perorangan, umumnya dikumpulkan dari 3F: Family, Friend & Fools
yang begini biasanya orangnya awam, nggak tau kita bikin apaan, tapi karena dekat/sayang/percaya mau minjamin duit.
jangan remehkan kekuatan perorangan, dari beberapa keluarga ditambah teman yang tepat anda bisa menggalang 50 – 70jt dengan mudah. mestinya itu cukup untuk operasional setahun pertama, walaupun ini lebih longgar daripada pinjaman bank, anda tetap perlu memastikan model bisnisnya akan menghasilkan uang (bukan sekedar riset atas biaya orang lain), karena bagaimanapun setelah setahun/waktu yg dijanjikan orang2 tersebut pasti nagih, dan kalo gagal bisa2 endingnya keluarga/teman nggak tegur sapa.

alternatif terakhir, favorit saya, investor per orangan,
berbeda dengan hutang ke perorangan, kalo investor biasanya paham apa yg kita kerjain dan tau manfaat yg mungkin didapat (potensi pasar, dll), sehingga tertarik untuk memberikan uangnya.
anda bisa bikin proposal penawaran terlebih dulu soal produk yg mau dibikin, target pasar, bagaimana mencapainya, proyeksi cashflow, dll. presentasikan ke orang yg menurut anda paham bidang itu
misal anda yakin ada pasar untuk aplikasi risk management, coba cari kenalan yg auditor untuk ngemodalin.
atau anda yakin ada pasar untuk aplikasi HRD, coba cari kenalan yg punya outsourcing,

presentasikan ide anda, bagus kalo udah ada mockup, sekedar bisa nunjukin proses bisnis, lalu kasih penawaran untuk masalah modal, pembagian keuntungan dan pembagian kerugian.
modal bisa patungan (nominalnya tidak harus sama)
bisa juga seluruhnya dari investor (modal anda hanya ide, dan kerja)
pembagian keuntungan dan kerugian tidak harus sama besar, bisa melihat proporsi modal yg disetor, misalnya anda dan investor rationya 20:80, tapi karena anda bekerja menuntut pembagian keuntungan/kerugian 50:50, hal ini wajar, asal sama2 setuju saja.
oya, keuntungan ngitungnya setelah dikurangi operasional (bayar listrik, air, pegawai, marketing, internet, dll), kalo pas rugi ya yg dibagi ruginya.
ada investor yg ngijinin anda mengambil uang modal sebagai gaji, ada juga investor yg tidak membolehkan anda ambil gaji (hanya dapat bagian dari bagi hasil).

bedanya investor sama utang, kalo utang orang pingin duitnya balik, kalo invest orang ngerti risiko usaha (bisa rugi) dan waktu prospek risiko2 apa yg mungkin muncul harus dipaparkan dan tidak boleh disembunyikan dari calon investor, jadi kalo sampe usahanya rugi ya sama2 maklum kalo duitnya hilang (tapi jangan sengaja dibikin rugi, ntar namanya luntur)

mana2 aja alternatif yg anda ambil, ingat bahwa pada point tertentu uang tersebut perlu dipertanggungjawabkan
jadi validasikan ide sebelum mulai terima duit dari orang lain. idealnya sih ide anda sudah valid, ada prototipe/produk separuh jadi, ada penggunanya, ada model bisnis (gimana/darimana uang mengalir) biasanya modal akan ngikutin.

selamat berusaha, semoga berhasil.

Semoga bermanfaat buat yang mengalami hal yang sama dengan Fariz.

Bussiness Analyst vs System Analyst

0

Beberapa hari ini ada diskusi lumayan hangat di milis IT Project Management <it-project-indonesia@googlegroups.com> tentang Role Bussiness Analyst dan System Analyst. Diskusinya lumayan hangat dan memancing jawaban yang cukup berbobot. Berikut ini rangkumanya :

Angga Hantara :
Share dong kriteria BA(Business Analayst) dan System Analyst (SA) yang bagus menurut kalian ,
Kalau menurut saya, yang di aplikasikan ke kantor kualifikasi mereka seperti ini:
1. BA(Business Analayst)
– Menggali kebutuhan user
– Membuat UML diagram (Use Case Diagram atau Activity Diagram)
– Membuat prototype tampilan dari aplikasi yang akan buat (UX & UI)
– Improve Business Process dan simplified flow
2. System Analyst (SA)
– Menerjemahkan proses bisnis dari BA ke bentuk aplikasi
– Developing spesifikasi, diagrams dan flowcharts untuk programmer
– Membuat scenario tes
– Menetukan pattern dan teknologi yang akan digunakan
– Design Database untuk di gunakan dalam aplikasi
Itu menurut saya tetapi kemarin saya dapat informasi kalo sebaiknya yang menentukan pattern dan teknologi itu di oper ke Senior Programmer saja,dan untuk database lebih baik di pekerjakan 1 DBA saja untuk membantu SA merancang database yang di gunakan.
Kalo di oper begitu bukannya scope SA dan BA jadi terlihat sama yah ? jadi agak membingungkan.

The Fikr :
Menurut saya tergantung dari scope system yang akan dibuat. BA dan SA bisa disatukan jika scope system yg dibuatnya kecil, dan bisa ditambah layer-layer lain diantaranya jika scope system yg akan dibuat besar.
Tapi untuk BA saya kira satu hal yg penting adalah kemampuan negosiasi, dimana BA harus bisa menegokan, memberikan alasan yg masuk akal atas perubahan terhadap flow yg dia ajukan.
Kelemahan jika pattern dan teknologi diserahkan kepada Senior Programmer adalah, kemungkinan besar penggunaan pattern + teknologi tersebut tidak akan didokumentasikan, karena biasanya SP lebih cenderung kepada code daripada dokumentasi, hal ini sama juga dengan DBA, mereka adalah eksekutor, mereka lebih tahu tentang lapangan dan teknik yg lebih baik, tetapi untuk planning dan dokumentasi mereka kurang bisa diandalkan.

Jadi jika di breakdown kemungkinan tugasnya adalah sebagai berikut :
- BA berhubungan dengan klien dan SA
- SA mengurus planning dan dokumentasi, test, legalitas software dll, berhubungan dengan SP dan DBA untuk membicarakan teknikal dan implementasi di development.
- SP dan DB eksekusi plan dari SA dan memberikan usulan teknik yg lebih baik, dan memberitahukan perubahan yg terjadi ke SA pada saat masa development untuk kebutuhan dokumentasi SA.

Hanya pendapat saya saja. :)

Endy Muhardin :
BA : harus ngerti proses bisnis. Harus udah pengalaman juga menjalankan proses bisnis dengan aplikasi. Tujuannya biar dia tau mana requirement yang masuk akal untuk dibuatkan di aplikasi, mana requirement yang sebaiknya mengubah proses bisnis aslinya, mana yang simply ridiculous dan sebaiknya ditolak aja. Harus tau juga mana proses bisnis yang salah (misalnya orang yang mencatat transaksi sama dengan yang pegang uang) sehingga jangan sampai dibuatkan di aplikasi.

SA : scopenya system, yang mencakup gak hanya aplikasi, tapi juga infrastruktur. Harus punya pengalaman berbagai OS, ngerti jaringan, security, dsb. Bisa merancang topologi jaringan yang sesuai dengan aplikasi yang mau dibikin (misal: koneksi GPRS vs koneksi WiFi vs koneksi kabel).

Senior Programmer : merancang aplikasi. Di jaman sekarang udah gak aneh lagi kalo SP ini selain mendesain aplikasi juga mendesain skema database. DBA itu lebih ke tuning dan maintenance database servernya (misalnya: memilih storage engine yang tepat, pengaturan query buffer, query cache, schema partitioning, topologi database (master-slave atau gimana).

Perlu diperhatikan bahwa ini hanya pembagian role aja. Di lapangan mungkin aja satu orang merangkap SA, SP, DBA, karena dia menguasai semuanya.

Angga Hantara :
@Fikr
Caranya boleh juga tuh , jadi SA + Senior yang desain aplikasinya ,dan DBA yang nanti melakukan tuning dan maintenace.
Kalau BA key skill itu negosiasi dan bisnisnya , kalo SA yang menjadi key skill nya apa yah ?

@Endy
Kalo urusan Infrastructure bukannya udah di handle sama bagian networking yah ? Apa bisa juga seperti saran @Fikr,
jadi SA meeting dengan Senior Programmer,Networking ,dan DBA untuk handle infrastruktur sampe dengan Pattern aplikasi

Kalo scope kecil mending BA yang ngerangkap sebagai SA , apa SA yang ngerangkap sebagai BA yah ?

Ivan Darmawan
Di tim ku, hanya ada title software developer. SA, BA, DBA, Sys Admin, Tester semua memiliki title yang sama yaitu software developer karena mereka bertujuan untuk membangun software.

Satu orang developer bisa cross functional dan bisa merangkap sebagai SA, BA, DBA, dsb. Bagaimana cara dia bekerja, terserah tim developer yang memutuskan pembagian kerjanya. Hal ini bisa berjalan bila 1 tim developer minimal beranggotakan 5 orang. Lebih kecil dari 5 orang mungkin bisa terjadi developer abuse :)

Sedangkan masalah bisnis, product vision, negosiasi, risiko, budget atau hal-hal manajerial lain dipegang oleh orang diluar tim developer yakni product owner. Product owner tidak mengurusi masalah teknis development.

Endy Muhardin :
@Ivan dan @Angga :
Biar gak bingung, bedakan antara job role dan assignment.
Job role itu adalah daftar kerjaan untuk suatu posisi tertentu.
Assignment : orang yang ditugaskan untuk **satu atau lebih** job role.

Mau satu orang di-assign menjadi PM, Senior Dev, BA, SA, DBA, Programmer, sekaligus Office Boy boleh2 aja.
Tapi tidak berarti job role Office Boy boleh digabung dengan PM.
Nah, bisa lihat perbedaan antara job role dan assignment?

@Ivan
Mengenai job title, bebas aja. Di tempat saya ada yang memegang job role sebagai CEO, PM, SA, BA, DBA, (Senior + Junior) Programmer, Network Administrator, kadang merangkap Driver dan seksi dokumentasi kalau ada acara piknik kantor. Karena sulitnya menulis segala macam posisi tersebut di kartu nama (supaya muat menulis semua, kartu namanya harus ukuran A4 ;p), maka kita pakai title Senior Consultant ;)

@Angga
Bedakan pekerjaan menganalisa kebutuhan + merekomendasikan solusi dengan mengimplementasikan solusi.
Network Administrator itu tugasnya mengimplementasikan. Instal OS ini, pasang firewall anu, setup load balancing seperti ini, dst.
Untuk bisa menganalisa keseluruhan sistem (terdiri dari aplikasi, data storage, infrastruktur) perlu ada orang yang bisa melihat big picture. Nah ini namanya System Analyst (menganalisa **keseluruhan** sistem).

Bedakan juga menganalisa sistem (system analysis) dengan menganalisa proses bisnis (business analysis).
Contoh output SA :
- untuk mengimplementasikan requirement yang diminta, kita butuh dedicated-line 100Mbps, storage 2TB dalam bentuk SAN, cluster server yang terdiri dari minimal 4 cluster member, ideal 6 cluster member, load balance menggunakan non-sticky session[0]. Session replication dilakukan melalui shared storage dalam skema key-pair menggunakan memcached. Untuk aspek security, semua komunikasi data dilakukan melalui HTTPS. Kita juga membutuhkan tamper-resistant crypto-key storage (HSM)[1] yang diletakkan dalam secure room.

Contoh output BA :
- untuk menentukan biaya inventory, digunakan metode moving average dengan cara mencatat setiap harga perolehan barang di database per transaksi pembelian. Kemudian nilai moving average dihitung dengan cara membagi total nilai perolehan dengan total jumlah item dalam gudang[2].

Perhatikan output SA yang berkaitan dengan infrastruktur. Kalau diserahkan ke orang network, dari mana dia tahu bahwa harus pakai HTTPS dan clustering? Implementasi HTTPS dan clustering mungkin dia bisa, tapi merekomendasikan bahwa client butuh itu? Ini perlu mengerti juga karakteristik aplikasi yang akan dibuat.

[0] http://software.endy.muhardin.com/aplikasi/konsep-clustering/
[1] http://en.wikipedia.org/wiki/Hardware_security_module
[2] http://en.wikipedia.org/wiki/Average_cost_method

Angga Hantara :
@endy
Thanks mas endy untuk pencerahannya tentang perbedaannya.
SA di tempat saya cuma tahu proses aplikasi dan database doang tapi untuk masalah infrastuktur dan networking gag paham sama sekali malah :( .
Ada tips untuk interview BA dan SA mas endy ?

Ifnu Bima
Ini nih lengkap banget :

http://firstround.com/article/The-anatomy-of-the-perfect-technical-interview-from-a-former-Amazon-VP

Intinya :

1. Behavioral Interview
2. Gunakan STAR methodology untuk mendapatkan evidence
3. Tentukan Kompetensi Core dari perusahaan. Jadi kompetensi untuk
setiap Role ini harus jelas, jadi wawancaranya jelas yang ingin
digali.
4. Hiring tim yang bagus

Membuat servlet untuk download file

0

Hari ini di milis Netbeans-Indonesia@yahoogrops.com ada yang bertanya tentang bagaimana caranya agar file yang diupload tidak bisa diakses langsung oleh user dari URL. Dengan syarat seperti itu, maka file upload tidak boleh diletakkan dalam folder web. Tutorial proses upload file menggunakan netbeans visual web bisa dilihat di sini.

Tutorial diatas perlu sedikit dirubah agar file yang diupload diletakkan di luar dari folder web.

kode di bawah ini berguna untuk mendapatkan path dari folder “/resources/image-file” yang berada di dalam folder web:

private static final String IMAGE_URL = "/resources/image-file";
this.realImageFilePath = theApplicationsServletContext.getRealPath(IMAGE_URL);

kode diatas tinggal di rubah agar merefer ke folder /home/operation/upload

this.realImageFilePath = "/home/operation/upload"

Proses upload file bisa menggunakan banyak cara, selain menggunakan visual web diatas, bisa juga menggunakan apache commons upload. Setiap framework MVC selalu mempunyai cara tersendiri untuk upload file, spring MVC juga mempunyai cara yang berbeda, tutorialnya bisa dilihat di sini

Setelah file berhasil diupload, kita tinggal membuat servlet untuk download. Dengan NetBeans caranya menjadi sangat gampang, tinggal pilih new file -> web -> servlet, kemudian isi semua fieldnya, berikut ini contohny a:

Setelah selesai membuat servlet diatas, akan ada beberapa konfigurasi baru di dalam web.xml seperti di bawah ini :

    <servlet>
        <servlet-name>DownloadServlet</servlet-name>
        <servlet-class>com.artivisi.tutorial.servlet.DownloadServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>DownloadServlet</servlet-name>
        <url-pattern>/Download</url-pattern>
    </servlet-mapping>

Servlet ini nantinya akan bisa diakses dengan url :

http://localhost:8084/Download

Edit class DownloadServlet, dan tambahkan kode seperti di bawah ini di dalam method processRequest :

protected void processRequest(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        String filename = request.getParameter("file");
        String extention = filename.substring(filename.lastIndexOf(".") + 1, filename.length());
        if(extention.equalsIgnoreCase("png") || extention.equalsIgnoreCase("jpg") ||
                extention.equalsIgnoreCase("jpeg") || extention.equalsIgnoreCase("gif") ||
                extention.equalsIgnoreCase("bmp")){
            response.setContentType("image/" + extention.toLowerCase());
        } else {
            response.setContentType("application/" + extention.toLowerCase());
        }
        response.setHeader("Content-Disposition", "attachment; filename=" + filename);
        BufferedInputStream inputStream = new BufferedInputStream(
                new FileInputStream("/home/support/updload/" + filename));
        byte[] buffer = new byte[1024];
        int bytesRead;

        OutputStream outputStream = response.getOutputStream();

        while ((bytesRead = inputStream.read(buffer)) != -1) {
            outputStream.write(buffer, 0, bytesRead);
        }
        outputStream.close();
    }

Di dalam kode di atas ada bagian untuk mengambil parameter HTTP_GET, dengan nama parameter “file”. Parameter ini nantinya berisi nama file yang sudah diupload. Misalnya kita sudah pernah mengupload file dengan nama contoh.pdf, maka url untuk melakukan download adalah :

http://localhost:8084/Download?file=contoh.pdf

Selamat belajar

Linus Torvalds, Dari Tugas Kuliah Mengubah Dunia

5

Ini posting blog saya setelah 100+ hari tanpa posting :). Menikah itu memang mengubah seseorang, dari single dan nyaris 100% waktu untuk diri sendiri, menjadi nyaris 100% waktu dihabiskan berdua, semuanya serasa lebih seru karena tidak sendirian lagi. Tapi itu bukanya tanpa konsekuensi, :), ya salah satunya saya jadi lebih malas ngeblog ataupun melanjutkan hobi-hobi pribadi seperti dulu.

Ok cukup deh prolognya, saya mau cerita tentang Linus Torvalds deh. Tiba tiba terbetik di pikiran saya untuk menulis tentang satu orang ini, satu orang yang jenius dan mengubah cara kita hidup dalam nyaris 15 belas tahun terakhir, walaupun sebenarnya sejarah itu dimulai beberapa tahun lebih awal. Kata “Kita” di sini lebih saya tekankan kepada “kita” manusia yang terhubungkan di jalur internet, atau mungkin malah orang-orang yang mencari hidup dari boomingnya internet, seperti saya.

Diawali cerita yang menurut saya sangat mirip telenovela atau kisah klasik, seorang mahasiswa master nun jauh di helsinki mencoba menulis kode sederhana untuk membuat kernel OS yang sangat sederhana. Ternyata setelah ditekuni, kernel yang dibuatnya menjadi satu puzzle terakhir dari sebuah proyek besar. Richard Stallman dan kawan-kawan sudah puluhan tahun memulai proyek GNU untuk membuat sistem operasi alternatif yang bersifat terbuka, tetapi GNU project sangat kesulitan membuat kernel OS yang efisien dan berjalan dengan sangat baik. Maka, Linux ini menjadi tambahan terakhir dari proyek GNU menjai satu sistem operasi yang lengkap.

Linux pada awal tahun 90an masih menjadi proyek pribadi Linus, hingga beberapa tahun kemudian lewat usaha kerasnya memperkenalkan linux lewat banyak sekali konferensi, linux mulai banyak digunakan oleh perusahaan di dunia. Awal tahun 2000an menjadi gerakan yang panas sekali, dimana pendukung linux menjadi sangat fanatik memperkenalkan linux ke khalayak. Tetapi sebenarnya linux sudah digunakan banyak sekali orang secara tidak langsung.

Di belahan dunia lain, ada seorang yang sangat murah hati bernama Tim Berners Lee yang mengumumkan kepada khalayak dunia bahwa protokol yang disusunya WWW (world wide web), dilisensikan secara gratis dan dibuka untuk dimanfaatkan semuaaa orang yang tertarik. Protokol ini bisa menghubungkan banyak sekali server, dan memberikan akses informasi dalam bentuk html kepada semua orang. Tetapi sayangnya OS yang digunakan Tim adalah OS yang berbayar dan web servernya pun masih sangat sederhana. Internet yang pada dasarnya perlu pengunjung besar, informasi yang banyak dan tentu saja resource yang sangat besar tidak mungkin dibangun dengan menggunakan software-software yang berbayar, karena biaya yang diperlukan akan menjadi sangat besar.

Kedua peristiwa yang berjalan beriringan ini menjadi satu momentum yang tinggi, di satu sisi industri Internet perlu sever yang berbiaya murah di sisi lain Linux menyediakan apa yang dibutuhkan oleh internet. Momentum ini begiiitu besarnya sehingga tahun 2000 menjadi salah satu tahun bubble paling spektakuler dalam sejarah. Banyak bermunculan perusahaan-perusahaan yang menawarkan service Linux menjadi sangat besar, bahkan beberapa perusahaan berhasil mendaftarkan diri di Bursa Efek, istilahnya Initial Public Offering (IPO). Internet plus Linux mengguncang dunia dan mendorong pertukaran informasi yang sangat cepat dan gratis, dikenal dengan era informasi, bahkan mendorong evolusi sistem operasi.

Pada titik ini, banyak orang-orang mulai memikirkan kembali hakekat software dan lisensinya, karena sekarang software tidak lagi menjadi barang jualan, tetapi lebih menjadi alat untuk mendapatkan nilai yang lebih tinggi, yaitu layanan internet. Maka mulailah didengung-dengunkan Open Source agar orang, perusahaan dan siapapun yang berminat menggunakan software dengan lisensi tertentu untuk membuat layanan dengan nilai yang sangat tinggi di atas software tadi. Google, facebook dan nyaris sebagian besar perusahaan internet sekarang ini menggunakan Linux di server-server mereka. Bayangkan jika OS dengan lisensi open source seperti linux tidak tersedia? layanan seperti google search dan facebook yang beegiitu bagusnya dan memerlukan banyak sekali resource tidak akan mungkin bisa dibuat semurah ini kalau OS dan softwarenya harus berbayar.

Kita balik lagi ke personal dari Linus Torvalds dan kejeniusanya. Linux adalah monolitic software, dimana semua proses dijalankan dari satu single file. Berbeda dengan kepercayaan ahli kernel OS waktu itu, model paling ideal untuk sebuah kernel adalah model node-node kecil yang berjalan secara independen dan bertukar data dengan sistem messaging. Sistem ini dalam prakteknya sangat susah untuk diperbaiki kalau ada masalah, karena masalah bisa saja muncul dari sekenario yang sangat susah untuk direkonstruksi, dimana setiap node punya keadaan yang berbeda-beda dan pesan yang dikirim antar node juga bisa sangat berbeda. Sistem monolitic yang digunakan Linus dalam Linux pada awalnya dikritik habis-habisan oleh dosen pembimbingnya, dan disarankan untuk segera diakhiri saja karena membuang-buang waktu. Tetapi linus bergeming, sistemnya jauh lebih stabil dan tahan terhadap berbagai macam kesalahan yang muncul karena aplikasi maupun hardware tidak berlaku selayaknya.

Hiruk pikuk Linux sedikit mereda beberapa tahun terakhir ini, ditandai dengan evangelist linux yang tidak segencar misalnya 10 tahun lalu, dikarenakan linux sudah menjadi semacam komoditas yang semua orang sudah tahu kehandalanya sehingga tidak lagi diperlukan banyak sekali edukasi. Hiruk pikuk berpindah ke cara bagaimana menggunakan linux sebagai alat untuk menghasilkan produk atau layanan yang lebih menyentuk pengguna secara langsung. Misalnya membuat ecomerce atau layanan internet yang ciamik. Tetapi linus tidak berhenti berkarya, satu produk ditelurkanya setelah sebal dengan software Source Code Management system yang ada, seperti CVS atau SVN. Git lahir dari tanganya yang jenius, dengan sangat yakin linus bilang bahwa dia bisa membuat SCM yang jauh lebih bagus dari semua yang ada di luar sana dalam waktu 2 minggu!, dan ternyata berhasil.

Dalam satu sisi Git merevolusi bagaimana seorang programmer menggunakan kodenya untuk berinteraksi dengan orang lain, hal ini dimungkinkan dengan adanya layanan github.com yang membuat coding menjadi kegiatan sosial layaknya seseorang membagi status wallnya kepada orang lain. Satu pengguna bisa mengikuti pengguna yang lain, berteman dan mengambil proyeknya untuk dibuat branch. Sekarang coding tidak lagi menjadi kegiatan personal, tetapi sudah bisa menjadi kegiatan sosial. Seseorang tidak lagi merasa terpencil dan tidak ada keterikatan dengan kode yang dibikinya, dengan github, kode bisa menjadi pengikat antara seorang programmer dan kode yang ditulisnya.

Nah segitu dulu cerita saya tentang Linus Torvalds, semoga memberi inspirasi kepada kita, bahwa sesuatu hal kecil yang kita mulai dengan sungguh-sungguh bisa mempunyai dampak yang begitu serius kepada sekeliling kita. Jangan ragu-ragu memulai, jangan merasa sia-sia, lakukan, bagi dan kamu akan sadar bahwa apapun yang kita bagi, selama itu adalah pengetahuan, pada satu titik akan menjadi inspirasi bagi orang lain. :)

Buku “Scrum dan XP Secara Praktis”

7

Saya baru saja selesai menterjemahkan buku “Scrum and XP from the trenches” karangan Henrik Kniberg ke bahasa indonesia, judulnya saya ganti menjadi “Scrum dan XP Secara Praktis”.

Sesuai dengan judulnya, buku ini membahas bagaimana Henrik dan timnya mengimplementasikan Scrum dan XP di dalam perusahaan mereka. Hal ini membuat buku ini menarik sekali untuk dibaca dan mudah sekali untuk dicerna, karena isinya lebih banyak bercerita tentang kisah mereka mengimplementasikan Scrum dan XP. Jauh sekali dari buku-buku lain yang lebih banyak membahas teori.

Buku ini dulu saya baca karena ada saran dari kenalan saya yang bilang “Sebelum umur 30 tahun harus segera switch ke jalur managerial” (sambil lirik dhiku ;)) ). Jadi ini persiapan saya semoga bisa lancar ikut jalurnya dhiku switch ke managerial. :D

Bukunya bisa diunduh dari :

http://code.google.com/p/project-template/downloads/detail?name=Scrum%20dan%20XP%20Secara%20Praktis%20-%20Ifnu%20Bima.pdf

Saran, kritik dan yang penting adalah koreksi isi dari buku atau malah mungkin koreksi dari kesalahan penterjemahan buku sangat saya tunggu.

Selamat membaca dan semoga bermanfaat.

Indo Java Podcast #15 : Pentaho

4

Episode kali ini adalah lanjutan dari episode sebelumnya. Tamu kita masih sama, Feris Thia dari PHI Integration dan founder dari milis pentaho indonesia (pentaho-id@googlegroups.com). Kita membahas dari awal apa itu pentaho hingga secara detail membahas satu per satu komponen / modul yang ada dalam pentaho. Tak lupa juga kita bahas tentang milis pentaho indonesia yang ramai sekali.

Setelah itu kita lebih jauh membahas tentang langkah-langkah development aplikasi BI mulai dari membuat star schema, kemudian setup ETL untuk mengambil data dari aplikasi transaksi dikirim datanya ke BI. Setelah itu dibuat cube dari fact table, dan pada akhirnya bisa dibuat MDX query untuk mempresentasikan cube yang sudah dibuat.

Pembahasan paling seru terjadi ketika kita membahas secara teknis bagaimana ETL (Pentaho Data Integration / kettle) bekerja, membuat table transaksi yang BI friendly hingga membahas perbedaan antara data dalam excell dan data dalam table database.

Podcast kita akhiri dengan pembahasan lebih lanjut tentang industri BI di indonesia serta membahas karir di BI.

#15 http://indo-java-podcast.googlecode.com/files/indo-java-podcast%2315.mp3
- Pentaho sebagai solusi dan pentaho sebagai perusahaan
- Arsitektur aplikasi yang menggunakan Bussiness Intelligence
- Komponen Pentaho
– Pentaho Reporting
– Pentaho Data Integration (Kettle), aplikasi ETL yang merupakan komponen jagoanya Pentaho
– Pentaho Analysis (Mondrian), crosstab reporting tools
– Pentaho Data Mining (Weka)
– Pentaho BI Server

Development Environment dan Methodology di Industri Perbankan

8

Hari ini di milis it-project-indonesia@googlegroups.com ada Joshua Partogi dari Scrum Indonesia yang kenalan, kemudian terjadi diskusi yang cukup seru tentang Scrum Vs Waterfall. Nah di salah satu thread ada yang menanyakan gimana sih development di banking kepada saya


> Buat Ifnu, bisa ceritain nu development di banking kaya gimana dan
> kenapa waterfall itu yang terbaik?

Nah karena jawaban saya panjang lebar, sepertinya cocok diletakkan di dalam blog agar lebih banyak yang bisa baca. Hmm, oke gw ceritain agak panjang yah tentang topik ini.
(more…)

Performance Tuning Guidelines

0

Udah lama sekali ga ngeblog yah, ga kerasa udah beberapa bulan ga ada entry. Mungkin karena ramadan ini badan jadi terasa lebih seger, atau karena ramadhan bisa pulang tenggo dan ga terlalu cape sesampainya di rumah? yang manapun ga masalah deh, asal ngeblognya jalan lagi.

Barusan saya posting di JUG tentang performance tuning guidlines, nah karena pentingnya topik ini saya pikir lebih baik diletakkan di blog untuk pengingat kalau suatu saat perlu.

Blog entry ini akan saya terus edit untuk agar lebih lengkap dan ada contoh-contoh kongkritnya, sekarang cukup kerangka umumnya dulu yah.
(more…)

Indo Java Podcast #14 : Data warehouse, data mining dan bussiness intelligent bareng Ferish Thia

0

Hi pendengarnya indo java podcast. Lagi-lagi kita perlu waktu 3 bulan untuk menerbitkan episode baru :(, setelah awal tahun kemaren saya yang sibuk, gantian 3 bulan terakhir Dito yang sibuk, jadi mohon maaf atas ketidaklancaran penerbitan episode Indo Java Podcast. Kali ini kita kedatangan tamu, Feris Thia, dari PHI-Integration. Kita ngomongin Data Warehouse, Data Mining dan Bussiness Intelligent dari awal sampai akhir bahkan sampai beberapa topik diluar teknis seperti lowongan kerja, karir di area ini hingga pengalaman implementasi PHI di berbagai perusahaan.

Kita mulai membahas tentang apa itu Data Warehouse dan dua mahzab yaitu : Ralph Kimball dan Bill Inmon (http://en.wikipedia.org/wiki/Data_warehouse). Kemudian dilanjutkan dengan membahas lebih lanjut teori aliran Kimballites, di dalamnya ada teori tentang snowflake schema dan star schema. Saya sendiri cukup mendapat banyak penerangan tentang istilah-istilah penting dalam DW, misalnya apa itu fact table dan dimension table yang sebenernya adalah nama lain dari master table dan transaction table di OLTP.

Setelah puas membahas DW, kita lanjut ke tema yang lebih seru, yaitu Data Mining dan Bussiness Intelligent. Nah di sini ada istilah yang disebut dengan active reporting, dimana report yang ditampilkan kepada pengguna sudah mengandung “kecerdasan”, bukan lagi pasif reporting yang cuma menampilkan data dalam bentuk table, diagram atau malah cuma angka-angka gak bermakna. Singkatnya, Data Mining dan Bussiness Intelligent itu membuat data bisa ngomong dengan bahasa manusia :D. Data Mining dan Bussiness Intelligent bisa membuat management melihat keadaan perusahaan dengan lebih jelas dan dengan persepsi yang sama, kalau cuma data pasif yang disajikan, maka setiap orang dalam managerial bisa punya asumsi yang berbeda tentang keadaan perusahaan, ada yang bilang oh penjualan kita OK nih, nah ini parameter OK dilihat dari mana? Bussiness Intelligent bisa menterjemahkan data yang dikumpulkan oleh Data warehouse menjadi laporan-laporan aktif seperti ini.

#14 : http://indo-java-podcast.googlecode.com/files/indo-java-podcast 14.mp3
- Data Warehouse
– Ralph Kimball dan Bill Inmon
– Snowflake schema dan Star schema
– Dimension dan Fact schema
– Slowly changing dimension
- Bussiness Intelligent dan Data Mining

Buku Java Desktop

79

Akhirnya setelah 10 bulan menulis, mengedit dan menyiapkan website, buku Java Desktop bisa anda unduh dengan gratis dari URL di bawah ini :

http://code.google.com/p/project-template/downloads/detail?name=Java%20Desktop%20-%20Ifnu%20Bima.pdf

Buku ini berisi intisari pengetahuan dasar bahasa pemrograman Java hingga pengetahuan tentang bagaimana membuat aplikasi dekstop menggunakan Java. Intisari tersebut saya kumpulkan selama 3 tahun terakhir. Buku ini terdiri dari 8 bab, antara lain :

Bab 1 kita akan membahas tentang Java Fundamental, bab ini dibagi menjadi dua bagian besar: belajar sintaks java dan belajar OOP menggunakan java. Di dalam bab ini juga dibahas tentang java 5 language enhancement yang mencakup beberapa perubahan fundamental di dalam sintaks java. Bab ini cukup panjang dan mangambil porsi hingga 1/3 dari buku ini.

Bab 2 membahas tentang tools yang kita gunakan, NetBeans. Bagaimana membuat project, menambahkan library, menambahkan library ke pallete, menggunakan editor dan debugger, dan seterusnya. Penguasaan akan IDE diperlukan untuk menaikkan produktiftas, tanpa penguasaan IDE yang baik, produktiftas tinggi susah untuk dicapai.

Bab 3 membahas tentang koneksi ke database menggunakan JDBC. Di bab ini mulai dibahas tentang design-pattern dalam membuat kode. DAO dan Service adalah design-pattern sangat penting dalam akses database. Dilanjutkan dengan membahas ORM, Hibernate dan Spring untuk akses data. Dengan menggunakan Hibernate, produktiftas programmer menjadi meningkat drastis dibanding menggunakan JDBC murni. Spring digunakan sebagai “lem” untuk merekatkan berbagai macam komponen aplikasi, termasuk nanti digunakan sebagai tulang punggung arsitektur three tier

Bab 4 membahas tentang Swing dan komponen-komponenya. Dibahas juga pattern MVC yang digunakan komponen Swing dalam mengolah dan menampilkan data.

Bab 5 membahas bagaimana membuat aplikasi POS. Dimulai dari membuat halaman master, dilanjutkan dengan membuat halaman pembelian dan penjualan.

Bab 6 membahas bagaimana membuat report dengan JasperReport. Di dalamnya termasuk juga teknik mengcompile report yang dibuat secara otomatis menggunakan ant script bawaan dari NetBeans.

Bab 7 membahas bagaimana mengimplentasikan arsitektur three tier menggunakan Spring Remoting.

Bab 8 merupakan bab terakhir yang membahas bagaimana membuat installer menggunakan IzPack, sehingga aplikasi mudah didistribusikan dengan adanya fle installer.

Go to Top