Rencana Proyek Kontrol Lampu Rumah Terintegrasi Internet

Tulisan ini adalah catatan harian proyek (Project Diary). Saya akan post terus perkembangan, kemajuan, hambatan yang saya alami saat menjalani proyek ini.

Saya dari dulu ingin sekali belajar elektronika, terutama mikrokontroller. Masalahnya adalah saya tidak mempunyai tujuan. Hasilnya adalah saya jadi malas, dan jadinya malah tidak pernah belajar.

Cukup sudah! itu yang saya katakan ke dalam diri saya. Oleh karena itulah saya menetapkan tujuan utama. Saya ingin mencoba membuat sakelar lampu kamar saya agar terhubung dengan internet, sehingga saya bisa nyalakan /  matikan menggunakan komputer. Saya juga menetapkan tujuan bonus, sistem penjadwalan.

Tentu saja membuat proyek seperti ini membutuhkan budget. Saya menetapkan budget yang saya akan keluar kan maksimal 350 ribu untuk membeli seluruh komponen yang di butuhkan. Saya tidak tahu apakah budget ini sudah cukup atau belum.

Saat mencoba menjalani proyek ini, Saya mendapatkan beberapa masalah, berikut masalah yang saya hadapi:

1. Bagaimana menyala-matikan perangkat listrik menggunakan komponen elektronik, yang menggunakan arus DC, sementara itu elektronik biasanya ?
– Setelah browsing lebih lanjut, saya mendapatkan informasi bahwa saya bisa mengontrol arus listrik menggunakan relay.
relay

2. Bagaimana cara mengontrol relay tersebut?
– Hipotesa saya adalah, saya bisa melakukan hal tersebut dengan arduino. Arduino memiliki pin output yang bisa di kontrol menggunakan programming.

3. Bagaimana cara mengkoneksikan Arduino dengan internet?
– Saya menemukan ada chip dengan nama ESP8266. ESP8266 ini adalah Wifi Receiver. Saya berharap sinyal dari ESP8266 bisa di terima oleh Arduino, yang lalu mengontrol relay. Saya berhipotesa bahwa sangat mungkin bisa membuat program di arduino untuk melakukan pengecekan ke server, apakah relay harus ON/OFF. Kemungkinan besar saya harus melakukan socket programming di arduino. Saya belum mengetahui apakah hal tersebut mungkin di lakukan Atau tidak.

ESP8266
Gambar ESP8266

4. Apakah semua komponen tersebut bisa di beli di indonesia?
– Saya terkejut bahwa seluruh komponen yang saya sebutkan di atas ternyata di jual di Tokopedia. Berikut Url komponen-komponen yang sudah saya beli dan sedang di kirim:

1. Relay 1 Channel, 5v  @Rp 19.000:
https://www.tokopedia.com/daelectronics/relay-module-1-chanel-for-arduino

2. Arduino Uno @Rp 89.000:
 https://www.tokopedia.com/tamjib/high-quality-arduino-uno-r3-board-atmega328p-1pcs-usb-cable

3. ESP8299 @58.000:
https://www.tokopedia.com/daelectronics/esp8266-serial-wifi-wireless-module-for-arduino

4. Prototyping Breadboard @25.000:
https://www.tokopedia.com/tamjib/solderless-breadboard-400-tie-point

5. Kabel Breadboard Male-Female @14.000:
https://www.tokopedia.com/bpraktis/male-to-female-dupont-cable-jumper-kabel-breadboard-20-cm-20pcs

6. Kabel Breadboard Male-Male @11.000:
https://www.tokopedia.com/hpasesoris/kabel-jumper-male-male-breadboard-arduino-wire-bread-board-cable-ab70

Total penggunaan budget: Rp. 216.000. Sisa Budget: Rp. 84.000

Note : ada beberapa komponen yang tokonya sama, sehingga biaya kirimnya bisa di tekan.

Semoga barang yang saya pesan bisa cepat di terima, sehingga saya bisa mulai menjalankan proyek ini.

Update :
Tulisan selanjutnya dari seri ini sudah saya upload:
Cara Berkomunikasi Dengan ESP8266 Menggunakan Arduino

Plus-Minus Menggunakan Macbook Pro 13 retina display

Saya sudah menggunakan laptop Macbook Pro sejak sekitar 4 bulan yang lalu. Sebelumnya saya menggunakan laptop Acer Aspire. Saya mengganti laptop saya karena rusak. Selama 4 bulan ini, saya mengalami beberapa hal yang saya sukai dan yang saya benci.

