Membuat Website Pernikahan

Beberapa hari lagi, saya akan melangsungkan pernikahan dengan pasangan saya. Persiapan telah dirancang jauh hari, koordinasi telah dilakukan serapi mungkin, undangan pernikahan juga telah didistribusikan sedini mungkin. Namun kemudian saya menyadari bahwa ada sesuatu yang kurang dalam informasi yang disampaikan di kartu undangan.

Iya, tidak semua orang mengenal saya ataupun Ami (pasangan saya), jika pun ada paling juga hanya orang yang pernah sekantor saja. Selain itu, saya yakin hal ini juga menimpa ke saya atau ke sebagian besar Anda, ketika menghadiri undangan pernikahan tapi nggak kenal dengan siapa yang menikah atau menjadi pasangan nikahnya.

Maka dari itu, saya membuat website pernikahan saya sendiri. Ide ini terinspirasi dari mas Budiyono yang pernah membuat website serupa untuk pernikahannya. Saya juga membuat URL yang sama dengan memanfaatkan nama domain yang telah saya miliki sebelumnya.

Urlnya: https://pernikahan.ami.dan.yogie.id

Itu adalah url yang saya buat, sengaja dibuat panjang dan langsung menginformasikan apa yang ada di dalamnya. Tadinya mau diisi dengan informasi atau foto-foto mengenai kami berdua, tapi kemudian disinilah kami sadar, bahwa ternyata kami berdua sama-sama tidak suka difoto dan sama-sama tidak suka mempublikasikan informasi di Internet. Ditambah, kami juga tidak mengadakan sesi foto pre-wedding. Mahal…

Akhirnya, websitenya hanya berisi informasi kecil namun tetap menggunakan standar yang telah saya tetapkan setiap membuat website untuk klien.

  • Dibangun menggunakan CMS WordPress di DigitalOcean cloud server.
  • Implementasi child themes Jupiter
  • Optimasi web cache
  • Optimasi SEO On-Page
  • Optimasi image compression
  • Implementasi CDN
  • Implementasi HTTPS, HTTP/2, dan HSTS
  • Menggunakan 4096 bit RSA Key (iya, saya selo)
  • Image Gallery dengan Instagram crawl by hashtag #amiyogie
  • Nempelin Paypal Donation (hahahaha…)

Semuanya dibuat dalam waktu 2 hari dan akan diaktifkan hingga waktu yang tak pernah ditentukan lagi.

Konfigurasi Website Dengan HTTPS Menggunakan Sertifikat SSL Gratis

Saya baru saja mengaktifkan HTTPS di beberapa website yang saya kelola, kemudian sesuai dengan judul artikel ini, semuanya saya dapatkan secara gratis dengan sedikit konfigurasi di nginx yang berjalan pada mesin Ubuntu 16.04. Kok baru sekarang? Iya, selain karena prokrastinasi juga karena ingin mengimplementasikan HTTP/2, dimana syarat menggunakan HTTP/2 adalah HTTPS.

Dulu, website yang menggunakan protokol HTTPS  masih terbatas pada website yang menangani transaksi sensitif, misalnya seperti Internet Banking atau E-Commerce. Hal ini wajar, karena pengguna (user) dari kedua website itu akan mengirimkan informasi sensitif yang berhubungan dengan keuangan, jadi perlu sesuatu yang akan mengamankan informasi di antara keduanya.

Tapi sebelumnya, saya mau coba untuk meluruskan sedikit salah kaprah mengenai protokol HTTPS. Saya sering mendapatkan pertanyaan mengenai kegunaan HTTPS yang dianggap akan mengamankan website dari serangan hacker, sehingga jika websitenya menggunakan HTTPS dijamin aman dari hacking. Jawaban saya: Benar, tapi kurang tepat.

Pertama, HTTPS pada website dapat aktif jika memiliki sertifikat SSL. Sertifikat ini akan menjamin bahwa semua transaksi dari pengguna menuju ke server dan sebaliknya akan aman dari penyadapan. SSL akan melakukan enkripsi data yang melewati jalur HTTPS dengan tingkatan tertentu, kemudian akan memberikan jaminan apabila datanya berhasil diintip oleh hacker, maka si pemilik website akan mendapatkan kompensasi yang nilainya cukup besar dari penjual SSL.

Kedua, HTTPS itu justru lebih mengamankan pengguna websitenya supaya merasa aman dan terlindungi ketika bertransaksi di website. Bagaimanapun juga website itu hanyalah sebuah program yang dibuat dengan bahasa pemrograman dan dijalankan pada mesin yang tersambung ke Internet. Semuanya dilakukan oleh mesin secara otomatis dan dibuat secanggih mungkin supaya dapat melayani manusia. Maka, perlu ditambahkan semacam penjamin bahwa siapapun yang bertransaksi dengan website itu, dijamin aman dan bisa dipercaya.

Jadi kesimpulannya, benar bahwa HTTPS merupakan salah satu metode untuk menghalau hacker, namun kurang tepat jika HTTPS akan menjamin websitenya tidak terkena serangan hacking, karena HTTPS dibuat bukan untuk melindungi website, melainkan untuk melindungi penggunanya.

Oke, bagaimana cara mengaktifkan HTTPS?

Yang jelas harus memiliki sertifikat SSL. Dahulu kala, sertifikat SSL hanya bisa didapatkan dengan cara membeli dan akan diperpanjang setiap tahunnya. Harganya bervariasi, tergantung jenis SSL yang akan dibeli dan tergantung tempat belinya juga. Penyedia sertifikat SSL ini cukup banyak di Internet dan menawarkan berbagai fitur dan harga. Saya pernah membeli Comodo SSL untuk salah satu klien saya, harganya termasuk murah jika dibandingkan dengan merk lainnya.

Selain bisa membeli di masing-masing penyedia sertifikat SSL, saya bisa juga membelinya di perusahaan hosting. Biasanya perusahaan hosting ini telah berafiliasi dengan penjual sertifikat SSL untuk bisa menawarkan ke membernya dengan harga spesial. Keuntungan lainnya, saya tidak perlu memikirkan cara instalasi karena semuanya sudah diurus oleh pihak hosting.

