ke3

Minggu, 29 Oktober 2017

Data Mining

Materi oleh Anne Regina Nancy Toar

Kali ini membahas tentang konsep data mining dan bagaimana proses data mining secara garis besar. Kita awali dengan membahas tentang definisi data mining.
Data mining dikenal juga dengan knowledge discovery in database, atau istilah yang sedang tren belakangan ini adalah data science. Ini adalah cabang ilmu yang membahas tentang pemrosesan data untuk mendapatkan tren atau pola yang bermanfaat dari kumpulan data. Tren atau pola yang bermanfaat ini sering disebut dengan informasi.
Perlu kita pahami dulu apa itu data, informasi dan pengetahuan.
-       Data adalah fakta, angka, atau hal/kejadian tanpa konteks dan bersifat objektif.
-       Informasi adalah data yang telah diorganisasikan/dikelola/diproses sehingga mempunyai arti.
-   Pengetahuan adalah campuran dari pengalaman, nilai, informasi, dan wawasan, yang merupakan kerangka untuk memahami pengalaman dan informasi baru serta untuk mengambil tindakan yang tepat pada situasi yang bervariasi dan tak pasti.

Ilustrasi tentang data, informasi dan pengetahuan dalam gambar di atas mudah-mudahan memperjelas dan memberikan gambaran bagaimana tingkatan data, informasi dan pengetahuan.
Dari mana kita peroleh data?
Dalam era big data sekarang ini data bisa diperoleh dari mana-mana dengan bentuk yang bermacam-macam. Tetapi kumpulan data tanpa pemrosesan belum memiliki arti, sehingga salah satu ilmuwan mengatakan, “Today, we are drowning in data and starved for information.”
Berdasarkan sumbernya, data dapat digolongkan menjadi 3:
1. Data yang dihasilkan oleh mesin
2. Data yang dihasilkan oleh masyarakat atau individu secara personal
3. Data yang dihasilkan dalam suatu organisasi

Sumber data terbesar adalah data yang dihasilkan oleh mesin. Contohnya antara lain data yang didapat dari sensor, gambar satelit, jaringan mobile phone, dll. Dalam satu kali penerbangan pesawat terbang misalnya, dihasilkan sekitar setengah terabyte data dari segala sensor dan peralatan yang ada pada pesawat. Belum lagi data yang dihasilkan oleh smart device, contoh yang sederhana misalnya sport tracker yang dapat mendeteksi detak jantung, jumlah langkah, berapa km jarak yang sudah ditempuh. Tinggal dikalikan saja jumlah smart device di dunia dan besar data yang dikumpulkan, akan didapat volume data yang warbyasah besarnya.
Sementara itu, perkembangan teknologi web dan sosial media juga mendorong individu untuk menyumbang data dalam jumlah yang cukup besar. Data harian dari facebook misalnya, dikatakan volumenya lebih besar daripada data perpustakaan di seluruh amerika. Belum data dari sosial media lainnya (twitter, IG, linkedIn, dll), wiki, blog, email, dokumen, video, audio.
Data yang dihasilkan oleh masyarakat atau individu tersebut memiliki format yang tidak terstruktur (unstructured data) yang menimbulkan tantangan sendiri untuk menganalisisnya. Kemudian jenis data yang ketiga, data dalam organisasi. Jenis data ini yang paling sering kita temui jika biasa berkecimpung di dunia database. Data dari organisasi umumnya bentuknya terstruktur, berada dalam basis data, tetapi  tidak terintegrasi (data silos). Contohnya antara lain, data transaksi keuangan, e-commerce, data medical records, data hrd organisasi, dll.

Mengapa “menambang” data?
Data yang begitu banyak yang sudah dijelaskan tadi, sebagian besar tidak pernah dianalisis sama sekali. Seringkali informasi tersembunyi didalam data dan sulit untuk dibuktikan keberadaannya.
Istilah “data mining” sendiri dipakai pertama kali oleh para ahli statistik.
Awalnya istilah tersebut dipakai dalam konotasi negatif, karena dianggap sebagai upaya ekstraksi informasi yang tidak didukung oleh data. Namun dengan kemajuan ilmu komputer dan machine learning, cabang ilmu data mining semakin berkembang. Bahkan kini perkembangan teknologi big data membuka peluang-peluang baru untuk melakukan analisis terhadap data dengan jumlah yang besar. Banyak contoh pengaplikasian data mining dalam kehidupan sehari-hari. Dalam dunia bisnis dan ekonomi, terutama dipakai untuk mengenali konsumen dan memprediksi perilaku konsumen.
Bagaimana kerangka kerja dalam data mining?
Tahapan dalam proses data mining adalah sbb:
1.  Mengenali masalah yang akan dipecahkan
2.  Memahami data
3.  Pra pemrosesan data
4.  Pemodelan data
5.  Evaluasi

