Senin, 13 Maret 2017

Mengenal Algoritma Kruskal

Algoritma Kruskal, mungkin algoritma jenis yang satu ini kurang familiar ditelinga kita, bahkan tidak sedikit juga orang yang belum pernah mendengar istilah tersebut sebelumnya.

Algoritma Kruskal adalah algoritma untuk mencari pohon merentang minimum secara langsung didasarkan pada algoritma MST (Minimum Spanning Tree) umum. Pada algoritma Kruskal sisi-sisi di dalam graf diurut terlebih dahulu berdasarkan bobotnya dari kecil ke besar. Sisi yang dimasukkan ke dalam himpunan T adalah sisi graf G sedemikian sehingga T adalah pohon. Pada keadaan awal, sisi-sisi sudah diurut berdasarkan bobot membentuk hutan (forest). Hutan tersebut dinamakan hutan merentang (spanning forest). Sisi dari graf G ditambahkan ke T jika tidak membentuk sirkuit di T.
Perbedaan prinsip antara algoritma Prim dan Kruskal adalah jika pada algoritma Prim sisi yang dimasukkan ke dalam T harus bersisian dengan sebuah simpul di T, maka pada algoritma Kruskal sisi yang dipilih tidak perlu bersisian dengan simpul di T asalkan penambahan sisi tersebut tidak membentuk sirkuit.
Langkah-langkah dalam algoritma Kruskal adalah sebagai berikut:
1.   Lakukan pengurutan terhadap setiap sisi di graf mulai dari sisi dengan bobot terkecil sampai terbesar.
2.  Pilih sisi yang mempunyai bobot minimum yang tidak membentuk sirkuit di pohon. Tambahkan sisi tersebut ke dalam pohon.
3.  Ulangi langkah 2 sampai pohon merentang minimum terbentuk, yaitu ketika sisi di dalam pohon merentang minimum berjumlah n-1 (n adalah jumlah simpul di graf).



 Berdasarkan gambar di atas, maka dilakukan pengurutan sisi pada graf mulai dari sisi dengan bobot terkecil sampai terbesar dapat dilihat pada tabel berikut: 

Bobot
Sisi
10
(F,G)
14
(G,H)
15
(A,C)
20
(D,H)
25
(B,E)
30
(D,E)
35
(A,D)
40
(A,B)
45
(C,E)
48
(E,F)
50
(E,G)

Untuk lebih memahami perbedaan algoritma Prim dan algoritma Kruskal yang keduanya merupakan algoritma untuk pohon merentang minimum, maka dari gambar di atas dapat dicari pohon merentang minimumnya dengan menggunakan kedua algoritma tersebut. Langkah-langkah pembentukan pohon merentang minimumnya dapat dilihat pada gambar berikut ini:


Minggu, 24 April 2016

Perbandingan Native App dan Mobile Web

Trend mobile device yang didominasi oleh smartphone di seluruh dunia masih terus menanjak. Menurut data dari IDC tahun 2013 vendor smartphone mengapalkan 1 milyar smartphone ke seluruh dunia. Trend ini juga diikuti trend naik penggunaan native application yang disediakan vendor smartphone lewat application store ( Apple App Store dan Google Play). Lewat application store pengguna  kedua device ini bisa mendownload aplikasi yang diinginkan lalu melakukan instalasi pada devicenya masing-masing.
Seiring semakin populernya native application yang dipelopori Apple mendorong para developer aplikasi membuat beragam aplikasi, begitu pula pelaku bisnis untuk ikut membuat aplikasi mereka. Mobile web yang selama ini sebagai alternatif bagi pengguna smartphone dalam mengakses web mulai kalah pamor, pengguna smartphone mulai beralih ke native application dengan berbagai kelebihan yang dimilikinya.
Pada artikel ini saya coba membuat gambaran sekilas native application dan mobile web, sehingga bisa memberi gambaran secara umum mengenai native application dan mobile web.

Native Apps  dan Mobile Web