Bagaimana mendapatkan SSL gratis?

Tersebutlah Let’s Encrypt, sebuah organisasi nirlaba yang didukung oleh Internet Security Research Group (ISRG) untuk menyediakan sertifikat SSL secara gratis bagi orang yang ingin websitenya bisa menggunakan HTTPS. Cukup bermodal domain dan sedikit pengetahuan mengenai Linux saja.

Meskipun demikian hingga tulisan ini dibuat, Let’s Encrypt belum mendukung wildcard domain. Artinya, jika Anda memiliki domain utama dan subdomain, maka Anda harus membuat sertifikat SSL sejumlah domain yang akan diaktifkan.

Misalnya domain yogie.id saya ini punya subdomain lagi, seperti dosen.yogie.id dan engineer.yogie.id. Maka saya harus membuat 3 sertifikat SSL untuk domain utama dan 2 subdomain tadi. Tapi kabarnya, dalam waktu dekat Let’s Encrypt akan meluncurkan fitur wildcard domain, jika ini benar maka nanti saya cukup membuat 1 sertifikat SSL saja.

Bagaimana cara menerbitkan sertifikat SSL dari Let’s Encrypt?

Ini adalah bagian yang menarik, dulu saya pikir untuk mendapatkan sertifkat SSL bakalan ribet, ternyata tidak juga. Namun tutorial ini menyesuaikan dengan environment website saya ya, dimana saya menggunakan layanan cloud dengan sistem operasi Ubuntu 16.04, webserver nginx, dan php-fpm. Untuk Anda yang menggunakan layanan webhosting, saya belum mencobanya, tapi saya yakin banyak sekali tutorialnya di luar sana.

Pertama, pastikan website sudah beroperasional dengan baik di atas mesin Ubuntu 16.04 dan webserver nginx. Kemudian juga memiliki akses ssh yang dapat melakukan perintah “sudo” karena nanti kita akan menginstall beberapa paket di Ubuntu.

Selanjutnya, saya menginstall layanan Certbot di Ubuntu untuk penerbitan sertifikat SSL dari Let’s Encrypt. Certbot adalah program yang dirancang oleh Electronic Frontier Fondation (EFF) yang mempermudah proses integrasi sertifikat SSL dari Let’s Encrypt di layanan web server.

Setelah terinstall, saya cukup menjalankan Certbot dan mengikuti alur yang sudah tersedia. Oh iya, secara default Certbot akan menggunakan kunci 2048 bit untuk membuat sertifikat SSL. Saya meningkatkan kuncinya menjadi 4096 bit dengan alasan supaya lebih keren saja, tidak ada maksud apa-apa untuk pembuatan itu. Caranya juga mudah, cukup mengetikkan perintah berikut pada saat menjalankan Certbot.

sudo certbot --nginx --rsa-key-size 4096 -d yogie.id

Dalam waktu singkat, website yogie.id telah aktif HTTPS. Prosesnya hanya berlangsung beberapa detik saja dan sudah termasuk dengan redirect port dari 80 (http) ke 443 (https).

Pada artikel berikutnya, saya akan tuliskan bagaimana cara mengoptimasi settingan di atas, misalnya mengatur parameter Diffie-Hellman, auto-renewal pada sertifikat SSL, mengaktifkan HSTS dan HTTP/2.

Menghindari Kehilangan Data Sejak Dini

Ceritanya akhir Juni 2017 lalu saya sempat kehilangan Macbook Pro di kereta Argo Bromo Anggrek, itu kejadiannya saat perjalanan pulang dari Jakarta ke Semarang. Modus operandinya sebetulnya tidak baru, yaitu menukar laptop dengan buku supaya beban di tas terasa sama, kemudian resleting tas dikasih lem alteco supaya susah dibuka. Mengenai bagaimana cara mereka menukar laptop menjadi tas, kebetulan saya bukan anggota komplotannya jadi belum dikasih tau caranya.

Oh iya, sempat ada kejadian yang bikin kesel, seminggu kemudian saya menemukan Macbook itu dijual di OLX, Bukalapak, dan Tokopedia secara bersamaan. Setelah saya lacak, tokonya ada di Semarang di wilayah Gunung Pati. Sempat ngobrol juga lewat Bukalapak Chat untuk lebih memastikan. Sayangnya ketika mau saya samperin dengan bantuan polisi, Macbook keburu laku hahaha.. Buat yang beli, saya ikut berbahagia kok, itu Macbook-nya sudah saya upgrade ke 16 GB RAM, SSD, dan ganti kabel harddisk yang sering jadi masalah di Macbook Pro unibody.

Oke, biasanya saat seseorang kehilangan perangkat kerja seperti laptop atau smartphone, maka yang akan terasa menyesak adalah kehilangan data. Disinilah peran IT harus dipergunakan secara maksimal, karena teknologi cloud computing sudah dapat digunakan ke end user (pengguna awam) secara mudah dan murah (bahkan gratis).

Kebetulan semua pekerjaan saya sudah tersinkronisasi dengan cloud. Misalnya untuk data di Macbook secara otomatis sudah terhubung dengan iCloud pada folder Documents dan Desktop, sehingga semua data-data baik untuk keperluan mengajar dan publikasi bisa terlindungi. Kemudian tim engineer di GDILab menggunakan teknologi GIT untuk repositori skrip, sehingga saya akan selalu punya update terbaru semua source code. Saya juga tidak pernah download film atau lagu karena telah dilayani oleh Spotify dan LK21, lalu untuk file-file yang berhubungan dengan pekerjaan juga masih tersimpan di Slack dan Trello. Praktis saya tidak memiliki file yang tersimpan di laptop selain yang ada di folder Download.

Alhamdulillah, pada awal Agustus 2017 saya bisa mendapatkan ganti Macbook Pro yang lebih baik daripada sebelumnya, sekarang saya menggunakan seri MF840. Langkah pertama yang saya lakukan pada perangkat tersebut adalah restore data dari setiap akun cloud yang menyimpan data-data saya. Hanya bermodalkan akses Internet yang baik, dalam waktu singkat saya sudah mendapatkan semua data saya kembali. Once you go to Mac, you never go back.