Tahap pertama adalah mengenali masalah yang akan dipecahkan.
Contoh: kita ingin mengaplikasikan teknik data mining untuk meningkatkan kualitas produk. Sebagai langkah awal, kita harus mendefinisikan pertanyaan atau masalah. Dapat dimulai dari pertanyaan yang umum seperti, kenapa sangat banyak keluhan dari konsumen? Bagaimana cara meningkatkan margin laba per unit? Bagaimana cara mengantisipasi dan memperbaiki kekurangan manufaktur untuk menghindari pengiriman produk yang cacat?
Dari sana, pertanyaan-pertanyaan yang lebih spesifik dapat dirumuskan. Sampai akhirnya semakin mengerucut dan masalahnya semakin tajam dan memungkinkan kita untuk melanjutkan ke tahap berikutnya.

Tahap kedua adalah memahami data.
Dari masalah yang telah dirumuskan tadi, kita telusuri lebih lanjut
Variabel-variabel apa yang terkait dengan pemecahan masalah?
Variabel apa yang perlu dipakai?
Siapa yang memiliki data yang diperlukan?
Dari mana data itu berasal?
Bagaimana data disimpan?
Bagaimana kita bisa mendapatkan data tersebut?
Apakah ada sesuatu dalam data tersebut yang tidak kita pahami? dll, dst.
Setelah kita benar-benar bisa mengidentifikasi dan memahami aset data yang kita punya, baru kita bisa lanjut.

Tahap ketiga adalah pra pemrosesan data.
Pada dasarnya semua data dapat dimining. Namun perlu kita sadari bahwa data memiliki tipe dan format yang berbeda-beda sehingga berbeda pula penangannya. Sumber data tidak hanya terbatas pada data terstruktur yang berada dalam basis data saja. Seringkali justru dalam data yang tidak terstruktur terkandung informasi yang sangat kaya. Tahap pra pemrosesan data meliputi banyak aktifitas. Antara lain, pembersihan data dari anomali (outlier) atau data yang hilang. Memperbaiki format data yang tidak konsisten. Atau dalam text mining dikenal aktifitas tokenisasi, stemming, pembobotan, dll.
Perlu kita ingat bahwa tahap kedua dan ketiga ini sangat penting dalam proses data mining.
Input data sampah hanya akan menghasilkan output sampah juga. Data yang tidak akurat atau tidak lengkap bisa jadi lebih buruk daripada tidak ada data sama sekali, karena keputusan berdasarkan sebagian data atau data yang salah akan menghasilkan keputusan yang salah atau tidak menyeluruh.

Tahap keempat adalah pemodelan data.
Dalam tahap ini data set yang didapat dari tahap sebelumnya diinputkan ke dalam algoritma sesuai dengan masalah yang ingin kita pecahkan. Ada banyak tipe algoritma dalam data mining. Beberapa di antaranya: regresi, klasifikasi, clustering, association rule, decision tree, recommender system, anomaly detection.

Kemudian masuk tahap berikutnya, yaitu evaluasi
Salah satu jebakan dalam data mining adalah bahwa pola yang kita temukan belum tentu bermakna. Penyebabnya bisa jadi karena teknik yang dipakai salah atau memang tidak ada pola yang menarik dalam data. Evaluasi bisa dilakukan dengan sejumlah metode, baik matematis maupun logis. Selain itu juga seringkali diperlukan pendapat ahli untuk menarik kesimpulan yang barangkali tidak dapat diukur secara matematis, tetapi tetap diperlukan untuk menilai model atau pengetahuan yang dihasilkan.

#ask metode matematikA itu maksdnya gmna kak
Jawab:
Pakek rumus. Misal dalam proses klasifikasi
akurasi = jumlah data yang diklasifikasikan secara tepat dibagi (jumlah data yang diklasifikasikan tepat + data yang salah diklasifikasi)