Native apps atau native application adalah program aplikasi smartphone yang dibuat dengan bahasa pemrograman tertentu untuk berjalan pada suatu platform. Misalnya native app yang berjalan di platform iOS, Android atau Windows Phone.
Mobile web adalah website yang dioptimalisasi untuk diakses oleh mobile browser.
Biaya
Pengembangan dan maintenance native app membutuhkan biaya yang lebih besar dibandingkan pengembangan dan maintenance mobile web. Hal ini lebih terlihat lagi apabila pengembangan native app tersebut dikembangkan juga pada beberapa platform sekaligus seperti iOS, Android dan Windows Phone atau pada platform yang kurang dikenal lainnya. Hal ini berbeda dengan mobile web yang yang berjalan di atas browser sehingga tidak membutuhkan pengembangan pada platform yang berbeda-beda.
Waktu Pengembangan (Development)
Pengembangan native app membutuhkan waktu yang lebih lama dibandingkan pengembangan mobile web. Ini disebabkan oleh faktor teknis pengembangan native app lebih rumit daripada mobile web.
Performa
Performa native app tentu lebih memuaskan daripada mobile web karena memang dikembangkan untuk berjalan khusus di platform devicenya masing-masing. Ciri dari native app adalah kecepatannya dalam mengakses data dibandingkan mobile web, dan  inilah yang menjadi keunggulan dari native app.

Bahasa Pemrograman

Native app pada iOS dibuat dengan bahasa pemrograman Objective-C, Android  dengan Java dan Windows Phone dengan Visual C++.
Mobile web dibuat dengan HTML5, CSS3, JavaScript dan server-side languages seperti PHP.

Distribusi

Native app membutuhkan distribusi lewat application storenya, Apple App store (iPhone, iPad) atau Google Play (Android device) yang dimiliki dan dikontrol oleh vendor. Pengguna masing-masing device ini bisa dengan mudah mengakses application store lewat devicenya, pilih applikasi yang mereka inginkan lalu download dan install.
Mobile web pada dasarnya website yang dioptimalisasi untuk smartphone maka pengguna hanya mengetik nama URL untuk mengaksesnya tanpa harus mendownload dan instalasi di device mereka.

Platform

Native app dibuat untuk berjalan di atas platform yang ada pada device apakah iOS,Android, Windows Phone.
Mobile web adalah sebagaimana website dibuat untuk diakses oleh browser.
Index
Native app tidak bisa di index oleh search engine sebagaimana mobile web, karena native app pada dasarnya adalah aplikasi yang “hidup” di devicenya.

Kelebihan

Native app : yang menonjol dari native app adalah performanya yang cepat, user-friendly, memiliki user experience yang baik, sisi visual yang menarik, terjamin dalam hal kualitas dan securitynya karena dikontrol oleh vendor masing-masing.
Mobile Web : dengan prinsip “develop once run everywhere” berarti relatif hemat biaya pengembangan dibandingkan native app yang multiplatform. Bisa didistribusikan secara bebas ke pengguna tanpa harus mendapatkan approval dari pihak tertentu sebagaimana native yang harus mendapat approval dari vendor lewat App Store dan Google Play. Begitu juga sebaliknya pengguna tidak perlu harus mencari dulu di application store untuk mengakses mobile web tersebut.

Kelemahan

Native app :  biaya pengembangan dan maintenance yang lebih mahal jelas menjadi pertimbangan, biaya tersebut akan otomatis bertambah bila pengembangan dilakukan secara multiplatform. Update yang dilakukan secara periodik pada native app akan menciptakan kondisi dimana terdapat versi yang berbeda-beda yag digunakan oleh pengguna native app tersebut.
Mobile Web :  performa yang relatif lambat dibandingkan native app. Belum supportnya secara penuh semua browser pada fitur-fitur HTML5 menjadikan mobile web tidak konsisten dalam tampilan di browser yang berbeda. Belum mampunya mobile web mengakses semua fitur yang dimiliki device bersangkutan. Sebaliknya native app dibuat untuk mampu mengakses semua fitur yang dimiliki device.

Selasa, 12 April 2016

Mengolah dan Menganalisa Big Data


Big Data saat ini menjadi tren bagi banyak perusahaan untuk mengumpulkan informasi yang dibutuhkan dimasa depan, terutama bagi perusahaan - perusahaan besar. Sebenarnya Big Data bukanlah barang baru di dunia informasi teknologi, namun masih banyak orang yang belum mengerti apa itu Big Data dan bagaimana Big Data ini bekerja. Untuk itu, pada artikel pertama saya ini, saya ingin berbagi informasi dan menjelaskan mengenai Big Data dan cara kerja Big Data sebenarnya, anda dapat mengibaratkannya dengan cerita seperti ini 

