Selamat Datang di Blog Saya ... Semoga BERMANFAAT !!

Senin, 06 Agustus 2012

Spektrum Tersebar

Spektrum tersebar (Bahasa Inggris: spread spectrum) adalah sebuah metode komunikasi dimana semua sinyal komunikasi disebar di seluruh spektrum frekuensi yang tersedia. Lebarnya pita frekuensi yang digunakan, tergantung kepada teknolgi yang digunakan.

Metode spektrum tersebar pada awalnya digunakan untuk kepentingan militer yang sangat peduli dengan aspek keamanan. Dengan menggunakan metode ini, penggunaan frekuensi memang kurang efisien, namun menjadi sulit untuk dicuri-dengar (sniff). Hal ini berbeda dengan dua teknologi sebelumnya yaitu, GSM (Global System for Mobile communication) dan AMPS (Analog Mobile Telephone System), yang menggunakan timeslot dan/atau frequency slot.

Sekilas Teknologi Spektrum Tersebar

Teknologi komunikasi Generasi Ketiga (3G) dan Generasi Keempat (4G) dan seterusnya, menggunakan metode spektrum tersebar. Pada saat ini ada dua cabang teknologi spektrum tersebar di dalam 3G, yaitu: Wideband CDMA (W-CDMA) dan CDMA 2000 1xEV-DO (CDMA: Code Division Multiple Access, EV-DO: EVolution Data Optimized). W-CDMA (atau dikenal juga dengan UMTS - Universal Mobile Telephony System) adalah pengembangan dari teknologi GSM yang dipelopori oleh 3G Partnership Project sedangkan CDMA2000 dipelopori oleh 3GPP2 .

Dalam W-CDMA digunakan spektrum sebesar 5Mhz untuk satu kanal frekuensi pembawa (frequency carrier), sedangkan pada CDMA 2000 digunakan pita selebar 1,25 Mhz . CDMA2000 1xRTT berarti teknologi tersebut menggunakan satu buah kanal selebar 1,25 Mhz dan CDMA2000 3xRTT berarti menggunakan tiga kanal dengan lebar masing-masing sebesar 1,25 Mhz. Sedangkan RTT adalah singkatan dari Radio Transmission Technology. Kedua teknologi (W-CDMA dan CDMA) tidak saling kompatibel, yang berarti pengguna W-CDMA tidak bisa mendapatkan layanan di CDMA. Bahkan dalam implementasi praktisnya, kedua teknologi ini sesungguhnya bersaing.
Keuntungan-keuntungan
Faktor Keamanan
Keuntungan pertama penggunaan spektrum tersebar, terutama dibandingkan dengan metode TDMA pada GSM adalah kemampuannya untuk kebal jamming, sehingga sangat sulit untuk dicuri-dengar oleh orang lain. Dan bila pun pada tingkat frekuensi radio bisa dilakukan jamming, komunikasi yang terjadi tetap tidak bisa diketahui karena sinyal sudah 'terenkripsi' pada saat terjadinya pengkodean. Jamming dapat dilakukan bila kita mengetahui timeslot dan/atau frequency slot pada saat terbentuknya sebuah komunikasi.

Efisiensi Manajemen Frekuensi
Keuntungan kedua dari teknologi spektrum tersebar adalah penggunaan frekuensi yang sama. Dengan metode ini, dalam satu buah sel (yang biasanya terdiri atas 3 sektor) tidak perlu melakukan manajemen frekuensi dan dapat menggunakan frekuensi yang sama. Sebagai kebalikannya, pada teknologi GSM, setiap sektor di dalam sebuah sel harus menggunakan frekuensi yang berbeda. Sebuah BTS (Base Transciever Station) membentuk sebuah sel dimana di dalam sel tsb ada 3 (tiga) sektor yang dikenal sebagai sektor alpha (α), sektor beta (β) dan sektor gamma (γ). Dalam setiap sektor tersedia ratusan communication resource yang disebut Kode. W-CDMA menggunakan Orthogonal Vector Spreading Factor (OVSF) sedangkan CDMA 2000 menggunakan Walsh Code sebagai metode pengkodean.

Dalam metode spektrum tersebar, setiap sektor dibedakan dengan Pseudorandom Number (PN), biasa dikenal dengan PN Offset . Sebuah mobile station (MS) yaitu terminal yang digunakan oleh pelanggan (dapat berupa perangkat genggam atau pun perangkat berbasis PCMCIA yang digunakan untuk notebook), akan melakukan perhitungan matematis yang disebut konvolusi untuk bisa mencari MS dengan nilai terbaik. Secara teoritis, nilai konvolusi antara sebuah sektor dengan MS adalah 1 (satu). Namun tentu saja, secara praktikal tidak demikian. Dalam praktikalnya, dicari nilai konvolusi yang mendekati 1. Salah satu sifat dari spektrum tersebar adalah sikap 'diskriminatif'. BTS lebih memilih untuk melayani MS yang memiliki nilai konvolusi terbaik dan 'membiarkan' MS lain yang nilai konvolusinya lebih buruk.