#ask kalau maksudnya pola tidak bermakna itu seperti apa kak? kita bisa menyadarinya kalau pola salah?
Jawab:
Contohnya mungkin bisa dilihat pada kasus Google Flu Trend. Jadi Google sekitar tahun 2009 berusaha memprediksi kondisi terjadinya flu berdasarkan keyword pencarian terkait flu. Pada awalnya sepertinya ada korelasi antara keyword pencarian dengan jumlah penderita flu. Asumsinya orang yang kena flu akan googling mengenai flu, algoritmanya menghasilkan hasil yang cepat dibandingkan dengan prediksi yang dikeluarkan oleh lembaga resmi. Namun lama kelamaan hasil prediksi dari google tersebut melenceng sangat jauh. Lembaga resmi mengeluarkan prediksi berdasarkan data pasien dari dokter. Sementara sumber data google adalah keyword pencarian. Lah yang googling terkait flu kan belum tentu penderita flu

Buat yang ingin coba2 bermain dengan data mining, ini beberapa tools open source yang dapat digunakan untuk data mining antara lain: RapidMiner, KNIME, Orange, WEKA. RapidMiner dan KNIME yang paling mudah dipakai katanya sih.
👆tampilan awal rapidminer
tersedia tutorial yg lumayan gampang diikuti
Bisa diunduh dari https://rapidminer.com/
Silahkan bagi yang ingin mencoba
Kalau bahasa pemrograman yang biasa dipakai java atau python. Tetapi yang sedang banyak dipakai sekarang python dengan scikit learn.
https://docs.rapidminer.com/downloads/DataMiningForTheMasses.pdf

referensi yg bagus utk belajar data mining 👆
sekian, terima kasih telah mengunjungi blog saya.

Selasa, 24 Oktober 2017

10 Bahasa Pemograman yang biasa digunakan

PROGRAMMING LANGUAGE WAR (review)
Materi oleh Hasna Khairunnisa

10 bahasa pemrograman yang umumnya dipakai di dunia dan mendatangkan expert-expert yang memakai bahasa itu di perusahaannya.
Biasanya, kalau membahas bahasa misalnya membahas bahasa yang mana sih yang paling bagus? itu selalu berakhir dengan perdebatan tanpa akhir. Padahal sebenarnya, setiap bahasa itu mempunyai keunggulannya masing-masing dan prospek-prospek tersendiri. Dan ketika kita baru menginjak dunia pemrograman, pertanyaan yang diajuin pasti "paling bagus belajar bahasa apa ya?” Semua expert dibidang bahasa-bahasa tersebut saling berpendapat untuk mempertahankan bahasanya agar investasinya tidak habis. Bayangkan saja, kalau misalnya bahasa tertentu udah tidak ada peminatnya lagi. Bakal susah mencari developer, contoh project di github, nyari kerjaan, dll.