Yang Saya Sukai ( di urutkan dari yang paling saya sukai):

  1. Touchpad Force Touch.
    Saya terkejut menggunakan touchpad ini. Feedback kliknya tidak menggunakan sistem mekanis seperti keypad biasa, tetapi menggunakan motor yang dirancang khusus untuk bergetar menyerupai sistem mekanis. Efeknya adalah, ketika kamu klik di mana saja kamu bisa merasakan feedback klik yang merata, berbeda dengan touchpad lain yang biasanya hanya bisa di klik di bagian bawah touchpad tersebut atau walaupun bisa di klik di mana saja, tidak ada feedbacknya. Bagi saya, ini adalah fitur paling yang saya sukai.
  2. Spotlight
    Membuka aplikasi apapun cukup dengan menekan command+space lalu mengetik 2 huruf pertama nama aplikasinya. Tidak perlu susah payah klik banyak menu hanya untuk membuka aplikasi. Spotlight juga bisa di gunakan untuk melihat kurs uang, kalkulator, cuaca dan lain-lain.
  3. Retina Display
    Display Macbook pro ini luar biasa tajam. Warna-warna yang dihasilkan juga begitu hidup. Apalagi jika dibandingkan dengan laptop saya yang lama, resolusi layarnya “cuma” 1366×768, sementara resolusi layar ini 2560×1600. Tajamnya membuat saya tidak cepat lelah memandang text, yang sering sekali saya lakukan ketika melakukan programming.
    9-stunning-examples-of-the-new-ipad-s-retina-display-629e9b2ec4
  4. Battery Life
    Macbook pro ini tahan saya gunakan untuk browsing, programming android ( yang IDE nya berat sekali) dan menonton video hampir 10 jam. Saya sangat terkejut karena artinya tahan seharian, berbeda jauh dengan laptop saya yang lama yang hanya bertahan maksimal 2 jam dengan kondisi seperti itu. Ini juga berarti saya tidak perlu membawa charger saat bekerja sehari penuh.
  5.  Ringan & tipis
    Laptop ini tebalnya hanya setengah laptop saya yang lama. Saya terkadang harus mengecek lagi apakah saya sudah membawa laptop apa belum, karena tas yang saya gunakan tidak seberat ketika saya menggunakan laptop acer yang beratnya sekitar 2 kg.
  6. Multitouch Gesture
    Mengganti virtual desktop cukup swipe 3 jari ke kanan, melihat aplikasi yang aktif cukup geser tiga jari ke atas, Gesture-gesture ini sangat praktikal dan memudahkan. Ini adalah fitur yang paling sering saya gunakan.
  7. Unix Based (Mac OS X)
    Hal ini memang tidak terlalu penting, tetapi merupakan salah satu fitur yang saya suka, karena saya sudah terbiasa menggunakan perintah-perintah Unix.

Hal yang saya benci (Di urutkan dari yang saya benci)

  1. Shortcut finder yang aneh
    Saya harus menggunakan cmd+arrow down untuk masuk ke dalam folder atau menjalankan file, sementara hal yang tidak terlalu saya sering gunakan seperti rename, malah di taruh di tombol enter. Sungguh tidak masuk logika shortcut rename adalah enter.
  2. Get Info multiselection yang aneh
    Apabila saya select beberapa item, lalu klik get info, Saya ekspek akan keluar info gabungan dari file dan folder yang saya select. Tetapi yang keluar malah seperti di bawah, dan tidak ada cara mudah untuk close semua window yang keluar.
    Screen Shot 2016-02-02 at 8.23.53 AM
  3. Opsi Boot to windows di sembunyikan.
    Berbeda jauh saat ingin pindah dari windows ke mac yang cukup klik kanan di taskbar, untuk bisa memilih pindah mac ke windows di haruskan membuka system preferences -> Startup disk -> klik logo gembok lalu memilih bootcamp. Hal ini seakan apple tidak ingin penggunanya menggunakan windows.

Demikianlah apa yang saya suka, dan saya benci dari mac book Pro 13 Retina.

Membuat Torrent Box hemat energi dengan RaspberryPI

Pernahkah anda mendownload file berukuran besar menggunakan BitTorrent, tetapi seed nya sedikit sedangkan leechnya banyak? Pasti akan lama sekali downloadnya bahkan bisa berminggu-minggu atau berbulan-bulan. Apabila dilakukan menggunakan komputer biasa, dengan kata lain membiarkan komputer anda hidup 24 jam non stop setiap hari, tentu saja bisa merusak dan sangat boros listrik. Salah satu solusinya anda bisa menggunakan RaspberryPI, komputer murah dan hemat energi.

Selamat membaca!

Yang dibutuhkan:

  1. RapsberryPI (beli disini)
  2. SD Card dengan kapasitas besar, saya menggunakan 64GB (beli disini)