Jadi, bagaimana cara menghindari kehilangan data sejak dini? Mungkin bisa meniru cara yang saya gunakan, tetapi apabila Anda memiliki perangkat yang berbeda, mungkin bisa mengikuti panduan berikut:

  • Bila Anda memiliki laptop dengan OS Windows, buatlah akun Microsoft untuk menghubungkan perangkat Anda. Microsoft memiliki layanan OneDrive yang dapat digunakan untuk menyimpan data-data Anda dengan kapasitas tertentu, simpanlah data yang menurut Anda penting dan tidak bisa didapatkan dari tempat lain.
  • Anda tidak perlu download film atau lagu, manfaatkan layanan streaming baik yang berbayar atau gratis. Selain akan menghemat ruang penyimpanan data, juga akan terhindarkan dari perasaan eman-eman kehilangan data. Tarif dan kecepatan akses Internet saat ini sudah mulai masuk akal.
  • Manfaatkan layanan penyimpanan cloud seperti DropBox supaya data/file Anda tersinkronisasi dengan perangkat lain seperti smartphone atau tablet. Cukup install Dropbox pada masing-masing perangkat dengan akun yang sama, maka Anda akan memiliki data tersebut secara tersebar.

Mungkin itu saja tipsnya, tapi yang paling utama adalah meningkatkan kewaspadaan dan selalu menjaga perangkat kerja Anda dengan teliti. Ingatlah, kejahatan bisa terjadi bukan karena niat, namun karena ada kesempatan.

Waspadalah…

Mengapa Harus Memasang AMP (Accelerated Mobile Pages) di WordPress

Sebagai dosen sekaligus praktisi, saya harus terus mengikuti perkembangan teknologi yang sedang terjadi di sekitar. Salah satunya adalah teknologi web yang merupakan salah satu bidang yang saya kuasai. Ketika membandingkan website di tahun 90-an dengan website di tahun 2017, lompatan teknologinya sudah sangat jauh, bahkan di beberapa tahun terakhir ini sudah bermunculan teknologi yang tidak terbayangkan sebelumnya.

Masih ingat ketika awal-awal munculnya smartphone, dimana pengguna sudah tidak memerlukan lagi perangkat komputer/laptop untuk dapat mengakses website. Disini perubahan paradigma desain website sudah harus berubah, tidak lagi berlomba-lomba menampilkan fitur dan efek yang wah, tapi sekarang harus memikirkan bagaimana tampilan website harus bisa dibuka dengan cepat dan ringan di perangkat smartphone. Bahkan muncul istilah baru, “responsive web design”.

Tentunya perubahan ini memakan korban, yaitu Flash. Memang sih, ketika semua orang masih mengakses website menggunakan komputer/laptop, Flash sangat berjaya, karena bisa menampilkan efek-efek yang indah di mata. Bahkan saat itu Javascript seakan-akan terpinggirkan dan tidak menarik untuk dipelajari. Namun begitu semua orang pakai smartphone, Flash tidak bisa bersaing karena masalah kompatibilitas. Padahal, website seharusnya multi-platform.

Javascript, yang tadinya sempat terlupakan ternyata diam-diam mengembangkan dirinya berevolusi menjadi teknologi yang sekarang menjadi tulang punggung layanan web (web services). Sekarang kita bisa menikmati teknologi website yang sesungguhnya, yaitu multi-platform.

Sekarang smartphone telah menguasai dunia, siapapun telah memilikinya, dan Indonesia adalah pengguna smartphone terbesar di Asia Tenggara (ya iya lah..). Jadi ada pasar besar yang menanti disini, tinggal gimana caranya supaya website bisa diakses oleh penggunanya yang memiliki koneksi Internet bervariasi.

Saya sudah mencoba hampir semua cara untuk mengoptimasi website supaya bisa diakses dengan cepat, hasilnya cukup memuaskan. Tetapi muncul masalah apabila website itu dikunjungi dari website lain, misalnya dari mesin pencari atau dari social media. Artinya, pengunjung tidak melakukan direct access melainkan datang dari website lain untuk menuju ke website kita.

Maksudnya begini, misalnya Anda sedang melakukan pencarian di Google kemudian mendapatkan hasilnya. Lalu Anda klik salah satu website yang terdaftar disana, maka Anda akan di-redirect dari Google menuju ke website yang dituju. Disinilah jeda itu muncul, meskipun hanya sepersekian detik namun jika Anda sedang melakukan riset dan ingin mendapatkan hasilnya secepat mungkin, maka waktu jeda itu terasa lama. Belum lagi jika website yang dikunjungi ternyata sedang down/maintenance.

Disinilah peran AMP (Accelerated Mobile Pages) diperlukan, terima kasih kepada Javascript yang telah membuat website menjadi lebih keren. Jadi AMP memungkinkan website dapat dibuka lebih cepat hampir tanpa ada delay, hal ini dikarenakan proses rendering akan berada di background sehingga user tidak merasakan proses menunggu saat loading website. AMP juga mengoptimasi penggunaan API preconnect supaya menghemat resource di prosesnya. Selain itu AMP mengharuskan untuk memodifikasi layout skrip sesuai dengan standar yang telah ditentukan.

Menarik ya? Bagaimana implementasinya?

Inilah salah satu alasan saya menyukai WordPress sebagai framework untuk pembuatan website. Memasang AMP di WordPress sangat mudah karena cukup menginstall plugin AMP sebagai pondasinya dan plugin AMP for WP – Accelerated Mobile Pages untuk modifikasi lebih lanjutnya. Kedua plugin ini sebaiknya diinstall semuanya supaya mendapatkan konfigurasi yang lebih lengkap.