Review pandangan-pandangan mengenai bahasa pemrograman.
1) Scala (https://www.scala-lang.org/)
Scala adalah bahasa yang berjalan di JVM (Java Virtual Machine). Jadi, Scala temenan sama Java. Waktu pakai Scala, kita bisa import class-class yang ada di Java dan sebaliknya.
Ada beberapa teknik keren di Scala, yang unggul dari lainnya:
1 Pattern Matching: bermanfaat buat mengurangi 'if' (conditional)
2 Currying: biasa digunakan untuk file stream, jadi gak perlu buka tutup file untuk menghemat memori. Begitu juga dengan transaksi, tidak perlu ada Rollback atau Commit seperti pada biasanya
3 Trait: mirip Java interface, tapi dengan implement dan berbagai teknik keren lainnya.
Untuk framework yang biasa digunakan, discala ada yang namanya akka.io, dimana bisa digunakan disatu atau banyak mesin secara bersamaan. Jadi keunggulan utama scala itu, dia cocok dipakai di lingkungan software yang sudah punya banyak sekali user, karena ketika diperlukan untuk nambah memori atau nambah mesin, scala secara otomatis beradaptasi dengan lingkungannya. Selain itu, Apache Spark yang biasa digunakan untuk teknologi Big Data dan terkenal dengan kecepatannya menggunakan Scala. Kalau memakai Apache Spark, ukuran besar data dan besar RAM tidak berpengaruh pada kecepatan proses Big Data.
Potensi pekerjaan di Indonesia untuk bahasa Scala masih jarang, tapi cukup terkenal di luar negeri, misalnya Australia. Walaupun jarang, karena Scala dibutuhkan di perusahaan besar dengan posisi yang lumayan tinggi, jadi cukup prospektif juga untuk dipelajari. Tantangan saat belajar Scala, itu, adalah Scala cukup sulit dipahami. Scala termasuk bahasa tingkat tinggi, yang -infonya- buku pembahasannya setebal 800 halaman - hanya membahas satu bahasa.
Materi ini kemarin disampaikan oleh Bapak Jony Sugianto, Former Research Lead Engineer di Detik.com

2) Kotlin
Kotlin, pasti sudah sering denger ya. Kotlin lagi booming banget soalnya baru diangkat Google dan disupport secara penuh untuk menjadi official language di Android. Sebenernya Kotlin bukan bahasa baru. Kotlin sering disebut sebagai 'bahasa rangkuman dari Java' yang membuat syntax-syntax panjang di Java jadi terlihat lebih mudah. Kotlin dibuat oleh JetBrains, perusahaan yang develop IntellijIDEA, Android Studio. Jadi sudah klop banget sama Android.
Platform Kotlin ada JVM, JavaScript, Android, dan lain-lain. Kotlin itu 100% Java compatible. Jadi kalau misalnya kita sedang ngoding Java, lalu tiba-tiba salah ketik Kotlin, itu Java dan Kotlin masih bisa saling memahami. Mereka bisa dipakai berbarengan.  Selain kompatibel ke Java, Kotlin juga bisa di 'transpile' ke JavaScript. Jadi kalau ngoding memakai Kotlin, bisa dipakai di Java dan juga JavaScript, dua bahasa yang lagi booming sekarang.
Untuk komunitas bahasa Kotlin, di Indonesia ada kotlin.id, dan kotlin.link. Selain itu, sumber-sumber belajar bisa dari panduan yang disediakan Google, untuk develop di Android.
Dari segi teknik ngoding, Kotlin itu:
- Null safety, jadi tidak ada error nullpointerxception seperti di Java
- Mutatibility protection & Notation
- Smart Cast, bisa otomatis mengubah suatu variabel ke tipe data lainnya tanpa harus dispesifikkan tipenya saat casting.
-Coroutine
selengkapnya tentang teknis bisa dilihat di dokumentasinya Kotlin, https://kotlinlang.org/ :)
pendapat pribadi: Kotlin cocok banget buat yang lagi belajar Android, dan prospeknya cukup menjanjikan karena disupport langsung oleh Google, sehingga untuk forum dan komunitas bisa terus berkembang.
Materi ini disampaikan oleh Bapak Deny Prasetyo, Backend Engineer di Gojek

3) Go Lang
Go juga merupakan salah satu bahasa yang masih disupport oleh Google, karena dibuat langsung oleh tim Engineer di Google. Nah bedanyaa, bahasa ini lebih digunakan untuk pengembangan di Google sendiri dan biasa digunakan oleh aplikasi yang sudah punya banyak audience.
Go Lang punya logo yang lucu banget, bisa dilihat di link ini https://golang.org/
Nah, walaupun Go Lang itu dipakai diinternalnya Google, tetapi juga dipublish dan dapat dipakai secara open source. Support untuk Go Lang itu juga ada backward compatibility, artinya kalau misalkan kita pakai Go versi lama, masih bisa dipakai di lingkungan sekarang dan masih dihandle error-error versi sebelumnya oleh tim pengembangnya. Go Lang itu kelebihannya, cepat. Jadi hampir semua perusahaan yang punya banyak user di Sillicon Valley itu memakai Go, seperti misalnya Google, Facebook, dan di Indonesia ada Traveloka, Grab. Go biasa digunakan di API untuk Mobile. Basic dari bahasa Go, itu Java, C, C++.
Teknisnya, Go itu memory safe karena ada 'garbage collection' secara otomatis. Dari resource belajarnya, Google Development team sudah menyediakan banyak library dan code generator (golanglibs.com). Project-project besar menggunakan Go: Docker, Kubenetes, Hugo, dan InfluxDB. Nah, investasi terbesar buat belajar Go ini terletak di tingkat kesusahannya. Go itu lain dari bahasa pemrograman lain dan tidak direkomendasikan untuk Junior Programmer. Nanti berasap duluan kepalanya, hehe.
Materi ini disampaikan oleh Kenneth Shaw, CTO dan Founder Brankas.com, dan juga founder komunitas Go lang di Indonesia.