Throughput yang Lebih Besar
Sebuah koneksi MS-BTS dalam sebuah sesi, minimal memiliki 1 (satu) buah Kode Fundamental; dan bila MS menginginkan throughput yang lebih tinggi maka dapat memintan Kode Tambahan melalui SCAM (Supplemental Code Assignment Message) ke BTS yang bersangkutan. Penambahan kode ini biasanya bersifat sementara dan sangat cepat waktu penggunannya (skalanya hanya beberapa detik). Pada Gambar dibawah, terlihat sebuah MS sedang dilayani oleh sektor PN=292 dan mendapat 4 (empat) buah Walsh Code sebagai kanal komunikasi. CDMA2000 memberikan kecepatan akses sebesar 153 Kbps, sehingga dikategorikan teknologi 2,5G.

Dalam sebuah sektor terdapat ratusan Kode sebagai sumber daya (resource) komunikasi yang bisa digunakan. Satu kode merepresentasikan satu kanal sebesar 9,6 Kbps, namun setting ini pun tergantung kepada operator. Bila pada suatu ketika, sebuah MS membutuhkan throughput yang lebih besar (misal, saat browsing), maka MS akan meminta tambahan kode ke BTS dan throughput meningkat. Bila tidak dibutuhkan lagi, tambahan kode ini akan 'dilepas' dan dapat digunakan untuk pelanggan lain.

Masalah-masalah Dalam Spektrum Tersebar
Masalah-masalah yang biasa timbul sebagai konsekuensi dari implementasi teknologi ini adalah:
1. Pengkerutan sel (cell breathing).
2. Polusi sinyal pilot (pilot pollution).
Untuk mengatasi masalah ini, operator harus melakukan optimasi secara reguler.
Operator Berbasis Spektrum Tersebar di Indonesia
Di Indonesia pada saat ini, operator yang menggunakan W-CDMA adalah:
• Telkomsel.
• Excelcomindo.
• Indosat GSM.
• Cyber Access Communication (belum operasional).
• Natrindo (operasional terbatas).
Sedangkan operator berbasis CDMA 2000 adalah:
• TelkomFlexi.
• Esia.
• Mobile8.
• Indosat StarOne.
• Sampoerna Telekomunikasi (Ceria), dulu: Mandara Seluler.
• Wireless Indonesia Network (gagal, dan mengembalikan spektrum ke pemerintah).
• Primasel (belum beroperasi).

Technologi WiMAX Setara Generasi 4G


Hadirnya WiMAX bagi sebagian orang sama seperti halnya dulu Anda menantikan kapan layanan 3G bisa dinikmati. Meski bukan lagi sekadar topik presentasi di seminar dan kuliah, kini pengguna nirkabel benar-benar dibuat penasaran dengan WiMAX ini.

Dengan jaya jangkau hingga 50 km (tergantung frekuensi yang digunakan), WiMAX dapat menangani kecepatan data hingga 100 Mbps (hasil dari uji coba operator Telia Sonera). Dengan kecepatan itu Anda bisa mendownload layanan bergerak dengan kualitas gambar setara HDTV (lebih jernih di atas kualitas gambar DVD) di ponsel.

Wimax sendiri adalah standar internasional tentang broadband yang dibuat oleh organisasi nirlaba yang merupakan kumpulan beberapa perusahaan pembuat peranti telekomunikasi berdasarkan standar nirkabel IEEE 802.16, yaitu standar MAN (Metropolitan Area Network) dan HiperMAN dari ETSI (European Telecommunications Standards Institute).

WiMAX nantinya akan dipakai sebagai alternatif untuk mendistribusikan akses jaringan internet di masyarakat luas, seperti yang sudah dilakukan oleh teknologi ADSL atau HotSpot dari standar Wireless LAN 802.11.

Saat ini forum WiMAX telah didukung oleh banyak vendor besar Alcatel, Nortel, Siemens, Qwest, telenor, dan lainnya, hal ini menunjukkan bahwa pada dua tahun ke depan, makin banyak operator untuk mengembangkan teknologi broadband kecepatan tinggi yang masuk kategori 4G ini. Adanya standar WiMAX di 802.16e ini jelas akan mendukung pengadaan peranti pendukung WiMAX. Ini tentunya akan melanjutkan ponsel dan PDA phone dengan fitur pelengkap Wi-Fi yang ada sekarang, lalu selanjutnya akan dilengkapi dengan WiMAX.

Overview Of Geographic Information System


Sistem Informasi Geografis (SIG atau singkatan bahasa Inggrisnya GIS - Geographic Information System) adalah sistem informasi khusus yang mengelola data yang memiliki informasi spasial (bereferensi keruangan). Atau dalam arti yang lebih sempit, adalah sistem komputer yang memiliki kemampuan untuk membangun, menyimpan, mengelola dan menampilkan informasi berefrensi geografis, misalnya data yang diidentifikasi menurut lokasinya, dalam sebuah database. Para praktisi juga memasukkan orang yang membangun dan mengoperasikannya dan data sebagai bagian dari sistem ini.