Ada sebuah perusahaan keripik yang telah eksis selama berpuluh-puluh tahun. Dari awal berdirinya perusahaan tersebut, si pemilik perusahaan hanya menjual satu jenis keripik, yaitu keripik singkong. Perusahaan mendapatkan pasokan singkong dari pengumpul yang didapat dari petani singkong di sebuah daerah.

Beberapa tahun kemudian, ternyata merek keripik tersebut cukup laris di pasaran. Dan si pemilik perusahaan berniat untuk mengembangkan beberapa varian keripik yang baru. Strategi pemasaran model baru pun dilakukan mengingat gaya dan cara masyarakat pada waktu itu menuntut adanya perubahan. Dan alhasil, bisnis keripik semakin besar dan berkembang.

Dari awal berdiri hingga sukses, perusahaan tersebut selalu menulis catatan - catatan dan laporan mengenai penjualan. Misalnya tentang daerah paling laris dalam penjualan, hingga daerah paling sedikit peminat. Kemudian juga melakukan pencatatan terhadap daerah asal singkong yang memiliki kualitas paling bagus. Dari tahun ke tahun, laporan tersebut semakin menumpuk. Dan suatu ketika dibukalah oleh sang pemilik perusahaan untuk melakukan sedikit riset.

Ternyata setelah riset kecil - kecilan terhadap catatan tersebut, pemilik perusahaan mendapati bahwa terdapat tren penjualan yang fluktuatif dari tahun ke tahun. Ditemukan lagi bahwa dari bulan-bulan tertentu dan musim tertentu penjualan keripik meningkat dan di bulan lain penjualan merosot tajam. Singkat cerita, pemilik perusahaan kemudian membentuk sebuah tim untuk menganalisa gaya konsumen dari keripik yang di produksinya.

Dari yang awalnya merupakan data kecil yang berupa laporan penjualan perhari hingga pertahun, kemudian data tersebut dikumpulkan menjadi big data yang bisa dianalisa oleh tim riset data perusahaan tersebut. Setelah dianalisa secara lebih matang dan detail, tim menemukan bahwa pada bulan tertentu penjualan keripik varian A lebih tinggi dibanding varian B, dan pada bulan lain penjualan keripik varian B lebih tinggi dari varian A.

Tren ini ternyata tidak terjadi 1 hingga 2 tahun, tapi bertahun-tahun. Setelah adanya data analisa tersebut, perusahaan kemudian memfokuskan untuk memperbanyak produksi keripik varian A lebih banyak pada bulan tertentu, dan keripik varian B pada bulan tertentu.
Dari cerita di atas, mungkin anda sedikit lebih paham mengenai apa itu Big Data. Karena yang disebut sebagai Big Data adalah cara dimana para tim riset melakukan analisa terhadap data dan menampilkannya dalam bentuk yang mudah dipahami kemudian bisa dijadikan rujukan untuk menentukan kebijakan perusahaan.
Big Data bukan hanya berkaitan dengan perusahaan keripik seperti diatas, bisa jadi perusahaan minuman, jasa, IT Telekomunikasi, dan lain sebagainya. Dan hasil analisa data bukan hanya berkisar mengenai penjualan atau analisa pasar. Semuanya tergantung data yang terkumpul dan metode analisa.
Bagi perusahaan seperti pada cerita dan kasus diatas, pengelolaan Big Data akan sangat membantu perusahaan untuk menapaki jalan-jalan terjal menghadapi persaingan dari kompetitor. Pembaca bisa membayangkan, jika data-data yang dimiliki oleh perusahaan kacang tersebut bocor ke kompetitor ?
Perusahaan-perusahaan besar yang telah melakukan pengolahan Big Data dengan baik, tentunya hal itu akan menjadi sebuah investasi yang tidak terduga atau layaknya sebuah perusahaan yang menemukan tambang emas di dalam perusahaan itu sendiri. Dan satu lagi, keamanan terhadap big data adalah sebuah prioritas perusahaan sebagai hasil karya tak terduga.
Selamat datang di era Big Data.