4) Java
Java? pasti semuanya udah kenal banget nih sama bahasa ini, hampir disetiap perkuliahan IT diajarin bahasa Java atau minimal sudah pernah kenal sama namanya, karena mirip sama salah satu pulau di Indonesia. Konon katanya pembuat bahasa ini terinspirasi dari enaknya Kopi di Jawa jadi namanya Java.
Java termasuk bahasa yang sudah lama sekali. Walaupun sulit, tapi Java sudah mendarah daging disetiap developer dunia dan sudah dikembangkan jadi bahasa-bahasa baru. Sempat ada beberapa wacana yang akan menggantikan bahasa Java, tapi nyatanya belum pernah berhasil Java tetap berdiri tegak sampai sekarang. Java terkenal dipakai di Android, JVM untuk Web Server, pengembangan machine learning, dan lain-lain. Support, library dan komunitasnya banyak sekali ditemukan. Prospek belajar Java juga sangat baik dan banyak dibutuhkan di Indonesia.
Not much to say, Java is old but gold. Meskipun agak berat dalam prosesnya dan sulit dalam pembelajarannya, tapi implementasinya mudah ditemukan di mana-mana.
Apakah Java bisa ngurangi cache? kalau ngurangin cache saya baru pernah dengar. tapi kalo dari level kesulitan, mungkin memang ya kalau ngga start dari Java atau paham dasar OOP dulu. Java sendiri, termasuk High Level Language yang memang banyak diakui bahasa pemrograman beginner populer tersusah untuk dipelajari.
Materi Java disampaikan oleh Mas Yudhi Karunia Surthan, Senior Principle SE di Blibli.com

5) JavaScript
JS juga merupakan bahasa yang lagi booming di Indonesia. Implementasinya banyak ditemukan di Web Development, misalnya AngularJS, NodeJS, MEAN Stack Framework. Kali ini khusus membahas mengenai keunggulan NodeJS.
Facebook stack tidak menggunakan go. Walaupun ada beberapa yang menggunakan untuk opensource mereka. Ex: parse (skrg udah mati). Facebook stack backend menggunakan campuran C++, Java, dan Erlang.
Untuk traveloka juga mainly menggunakan Java and beberapa plugin Scala. As I know in 2013 saat mereka develop.
Selain Web, JS juga ada di mobile: ReactJS. Ada di Server, iOT, Robotika, dll. Luas sekali cakupannya, dan sudah diimplementasikan dibanyak produk: eBay, FB, IBM, HP, Uber, LinkedIn, dll.
Personal comment: JS luas sekali dan tidak begitu susah dalam pembelajarannya. Baiknya, langsung berfokus di Framework tertentu untuk masteringnya.
materi ini disampaikan oleh mas Riza Fahmi , Cofounder dan Curriculum Director di Hacktiv8

6) Swift
Swift, terkenal sebagai bahasa untuk development di iOS. Syntax di Swift sederhana sekali, mudah dipahami sampai-sampai Apple membuat Swift Playground untuk anak-anak belajar bahasa Swift secara sederhana. Di Swift tidak ada backward compatibility, jadi versi sebelumnya yang sudah tidak disupport harus melalui beberapa proses penyesuaian untuk dapat digunakan kembali.
Swift adalah bahasa yang cepat. Lebih cepat dari Python, lebih cepat juga dari objective C (bahasa official iOS sebelumnya). Kalau bicara Swift, hampir tidak ada tandingannya, karena developer iOS masih cukup jarang dan juga bahasa yang bisa dipakai untuk develop iOS biasanya hanya yang disupport Apple saja, jadi eksklusif sekali kalau mastering bahasa Swift. Info-info yang lewat, bayaran untuk programmer iOS cukup besar di Indonesia.
Belajar bahasa Swift, mungkin terhalang oleh fasilitas yang harus debugging menggunakan perangkat Apple. Bahasa swift kabarnya juga bisa digunakan untuk develop Android, tapi harus melalui proses yang cukup rumit.
Materi Swift disampaikan oleh Deny Zakya, iOS Engineer di BBM (KDKonline)