Teknologi Sistem Informasi Geografis dapat digunakan untuk investigasi ilmiah, pengelolaan sumber daya, perencanaan pembangunan, kartografi dan perencanaan rute. Misalnya, SIG bisa membantu perencana untuk secara cepat menghitung waktu tanggap darurat saat terjadi bencana alam, atau SIG dapat digunaan untuk mencari lahan basah (wetlands) yang membutuhkan perlindungan dari polusi.

Sejarah Pengembangannya
35000 tahun yang lalu, di dinding gua Lascaux, Perancis, para pemburu Cro-Magnon menggambar hewan mangsa mereka, juga garis yang dipercaya sebagai rute migrasi hewan-hewan tersebut. Catatan awal ini sejalan dengan dua elemen struktur pada sistem informasi gegrafis modern sekarang ini, arsip grafis yang terhubung ke database atribut.

Pada tahun 1700-an teknik survey modern untuk pemetaan topografis diterapkan, termasuk juga versi awal pemetaan tematis, misalnya untuk keilmuan atau data sensus.

Awal abad ke-20 memperlihatkan pengembangan "litografi foto" dimana peta dipisahkan menjadi beberapa lapisan (layer). Perkembangan perangkat keras komputer yang dipacu oleh penelitian senjata nuklir membawa aplikasi pemetaan menjadi multifungsi pada awal tahun 1960-an.

Tahun 1967 merupakan awal pengembangan SIG yang bisa diterapkan di Ottawa, Ontario oleh Departemen Energi, Pertambangan dan Sumber Daya. Dikembangkan oleh Roger Tomlinson, yang kemudian disebut CGIS (Canadian GIS - SIG Kanada), digunakan untuk menyimpan, menganalisis dan mengolah data yang dikumpulkan untuk Inventarisasi Tanah Kanada (CLI - Canadian land Inventory) - sebuah inisiatif untuk mengetahui kemampuan lahan di wilayah pedesaan Kanada dengan memetakaan berbagai informasi pada tanah, pertanian, pariwisata, alam bebas, unggas dan penggunaan tanah pada skala 1:250000. Faktor pemeringkatan klasifikasi juga diterapkan untuk keperluan analisis.

CGIS merupakan sistem pertama di dunia dan hasil dari perbaikan aplikasi pemetaan yang memiliki kemampuan timpang susun (overlay), penghitungan, pendijitalan/pemindaian (digitizing/scanning), mendukung sistem koordinat national yang membentang di atas benua Amerika , memasukkan garis sebagai arc yang memiliki topologi dan menyimpan atribut dan informasi lokasional pada berkas terpisah. Pengembangya, seorang geografer bernama Roger Tomlinson kemudian disebut "Bapak SIG".

CGIS bertahan sampai tahun 1970-an dan memakan waktu lama untuk penyempurnaan setelah pengembangan awal, dan tidak bisa bersaing denga aplikasi pemetaan komersil yang dikeluarkan beberapa vendor seperti Intergraph. Perkembangan perangkat keras mikro komputer memacu vendor lain seperti ESRI dan CARIS berhasil membuat banyak fitur SIG, menggabung pendekatan generasi pertama pada pemisahan informasi spasial dan atributnya, dengan pendekatan generasi kedua pada organisasi data atribut menjadi struktur database. Perkembangan industri pada tahun 1980-an dan 1990-an memacu lagi pertumbuhan SIG pada workstation UNIX dan komputer pribadi. Pada akhir abad ke-20, pertumbuhan yang cepat di berbagai sistem dikonsolidasikan dan distandarisasikan menjadi platform lebih sedikit, dan para pengguna mulai mengekspor menampilkan data SIG lewat internet, yang membutuhkan standar pada format data dan transfer.

Indonesia sudah mengadopsi sistem ini sejak Pelita ke-2 ketika LIPI mengundang UNESCO dalam menyusun "Kebijakan dan Program Pembangunan Lima Tahun Tahap Kedua (1974-1979)" dalam pembangunan ilmu pengetahuan, teknologi dan riset.

Hosting Dan Virtual Private Server


Hosting adalah jasa layanan internet yang menyediakan server server untuk di sewakan sehingga memungkinkan organisasi atau individu menempatkan informasi di internet berupa HTTP, FTP atau DNS.
Ada beberapa type layanan hosting yaitu shared hosting, VPS, dedicated server.
Virtual Private Server (VPS), juga dikenal dengan Virtual Dedicated Server (VDS) atau Virtual Server adalah teknologi server side tentang operating system dan software yang memungkinkan sebuah mesin dengan kapasitas besar di bagi ke beberapa virtual mesin. Tiap virtual mesin ini melayani operating system dan software secara independen dan dengan konfigurasi yang cepat.

