ke3

Rabu, 05 April 2017

Materi Dasar Gitlab

How to Built Collaborative Project with Gitlab

Untuk materi ini saya akan membahas 4 point:
1. Pengertian Git
       Git adalah tool tang berfungsi sebagai version control system (VCS) yang digunakan para developer untuk mengembangkan software secara bersama-sama. Versin control system (VCS) adalah sebuah infrastruktur yang dapat mendukung pengembangan software secara kolaboratif.
       Git penting untuk tim developer karena setiap orang dalam sebuah tim dapat melakukan perubahan pada source code tanpa harus takut terjadi bentrok ataupun kesulitan dalam menggabungkan hasil perubahan yang mereka lakukan. Dengan menggunakan git, setiap perubahan pada source code akan terlacak perubahannya, apa saja yang diubah, siapa yang mengubah dan kapan waktunya. Tentu saja, kolaborasi antar pengembang tersebut tidak bisa bejalan jika kita tidak menggunakan layanan untuk penyimpanan dan berbagi kode git yang telah kita buat. Saat ini sudah tersedia beberapa layanan web git, seperti github, gitlab, bitbucket, dan gitorous.

2. Pengenalan gitlab.com
    Gitlab adalah layanan penyimpanan git gratis dan open source. Layanan git ini bisa diakses di http://about.gitlab.com. Gitlab terdiri dari 4 versi, yaitu:
1. Gitlab Community Edition
2. Gitlab Enterprise Edition
3. gitlab.com
         gitlab.com adalah gitlab enterprise edition yang dijalankan di server  milik gitlab. Layanan penyimpanan dan berbagi git ini dapat digunakan langsung oleh pengguna secara gratis. Kita cukup membuat akun gitlab kita di https://gitlab.com/user/sign_in pilih tab register apabila yang ingin membuat akun. Isikan kolom yang sudah disediakan dan setelah membuat akun, kita dapat memanfaatkan fitur-fitur yang ada di gitlab.com ini seluruhnya.
Repository adalah project aplikasi kita yang akan disimpan di server GIT. Berikut cara membuatnya:
1. Pastikan kita masih login di dalam website gitlab. lalu buka halaman dashboard
2. Pilih tanda + yang ada di sisi kanan atau klik tombol new project
3. Isikan project name (nama aplikasi). contoh: belajar-laravel
Note: tidak boleh menggunakan spasi. isi description (isikan keterangan aplikasi kita). Pilih visibility levelnya, kita pilih public, lalu tekan creat project. 
gitlab.com memiliki fitur-fitur yaitu:
1. Dapat membuat repositori publik dan pribadi yang tidak terbatas
2. Dapat mengundang kolabotator tak terbatas untuk proyek atau repositori pribadi
3. Batas maksimum ukuran untuk repositori adalah 10GB
4. Ukuran penyimpanan tak terbatas untuk setiap akun gitlab
5. Benar-benar gratis dan tanpa perlu kartu kredit atau pembayaran
6. Kita dapat melakukan impor proyek atau repositori dari layanan git lain

3. Instalasi Git di PC
Perbedaan https dan ssh: lebih secure jika memakai ssh dan ssh. Menggunakan key. https biasanya username dan password. Untuk install git:
-         windows: http://msysgit.github.com/
-         linux: apt-get install git
-         max: http://sourceforge.net/projects/git-osx-installer/
Perbedaan gitlab dan github hanya pada URL. Setelah terinstall maka akan memperoleh versi command-line dan GUI.
        Pada git terdapat sebuah perkakas yang disebut dengan git config yang memungkinkan kita untuk memperoleh informasi dan menetapkan variable konfigurasi yang mengontrol segala aspek bagaimana git beroperasi dan berperilaku. Variable-variable ini dapat disimpan pada tiga tempat berbeda:
1. /etc/gitconfig file: menyimpan berbagai nilai-nilai variable untuk setiap pengguna pada sistem dan semua repositori milik para pengguna tersebut. Jika kita memberikan opsi-- system pada git config, maka git akan membaca dan menulis file konfigurasi ini secara spesifik.
2. ~/.gitconfig file: spesifik hanya untuk pengguna yang bersangkutan. kita dapat membuat git membaca dan menulis pada berkas ini secara spesifik dengan memberikan opsi – global.
3. Config file pada direktori git (yaitu,.git/config) atau repositori manapun yang sedang kita gunakan: spesifik hanya pada repositori itu saja. Setiap nilai pada setiap tingkat akan selalu menimpa nilai yang telah ditetapkan pada level sebelumnya, jadi nilai yang telah di-set pada.git/config akan menimpa nilai yang telah di-set pada /etc/gitconfig.
Hal pertama yang harus kita lakukan ketika menginstall git adalah mengatur username dan alamat email kita. Hal ini penting karena setiap commit pada git akan menggunakan informasi ini dan informasi ini akan selamanya disimpan dengan commit yang kita buat tersebut. Misal:
$git config -- global user.name "siti fatimah"
$git config -- global user.email siti@gmail.com
Aksesnya menggunakan git bash. untuk mengecek settingan dapat menggunakan perintah git config -list untuk menampilkan semua settingan yang digunakan git. Ketika kita membutuhkan pertolongan ketika menggunakan git, terdapat 3 cara yang dapat digunakan untuk membuka halaman manual (manpage) untuk setiap perintah git:
a. $ git help<verb>
b. $ git<verb> --help
c. $ man git-<verb>
Sebagai contoh, kita dapat memperoleh halaman manual untuk perintah config dengan menjalankan perintah: $ git help config.

4. Perintah Dasar Git
1. Mengambil repositori git kita dapat mengambil sebuah proyek git melalui 2 pendekatan utama. Cara pertama adalah dengan mengambil proyek atau direktori tersedia untuk dimasukkan ke dalam git. Cara kedua adalah dengan melakukan kloning/duplikasi dari repositori git yang sudah ada dari server. Jika kita mulai memantau proyek yang sudah ada menggunakan git, anda perlu masuk ke direktori dari proyek tersebut dan mengetikkan: git init. Misal saya bikin folder projek namanya contoh di htdocs klik kanan di folder contoh pilih git bash lalu ketikkan git init, secara otomatis di folder akan ada folder git.
2. Git status, gunanya untuk melihat status dari repo lokal
3. Git branch
    - Membuat branch
      git branch <nama branch>
    - Melihat branch
      git branch
    - Berpindah branch
      git checkout <nama branch>
    - Membuat branch baru dan langsung berpindah
      git checkout -b <nama branch>
4. Git add, untuk menambahkan file kedalam repositori yang sebelumnya sudah dibuat. Untuk di windows ketika kita menambah banyak file di project yang kita buat bisa menggunakan perintah : git add. Tetapi kalau di linux bisa menggunakan: git add –all.
5. Git commit, untuk menyimpan seluruh perubahan yang terjadi bisa menggunakan perintah: git commit -m "inisial commit".
6. Git push, untuk menyimpan dari lokal ke repository (gitlab) bisa menggunakan perintah: git push.
7. Git pull, untuk mengambil data dari repositori (gitlab) ke local bisa menggunakan perintah: git pull.
8. Git diff untuk membandingkan perubahan file.
9. Git merge untuk melakukan penggabunagn antar branch.

10. Git reset untuk membatalkan perubahan pada repositori local.

Augmented Reality

Augmented Reality with Unity for Beginner