Proses konfigurasi juga tidak rumit, setelah plugin Anda aktifkan cukup menuju ke halaman pengaturan plugin untuk memilih layout yang akan digunakan. Pada saat tulisan ini dibuat, saya menggunakan layout 3 sebagai theme AMP saya. Lanjutkan dengan konfigurasi pada menu-menu yang lain. Bila sudah selesai, maka Anda akan memiliki url tambahan /amp di setiap url website Anda. Contohnya https://yogie.id/amp.

Url berakhiran /amp itulah yang menandakan bahwa WordPress sudah siap untuk melayani dalam mode AMP. Untuk memastikan, bisa dengan melakukan validasi di web The AMP Validator, pastikan statusnya: PASS. Hasilnya, apabila ada orang yang melakukan pencarian di Google menggunakan perangkat smartphone, maka website Anda akan memiliki simbol AMP seperti gambar di bawah ini.

 

 

Jalan-Jalan Ke Surabaya

Apa yang akan Anda lakukan, jika datang ke suatu kota tanpa rencana? Itu yang saya alami pada pertengahan bulan Juli 2017 lalu. Sewaktu perjalanan pulang ke Semarang dari Jakarta, ternyata saya ketiduran di Stasiun Tawang dan akhirnya terbawa kereta api hingga ke… Surabaya.

Untunglah sewaktu pemeriksaan tiket, saya terlewatkan oleh pak kondektur sehingga tidak disuruh membayar denda, atau diturunkan di stasiun terdekat. Misalnya saya betul diturunkan, bakalan lebih bingung karena saat saya tersadar masih jam 03:30 pagi dan entah sedang berada dimana. Tapi setidaknya saya sudah habis diketawain sama cah Loenpia di grup WhatsApp.

Oke, setelah 3 jam perjalanan sampailah saya di Stasiun Pasar Turi Surabaya. Kebetulan saya sudah menunaikan Shalat Subuh di kereta dan sempat membeli tiket kereta untuk perjalanan pulang di sore harinya, maka hal yang pertama saya cari adalah kamar mandi.

Saya membayangkan Stasiun Pasar Turi akan megah seperti Stasiun Gambir, namun ternyata bayangan saya salah. Stasiun ini tidak lebih besar daripada Stasiun Tawang, dan sayangnya kebersihan kamar mandinya kurang terjaga. Tapi berhubung harus segera menunaikan hajat pagi, maka ya harus menerima apa adanya.

Setelah urusan hajat terselesaikan dengan damai, maka saatnya berpetualang. Saya keluar stasiun dulu untuk menuju ke tempat cetak mesin tiket. Untunglah tadi memutuskan untuk langsung membeli tiket, karena setelah saya cek, semua tiket kereta ke arah Barat sudah habis terjual hingga hari Minggu (saat itu hari Jumat). Saya menuju ke Indomaret untuk membeli segelas kopi dan Pop Mie untuk sarapan, sekaligus membuat rencana hingga jam 16:00 nanti.

Saya perlu mandi, itu yang terlintas di pikiran. Berhubung masjid di sekitar stasiun menurut saya kurang layak untuk menumpang mandi, maka saya andalkan Google Maps untuk mencari masjid yang besar. Saya mendapatkan sebuah masjid yang berlokasi 1 km dari stasiun, dan perjalanan di segera dimulai.

Perjalanan menuju Masjid Raudhatul Musyaawarah cukup menarik, saya diarahkan untuk melewati komplek pertokoan dan sempat mampir ke ATM BCA disana, kemudian melewati pasar yang cukup ramai, dan akhirnya sampailah ke tempat tujuan. Kebetulan saat itu petugas masjid sedang membersihkan untuk persiapan shalat Jumat, dan ketika melihat saya beliau langsung menunjukkan lokasi kamar mandi. Mungkin kelihatan banget saya belum mandi dan kebablasen sampai sini.

Masjid ini berlokasi di depan DPRD Jawa Timur, sehingga saya rasa masjid ini akan banyak jamaahnya dan terbiasa untuk menerima musafir yang mampir. Foto di atas saya ambil setelah mandi dan bersiap-siap untuk menuju ke lokasi berikutnya. Oh iya, di Surabaya sudah tersedia layanan transportasi online, itulah yang membuat saya tenang untuk jalan-jalan di Surabaya. Tinggal buka aplikasi Go-Jek, saya arahkan tujuan ke House of Sampoerna.

House of Sampoerna menjadi pilihan teratas saat saya mencari tempat wisata melalui Google Maps. Disini tersedia 2 hal yang bisa dinikmati, yaitu mengikuti wisata Surabaya Heritage Track (SHT) menggunakan bus berkeliling kota atau mengunjungi Museum Sampoerna yang berlokasi di House of Sampoerna.

Sayangnya, saya tiba di lokasi pukul 8:30 dan antrean pendaftaran SHT sudah panjang, dan ketika saya tanya slot untuk jam 9:00 pagi ternyata juga sudah habis, slot tersisa yang terdekat adalah jam 13:00. Berhubung saya tidak memiliki banyak waktu, maka saya foto-foto saja dan mau main ke museum saja yang baru dibuka nanti jam 9:00.

Bisnya keren ya? Katanya jika beruntung mengikuti tur SHT, kita akan dibawa ke beberapa tempat bersejarah di Surabaya dan diceritakan pula sejarah setiap objeknya, menarik. Nanti kapan-kapan saya akan datang kesini lagi dan memesan tempatnya dulu, karena ternyata boleh untuk memesan tempat melalui telepon.

Setelah menunggu beberapa saat, akhirnya Museum Sampoerna dibuka. Awalnya saya bingung karena pintunya tertutup, setelah bertanya kepada petugas ternyata memang pintu sengaja ditutup karena ada AC di dalam, saya cukup membuka pintu saja dan gratis tanpa tiket. Kebetulan di dalam sedang ada rombongan keluarga yang sedang berkunjung dan didampingi oleh pemandu museum. Jiwa backpacker saya muncul, langsung saja bergabung ke rombongan itu untuk sekedar ikut mendengarkan penjelasan mas-mas pemandu. Kayanya sih ada beberapa anggota rombongan yang ngeliatin saya waktu ikut rombongan dia, dianggap penyusup mungkin ya? Hihihihi…