Tradisional shared hosting yang biasa kita kenal memiliki sangat banyak keterbatasan terhadap aplikasi yang berjalan karena user hanya mempunyai hak akses sebagai level user biasa. Apabila user ingin mendapatkan akses terhadap aplikasi dan resource yang lebih dari sekedar level user biasa maka user harus menggunakan ke Dedicated Server, hal ini membuat dana melonjak sangat tinggi seiring dengan mahalnya harga dedicated hardware dan sewa lokasi data center. Dengan menggunakan teknologi Virtual Private Server memberikan solusi jembatan penghubung antara budget financial, resource system dan level user.

Sangat besar manfaat yang bisa di dapatkan dengan Virtual Private Server ini, berikut hanya sedikit contoh penggunaan secara efisien dan tepat guna:

* Web Hosting Salah satu penggunaan yang populer adalah untuk menyediakan web hosting. Virtual Private Server sangat tepat untuk level menengah dan corporate website, dimana aplikasi membutuhkan konfigurasi yang spesifik dan hanya bisa di lakukan oleh Superuser. Penggunaan ini juga cocok untuk memulai bisnis web hosting dengan budget yang terbatas namun layanan yang berkualitas. Variasi paket Virtual Private Server memungkinkan untuk bisnis web hosting bisa dengan mudah melakukan upgrade sejalan dengan bertumbuhnya customer baru.

* Application Hosting Dengan Virtual Private Server, memungkinkan untuk membangun custom mission critical software tanpa harus mengeluarkan bugdet yang terlalu mahal. Melakukan outsource development aplikasi juga sudah menjadi trend untuk menghemat budget sehingga investasi jauh lebih efisien.

* Development/Test Environments Virtual Private Server juga membantu untuk melakukan serangkaian development testing secara efisien, beberapa operating system dan alamat IP publik dengan mudah bisa di lakukan, koneksi secara remote untuk reboot dan penggantian interface cukup di lakukan dengan cepat, sama seperti halnya mempunyai 1 rak yang penuh dengan server testing.

* Educational Outpost Virtual Private Server menjadikan ajang untuk bereksperimen UNIX Operating System dengan berbagai macam distribusi sekaligus. Membuat proses ekperimen lebih beragam dan lebih mudah membandingkannya.

* Backup Server Kebutuhan backup server untuk menjamin layanan selalu berjalan normal adalah sangat penting. Backup server ini bisa meliputi website, mail, file, dan database. Semua layanan ini berada dalam kondisi fisik dan logical yang terpisah sehingga meminimalisasi kerusakaan atau kehilangan data.

Minggu, 10 Juni 2012

Bagaimana Memulai Sebuah Startup?



Salah satu teman saya ingin menghasilkan US$1 juta atau sekitar Rp9 miliar dalam satu tahun. Dia bertanya kepada saya, apakah hal itu mungkin? Saya jawab dengan mantap: sangat mungkin.

Kenapa tidak? Saya melihat proses dari awal, teman saya, Satya Witoelar, saat mendirikan Koprol hingga diakuisisi Yahoo! pada tahun 2010. Semua bisa dicapai dalam waktu sekitar 1,5 tahun saja. Nilai perusahaannya tidak pernah diumumkan tapi banyak yang menaksir nilainya mencapai jutaan dolar. That’s…a lot of money!

Ini salah satu contoh yang membuktikan bahwa mencapai US$1 juta dalam satu tahun itu mungkin dilakukan. Salah satu caranya? Start a startup!

Ketika saya membangun startup pertama saya di tahun 2006, toko buku online Kutukutubuku.com, saya tidak berpikir terlalu panjang. Yang saya tahu, saya ingin bekerja dikelilingi oleh buku. Dan itu hanya bisa terjadi kalau saya memiliki toko buku sendiri.

Dari titik itu hingga sekarang di tahun 2011, saya memiliki beberapa bisnis lain seperti online self-publishing NulisBuku.com, solusi e-commerce TukuSolution.com, dan studio game TempaLabs.com. Saya akan mencoba menganalisis pengalaman saya tentang bagaimana memulai startup.

Passion

Identify your passion. Klise, tapi startup harus punya jiwa, agar tidak menjadi sekadar “produk”. Sebelum meluncurkan Kutukutubuku.com, saya telah menulis satu judul buku dan saya adalah pembaca buku yang fanatik. Passion saya di buku ini yang membuat saya terus bersemangat dalam menjalankan bisnis.

Solve a Problem

Setiap startup harus punya cerita tentang bagaimana ide membuat startup ini datang. Bagi saya, setiap startup yang saya bangun adalah jawaban untuk permasalahan yang saya alami. Saya menemukan masalah dan mengubahnya menjadi kesempatan.