Pada kesempatan kali saya akan menjelaskan tentang augmented reality.
Realitas bertambah atau kadang dikenal dengan singkatan bahasa inggrisnya AR (Augmented Reality) adalah teknologi yang menggabungkan benda maya dua dimensi dan ataupun tiga dimensi ke dalam sebuah lingkungan nyata tiga dimensi lalu memproyeksikan benda-benda maya tersebut ke dalam waktu nyata. Tidak seperti realitas maya yang sepenuhnya menggantikan kenyataan, realitas tertambah sekedar menambahkan atau melengkapi kenyataan.
Benda-benda maya menampilkan informasi yang tidak dapat diterima oleh pengguna dengan inderanya sendiri. Hal ini membuat Augmented Reality sesuai sebagai alat untuk membantu persepsi dan interaksi penggunanya dengan dunia nyata. Informasi yang ditampilkan oleh benda maya membantu pengguna melaksanakan kegiatan-kegiatan dalam dunia nyata.
Augmented Reality juga dapat diaplikasikan untuk semua indera termasuk pendengaran, sentuhan dan penciuman. Selain digunakan dalam bidang-bidang seperti kesehatan, militer, industri manufaktur, realitas tertambah juga telah digunakan atau diaplikasikan dalam perangkat-perangkat yang digunakan oleh banyak orang, seperti pada telepon genggam.
Kalau ada Augmented Reality sudah pasti ada yang namanya Virtual Reality. Lantas apa perbedaan dari keduanya?
Virtual reality (VR) atau realitas maya adalah teknologi yang memungkinkan user dapat berinteraksi dengan suatu lingkungan 3D yang disimulasikan oleh komputer terhadap suatu objek nyata atau imajinasi, sehingga membuat user seolah-olah terlibat secara fisik pada lingkungan tersebut.
Untuk aplikasi dan contoh Virtual Reality adalah teknologi ini biasanya digunakan pada bidang medis, arsitektur dan penerbangan yang mempunyai resiko yang sangat besar dan membutuhkan prototype yang meniru kondisi nyata sebelum diimplementasikan. Contohnya seorang calon pilot dapat menggunakan Virtual Reality untuk simulasi penerbangan menggunakan komputer khusus untuk melakukan ujian.
Lalu untuk piranti Virtual Reality biasanya membutuhkan peralatan-peralatan khusus seperti layar komputer (screen) untuk menampilkan lingkungan, pengeras suara (speaker) untuk menerima informasi pendengaran, pelacak (tracker) untuk memonitor gerakan kepala user, sarung tangan (glove) untuk menangkap gerakan tangan dan mengirimkan informasi gerakan ke sistem, alat bantu jalan (walker) untuk memantau gerakan kaki, dll.
Kemudian cara kerja Virtual Reality yaitu pada prinsipnya user melihat suatu dunia semu yang sebenarnya merupakan gambar-gambar dinamis hasil dari simulasi komputer. Melalui piranti-piranti khusus Virtual Reality lalu user dapat berinteraksi dengan dunia semu dan mendapatkan umpan balik yang seolah-olah nyata, baik secara fisik maupun psikologis.
Jadi, bisa dibilang bahwa Virtual Reality menggantikan kenyataan dengan dunia semu secara keseluruhan, sedangkan Augmented Reality menambahkan atau melengkapi kenyataan dengan benda-benda semu.
Contoh sekarang ini adalah kacamata yang digunakan dalam menonton film, walaupun untuk jenisnya bermacam-macam misal saja game. Untuk dapat bisa membuat Augmentad Reality kita tinggal membuat objek atau semacam animasiya di software animasi. Seperti Blender, 3DSmax, Maya, dll. Lalu kemudian nanti tinggal import objek yang sudah kita buat ke dalam software unity. Karena saya masih pemula, jadi disini saya menggunakan unity dan vuforia. Untuk kalian yang belum faham dan ingin terjun langsung ke dunia Augmented Reality aku recommended untuk software pembuat animasinya adalah blender, karena banyak yang menggunakannya dan sifatnya yang opensource.
Implementasi:
Untuk software wajibnya harus menginstall unity, vuforia SDK dan android SDKnya. Android SDK disini kita buat Augmented Realitynya di unity dengan bantuan bermacam tools yang kita import dari vuforia SDK nya, lalu kita bisa jalankan di android kita dengan bantuan android SDK. Untuk membuat Augmented Reality, kita membutuhkan license key dari vuforia, maka dari itu kita harus punya akun pada halaman vuforia. Setelah ini kita buat database marker di halaman vuforia, kemudian kita download lalu kita import ke unity. Setelah itu baru membuat Augmented Reality sesuai keinginan kita. Augmented Reality juga bisa diterapkan untuk membuat game salah satunya game dari Augmented Reality adalah pokemon go.
Cara membuat Augmented Reality:
1. Buka software unity lalu pilih new project.
2. Pilih platform android, jangan lupa untuk pengaturan pada player settingnya bisa kita ubah sesuai keinginan kalau ingin diganti.
3. Import vuforia SDK dengan cara mendrag file vuforia SDK ke dalam layer unity.
4. Pada menu bar hierarcy sebelah kiri hapus maincamera lalu drag dan drop file imagetarget dan ARcamera pada vuforia/prefabs/...