Tutorial:

  1. Pastikan SDcard sudah terinstall dengan OS raspbian, silahkan baca tutorial disini untuk melakukan hal ini.
  2. Install Transmission-Daemon
    sudo apt-get install transmission-daemon
  3. Stop transmission-daemon, langkah ini sangat penting
    sudo service transmission-daemon stop
  4. Lakukan konfigurasi transmission
    sudo nano /etc/transmission-daemon/settings.json
    
    #Ubah nilai baris berikut menjadi di bawah ini
    
    download-dir": "/home/pi/torrent",
    "rpc-enabled": true,
    "rpc-whitelist": "*",
    "rpc-whitelist-enabled": true,
    
    #Save dengan ctrl+o , enter lalu ctrl+x
  5. Aktifkan transmission-daemon
    sudo service transmission-daemon start
  6. Buat agar transmission di jalankan ketika RaspberryPI di restart
    sudo systemctl enable transmission-daemon
  7. Test instalasi, gunakan browser dan masukan IP RaspberryPi anda, diikuti dengan :9091 menggunakan komputer lain yang terhubung dengan router dan RaspberryPI. contoh: http://192.168.1.120:9091. Gunakan username dan password “transmission” (tanpa tanda kutip) apabila diminta Screen Shot 2016-01-09 at 10.51.00 AM
  8. Selamat, anda telah berhasil membuat TorrentBox menggunakan RaspberryPI!

Cara Bypass Internet Positif dengan RaspberryPI, Dnsmasq dan DNSCrypt

Peringatan: Artikel ini hanya untuk kebutuhan belajar! jangan di gunakan untuk berbuat hal yang melanggar hukum!

Teknologi filtering yang di gunakan oleh Internet Positif adalah DNS Poisoning. DNS adalah protokol internet yang di gunakan untuk memetakan nama server, seperti www.gilangcp.com menjadi alamat IP.  DNS Poisoning bekerja dengan cara merubah alamat IP yang seharusnya menujuk ke server tujuan menjadi server internet positif, saat permintaan alamat ip berdasarkan nama tersebut dilakukan.

Salah satu cara untuk mencegah dirubahnya IP oleh filter adalah dengan mengenkripsi traffic protokol DNS lalu menggunakan DNS alternatif yang tidak di filter. Program yang dapat digunakan untuk melakukan hal ini adalah DNSCrypt.

Tutorial kali ini menggunakan RaspberryPI sebagai server always on dengan konsumsi listrik sangat rendah. Dipadukan dengan Dnsmasq sebagai cache dns sehingga internet anda lebih cepat.

Yang harus dipersiapkan:
1. Koneksi Internet
2. RaspberryPI, terinstall dengan sistem operasi Raspbian
3. Router, Baik router wireless maupun router biasa, terhubung ke internet. (saya menggunakan router wireless TP-Link, tapi bisa menggunakan apa saja)

Tutorial:
1. Set agar alamat IP Raspberry anda tidak berubah di router. disini saya fixed ipnya menjadi 192.168.1.100 (Setiap router memiliki cara yang berbeda, silahkan konsultasi dengan manual router anda)Capture

2. Compile dari source

#Instalasi kebutuhan awal
sudo apt-get install libtool autoconf automake

#Download source code dnscrypt
mkdir dnscrypt
cd dnscrypt
wget https://github.com/opendns/dnscrypt-proxy/archive/master.zip
mv master.zip dnscrypt.zip

#Download source code libsodium
wget https://github.com/jedisct1/libsodium/archive/master.zip
mv master.zip libsodium.zip

#Compile & install Libsodium
unzip libsodium.zip
cd libsodium-master
./autogen.sh
./configure
make
make install
ldconfig

#Compile dan install dnscrypt
unzip dnscrypt.zip
cd dnscrypt-proxy-master
./autogen.sh
./configure
make
make install

3. Buat aktif saat startup dengan mengcopy baris di bawah ke /etc/systemd/system/dnscrypt-proxy.service.

sudo nano /etc/systemd/system/dnscrypt-proxy.service
#############################

[Unit]
Description=DNSCrypt client proxy

[Install]
WantedBy=multi-user.target

[Service]
Type=simple
NonBlocking=true
ExecStart=/usr/local/sbin/dnscrypt-proxy -R dnscrypt.eu-nl -a 127.0.0.1:40

4. Aktifkan service DNSCrypt

sudo systemctl daemon-reload
sudo systemctl enable dnscrypt-proxy
sudo systemctl start dnscrypt-proxy

5. Install Dnsmasq

sudo apt-get install dnsmasq

6. Lakukan konfigurasi Dnsmasq, baris ini berfungsi agar dnsmasq terhubung dengan dnscrypt.

sudo nano /etc/dnsmasq.conf

#tambahkan atau modifikasi baris berikut :
server=

#menjadi :
server= server=127.0.0.1#40

#Jangan sampai ada tanda '#' didepan tulisan 'server=' !