Museum ini menarik, kebetulan saya juga memang suka main ke museum. Di museum ini kita bisa melihat sejarah awal Sampoerna hingga sekarang, banyak foto, tembakau, dan alat-alat yang dulu digunakan untuk produksi. Di lantai 2, kita bisa melihat secara langsung proses pelintingan rokok oleh wanita-wanita terampil. Sayangnya disini tidak boleh memotret, tapi kita bisa membeli souvenir disini.

Keluar dari museum, saya diinfokan ada pameran patung di gedung belakang. Tempatnya agak tersembunyi namun tenang, saya sempat melihat-lihat karya seniman disana dan cukup kagum dengan hasil karyanya. Lagi-lagi disini tidak boleh memotret, tapi tidak mengapa karena dengan melihatnya saja, saya sudah merasa cukup.

Perjalanan berikutnya adalah ke Monumen Kapal Selam, terima kasih kepada Okky yang hari itu banyak memberikan informasi tempat tujuan wisata di Surabaya. Tapi sebelumnya saya sempat beli Nasi Rawon yang berada di depan House of Sampoerna sebelum memesan Go-Jek lagi.

Monumen Kapal Selam ini sesuai dengan namanya, kita bisa masuk ke kapal selam sungguhan yang diletakkan disana, tiket masuknya IDR 10.000 saja. Kebetulan karena bukan masa liburan, saya bisa masuk ke kapal selam dengan lengang. Di dalam telah dipasang AC supaya tidak sumuk, kemudian mungkin seharusnya ada pemandu wisata yang akan bercerita, namun saat saya masuk mbak-mbaknya sedang makan siang. Jadilah saya masuk ke setiap bagian kapal selam sendirian. Iya, betul-betul sendirian karena memang sepi pengunjung.

Di dalam kapal selam, saya melihat banyak peralatan yang hanya bisa saya tonton di film, kemudian ada beberapa tulisan keterangan di setiap bagiannya. Kapal selam terbagi menjadi beberapa bagian yang memiliki fungsinya masing-masing. Pada setiap bagian ruangan terdapat pintu yang berukuran besar dan kecil, saran saya jika Anda membawa tas punggung yang besar, lebih baik tasnya dilepas dan dilempar ke dalam saat mau masuk ruangan dengan pintu kecil. Saya sempat nyangkut ketika mau pindah ruangan dengan kondisi tas masih saya panggul. Hihihi…

Saya membayangkan kehidupan di kapal selam tentu serba terbatas, maka jika kapal sedang sandar, pasti seluruh kru langsung mencari hiburan. Kunjungan saya di Monumen Kapal Selam dari pintu masuk ke pintu keluar hanya 15 menit. Saya mencari Video Rama yang tertulis di tiket, tapi tidak menemukannya, apa mungkin juga tidak buka? Saya juga melihat ada kolam renang disana, tapi khusus untuk anak-anak. Sebagai informasi, cuaca saat itu sangat terik, mungkin itu yang membuat kolam renang cukup ramai.

Berhubung waktu telah beranjak siang, maka saya perlu mencari masjid untuk Shalat Jumat. Berbekal Google Maps, saya mencari masjid terdekat dan besar. Saya memilih mengunjungi Masjid Muhajirin di dekat Pemkot Surabaya.

Cukup berjalan kaki selama 15 menit saya sudah sampai ke lokasi, oh iya di tengah perjalanan saya sempat memotret ikon Kota Surabaya yang saya jadikan featured image di postingan ini. Yang saya sukai dari Surabaya adalah trotoar yang ditata rapi dan nyaman bagi backpacker yang berkunjung.

Masjid Al Muhajirin yang saya kunjungi untuk Shalat Jumat ini cukup megah, terletak di dekat kantor Pemkot Surabaya dan jamaahnya sangat banyak. Saya sempat tiduran sejenak untuk meluruskan punggung dan kaki hingga jam 13:00 untuk kemudian mencari makan siang. Okky menyarankan saya untuk mencicipi Sate Klopo yang lokasinya tidak jauh dari masjid, seketika semangat kembali muncul dan langsung menuju kesana.

Saya baru tahu jika penjual Sate Klopo itu cukup banyak, kemudian yang terkenal dan ramai adalah Sate Klopo Ondomohen Bu Asih, namun karena oleh Google Maps diarahkan ke Pojok Malam, maka jadilah saya mampir kesana. Saat baca-baca review ternyata rasanya sama dengan Bu Asih, bahkan dijadikan alternatif jika warung Bu Asih sedang ramai. Memang ketika saya datang ke Pojok Malam, cukup sepi namun pesanan saya jadi cepat disajikan. Kapan-kapan saya akan mampir warungnya Bu Asih.

Kira-kira seperti itu bentuk satenya, satu porsi berisi 10 tusuk daging sapi yang dibaluri parutan kelapa sebelum kemudian dibakar. Hmmm… wanginya menggoda dan rasanya menjadi lebih kaya karena dari parutan kelapa yang ikut dibakar tadi. Seporsi Sate Klopo harganya IDR 20.000 saja.

Baiklah, setelah kenyang saatnya membeli oleh-oleh. Lagi-lagi saya bertanya kepada Google Maps dimana lokasi Bu Rudy untuk membeli sambal dan lain-lainnya. Kemudian saya diarahkan ke Bu Rudy yang beralamat di Jalan Anjasmoro. Tapi katanya Okky, disini bukan yang asli hihihi.. Nggak papa deh yang penting tetap bisa dapat sambalnya.

Ternyata perjalanan cukup jauh, tapi saya bisa melihat banyak spot-spot menarik di Surabaya. Pak Go-Jek yang mengantar saya cukup lihai membawa motornya, sehingga bisa cepat sampai ke tujuan. Sesampai disana saya disambut oleh bangunan dengan tulisan Bu Rudy yang sangat besar.

Disini tidak hanya menjual sambal, namun juga menjual oleh-oleh yang lain. Selain sambal, saya juga membeli petis, terasi, dan beberapa cemilan. Saya juga melihat ada beberapa pengunjung yang sedang makan siang disana, rupanya selain toko oleh-oleh, disini juga bisa untuk makan di tempat.