7) Ruby
Keunggulan dari Ruby, bahasanya natural dan diklaim sangat manusiawi. Banyak metode yang bisa digunakan untuk menyederhanakan pemrograman dan menyenangkan untuk dipelajari pemula. Ruby bisa diimplementasi di Mobile, Web, bahkan Desktop.
Di Indonesia, ada komunitas friendly dari idrails.com dan slack di ruby.id/slack. Kabarnya, akan ada konferensi pemrograman ruby pertama di Indonesia di waktu dekat ini.
materi ini disampaikan oleh Didik Wicaksono, CTO Cookpad Indonesia dan RubyConf Indonesia 2017


Selebihnya, ada Python yang baik digunakan untuk implementasi Machine Learning dan juga bisa dipakai untuk Web Development, Chatbot, dan sedang booming juga walaupun merupakan bahasa yang cukup tua. Ada C# dan PHP yang tidak tersampaikan oleh saya, secara pengetahuan umum C# biasa digunakan diaplikasi Microsoft, Pemrograman mesin, desktop, dll.

Kamis, 12 Oktober 2017

Learn About UI Design & Convert It To HTML!"

Kali ini saya akan berbagi materi mengenai "Learn About UI Design & Convert It To HTML!" dengan pemateri yaitu Muhibbudin Suretno sebagai Senior Frontend Developer di ORORI.com

Apa itu UI Design? (dikutip dari Wikipedia) Desain Antarmuka Pengguna (bahasa inggris: User Interface Design) atau rekayasa antarmuka pengguna adalah desain untuk komputer, peralatan, mesin, perangkat komunikasi mobile, aplikasi perangkat lunak, dan situs web yang berfokus pada pengalaman pengguna (bahasa inggris: User Experience) dan interaksi.

Tujuan dari Desain Antarmuka Pengguna adalah untuk membuat interaksi pengguna sesederhana dan seefisien mungkin, dalam hal mencapai tujuan pengguna atau apa yang sering disebut dengan user-centered design.

Dari pengertian diatas saat ini saya akan menjelaskan beberapa langkah yang biasa saya gunakan dalam merancang sebuah tampilan (kita sebut mockup) aplikasi web atau mobile apps sesuai dengan tujuan yang telah disebutkan diatas. Beberapa langkah tersebut diantaranya:
1.      Mencari suatu masalah atau sesuatu yang dapat dijadikan tema / konsep aplikasi (ideation)
2.  Mengenali lebih jauh tentang masalah tersebut _(seperti target pengguna & masalah yang dimilikinya)
3.      Menuangkan data yang sudah kita miliki kedalam sketsa
4.      Menggambar ulang sketsa tersebut kedalam bentuk mockup (high fidelity)
5.      Menerapkan bentuk mockup tadi menjadi template
Berdasarkan poin no. 5 dibagi lagi menjadi:
- Menyiapkan aset gambar (slicing design)
- Menyiapkan skeleton template
- Membuat rancangan layout sesuai mockup
- Menyesuaikan template dengan desain
- Menyiapkan template untuk kemungkinan tambahan (responsive design)
- Menambahkan efek untuk menambah daya tarik website