7. Ubah /etc/resolv.conf. File ini berfungsi menentukan dns server apa yang harus di gunakan oleh sistem, kita harus mengubah file ini agar menggunakan service yang baru saja kita buat.

sudo nano /etc/resolv.conf

#Isi file tersebut hanya boleh ada baris ini:

nameserver 127.0.0.1

8. Konfigurasikan router anda, agar menggunakan raspberrypi anda sebagai DNS server,  setiap router memiliki cara konfigurasi yang berbeda-beda, silahkan konsultasikan dengan manual router anda. Karena IP raspberrypi saya adalah 192.168.1.120, maka saya gunakan IP tersebut sebagai primary DNS server. Sedangkan saya menggunakan openDNS sebagai cadangan apabila dnscrypt down. Daftar server openDNS : https://use.opendns.com/Capture

9. Selamat ! anda telah berhasil membuat server DNS yang dapat membypass filter internet positif! selanjutnya anda dapat mencoba membuka situs yang diblokir, tetapi seharusnya tidak masuk dalam blokir seperti https://www.reddit.com

Selamat mencoba !

Published
Categorized as Teknologi

Membuat server email dengan ubuntu linux

Email merupakan salah satu metode yang paling populer untuk berkomunikasi di internet. Alangkah baiknya apabila bisnis anda sudah memiliki email domain sendiri, seperti [email protected], karena akan dipandang lebih profesional oleh mitra bisnis anda.

Yang Perlu di persiapkan:
1. Domain Name
2. Server yang terhubung langsung dengan internet (VPS / dedicated server)
3. Mengatur MX Record di domain, MX record berisi harus di teruskan ke alamat ip apa setiap email yang di kirim.
4. Server sudah terinstall dengan web server apache2

Tutorial:

  1. Install Postfix, Postfix adalah MTA, atau mail transfer agent yang bertujuan mengirim,menerima dan meneruskan email anda ke user account anda.
    sudo apt-get update
    sudo apt-get install postfix
  2. Anda akan ditanya mengenai FQDN, atau Fully Qualified Domain Name saat instalasi postfix. Isi dengan domain anda.
  3. Install Dovecot. Dovecot berfungsi sebagai server IMAP / POP3, yaitu protokol yang biasanya di gunakan oleh client email anda seperti outlook.
    sudo apt-get install dovecot-imapd dovecot-pop3d
    
  4. Install mail web client SquirrelMail, agar anda lebih mudah membaca email
    sudo apt-get install squirrelmail
  5. Buka halaman konfigurasi squirrelmail
    sudo squirrelmail-configure
    
  6. Masuk kebagian mail server settings dengan mengetik 2 pada keyboard lalu menekan enter.pastikan settingnya sudah sesuai seperti dibawah, save lalu exit.
    Update IMAP Settings   : localhost:143 (other)
    Update SMTP Settings   : localhost:25
    
  7. Set konfigurasi apache2
    sudo cp /etc/squirrelmail/apache.conf /etc/apache2/sites-available/squirrelmail
    sudo ln -s /etc/apache2/sites-available/squirrelmail /etc/apache2/sites-enabled/squirrelmail
    sudo a2ensite squirrelmail
    sudo service apache2 restart
    
  8. Tambahkan user linux anda kedalam grup mail, anda juga bisa menambahkan user linux baru. email adalah per user user linux. apabila anda menggunakan user root, maka email anda adalah  [email protected]
    #tambah userbaru
    sudo useradd namauser
    
    #menambahkan user ke grup mail
    sudo usermod -a -G mail namauser
    
    
  9. Selamat, anda telah berhasil membuat mail server dengan ubuntu linux sendiri! masuk kedalam web clientnya dengan mengetik http://domainanda/mail, lalu login dengan username / password linux anda. Silahkan test kirim dan terima email dari penyedia layanan lain seperti gmail / yahoo.

    Selamat mencoba 🙂

Cara Membeli Game di Steam Dengan Rekening CIMB Niaga Tanpa Credit Card

Rekening tabungan CIMB Niaga memiliki fitur menarik yang di sebut dengan virtual credit card. Menariknya, VCC ini bisa digunakan pada situs-situs yang biasanya menolak VCC seperti Apple app store, Google playstore, Paypal dan Steam.