Sebelum membuat Nulisbuku.com, saya sudah menulis 15 buku, beberapa di antaranya buku-buku best-seller. Namun, saya masih memiliki kesulitan menerbitkan salah satu buku saya yang berjudul “inspirasi.net”. Bukan karena buku itu jelek. Tapi, menurut idealisme penerbit, buku tersebut tidak akan bisa diserap pasar (mungkin karena topiknya yang niche).

Saya berpikir, jika saya saja memiliki kesulitan dalam menerbitkan buku, bagaimana dengan teman-teman penulis pemula? Pasti lebih susah lagi. Padahal, banyak ide dan cerita brillian dari para penulis yang perlu disebarluaskan dalam bentuk buku. Pemikiran itulah yang mendasari lahirnya NulisBuku.com.

Dengan NulisBuku.com, penulis pemula dapat menerbitkan karyanya secara gratis dan mudah. Penulis hanya tinggal mendaftar ke website dan mengunggah naskahnya dalam bentuk PDF. Sistem yang digunakan print-on-demand sehingga penulis tidak akan mengeluarkan biaya apa pun, malah mendapat royalti.

Sudah 10.000 member terdaftar di NulisBuku.com, lebih dari 1000 karya sudah diterbitkan, dan beberapa penulis sudah berhasil menembus penerbit besar. Membangun startup = solve a problem.

Co-Founder

Banyak yang bertanya, berapa modal yang diperlukan untuk membangun startup? Sebenarnya, bukan modal dalam bentuk uang yang penting, tapi mitra bisnis.

Kadang langkah kita terhenti dalam rencana mendirikan startup karena berpikir kita tidak memiliki keahlian di bidang tertentu. Padahal, jawabannya mudah. Cari mitra yang bisa melengkapi kekurangan Anda.

Jika Anda jago marketing, cari mitra yang jago di bidang teknologi. Jika Anda tidak memiliki uang sebagai modal awal, cari mitra yang bisa menyediakan modal awal. Jika Anda jago di teknologi, cari mitra yang jago marketing dan memiliki jejaring yang luas. Berkolaborasi adalah kuncinya.

Bagaimana menemukan mitra atau co-founder? Datang saja ke networking event seperti #StartupLokal Meetup yang rutin diadakan setiap bulan.

Plan

Saya tidak suka membuat business plan. Yang terbayang langsung tumpukan kertas berisi informasi yang kompleks dan rumit. Tapi, saya senang membuat rencana untuk bisnis saya. Dalam versi saya, saya hanya membuat satu lembar rencana untuk bisnis saya. Gunakan mind map agar rencana besar Anda bisa terlihat lebih jelas.

Target

Jadwalkan kapan Anda akan meluncurkan startup Anda. Ikuti deadline-nya meskipun Anda merasa startup Anda belum sempurna, masih banyak bug, dan lainnya. Luncurkan saja, karena perfection is a journey. Sambil berjalan, Anda bisa melihat reaksi dari customer dan melakukan perbaikan yang diperlukan.

Newsworthy

Sangat penting bagi Anda untuk meraih perhatian media. Masuklah ke media sosial seperti Facebook dan Twitter, kemudian buat campaign yang mempunyai level newsworthiness (nilai berita) yang tinggi. Liputan berbagai media akan sangat membantu perkembangan startup Anda.

Sebagai founder startup, senantiasa bersikap positif dan membangun personal branding lewat media sosial membantu saya membangun reputasi untuk bisnis-bisnis saya, dan kesempatan pun berdatangan.

Let’s think big, act small, act now. Let’s startup!

Sabtu, 21 Januari 2012

Membuat Jaringan Ad Hoc untuk Share Koneksi Internet Wireless

Sebuah jaringan ad hoc adalah jaringan area lokal, anda dapat membangun secara spontan dalam keadaan darurat.

Langkah pertama membuat jaringan Ad hoc klik pada Start menu pada kotak pencarian ketik Wireless dan pilih pada Manage Wireless Networks.

Klik pada tombol Add ” add a wireless network “. Kemudian akan muncul jendela baru pilih Create an ad hoc network selanjutnya klik next kembali


Sekarang beri nama jaringan anda dan pilih opsi keamanan, centang “Save this network” jika anda berencana untuk menggunakannya berulang kali sehingga anda tidak perlu membuat kembali.Dan klik Next tunggulah beberapa saat hingga muncul seperti pada gambar dibawah ini.


Jaringan berhasil dibuat dan siap untuk digunakan. Selanjutnya verify network klik pada taskbar desktop anda


Selanjutnya beralih pada komputer client klik pada taskbar desktop untuk melihat jaringan ad-hoc yang telah anda buat pada komputer pertama selanjutnya klik conect pada jaringan tersebut jika suda pastikan anda sudah benar terkoneksi.

Selanjutnya kita akan mengatur berbagi file dan koneksi internet dengan perangkat lain dalam tahap ini anda, klik kanan pada icon wireless adaptor Host. ketik kembali pada kotak pencarian pada Start menu wireless dan pilih Manage Wireless Networks dan klik tab Adapter Properties, dan klik tab Sharing, lalu centang seperti pada gambar dibawah ini.