Demikian sekilas pembahasan saya untuk augmented reality. 

Kamis, 30 Maret 2017

Kecerdasan Buatan

Saya akan menjelaskan sedikit yang saya ketahui tentang Artificial Intellegence (Kecerdasan Buatan).
Pasti akan timbul berbagai pertanyaan di dalam dunia pemograman, yaitu apa itu AI?, mengapa kita harus mengetahui AI?, dan mengapa kita harus mempelajari AI?. Sebelum menjawab pertanyaan tersebut ada sekilas paragraf terkait pembahasan AI.

Manusia ternyata diciptakan dengan kecerdasan yang sangat luar biasa. Do you know? saat seorang balita berusia 3 tahun, mereka mampu berkomunikasi dengan sangat baik dengan menggunakan bahasa ibunya. Mereka pun sudah mampu untuk mengenali berbagai benda meskipun yang terlihat hanya pada bagian tertentu saja dari benda-benda tersebut. Contohnya ketika seorang balita melihat seekor cicak yang sedang bersembunyi di balik bingkai foto yang ada pada dinding. Mereka mampu mengetahui bahwa itu adalah cicak hanya dari suara yang ditimbulkan oleh cicak. Pada usia selanjutnya, kecerdasan mereka akan berkembang sangat pesat, baik kecerdasan kognitif, emosional maupun spiritualnya.
Sampai saat ini belum ada satu mesin pun yang bisa menyamai kecerdasan manusia secara keseluruhan. Dan selama bertahun-tahun para filsuf berusaha mempelajari kecerdasan manusia. Dari pemikiran para filsuf ini lahirlah seorang anak yang dinamakan AI alias Artificial Intelligence sebagai cabang ilmu yang sesuai dengan pemahaman manusia. AI berusaha membangun entitas-entitas cerdas yang sesuai dengan pemahaman dan pola pikir manusia. Cukup menarik ketika entitas-entitas itu dibangun.

AI atau dalam bahasa indonesianya adalah kecerdasan buatan. Berikut pengertian-pengertian dari kecerdasan buatan:
·         "Kecerdasan buatan (Artificial Intelligence) merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan pemograman komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas" (H. A. Simon[1987])
·         "Kecerdasan buatan (AI) merupakan sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia (Rich and Knight [1991])
·         "Kecerdasan buatan (AI) merupakan cabang dari ilmu komputer yang dalam mempresentasikan pengetahuan lebih banyak menggunakan bentuk simbol-simbol daripada bilangan, dan memproses informasi berdasarkan metode heuristic atau dengan berdasarkan sejumlah aturan (Encyclopedia Britannica).
Jadi singkatnya AI adalah kemampuan dari sebuah komputer untuk berfikir seperti manusia atau bahkan bisa lebih baik dibandingkan manusia. Biasanya sistem AI memiliki kemampuan untuk memperoleh informasi baru yang akan dikumpulkan agar sistem AI menjadi lebih cerdas lagi.

AI tersusun atas 4 kategori:
1. Thinking Humanly
"The exciting new effort to make computers think...machine with minds, in the full and literal sense". (Haugeland, 1985). Thinkning humanly adalah sistem yang berfikir seperti manusia contohnya general problem solver - tower of Hanoi.
2. Acting Humanly
"The study of how to make computers do things which, at the moment, people are better." (Rich and Knight, 1991). Acting humanly adalah sistem yang bersikap/bertingkah seperti manusia contohnya turing test.
3. Thinking Rationally
"The study mental faculties through the use of computational models." (Charniak and McDermott, 1985). Thinking rationally adalah sistem yang berfikir secara rasional contohnya expert system, logic programs, sistem pengambilan keputusan.
4. Acting Rationally
"Computational intelligence is the study of the design of intelligent agents." (Poole et ai, 1998). Acting rationally adalah sistem yang bersikap/bertingkah secara rasional contoh most of modern AI. Rasional dalam hal ini adalah melakukan hal yang terbaik.