Yang dibutuhkan:
1. Rekening Bank CIMB Niaga
2. Sudah terdaftar dengan Internet Banking CIMB Niaga (https://www.cimbclicks.co.id/ib-cimbniaga/Login.html)

Tutorial:
1. Daftar CIMB Niaga Octopay di sini. Octopay menggunakan platform facebook, Anda tidak perlu khawatir di redirect ke facebook.

Screen Shot 2015-11-26 at 4.35.36 PM

2. Pilih Transactions, lalu klik purchase and reloadScreen Shot 2015-11-17 at 1.28.14 PM

3. Pilih virtual credit card, lalu isi dengan limit credit card yang anda inginkan. perlu di catat setiap pembuatan VCC dikenakan biaya 10.000 rupiah dan VCC hanya berlaku satu hari. perlu di catat uang di rekening anda hanya akan di potong sesuai dengan transaksi anda, bukan sebanyak limit.dfdwefwqfe

4. Setelah klik submit dan mengisi confirmation code, anda akan mendapatkan nomor credit card dan 3 digit CVC2 yang dikirimkan ke handphone anda.qwefqwefqwef

5. silahkan pilih barang di steam yang ingin di beli, lalu pilih my cart pada pojok kanan atas. klik purchase for myself.Screen Shot 2015-11-26 at 1.55.08 PM

6. Pilih tipe pembayaran MasterCard, lalu masukan data VCC ke dalam kolom yang tersedia FWEFQWFEWF

7. Selanjutnya akan muncul halaman konfirmasi pembelian. klik check box agree lalu klik tombol purchase   Screen Shot 2015-11-26 at 1.57.27 PM

8. Selamat, anda telah berhasil membeli game di Steam menggunakan virtual credit card octopay bank CIMB niaga!

Mengenal Indikator Gembok (Https) pada URL Browser

Anda pasti pernah melihat kotak berwarna hijau, atau gembok berwarna hijau pada beberapa situs di internet. Tapi apakah anda mengetahui maksud adanya kedua simbol diatas? Pada post ini saya ingin membahas mengenai itu.

Arti sebenarnya dari simbol-simbol itu adalah aman atau tidaknya koneksi anda ke sebuah situs.

Sebelum kita membahas lebih jauh, kita perlu tahu,  seperti apa komunikasi yang aman? Tentunya komunikasi yang menjaga keamanan informasi. Definisi keamanan informasi menurut lembaga International Standard Organization adalah penjagaan kerahasiaan, integritas dan ketersedian informasi, walau ada berbagai-macam faktor lain yang dapat masuk dalam definisi keamanan informasi seperti keaslian, handal, bisa di pertanggung-jawabkan dan tidak bisa disangkal siapa yang mengirimkan informasi.

Keaslian berarti informasi tidak boleh berubah, informasi yang diterima penerima harus sesuai dengan saat dikirim dan harus ada cara untuk mengecek hal tersebut. Integritas berarti pertama, hanya penerima yang dimaksud oleh pengirim yang dapat melihat informasi dan kedua, tidak boleh ada yang pihak ketiga yang bisa berpura-pura menjadi salah satu pihak yang berkomunikasi. Ketersediaan informasi berarti kedua pihak yang berkomunikasi harus bisa melakukan komunikasi secara reliable, tidak bisa di interupsi atau diputuskan jalurnya oleh pihak lain.

Bagaimana cara browser anda menjamin faktor-faktor diatas dalam berkomunikasi? Salah satunya dengan melakukan koneksi menggunan protokol yang didesain untuk aman. Protokol adalah aturan atau standar yang mengatur atau mengijinkan terjadinya hubungan, komunikasi, dan perpindahan data antara dua atau lebih titik komputer. Protokol SSL/TLS adalah salah satu protokol yang sampai sekarang masih aman. Protokol ini yang digunakan oleh browser anda.

Protokol SSL/TLS menggunakan sertifikat, hash dan enkripsi untuk menjamin keamanan saat berkomunikasi. Sertifikat adalah tanda yang hanya dapat dibuat oleh orang yang mengirimkan informasi. Tanda ini bisa di cek keasliannya. Kita dapat mengibaratkan sertifikat sebagai tanda-tangan. Hash adalah fungsi satu arah, dengan kata lain tidak dapat di kembalikan ke bentuk semula yang digunakan untuk mengubah pesan menjadi nilai unik. Nilai ini harus berbeda-beda untuk setiap pesan. Sertifikat dan hash digunakan untuk menjamin integritas pesan. Enkripsi digunakan untuk mengubah informasi, sehingga hanya bisa dilihat apabila menggunakan password yang sama. Enkripsi digunakan untuk menjamin informasi hanya bisa dibaca oleh pihak yang memiliki akses terhadap informasi tersebut.

Bagaimana cara mencegah penyerang berpura-pura menjadi penerima informasi dengan sertifikat palsu? Protokol SSL/TLS menggunakan sistem yang disebut dengan Certificate Authority, Disebut juga dengan CA. CA adalah organisasi yang tanda-tangannya(sertifikatnya) sudah dipercaya oleh semua pihak. CA menandatangani tanda-tangan (sertifikat) pihak yang ingin berkomunikasi. Sertifikat ini kemudian bisa di cek keasliannya dengan cara dibandingan dengan tanda-tangan CA. CA berkewajiban untuk memeriksa identitas asli pihak-pihak yang ingin berkomunikasi, untuk mencegah adanya sertifikat palsu yang ditanda-tangani oleh CA.

Hal ini membawa kita kepada topik awal kita, Kotak hijau dan gembok menggambarkan seberapa aman koneksi kita, tetapi, apa perbedaannya?

  1. Kotak hijau dengan gembok hijau.
    Screen Shot 2015-10-17 at 5.37.42 PM
    Kotak hijau dengan gembok berwarna hijau berarti koneksi sangat aman. Kotak hijau berarti sertifikat penyedia layanan menggunakan extended validation. Hal ini berarti CA melakukan validasi identitas secara menyeluruh, sehingga sangat menyulitkan penipu untuk meminta CA menandatangani-sertifikat palsu seperti yang sudah di jelaskan diatas. Proses untuk mendapatkan sertifikat extended validation biasanya memakan waktu sekitar 2 -3 minggu dan harganya sangat mahal.
  2. Gembok hijau
    Screen Shot 2015-10-17 at 5.38.02 PM
    Gembok berwarna hijau berarti koneksi amanTidak adanya kotak hijau berarti sertifikat penyedia layanan tidak menggunakan Extended Validation. Validasi yang digunakan hanya sebatas dilihat dari pemilik domain (whois) atau organisasi. Proses mendapatkan sertifikat ini hanya memakan waktu beberapa menit saja dan biasanya biayanya murah. Sertifikat jenis ini lebih mudah dipalsukan, apabila terjadi kebocoran informasi pemilik domain, contohnya seperti password email pemilik domain. Namun perlu ditekankan koneksi jenis ini tetap aman selama tidak terjadi kesalahan seperti disebut diatas.
  3. Gembok segitiga kuning.
    yellowlock

    Gembok berwana kuning berarti mungkin tidak aman. Hal ini bisa terjadi karena beberapa hal, salah satu kemungkinannya karena penyedia layanan tidak menggunakan standar-standar yang di rekomendasikan, atau standar yang sudah usang dan tidak di gunakan lagi, baik pada sertifikatnya maupun pada algoritma enkripsinya. Perlu di tekankan, Mungkin tidak aman belum tentu tidak aman.
  4. Gembok silang merah.
    Screen Shot 2015-10-17 at 5.47.37 PM
     Gembok dengan tanda silang berarti tidak aman. Anda sebaiknya tidak melanjutkan menggunakan situs tersebut, karena bisa jadi sertifikat yang di gunakan tidak valid, sehingga tidak bisa di jamin keaslian penyedia layanan. Bisa juga simbol gembok silang terjadi karena algoritma enkripsi yang di gunakan sudah sangat usang, sehingga mudah dilihat isinya oleh pihak yang tidak bertanggung jawab. Bayangkan apabila yang dilihat adalah informasi pribadi seperti nomor kartu kredit anda.

Demikian penjelasan mengenai indikator. silahkan lihat link dibawah untuk penjelasan lebih lanjut.

https://en.wikipedia.org/wiki/Transport_Layer_Security
https://support.google.com/chrome/answer/95617?hl=en
https://en.wikipedia.org/wiki/Certificate_authority
https://support.mozilla.org/en-US/kb/how-do-i-tell-if-my-connection-is-secure

Semoga bermanfaat!

Rapihkan Development Environment dengan Vagrant

Vagrant adalah tools untuk membuat, melakukan konfigurasi yang terisolasi untuk kebutuhan development. Environment contohnya seperti program apa saja yang dibutuhkan untuk menjalankan suatu aplikasi, lalu  konfigurasi-konfigurasi server seperti web server,  table dan isi database, permission dan lain-lain.

Terdapat beberapa skenario dimana kita membutuhkan Vagrant. Salah satu contohnya adalah saat melakukan testing. Dengan Vagrant,developer tidak perlu melakukan konfigurasi lagi pada komputer tester, dimana proses ini selain memakan waktu,  juga sangat rentan kesalahan. Menyebabkan test menjadi tidak jelas, apakah error terjadi karena aplikasi tersebut atau karena environmentnya.

Contoh lain adalah untuk mengisolasi environment antar proyek, hal ini berguna khususnya bagi orang yang melakukan beberapa proyek dalam satu komputer. Isolasi itu penting untuk mencegah terjadinya bentrok pada setting atau program yang digunakan.

Vagrant memecahkan kebutuhan diatas dengan cara membuat virtual machine. Setiap proyek akan di assign sebuah virtual machine. Ketika kita ingin memberikan proyek kita ke orang lain, maka kita cukup memberikan virtual machine yang kita gunakan, dan setiap proyek otomatis terisolasi.

Berikut adalah tutorialnya.

  1.  Install Vagrant, atau gunakan installer yang terdapat pada websitenya untuk sistem operasi lain seperti Windows dan Mac OS X. Berikut adalah syntax untuk Ubuntu 14.04
    sudo apt-get install virtualbox
    sudo apt-get install vagrant
  2. Buat folder baru, lalu masuk ke folder tersebut. Seluruh file di proyek kita akan masuk ke folder ini.
    mkdir testvagrant
    cd testvagrant
  3. Inisialisasi box baru, kamu bisa menggunakan berbagai jenis sistem operasi, atau menggunakan sistem operasi yang sudah di konfigurasi untuk kebutuhan tertentu seperti web server. List sistem operasi yang bisa digunakan oleh vagrant bisa kamu lihat di sini https://atlas.hashicorp.com/boxes/search
    sudo vagrant init ubuntu/trusty64
  4. Jalankan Vagrant
    sudo vagrant up
    
  5. Masuk ke dalam sistem dengan cara mengetik
    vagrant ssh
  6. Test sistem operasi yang baru dengan mengetik
    uname -a

    Apabila sudah seperti screenshot dibawah, selamat, anda telah berhasil menggunakan vagrant!

Screen Shot 2015-10-17 at 12.58.59 PM

 

Untuk mematikan Vagrant, gunakan perintah

exit
vagrant halt

Hal lain yang penting adalah networking, bagaimana cara kita membuka port. Berikut adalah contoh membuka port 8080.

  1. Pastikan vagrant sudah di halt.
  2. Buka vagrantfile yang otomatis di create pada folder saat melakukan vagrant init. (saya disini menggunakan editor nano, silahka sesuaikan dengan editor favorit masing-masing) , lalu scroll sampai bagian “config.vm.network “forwarded_port”
    nano Vagrantfile

    Screen Shot 2015-10-17 at 1.08.07 PM

  3. Hapus simbol “#” di depan “config.vm.network “forwarded_port”, lalu save file dengan klik ctrl+o, enter lalu ctrl+x.
  4. Nyalakan Vagrant, lalu apabila anda belum melakukan instalasi apache2, lakukan sekarang.
    sudo vagrant up
    vagrant ssh
    sudo apt-get install apache2
  5. Test pada browser anda dengan membuka : http://120.0.0.1:8080

Apabila sudah seperti screenshot dibawah, maka selamat, anda berhasil melakukan konfigurasi port pada vagrant!

Sebenarnya masih banyak sekali yang bisa dibahas, salah satu contohnya adalah bagaimana melakukan instalasi program dan konfigurasi otomatis saat vagrant di start, atau melakukan konfigurasi jaringan yang lebih advance. Mungkin di lain waktu kalau saya ada kesempatan.

Berikut adalah resource yang bisa dijadikan bahan pembelajaran.

https://docs.vagrantup.com/
https://en.wikipedia.org/wiki/Vagrant_(software) https://atlas.hashicorp.com/boxes/search

Tutorial Menjalankan Aplikasi ASP.NET MVC 5 pada Ubuntu Linux 14.04

ASP.NET adalah sebuah framework untuk membuat aplikasi pemrograman web sisi server. Salah satu alasan menggunakan ASP.NET adalah C#. Code C# terstruktur dengan baik sehingga mudah untuk dipahami dan dimaintenance. C# juga menyediakan beragam code hint, error hint sebelum code dijalankan.  C# dijalankan menggunakan sistem JIT, sehingga mungkin dapat berjalan lebih cepat dibanding bahasa-bahasa interpreted seperti PHP.

Sayangnya, sampai beberapa tahun yang lalu ASP.NET hanya dapat berjalan pada platform windows, hingga akhirnya ada beberapa proyek opensource seperti dotGNU dan mono. Karena ada beberapa yang masih merupakan paten Microsoft , proyek-proyek ini sulit berjalan secara maksimal dan cenderung terbatas kompabilitasnya, bahkan proyek dotGNU sampai berhenti pada tahun 2012.

Namun pada tahun 2014,  Microsoft membuat platform .NET menjadi opensource. Hal ini membuat developer mono bisa menggunakan komponen-komponen dari microsoft (sumber), menyebabkan mono berkembang dengan pesat dan bisa menjalankan framework kompleks seperti ASP.NET MVC 5.

Pada tutorial ini, akan dijelaskan bagaimana cara melakukan setup Ubuntu 14.04 LTS hingga dapat menjalankan aplikasi ASP.NET MVC 5. Selamat belajar!

Yang perlu dipersiapkan:
  1. Komputer dengan sistem operasi Ubuntu 14.04 LTS
  2. Proyek default ASP.NET MVC 5 yang telah di publish atau bisa download contoh yang saya buat disini
  3. Koneksi Internet
Tutorial:
  1. Pastikan sistem operasi anda sudah terupdate dengan menjalankan perintah berikut:
    sudo apt-get update && sudo apt-get dist-upgrade
  2. Instalasi paket apache2 dengan menjalankan perintah:
    sudo apt-get install apache2
  3. Masukan mono kedalam list paket sistem, hal ini perlu dilakukan agar versi mono yang akan di install selalu yang terbaru. pastikan anda menjalankan code di bawah baris demi baris.
    sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF
    
    sudo echo "deb http://download.mono-project.com/repo/debian wheezy main" | sudo tee /etc/apt/sources.list.d/mono-xamarin.list
    
    sudo echo "deb http://download.mono-project.com/repo/debian wheezy-apache24-compat main" | sudo tee -a /etc/apt/sources.list.d/mono-xamarin.list
    
    sudo echo "deb http://download.mono-project.com/repo/debian alpha main" | sudo tee /etc/apt/sources.list.d/mono-xamarin-alpha.list
    
    sudo apt-get update && sudo apt-get dist-upgrade
  4. Install paket mono-complete
    sudo apt-get install mono-complete
    
  5. Install paket libapache2-mod-mono
    sudo apt-get install libapache2-mod-mono
    sudo a2enmod mod_mono_auto
  6. Set apache2, agar folder pada apache2 menggunakan mono. prosedur ini harus di ulang untuk setiap aplikasi baru
    sudo nano /etc/apache2/sites-available/testasp.conf
  7. Copy-paste baris berikut ke console, sesuaikan path dan nama apabila diperlukan. klik ctrl+o , enter lalu ctrl+x untuk menyimpan file.
      Alias /testasp "/var/www/html/testasp"
      MonoServerPath inventory "/usr/bin/mod-mono-server4"
      MonoDebug inventory true
      MonoSetEnv inventory MONO_IOMAP=all
      MonoApplications inventory "/testasp:/var/www/html/testasp"
      <Location "/testasp">
        Allow from all
        Order allow,deny
        MonoSetServerAlias inventory
        SetHandler mono
        SetOutputFilter DEFLATE
        SetEnvIfNoCase Request_URI "\.(?:gif|jpe?g|png)$" no-gzip dont-vary
      </Location>
      <IfModule mod_deflate.c>
        AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript
      </IfModule>
    

    apache2site

  8. Buat folder baru di /var/www/html/testasp , sesuaikan permission folder apabila di perlukan. File-file asp.net akan di simpan di sini.
    sudo mkdir /var/www/html/testasp
  9. Enable konfigurasi site yang dibuat
    sudo a2ensite testasp
    sudo service apache2 restart
  10. Upload atau copy file ASP.NET MVC yang ingin dijalankan atau gunakan contoh proyek yang saya berikan ke dalam folder /var/www/html/testasp
    ftp
  11. Test situs di browser,  url adalah http://127.0.0.1/testasp.  sesuaikan url dengan IP mesin anda.
    jalan

Apabila hasil seperti langkah 11, maka selamat, anda telah berhasil menjalankan ASP.NET MVC 5 pada sistem operasi linux. Apabila belum, silahkan comment dan saya akan coba menjawab pertanyaan sebisa saya.

Dengan langkah-langkah diatas, bahkan saya telah berhasil mempublish situs yang cukup kompleks dengan database mysql.

Dibawah ini adalah link-link yang bisa membantu anda belajar lebih jauh lagi.

  1. http://www.mono-project.com/docs/getting-started/install/linux/
  2. https://help.ubuntu.com/community/ModMono
  3. http://www.asp.net/mvc/overview/getting-started/introduction/getting-started
  4. http://www.w3schools.com/aspnet/mvc_intro.asp

Semoga tutorial yang saya berikan bermanfaat.

Programming Aplikasi Android Dengan HTML 5: link lanjutan

Pada tulisan ketiga ini , akan di berikan link-link yang berguna saat melakukan development web application , dimulai dari yang paling recommended.

General Tutorial :
HTML_5_mobile_web_app_from_start_to_finish/

Application Design Inspiration : 
http://www.awwwards.com/30-recent-inspirational-ui-examples-in-mobile-device-screens.html
http://www.webdesign-inspiration.com/web-designs/type/mobile-app
http://designinstruct.com/visual-inspiration/web-design-inspiration/mobile-app-website-design-inspiration/

Framework User Interface : 
Chocolate Chip UI
Sencha
PhoneJS
EnyoJS
Wijmo
iUI
Twitter Bootstrap
The-M-Project
Jo
EmbedJS
Junior
moobile
Topcoat

Jquery Replacement : 
zeptoJS
XUI
$dom
Snack

Push Notification : 
tutorial-implement-push-notifications-in-your-phonegap-application/

Selamat develop aplikasi 🙂