Saya tidak berlama-lama disini karena waktunya sudah mepet dengan jam keberangkatan saya ke Semarang. Kebetulan juga tidak banyak pengunjung sehingga proses pembayaran bisa diselesaikan dengan cepat. Selanjutnya langsung memesan Go-Jek lagi untuk mengantar saya ke Stasiun Pasar Turi.

Akhirnya, sampailah saya di Stasiun Pasar Turi. Sebagai backpacker dan turis yang baik, saya sempatkan memotret ikon Stasiun Pasar Turi yaitu lokomotif. Sebagai pengingat bahwa saya pernah kebablasen sampai sini akibat ketiduran. Seperti biasa, saya tidak pernah memotret diri sendiri, jadi harap maklum tidak ada foto saya yaaa. Sampai jumpa lagi Surabaya.

Mengatasi Lama Pengiriman Menggunakan SMTP Gmail di DigitalOcean

Pada artikel sebelumnya, saya menulis cara mengkonfigurasi SMTP Gmail pada WordPress di DigitalOcean. Tapi ada satu isu, yaitu apabila saya menggunakan IPv4 di droplet DigitalOcean, semua konfigurasi dapat berjalan lancar. Namun bila saya mengaktifkan fitur IPv6 di droplet, maka WordPress membutuhkan waktu yang lama untuk mengirimkan email. Saya bisa menunggu hingga 5 menit hanya untuk menunggu sebuah email bisa terkirim ke suatu alamat.

Tentunya, ini cukup mengganggu.

Setelah mencari ke sejumlah tempat, akhirnya saya mendapatkan penjelasannya dari DigitalOcean. Rupanya secara default DigitalOcean akan memblokir akses ke SMTP server yang menggunakan IPv6. Apabila fitur IPv6 di droplet diaktifkan maka secara default droplet akan mengakses SMTP Gmail menggunakan alamat IPv6. Inilah yang dihindari oleh DigitalOcean.

Alasannya, cukup beralasan. Karena jika suatu saat ada satu IP milik DigitalOcean yang terkenal blacklist akibat aktivitas ilegal seperti spamming, maka efeknya akan menimpa ke satu segmen IP tersebut, dan tidak hanya ke satu IP saja. Maka demi kemaslahatan umat bersama, DigitalOcean mengijinkan untuk akses ke SMTP server hanya menggunakan IPv4.

Bagaimana solusinya? Tentunya menonaktifkan fitur IPv6 di droplet bukanlah sebuah solusi yang baik. Dari hasil pencarian, saya menemukan solusi dengan mengedit sebuah file di Ubuntu 16.04 yang saya gunakan, tepatnya di file /etc/gai.conf.

Silakan buka file /etc/gai.conf menggunakan akses sudo, kemudian cari skrip berikut

# precedence ::ffff:0:0/96  100

Anda cukup menghapus tanda # pada baris tersebut sehingga menjadi

precedence ::ffff:0:0/96  100

Perubahan di atas artinya meminta droplet untuk mengutamakan menggunakan IPv4 untuk terkoneksi ke suatu server, dan ini bertujuan supaya droplet mengakses SMTP Gmail menggunakan IPv4.

Langkah selanjutnya adalah tinggal melakukan restart pada droplet, dan seharusnya sekarang WordPress tidak memerlukan waktu yang lama lagi untuk mengirim email.

Setting SMTP Gmail pada WordPress di DigitalOcean

Saya adalah web developer yang hampir selalu menggunakan WordPress untuk membangun website. WordPress menawarkan kemudahan konfigurasi dan memungkinkan untuk menambahkan fitur hanya dengan menginstall plugin. Apabila saya memerlukan kebutuhan yang spesifik, barulah kemudian saya membuat skrip yang bisa dengan mudah terintegrasi dengan WordPress. Banyaknya fitur dan kemudahan untuk mengembangkan di WordPress, membuat saya selalu menjadikan WordPress sebagai pilihan pertama.

Saya paham, WordPress masih dianggap sebagai blog platform. Jadi seringkali saya dapat komentar dari calon klien, “Kok pakai WordPress? Pakai CI dong, pakai Laravel atau Yii dong”. Percayalah, semua framework itu hanyalah alat (tools), tergantung siapa yang meracik. Saya cukup percaya diri untuk membangun website menggunakan WordPress sekaligus  bisa mengoptimasi dari sisi performa dan keamanannya.

Oke, kembali ke judul.

Sudah sejak tahun 2012 saya tidak menggunakan layanan web hosting untuk meletakkan website saya atau klien. Saat ini saya menggunakan layanan cloud hosting dari DigitalOcean dengan alasan harga yang lebih murah dan lebih bebas untuk melakukan optimasi.

Apabila dulu pernah mendengar mengenai VPS (Virtual Private Server), maka cloud server adalah teknologi yang lebih maju dari VPS karena menawarkan lebih banyak fitur. Namun demikian, jika ingin menggunakan keduanya, setidaknya harus memahami dasar-dasar networking, operating system, dan keamanan sistem. Karena nanti kita hanya akan mendapatkan sebuah server yang masih kosong, lalu kita harus menginstall dan mengkonfigurasinya sampai siap untuk digunakan.

Masalah yang biasa dihadapi oleh pengguna awal WordPress di cloud server adalah, tidak bisa mengirimkan email. Ini pasti terjadi, karena servernya belum dikonfigurasi untuk dapat mengirim email. Jika mencari tutorial untuk bisa mengirim email menggunakan cloud server, pasti akan mendapatkan tutorial yang cukup mengerikan. Karena pasti akan diminta untuk menginstal mail server, dan ini tidak mudah.

Keuntungan menggunakan WordPress, saya cukup menginstall sebuah plugin saja, namanya Easy WP SMTP. Plugin ini berfungsi untuk melakukan relay ke SMTP server yang dituju, kemudian emailnya akan dikirim oleh SMTP tersebut.

Bingung?