Perspektif tentang AI
1. Perspektif kecerdasan
Bagaimana AI mampu membuat mesin cerdas dan melakukan hal-hal yang sebelumnya hanya dapat dilakukan oleh manusia
2. Perspektif penelitian
Studi tentang bagaimana AI mampu membuat komputer dapat melakukan sesuatu sebaik yang dilakukan manusia
3. Perspektif bisnis
AI berperan sebagai sekumpulan tool yang sangat powerful dan metodologis dalam menyelesaikan masalah bisnis, contohnya google analitic yang digunakan untuk memberi tahu tentang kata yang cocok untuk jadi kata kunci di google dengan harga per klik yang relevan. Tools-tools yang membantu pekerjaan bisnis yang bisa ke arah bagaimana kita membuat keputusan untuk memaksimalkan hasil. Contoh lain falcon untuk mendeteksi pemalsuan kartu kredit
4. Perspektif pemograman
AI meliputi studi tentang pemrograman simbolik, contoh problem solving dan pencarian (searching).

Topik-topik pada AI beragam
1. Sistem pakar / expert system
2. Sistem samar / fuzzy sytem
3. Jaringan syaraf tiruan / artificial neural networks
4. Algoritma genetika / genetic algorithms
5. Agen cerdas / intellegent agents

Yang perlu diperhatikan ada 4 poin:
a. Percept: input / masukan indera si agen
b. Action: tindakan yang dilakukan oleh si agen
c. Environment: lingkungan dimana si agen berada
d. Tujuan agen

Ketika merancang sebuah agen, kita harus mendifinisikan masalah/task environment terlebih dahulu sedangkan task environment berdasarkan russel & norvig adalah PAGE (Percept, Action, Goals, Environment).
Contoh: taxi otomatis,
Taksi otomatis yang menerima penumpang dan mengantarkan ke tujuan:
-          Percept: video, speedometer, GPS, keyboard
-          Actions: arah setir, klakson, gas, rem, sinyal kanan/kiri
-          Goal: tujuan penumpang, mencapai setoran, tidak nabarak, hemat bensin, tidak ditilang
-          Environment: jalan, lampu merah, lalu lintas, pejalan kaki, cuaca
Contoh lagi vacum cleaner
-          Percept: lokasi dan status(bersih/kotor)
-          Actions: do ke kiri, do ke kanan, do sedot, do santai
-          Goal: menjaga kebersihan
-          Environment: ruangan A & B beserta isi debunya

6. teknologi bahasa

Berikut bebeberapa contoh dari AI yang sudah ada di sekitar kita:
-          Robot ASIMO (Robot Humanoid)
-          Mars Exploration Rover
-          Deep Blue(Game Playing milik IBM)
-          Machine Translation
-          Speech Recognition
-          Autonomous planning and schedulling (Remote agent milik NASA)
-          Logistics planning

Penjelasan tentang NLP
NLP adalah salah satu topik dari AI kombinasi antara ilmu komputer AI dan bahasa yang berkaitan dengan interaksi antara komputer dan bahasa alami manusia. Tujuan utama dari studi NLP adalah membuat mesin yang mampu mengerti dan memahami makna bahasa manusia lalu memberikan respon yang sesuai, contohnya adalah carikbot

Bahasa pemograman yang biasa digunakan dalam AI:
-          AIML yang digunkan pada ALICE chatterbots
-          IPL
-          Lips
-          Planner
-          Phyton
-          Haskell
-          c++
-          Matlab

Apakah AI tidak cukup hanya dengan pemograman komputer saja? jawabnya ya tidak cukup, sistem cerdas digunakan karena pada program coding komputer memiliki keterbatasan. sistem cerdas tidak semata-mata pada if-else, if-else tidak mungkin digunakan untuk membangun program dalam sistem cerdas.

Pemograman komputer dan AI hubungannya sangat erat, itulah terkadanag kita harus sedikit banyak tahu tentang AI meskipun tidak langsung terjun kedalamnya. Karena AI bisa tercipta melalui pemograman komputer juga.

Java Untuk Pemula

Hallo selamat datang di blog saya.
Disini saya akan memberikan sekilas materi tentang java yang mudah dimengerti oleh pemula. Saya menulis artikel ini dari ringkasan saya dalam mengikuti kelompok diskusi yang saya ikuti.