dan klik tombol Settings, Dalam Pengaturan ini anda dapat memilih layanan jaringan mesin Client setelah itu klik Ok dan tutup jendela Manage Wireless Networks anda,


sekarang anda dapat berbagi dokumen atau files dan koneksi internet antara dua komputer dan perangkat dengan Membuat Jaringan Ad Hoc untuk Share Koneksi Internet Wireless, Selamat mencoba.

Kamis, 22 Desember 2011

Asah Kemampuan Software Development


Saya ingin melakukan klaim pribadi, bahwa mayoritas lulusan IT, setidaknya yang saya kenal, memiliki pehamaman minim di jurusannya, bahkan setelah lulus. Salah satu skill yang katanya sangat sulit dijamah adalah software development (programming). Kenapa?.
Setiap tahunnya, kampus saya meluluskan setidaknya hampir seribu mahasiswa/i fakultas Computing & IT (FOCIT). Di fakultasi ini ada beberapa jurusan seperti Multimedia, Networking, Business IT, Computer Science dan Software Engineering. Saya adalah salah satu dari mungkin hampir seribuan pelajar yang lulus di FOCIT tahun lalu, jurusan saya adalah Software Engineering.
Kesan saya setelah lulus adalah, apa yang disajikan degree (S1) IT memang sangat kurang jika kita ingin benar-benar mengasah kemampuan IT, utamanya di bagian Software Development, sehingga banyak perusahaan yang memvonis lulusan IT sebagai benar-benar pemula. Saya nggak terkejut melihat sebagian teman-teman belum mahir dalam mengembangkan sebuah system, problem solving, atau sekedar menulis program kecil. Karna ternyata dibeberapa negara lain juga mengalami masalah yang sama, bahkan di negara-negara yang sering orang bilang “barat”.
Software Development memang satu topik yang sangat luas, nyaris mustahil bisa di cover dalam 3-4 tahun kuliah dengan jam belajar hanya sebatas pagi sampai sore dan ditambah beberapa tugas rumah. Untuk menguasai banyak topik software development, kita tidak bisa hanya mengandalkan jam kuliah. Satu-satunya cara adalah dengan belajar secara mandiri, dan untungnya, banyak sekali media yang memudahkan belajar software development secara mandiri.
Meskipun saya sendiri belum bisa meng-klaim diri sebagai orang yang berpengalaman, tapi saya bersyukur punya teman-teman yang sudah cukup kaliber di beberapa field software development. Ada beberapa hal yang saya selalu ikuti dan ingat, dan terasa sangat bermanfaat untuk mengasah kemampuan kita di software development. Apa saja?.


Jangan takut dengan bahasa pemrograman

Ini adalah poin penting, tidak hanya bahasa pemrograman, tapi teknologi, API, teknik dan arsitektur baru. Saya ngerasa hal yang paling sulit untuk memulai belajar soft-development adalah belajar bahasa pemrograman. Kenyataannya adalah, belajar bahasa pemrograman hanya butuh beberapa minggu/bulan sampai kita cukup punya ide dan skill untuk mempergunakannya. Pemahaman tentang variabel, operator, statement, dll tidak butuh waktu bertahun-tahun.
Memang, bahasa pemrograman butuh waktu untuk dipahami alurnya. Tapi dengan melakukan latihan rutin setiap harinya, kita bisa menguasai sebuah bahasa pemrograman dengan cepat. Orang sering lupa bahwa ada bahasa yang lebih sulit dari bahasa pemrograman, yaitu bahasa manusia. Bahasa pemrograman jauh lebih terstruktur dan universal. Ada ratusan ekspresi manusia untuk menyampaikan “Kalau sudah malam, saatnya tidur”, sedangkan bahasa pemrograman tidak akan sekompleks itu. Cukup dengan:
if (malam) tidur = true
Yup, bahasa pemrograman jauh lebih terstruktur, dan universal. Artinya kebanyakan bahasa pemrograman menggunakan bahasa inggris, sehingga bisa dibaca oleh siapapun yang punya dasar inggris cukup.
Belajar bahasa pemrograman, pada dasarnya nggak lebih dari sekedar belajar gimana cara menyuruh sistem untuk melakukan sesuatu. Dan alur serta aturannya telah dibuat baku, bahannya pun tersedia luas di internet. Singkatnya, belajar bahasa pemrograman (dasar) bukan sesuatu yang rumit.

Konsentrasi pada kasus, bukan tools.