Jadi begini, Email terbagi menjadi 2 layanan, yaitu layanan penerimaan dan layanan pengiriman. Untuk layanan penerimaan akan dilayanai oleh POP3 atau IMAP, kemudian untuk layanan pengiriman akan dilayani oleh SMTP.

Idealnya, server yang ingin bisa menangani email harus menginstal 2 layanan tersebut, misalnya POP dan SMTP sehingga nanti servernya bisa menerima dan mengirim email. Tapi masalahnya, proses instalasi dan konfigurasinya cukup ribet, apalagi untuk orang awam. Belum nanti jika harus memperhatikan keamanan, performa, dan kapasitas penyimpanan.

Nah, plugin Easy WP SMTP ini akan melakukan relay, atau meneruskan pesan yang seharusnya dikirim oleh server kita, menuju ke SMTP server yang ada di luar. Misalnya adalah SMTP Gmail. Jadi kita tidak perlu lagi menginstall mail server.

Saya yakin, Anda memiliki akun Gmail. Apalagi jika Anda punya Smartphone Android. Itu sudah jadi modal yang cukup untuk mulai mengkonfigurasi plugin supaya dapat terhubung dengan SMTP Gmail, dan akhirnya WordPress dapat mengirimkan email menggunakan akun email Anda.

Pertama, tambahkan plugin Easy WP SMTP melalui Dashboard WordPress Anda, plugin ini sudah tersedia di repository plugin dan bisa Anda dapatkan secara gratis. Silakan aktifkan plugin setelah Anda menginstalnya.

Sebelum mengkonfigurasi plugin, Anda harus melakukan sedikit perubahan pada akun Gmail Anda, yaitu dengan memperbolehkan penggunaan aplikasi yang dianggap kurang aman. Silakan kunjungi halaman Less Secure App untuk mengaktifkan opsi yang ada disana. Anda dapat mempelajari maksud dari fitur ini atau menonaktifkan fitur ini kapanpun.

Gmail memiliki aturan yang cukup ketat dalam menjaga penggunanya, terutama dalam membatasi penggunaan aplikasi yang dianggap tidak aman. Ada banyak kriteria yang ditetapkan oleh Gmail supaya aplikasinya dianggap aman, Easy WP SMTP tidak termasuk dalam kriteria tersebut. Namun bukan berarti kemudian nanti website kita jadi rentan, karena kriteria tersebut ditujukan untuk hal lain dan tidak berhubungan dengan kebutuhan pengiriman email.

Setelah Anda mengaktifkan opsi Less Secure App, selanjutnya adalah membuka halaman konfigurasi plugin WP Easy SMTP. Terdapat beberapa konfigurasi yang perlu Anda isi, silakan ikuti panduan berikut:

  • From Email Address: masukkan alamat Gmail Anda.
  • From Name: masukkan nama Anda.
  • SMTP Host: smtp.gmail.com
  • Type of Encription: TLS
  • SMTP Port: 587
  • SMTP Authentication: Yes
  • SMTP Username: masukkan alamat Gmail Anda seperti di kolom pertama
  • SMTP Password: masukkan password Gmail Anda
  • Klik Save

Selanjutnya, lakukan pengujian dengan scroll ke bagian Testing & Debugging Settings di bawah. Isikan kolom-kolom tersebut dengan alamat email Anda. Apabila Anda mendapatkan kiriman email dari alamat Gmail yang telah disetting sebelumnya, maka konfigurasi berhasil dan WordPress telah dapat mengirimkan email.

Apabila saat pengujian, Anda merasa pengiriman email terasa lambat. Saya sarankan Anda mengikuti tutorial saya berikutnya untuk mengatasi lama pengiriman email menggunakan SMTP Gmail di DigitalOcean.

One Step Closer

Iya, hari Minggu tanggal 12 Maret 2017, saya melamar pasangan saya. Prosesi lamaran yang sederhana, namun bagi kami berdua, sangat bermakna. Mengingat perjuangan kami untuk mencapai ke tahapan ini tidaklah mudah, banyak sekali tantangan yang sudah kami hadapi dan lalui bersama. Komunikasi yang kami bangun merupakan pondasi yang bisa membuat kami bisa sejauh ini, yang sekali lagi, ini tidak mudah.

Ke depannya, komunikasi akan terus ditingkatkan, tidak hanya antara kami berdua, namun juga ke seluruh keluarga besar. Kami percaya, bahwa membangun keluarga itu berawal dari komunikasi yang bermakna.

Meningkatkan Standar Itu Tidak Mudah, Tapi Bisa Dilakukan

Hai, Ini sudah bulan ketiga di tahun 2017. Sudah melakukan perubahan apa?

Tahun 2017 bagi saya diawali dengan hal-hal yang luar biasa, karena banyak sekali perubahan yang terjadi di sekeliling saya. Terutama dari hal pekerjaan dan kehidupan pribadi. Mungkin sekali-kali saya cerita sedikit ya, biar blognya tidak berisi review dan artikel sok tau terus hahahaha.. Lagipula saya sudah jarang menulis lagi, harus mulai dibiasakan supaya kualitas tulisannya membaik.

Oke, saya mulai dari pekerjaan. Mulai bulan November 2016 lalu saya bergabung ke sebuah perusahaan digital di daerah Kemang, Jakarta Selatan sebagai Senior Engineer. Tugas saya sederhana; yaitu mengumpulkan tim baru, menentukan job-description, menyusun jadwal, dan mengatur ritme pekerjaan. Ini perlu saya lakukan karena perusahaan tersebut baru saja ditinggal oleh semua engineers, dengan kondisi hampir semua aplikasi memiliki bug.

Kebetulan saya kenal baik dengan pendirinya, jadi sebagai kawan yang baik, maka saya mengiyakan tawaran untuk membantu perusahaan sekalian belajar hal baru.