Aplikasi java ditulis sebagai file berekstrasi .java yang dicompile menjadi file .class. File .class ini adalah bytecode yang bisa dijalankan di semua java Virtual Machine, tidak peduli apapun OS-nya ataupun arsitektur processornya.
Java adalah bahasa yang ditujukan untuk semua kebutuhan, concurent, berbasis class, object oriented serta didesain agar tidak tergantung terhadap lingkungan dimana aplikasi dijalankan (OS atau processornya). Java ditujukan agar bisa "ditulis sekali, bisa jalan dimanapun". Sekarang ini java adalah bahasa pemograman paling popular dan paling banyak digunakan untuk membuat aplikasi baik aplikasi di embedded system, mobile, desktop hingga web apllication.
Java mempunyai lima prinsip penting yang dijadikan sebagai tujuannya, kelima prinsip ini adalah:
1. Java harus "sederhana, object oriented dan mudah dimengerti".
2. Java harus "kuat dan aman".
3. Java harus "netral terhadap arsitektur system (OS dan processor) dan bisa jalan dimanapun".
4. Java harus bisa dijalankan dengan "kinerja yang tinggi".
5. Java harus "interpreted, threaded dan dinamis".

Dalam dunia perbankan java yang digunakan yaitu FYI selain AS400. Java bisa jalan multiplatform asal ada JVM. Penjelasannya file .class ini adalah bytecode yang bisa dijalankan di semua java Virtual Machine, tidak peduli apapun OS-nya ataupun arsitektur processornya. Ada juga .jar dan bundlenya .class misal awalnya di windows terus pindah ke mac maka dependecies bisa berbeda.
INGAT!!!
      Nama class harus sama dengan nama file.
-       Java sangat case sensitive, berbeda dengan PHP tidak strict... function PHP yang kita buat sendiri (user defined) tidak case sensitive.

Kata-kata reserved keyword pada java:
public
class
void
abstrak
boolean
break
byte
case
char
const
continue
default
do
double
else
extends
fnally
float
for
goto
if
implements
import
instanceof
interface
long
native
new
package
private
protected
public
short
static
stictfp
super
swicth
synchronized
this
throw
transient
try
volatile
while
assert
enum
throws
return
int
catch
fnal






Semua keywords ini adalah bahasa dari java, kita harus menggunakannya dengan benar tidak boleh digunakan untuk tujuan lain, misalnya sebagai nama variabel atau nama class. Keyword static digunakan untuk variabel dan method. Variabel atau method yang dideklarasikan dengan perintah static dapat dipanggil langsung tanpa perlu membuat instance dari class tersebut. Instance maksudnya tanpa harus membuat class a = new A(); a.fungsi();? dalam kata lain object is an instance of a class jadi tanpa bikin objek lagi bisa pakai static.
Method = function (konsep OOP).
Keyword final jika digunakan pada class maka class tersebut tidak bisa diturunkan dan bila digunakan pada method maka tidak bisa dilakukan overriding pada method tersebut tetapi kalau pakai static memory yang dipakai sekali saja waktu loading classnya. Tiap membuat object akan reserved memory lagi.
Kelemahan static:
1. Semua variabel yang dipanggil harus static.
2. Method yang static gak bisa pake atau panggil yang non static juga.
3. Tidak pakai keyword this juga untuk variabel atau method static.
4. Jika manggil fungsi dalam class harus instance dulu.

Public ada dalam konsep encapsulation di java. Encapsulation adalah pembungkus, pembungkus disini dimaksudkan untuk menjaga suatu proses program agar tidak dapat diakses secara sembarangan atau di intervensi oleh program lain. Konsep enkapsulasi sangat penting dilakukan untuk menjaga kebutuhan program agar dapat diakses sewaktu-waktu, sekaligus menjaga program tersebut.
Fungsi (string [] args) adalah sebagai public static void main() isi dari method/function main(), sedangkan string[] atau disebut juga bracket sebagai parameter, nama parameternya args tipenya string bentuk array karena ada [].
Arg bisa diganti apa saja untuk menyimpan nilai, bisa kita passing. Setiap kali buat project baru string [] args selalu ada sebagai default convention saja dan untuk melihat panjang array pakai namaarray.length.


Semoga bermanfaat….

Metode Perancangan Basis Data

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