Hal kedua yang sebenarnya sering luput dari concern kita adalah, problem domain. Ketika ada tugas membuat program kuis, atau game tetris. Yang sering terpikir pertama kali adalah, bagaimana bahasa X bisa dipakai untuk membuat program Y?, fungsi apa di bahasa X yang bisa dipakai untuk membuat fitur di program Y?. Saya ngerasa anggapan ini lebih banyak salahnya, pemikiran seperti ini sama saja seperti bilang:
ketika saya menguasai kapak, dan saya ingin membuka pintu, gimana caranya supaya kapak ini bisa dipakai untuk membuka pintu?
Kita terlalu terfokus pada tools yang kita miliki, sehingga kasus apapun selalu berusaha di selesaikan dengan tools yang kita punya, dan melupakan inti kasusnya, karena terfokus pada toolsnya. Ini membuat penyelesaian yang kita buat jadi salah, atau bahkan benar-benar buruk. Contoh, memilih plain text sebagai tempat web feed hanya karna nggak ngerti RSS.
Ada banyak alasan kenapa paham seperti ini ada, salah satunya adalah rasa takut mencoba hal baru, seperti poin pertama tadi. Dampaknya bermacam-macam, kita jadi stuck di satu tool dan hanya mengerti arsitektur tool tersebut, tidak akan ada proses pembelajaran software development yang benar, karena pada dasarnya kita mencoba mem-fit kan semua masalah ke tool yang kita miliki.
Cara yang benar adalah, dengan lebih fokus kepada apa yang ingin kita lakukan, ketimbang apa yang kita miliki. Setelah kita tahu apa yang kita mau capai, mulailah mempelajari secara detail apa saja yang kita perlukan, lalu kumpulkan kebutuhannya.
Saya ingin membuka pintu, pintu memiliki lubang kunci dan kenob, maka saya akan mencari kunci dan memutar kenobnya.
Contoh diatas adalah cara yang benar dalam observasi kasus, dengan mengetahui goals yang kita ingin capai, serta mempelajari apa saja yang diperlukan untuk mencapai goals tersebut, kita akan belajar banyak tentang meng-engineer sistem dengan benar, termasuk memilih arsitektur, platform, bahasa pemrograman, dan teknik yang benar.
Jika saya ingin membuat game yang bisa dijalankan dengan browser, saya akan pilih teknologi yang didukung oleh browser seperti HTML5, Flash, Unity, atau WebGL
Ketimbang memaksakan untuk membuat game browser dengan Visual Basic karna alasan hanya ngerti VB, kita memutuskan untuk mempelajari teknologi lain, mengetahui kekurangan dan kelebihannya, dan memilih yang paling cocok untuk goals yang ingin kita capai. Disinilah salah satu skill software development diasah.

Mulai darimana?

Belajar bahasa pemrograman, dan lebih lanjut lagi adalah software development, memang butuh waktu. Saya ingat awal-awal saya belajar programming language adalah waktu SMP. Saat itu internet masih sangat terbatas, saya harus diam-diam kabur dari tugas jaga adek di rumah dan naik angkot sekitar 1 jam ke warnet. Pertama kali saya belajar programming dari majalah Mikrodata, disitu saya menyalin habis sebuah script yang katanya bisa dipakai untuk membuat game puzzle dengan basis MIDlet. Setelah berjam-jam menyalin script dari majalah ke Notepad, hasilnya?. Nggak ada, game nggak jalan sama sekali. Saya bahkan nggak tahu bahwa komputer saya nggak ada Java-nya. Tapi dari situ saya belajar banyak, salah satunya adalah tentang HTML, Javascript, variable, statement dan operator.
Setelah frustasi karna script yang saya salin nggak jalan, saya coba memodifikasi berhari-hari. Dan memang tetap nggak jalan, tapi dari situ saya tahu banyak sekali tentang tag HTML dan Javascript. Saya mulai iseng membuat web page kecil, ada message boxnya, input box, conditional statement, dll.
Mulai dari situ saya merambah ke server side scripting, juga programming di desktop seperti VB. Saya membuat ratusan program kecil yang fungsinya hanya sekedar nampilin angka 1 sampai 100, angka ganjil genap, bilangan prima, nampilin gambar, dan lain-lain. Dan manfaatnya benar-benar saya rasakan.
Intinya adalah start somewhere. Ambil sisi IT yang paling kita suka, web development misalnya, lalu buat sebanyak mungkin hal-hal kecil yang memang nggak ada gunanya di sisi user, tapi ada gunanya untuk bahan belajar. Semakin dalam kita belajar, akan semakin fun, dan semakin banyak pemahaman yang kita dapatkan dari situ. Disinilah kita dapat banyak basic tentang bahasa pemrograman.
Setelah mulai dapat dasar tentang bahasa pemrograman, buatlah sesuatu yang lebih kompleks dan bisa digunakan. Buku tamu misalnya, atau game kuis yang hanya sekedar nampilin pertanyaan dan jawaban. Disini kita mulai dihadapkan dalam satu kasus spesifik (buku tamu / game kuis), dan diharuskan untuk melakukan mapping, memecah satu tugas besar menjadi beberapa tugas kecil, dan mengaturnya serapi mungkin. Contoh untuk buku tamu, kita ditantang untuk membuat beberapa subsistem untuk menangani tugas-tugas tertentu, seperti menulis pesan, menyimpan pesan, dan menampilkan pesan.