Beberapa hal yang perlu diperhatikan dari langkah-langkah diatas berhubungan langsung dengan **Product & User Research** dimana kita harus mengenali masalah yang ada disekeliling kita, memahami siapa target pengguna kita, apa yang mereka butuhkan, kenapa mereka harus memilih aplikasi kita dan lain hal sebagainya.
Mari kita mulai eksplorasi kita mengenai UI Design yang sebenarnya begitu luas, dimulai dari:
1.      Mencari suatu masalah atau sesuatu yang dapat dijadikan tema / konsep aplikasi
     Hal pertama yang harus kita siapkan sebelum membuat UI Design adalah menentukan masalah atau tema (ideation), untuk mempersingkat proses ide yang biasanya memakan waktu yang cukup lama.
    Mari kita tentukan untuk membuat aplikasi dengan ide tentang **website yang menyediakan paket wisata bagi para traveler**
      2.      Mengenali lebih jauh tentang ide yang kita dapatkan
    Dari ide yang telah kita miliki selanjutnya kita kenali lebih jauh tentang ide tersebut, disini kita asumsikan beberapa hal mengenai target pengguna kita, yaitu pria / wanita dengan umur 20 - 35 tahun tinggal di kota besar dan memiliki pekerjaan yang menyita waktu serta membuat mereka cenderung stress.
      Dengan data yang sangat simple tersebut kita dapat membuat rancangan desain dengan fokus terhadap paket-paket wisata favorite dan destinasi populer yang dapat membuat calon pengguna kita tertarik, tentunya dengan beberapa tambahan seperti travel mana saja yang bergabung dengan website kita serta apa yang traveler / pengguna lain katakan tentang servis kita yang dapat menambah rasa kepercayaan si calon pengguna lain.
      3.      Menuangkan data yang sudah kita miliki kedalam sketsa
   Dari data diatas kita mendapatkan beberapa insight dan kita dapat melanjutkan kedalam tahap mendesain sebuah sketsa yang mempresentasikan apa yang telah kita lakukan di langkah-langkah sebelumnya:
     Dari insight diatas saya telah membuat rancangan sketsa seperti berikut ini:
      

 Nah seperti inilah gambaran sketsa aplikasi dari apa yang telah didapatkan dari insight diatas
Selanjutnya akan dijelaskan maksud dari sketsa diatas
1. Bagian pertama yaitu navbar menu berisi logo aplikasi kita serta menu sebelah kanan yang berisi (Find Places, Packages, Client Say, Sign In & Sign Up)
Sedikit yang menarik pada tombol Sign Up akan kita biarakan berbeda nantinya dengan menu yg lain agar menjadi focus point atau call to action button
2. Bagian penting dari sketsa diatas yaitu form pencarian dengan tagline yang cukup besar serta beberapa link serta ornamen tambahan. Jadi ketika ada pengguna yang membuka website kita dia tahu untuk apa sebenarnya aplikasi kita ini ada.
3. Selanjutnya bagian yang berfungsi sebagai secondary action setelah form pencarian diatas, yaitu slide yang berisi destinasi-destinasi populer.
4. Bagian yang tidak kalah penting yaitu section customer review yang menjadi penambah rasa kepercayaan pengguna tentang website kita.
5. Bagian terakhir yaitu list paket travel yang kita jadikan rekomendasi untuk pengguna
6. Bagian tambahan kita tampilkan dibagian bawah seperti logo travel, menu footer, copyright serta FAQ dll.

      4.      Menggambar ulang sketsa tersebut kedalam bentuk mockup (High Fidelity)
     Disini kita dapat membuat mockup menggunakan beberapa aplikasi seperti Adobe Photoshop, Adobe Illustrator, Adobe Experience Design, Corel Draw, Inkscape, Balsamiq, MockingBot, Pencil Evolus, GravitDesigner, Sketch atau Figma atau aplikasi 2D design lain yang biasa kalian gunakan.
     Dalam contoh ini menggunakan Figma, karena tampilannya yang clean seperti sketch & yang pastinya gratis. Seperti halnya pada materi kali ini saya menggunakan Figma untuk menggambar ulang sketsa yang saya buat diatas. Tapi tentang bagaimana menggambar ulang sketsa tersebut insyaallah akan dijelaskan dilain waktu dan kesempatan.
     Dan berikut hasil gambar ulang sesuai sketsa & Insight yang kita dapatkan:
    1. Apa yang kalian baca diatas berhubungan langsung dengan proses Product & User Research yang sebetulnya bila diurutkan akan memakan waktu yang cukup lama diantaranya:
- Ideation
- User Research
- User Personas
- User Interview
- User Journey
- Storyboard
- Card Sorting
- Sketching
- Low Fidelity
- Usability Testing
- Medium Fidelity
Hingga sampai dengan proses akhir yaitu High Fidelity. Dikarenakan prosenya yang cukup lama maka diatas dirangkum dan singkat menjadi beberapa poin yaitu Ideation, User Personas, Sketching & High Fidelity yang sebetulnya masih jauh dari kata sempurna.
2. Sebetulnya ada cara yang dapat mempercepat proses-proses disini yaitu dengan Design Sprint dari Google Venture tapi saya sendiri jujur belum pernah mencoba dan apalagi menguasai hal tersebut jadi saya belum bisa menjelaskan secara detail
3. Apa yang kita bahas diatas hanya untuk membuat 1 buah tampilan landing page, jika kalian ingin membuat halaman lain maka research kalian bisa disesuaikan dengan halaman lain tersebut. Seperti bagian list product maka kalian harus tahu mengenai kebiasaan pengguna saat mereka berbelanja atau memilih sesuatu.
4. Saat membuat desain kalian dapat menggunakan aplikasi apapun sesuai selera kalian, tapi untuk yang baru belajar bisa mulai membuat dengan menggunakan kertas & pensil seperti membuat button, card, alert, menu dll. Atau jika kalian pernah membuat sketsa aplikasi kalian bisa mencari insight di pinterest, behance, dribbble serta medium.com atau website desain lain. Sebagai tambahan biasanya saya mengkombinasilan insight antara pinterst dan goodui.org
5. Untuk materi selanjutnya (belum tau kapan) akan asumsikan kalian sudah mengetahui apa itu HTML, CSS, sedikit JS dan slicing desain agar lebih mudah ketika akan menjelaskan soal Create HTML Template from Scratch!
6. Sebagai materi tambahan kemungkinan akan dibuat kedalam video dilain waktu & kesempatan, seperti mengenal apa itu SASS, membuat sketsa aplikasi serta menggambar menggunakan Figma.

Beberapa pertanyaan selama materi disampaikan:
1.      Ka, perlukah seorang UI designer mengerti tentang web component?
terus bagaimana kakak menggambarkan consistency font, color, dsb nya?
Jawab:
-          Tentunya harus, tapi terkadang ada juga UI Designer yang membuat tampilan yang cukup unique yang sebenarnya cukup impossible bagi frontend developer junior. Tapi kembali lagi hal yang unique tsb. justru menjadi tantangan bagi para frontend developer.
-          Soal konsistensi font, color dsb. bisa di lihat dari bentuk desain yang dibuat, biasanya tergantung dengan konsep, target pengguna & pasar yang di tentukan. Karena berbeda pengguna berbeda juga soal pewarnaan dll. Misal antara warna untuk pria & wanita itu berbeda, wanita cenderung ke warna yang soft seperti warna corral, violet, tosca dll. tapi untuk pria lebih ke warna yang lebih memberikan energi seperti oranye, merah & biru.

2.      Ka perlukah seorang UI desaigner mengerti tentang web com??
Jawab:
Hal-hal lainnya bergantung dari pengalaman si UI Designer tersebut

3.      ka, bagaimana menyikapi icon untuk di beberapa device (responsive). membuat beberapa ukuran icon yg berbeda, atau mengandalkan proses exporting icon di dalam aplikasi?
Jawab: Icon seperti apa ya?
misalkan selain menggunakan fontAwesome biasanya UI designer menggunakan icon dalam bentuk image, nah biasanya kk bikin icon nya dalam beberapa ukuran berbeda misalkan 32px x 32px dan 42px x 42px atau satu saja ? (best practice nya seperti apa)

4.      Terus kak klo kita belom pernah buat web sama sekali apa yang harus dikuasai kak pada font end
Jawab:
Untuk Belajar | Titi & Herlina selain dari tech stack frontend yg cukup banyak mulai dari HTML, CSS, JS (ES 5 Standar, ES6, JS Next) dsb. seorang frontend developer juga harus memiliki kepekaan terhadap warna, memahami apa itu user experience (meskipun sedikit), interaction, user behavior serta feeling in art yang lumayan
Meskipun kadang untuk saat ini Frontend Developer cenderung hanya mengerjakan tech stacknya saja, kadang saya sendiri menemukan beberapa teman yg fokus di Frontend Dev tapi secara pemahaman soal CSSnya pun masih harus di perdalam lagi
Untuk lebih lengkapnya mengenai tech stack frontend bisa dilihat disini https://github.com/kamranahmedse/developer-roadmap/

5.      khususnya untuk responsive design
jawab:
agar ukurannya bisa di setting di CSS kita?
Oh itu toh, biasanya sih saya bikin atau minta ke ui designer dalam format SVG agar lebih scalable.
Agar gambarnya tidak pecah dalam ukuran berapapun


Metode Perancangan Basis Data

 Metode perancangan basis data secara umum dikelompokkan kedalam: 1. Preliminary Design 2. Scratching Methode 1. Preliminary Design, Cirinya...