Apakah prosesnya mudah? Tidak! Sama sekali tidak mudah. Selama 2 bulan pertama saya stress dengan banyaknya tanggung jawab yang diemban, kemudian mengetahui bahwa semua aplikasi yang berjalan menggunakan bahasa yang berbeda dengan yang saya kuasai. Namun demikian, saya harus bertahan dan membuktikan bahwa saya bisa diandalkan. Akhirnya, mulai Januari 2017, tim baru mulai terkumpul dengan kualitas yang jauh lebih baik daripada sebelumnya. Saya bangga dan sangat menghormati kepada tim baru ini. Total engineer hanya 7 orang, namun yang fulltime di kantor hanya 1 orang. Sisanya? Remote!

Yup, ini tantangan. Semua engineer yang remote statusnya Senior Engineer dan hanya ngantor beberapa hari saja. Waktunya berbeda-beda, mulai dari hanya 1 hari (saya) hingga ada yang 3 hari, bahkan ada yang saya perbolehkan tidak perlu datang ke kantor. Disinilah tantangan untuk mengatur ritme pekerjaan diuji. Untunglah sebagai akademisi saya dekat dengan berbagai macam resources, saat ini saya sedang menguji salah satu metode di Agile Methodology sebagai fundamental mengatur pekerjaan di kantor. Meskipun awalnya terseok-seok, namun pada akhirnya semuanya dapat diatasi dengan baik. Yang penting komunikasi yang baik terus terjalin meskipun terpisah dengan jarak, dan disinilah saya mendapatkan pengalaman sebagai Project Manager.

Selain bekerja di Kemang, saya juga mengantor di salah satu perusahaan fitness di daerah Tanah Abang. Di kantor ini sebetulnya tidak banyak yang bisa saya lakukan, karena status saya ditransfer kesini semenjak kantor saya di Cipete ditutup. Kebetulan kantor Tanah Abang merupakan sister company dengan kantor Cipete sehingga saya bisa dipindah kesini. Perubahan pekerjaan sangat terasa, dari yang tadinya bekerja di Digital Agency, sekarang harus ngantor di corporate atau yang sering disebut juga sebagai Brand People. Disini semua sistem sangat berbeda dengan yang saya kuasai, juga berbeda bahasa dengan di kantor Kemang.

Jadi, saya ngantor di 2 tempat selama seminggu namun tidak menguasai semua bahasanya. Lalu saya kemudian menyadari, bahwa kemampuan Bahasa Pemrograman tidak bisa dijadikan andalan, namun kemampuan algoritma dan logika yang benar-benar diperlukan. Jadi, bukan berarti saya enak-enakan ngantor, digaji, tapi tidak melakukan apa-apa ya. Hal-hal yang saya perlu lakukan ternyata dipaksa untuk lebih tinggi lagi. Susah? Pasti! Tapi mulai awal Januari 2017 ini semua masalah mulai dapat diatasi, hal-hal yang tadinya saya rasa tidak mungkin saya lakukan, sekarang sudah dapat saya lakukan dengan nyaman. Disini adalah kantor yang sangat menyenangkan, namun kontrak saya di Tanah Abang berakhir di bulan Maret 2017 ini.

Sayangnya, ketika saya merasa sudah memiliki cukup bekal untuk dibagikan ke mahasiswa, terjadi perbedaan visi dengan institusi tempat saya mengajar. Hal ini cukup merugikan saya tentunya dan menghabiskan energi yang tidak sedikit, karena sudah berlangsung sejak 2015. Ini merupakan perubahan yang paling ekstrem di tahun 2017 ini, maka sudah saatnya saya mencari institusi yang memiliki kesamaan visi.

Saya percaya, bahwa mahasiswa Ilmu Komputer perlu dikenalkan teori dan praktikal secara berimbang dan up-to-date. Namun, terdapat hasil penelitian yang mengatakan bahwa, apapun yang kita pelajari di tahun pertama kuliah Teknik, akan basi di tahun ketiga. Maka, sebagai pengajar juga berkewajiban untuk mengejar ketertinggalan tersebut, dan itu mau-tidak-mau harus berani terjun ke industri untuk melihat sendiri bagaimana perkembangannya.

Baiklah, sudah cukup membahas mengenai pekerjaan.

Tahun 2017 ini saya merasa banyak perubahan di sekeliling dan di diri sendiri. Selain memiliki kelebihan, tentunya saya juga memiliki kelemahan. Salah satu kelemahan saya adalah, saya sangat ekspresif, sehingga jika saya menyukai sesuatu, maka tidak segan untuk mengutarakan. Begitu juga sebaliknya, bila saya tidak setuju atau tidak berkenan pada sesuatu hal, maka saya tidak segan menunjukkannya. Ini ternyata membuat pikiran saya menjadi lebih ringan, karena saya bisa fokus terhadap pekerjaan dan pasangan.

Iya, saya akan melamar pasangan saya dalam 5 hari ke depan.

Doakan saya ya…

 

Selamat Idul Adha 1437H

Yeaaayy… Lebaran Idul Adha tahun ini bisa saya rayakan di Semarang, tanggalnya pas banget di long weekend, tapi nanti malam sudah harus berangkat ke Jakarta lagi hahaha.. Alhamdulillah nanti malam dapat kereta Argo Muria Tambahan jam 18:55 yang dijadwalkan sampai Gambir jam 1 pagi, jadinya harus persiapan tidur di stasiun sampai waktunya Subuh sebelum melanjutkan perjalanan ke Istiqlal.

Idul Adha identik dengan kurban, Alhamdulillah tahun ini bisa menunaikan kurban meskipun tidak membeli kambing secara langsung, tapi melalui layanan marketplace secara online dan nantinya daging kurban akan disalurkan langsung melalui jaringan mereka. Saya membaca cukup banyak pro-kontra mengenai model kurban semacam ini, kalo saya sih yang penting saya sudah kasih amanah dan saya mempercayai mereka.

Karena nanti malam sudah harus berangkat, maka kegiatan sate-menyate untuk sementara ditunda dulu, sekarang upload gambar satenya dulu saja.

Akhir kata, selamat Idul Adha 1437H. Semoga makna berkurban dapat mengilhami kita semua (saya pada khususnya) dalam menjalani kehidupan dan bisa membuat kita menjadi orang yang lebih baik. Aamiiin.