Oke mulai!

Meskipun cara nyoba-nyoba acak milik saya terasa berhasil, tapi di jaman yang akses internet sangat mudah seperti sekarang, ada cara-cara yang lebih baik. Selain membuat ratusan program kecil yang pada dasarnya hanya “sampah” , ada satu hal yang wajib dikerjakan untuk mengasah kemampuan software development. yaitu Open Source!.
Ikut atau membuat open source project, mengajarkan kita banyak sekali hal-hal baru. Kolaborasi, debugging, arsitektur baru, teknologi dan teknik baru, latest issue di dunia IT, dll. Cobalah ikut join di berbagai project open source. Contohnya, kita bisa download CMS WordPress, pelajari cara install dan konfigurasinya, lalu coba buat sebuah plugin yang bermanfaat, contohnya plugin shoutbox. Mengembangkan plugin membuat kita mengerti tentang arsitektur sebuah sistem. Setelah menulis plugin, jangan lupa di lepas sebagai project open source, lalu orang-orang akan datang dan memberi berbagai feedback bermanfaat.
Kita bisa pakai layanan code hosting untuk mengelola aktifitas coding open source, ada GitHub, SourceForge, CodePlex, Google Code, LaunchPad, dll. Cukup mendaftar dan mencari project-project yang sekiranya menarik dan bisa ikuti, lalu join dan ikut kembangkan.
Banyak sekali manfaat yang bisa kita dapatkan dengan aktif di open source project, jika dibanding dengan materi yang kita dapatkan pada jam kuliah.

Blogging!

Yup, menulis artikel atau blogging adalah cara selanjutnya untuk mengasah kemampuan. Kedengarannya simpel, tapi manfaatnya baru terasa setelah kita menulis banyak artikel.
Ketika kita baru saja belajar tentang teknik pemrograman baru, bahasa pemrograman baru, teknologi atau issue seputar IT, sempatkan menulisnya di blog walau hanya 2-3 paragraf. Dengan menulis, kita mengasah kemampuan untuk menjelaskan. Semakin banyak menulis, kita semakin tahu bagaimana cara memecah penjelasan agar mudah dimengerti. Manfaatnya? Kemampuan visualisasi kita terhadap masalah menjadi lebih baik. Ketika kita ingin melakukan sebuah task di programming, kita bisa mendapatkan gambaran bersih tentang apa saja yang harus dilakukan.
Seringkali, ada hal-hal yang terlewatkan dan baru kita sadari setelah kita menulis artikelnya. Contohnya, jika kita berhasil membuat fungsi untuk mencari item dengan cepat di array yang isinya sejuta member. Kita bisa memilih untuk diam dan menyimpan codenya di komputer, tanpa ada yang tahu. Atau kita bisa menulis artikelnya, pada saat artikel tersebut ditulis, kita kadang menyadari bahwa ada bagian-bagian yang kurang dari code kita yang bisa diperbaiki. Ini karena dengan menulis, kita menjelaskan ulang semua bagian dari karya yang sudah kita buat, sehingga menulis karya yang kita buat sendiri bisa dikatakan sebagai self-review.
Dengan menulis, kita juga jadi giat mencari bahan baru di internet, dengan fasilitas yang ada sekarang seperti RSS Reader, kita bisa mengetahui banyak sekali issue IT terbaru, terutama di bidang software development, lalu mencoba merangkumnya di tulisan kita.
Tentu saja manfaat yang pasti dari menulis adalah kita bisa berbagi pengetahuan dengan yang lain, dengan menulis artikel tentang pemikiran dan karya kita, orang lain bisa memberikan feedbacknya dan kita bisa banyak belajar.

Aktif di komunitas

Ini adalah hal yang tidak kalah penting. Terserah apakah kita suka web atau desktop programming, ataupun yang lain, aktif di komunitas adalah harus. Dengan aktif di komunitas, kita bisa berbagi feedback dengan orang lain. Menjawab pertanyaan orang lain ikut membantu mengasah kemampuan kita di software development, dan aktif bertanya dan posting di forum membuat kita lebih terbiasa dengan lingkungan software development. Kita juga bisa kenal dengan banyak orang-orang yang sudah berpengalaman melalui forum.

Finally, ini adalah opini singkat saya bahwa sebenarnya materi pendidikan S1 saja tidak cukup jika kita memang benar-benar haus di dunia software development. Belajar secara mandiri dan konsisten akan sangat bermanfaat, banyak sekali materi ekstra yang bisa kita dapatkan di luar dunia kuliah. Saya sendiri masih junior dan belum bisa memberi tips super ampuh selain belajar dan belajar. Opini diatas sekedar pengalaman pribadi dan semoga ada manfaatnya :D

By: Dedi Purwanto


Tunggu, baru LOADING.



Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | SharePoint Demo