0

SUPER JUNIOR D&E(슈퍼주니어 D&E)- Watch Out & DANGER(땡겨)

Lagunya c ga terlalu cocok Ama telinga gw.. tapi.. hahaha.. yah, begitulah.. 😂😆🤩😍

Advertisements
0

Menggunakan Kalender Hijriah di DBMS Oracle

Pernah terpikir cara menggunakan (menyimpan) nilai kalender Hijriah di database Oracle?! Hal itu yang akan kita bahas sekarang! Dan… seperti biasanya, tulisan yang sifatnya teknis, pastinya bukan terinspirasi dari pengalaman pribadi sendiri, dan tentu saja solusinya bukan dari saya sendiri juga 😀

Buat yang udah nanyain, thanks banget. Ini dia jawabannya. Dan… karena si penanya ceritanya seorang pelajar untuk jadi sql developer profesional, di sini ga dibahas tentang front-end kayak date picker dan sejenisnya. Levelnya di CLI-nya Oracle yah…

Faktanya, penyimpanan tanggal di database Oracle, selalu menggunakan format Date. Jadi, baik itu hijriah atau masehi, penyimpanannya menggunakan format date di Oracle. Perbedaannya terdapat pada setting dari NLS_CALENDAR yang digunakan. NLS merupakan kependekan dari “National Language Support”. Dikutip dari situs Oracle, kira2 bilangnya gini:

Arsitektur NLS dari Oracle memungkinkan kamu untuk menyimpan, mengolah, dan mengambil data dalam native languages. Hal ini meyakinkan beberapa kesepakatan dari database utilities, pesan error, urutan sorting, tanggal, waktu, kurs mata uang, numeric, dan calendar otomatis mengadaptasi dari native language dan settingan locale.

Oracle–https://docs.oracle.com/cd/F49540_01/DOC/server.815/a67789/ch1.htm

Kalau dianalogikan, ini kayak setting HP Android kamu. Kalau setting HP Android kamu bahasa Indonesia, otomatis, pas buka aplikasi Youtube, menu yang ditampilkan akan berbahasa Indonesia, bahkan kontennya yang bahasa asing juga ngikut pakai bahasa Indonesia (kalau udah ada versi translasinya). Tapi, kita bukan bahas Android di sini yah… kita bahas Oracle. Tadi tuh cuma analogi yang gampang aja (menurut saya).

Jadi… Langsung ke contoh ya…

Mengambil sysdate dari Oracle dalam format Hijriah.

SELECT TO_CHAR (SYSDATE, 'dd-mm-yyyy', 'nls_calendar=''arabic hijrah''') AS TGL_HIJRAH 
FROM DUAL;

Syntax di atas, artinya, ambil tanggal dari system dengan system, dan lakukan perubahan setting dengan NLS mengacu pada mode Hijrah (Arabic Hijrah). Perhatikan cara tulis NLS-nya yah. Banyak yang salah pas sekali lihat soalnya. Kalau kamu mau coba pakai copy paste, itu lebih baik.

Kalau mau melihat nama bulannya, bisa pakai masking format ‘dd-month-yyyy’, tapi nls_calendar-nya pakai English Hijrah aja. Biar karakternya muncul. Soalnya pas saya coba pakai versi Arabic Hijrah,karakter/tulisan untuk bulan-nya ga keluar. Mungkin karena laptop saya belum “disyahadatkan”, jadi karakternya ga tampil pakai tulisan arab :D. Ini contohnya:

SELECT TO_CHAR (SYSDATE, 'dd-month-yyyy', 'nls_calendar=''english hijrah''') AS TGL_HIJRAH
FROM DUAL;

Sebagai catatan, SYSDATE bisa juga bentuk tanggal dari yang kamu tentukan sendiri. Contohnya,

SELECT TO_CHAR (TO_DATE ('07-04-2019', 'dd-mm-yyyy'), 'dd-month-yyyy', 'nls_calendar=''english hijrah''') AS TGL_HIJRAH
FROM DUAL;

Ngelihat contoh di atas, kamu pasti bisa menyimpulkan kalau masehi bisa diubah jadi hijrah, maka seharusnya kamu bisa ubah bentuk hijrah jadi masehi. Dan… yak! Insting kamu benar! Tapi pastikan session kamu lagi dalam mode hijrah. Ini contohnya:

alter session set NLS_CALENDAR='Arabic Hijrah' ;

SELECT TO_CHAR (TO_DATE ('01-08-1440', 'dd-mm-yyyy'), 'dd-month-yyyy', 'nls_calendar=''gregorian''') AS TGL_MASEHI
FROM DUAL;

Bisa dilihat ya, ada command untuk mengubah session ke mode Hijrah (bisa Arabic Hijrah atau English Hijrah) dengan keyword ALTER. Hal ini memastikan, kita dalam mode Hijrah, supaya input yang diterima diyakinkan dalam bentuk calendar hijriah.

Menggunakan tanggal Hijrah di tabel tertentu

Pertama, buat tabel “person” dengan 3 fields: id, name, birthday; dan setelahnya dimasukkan 1 data ke dalam tabel “person”. Pastikan NLS_CALENDAR dalam mode “hijrah”.

CREATE TABLE person(
	id int PRIMARY KEY,
	name VARCHAR2(30),
	birthday DATE
);

alter session set NLS_CALENDAR='English Hijrah' ;
INSERT INTO person VALUES (1,'Arby',TO_DATE('03-04-1414','dd-mm-yyyy'));

Maka, hasil dari query select-nya:

Dan kalau kamu mau diubah lagi ke dalam mode Gregorian:

Intinya, kamu ga perlu melakukan perubahan apapun c di syntax dasar kayak insert, select, update dll. Oracle udah mengubah itu semua untuk kamu. Saya ga tau c yah algoritma perhitungan konversinya gimana. Tapi, yaaa.. kayaknya c percaya2 aja sama hasilnya. Soalnya hasilnya samaan sama di konversi web online. Begitulah… ada tambahan dan koreksi?! Atau pertanyaan?? Bisa ditulis di kotak komentar yah.

Ahhh yaaa! Satu lagi, hal ini ga berlaku di MySQL/MariaDB. Untuk DBMS itu, biasanya yang dilakukan melakukan konversi di bahasa web-nya langsung, kayak di PHP atau pakai plugin Keith Wood. Saya sendiri belum pernah nyoba, tapi yah… gitu c jawabannya dari searching2 kemarin.

Moga bermanfaat! -acung jempol ala rock lee-

Referensi:

Note: tulisan ini, tulisan request-an dari seseorang yang bakal publish tulisan ini di suatu tempat “resmi” yang (katanya) bakal terbit bulan depan. Personally, I don’t know if he will have published it next month or not. But… tenang aja, tulisan ini legal kok buat di-publish ama kita berdua. Da kita udah sepakat ga pa pa.

0

State of the art

Satu pelajaran berharga buat saya.. and i learned it in the hard way..

Jadi, buat kamu yang lagi belajar, disuruh buat nyari state of the art dari sebuah topik.. yang dimaksudkan itu nyari hal kekinian dari topik itu, terus kalau disuruh bikin proposal state of the art dari sebuah topik, pastiin ada 2 hal yang kamu tulis: kontribusi & juga posisi pengajuan terhadap peta-pengetahuan-sederajat.

Gitu aja.. dan buat kamu yang karena-baru-pertama-kali-dengar-istilah-itu yang bikin kamu nyari bab bernama state of the art dari topik tertentu dari sebuah buku.. atau malah jadi nulis apa arti state of the art.. yaaaa.. kamu ga sendiri c yah, tapi pastiin itu kesalahan terakhir kamu terkait kata tersebut.

Cheers.. good luck, guys!

0

ジワるDAYS / AKB48[公式]

Single ke 55 dari AKB48 (jangan tanya saya 54 lainnya).. dengan Sashihara Rino jadi center. Dan.. Yap, ini single terakhir buat Sashi-chan. Konsep videonya bertabur kostum dari AKB48. Seolah kayak pengen ngasih tau, Sashi tuh udah lama banget di 48 grup dengan segala kontroversi plus kenangan tentang dia.

Berhubung ini tuh yang terakhir buat Sashi-chan, efek yang muncul kayak denger/lihat MV “kamulah melody”. Sedih2 seneng ga jelas gitu. Yah.. gitu lhah. Sisi sentimental dari seorang pengamat/fans gitu kayaknya.

0

NestedScrollView VS ScrollView

Ceritanya, beberapa hari terakhir saya main2 ama layar yang bisa di-scroll di Android. Berbekal pengalaman training dari beberapa tahun lalu, saya tau musti pakai Scroll View. Dan kebetulan, pas kemarin ngecek dokumentasi dari scroll view, saya menemui kenyataan bahwa ada yang namanya NestedScrollView. Saya ga tau ini adanya sejak kapan, tapi ternyata yang disarankan justru menggunakan NestedScrollView, dan bukan ScrollView. Menurut stackoverflow, pebedaan mendasarnya adalah:

  1. NestedScrollView digunakan jika ada view yang harus di-scroll (digulir) di dalam view lain yang juga harus di-scroll.
  2. NestedScrollView compatible dengan CoordinatorLayout.

Perbedaan mendasar bisa dilihat dari hal di atas, tapi secara behaviour pun, ternyata ScrollView sama NestedScrollView punya sifatnya masing-masing. Saya ga bisa klasifikasikan ini sebagai kelebihan/kekurangan, jadi kamu bisa nilai sendiri nantinya.

Jadi… perbedaan behaviour yang pertama apa? Jawabannya… ScrollView akan nge-scroll balik ke focus edit text yang terpilih. Mungkin kamu bingung, jadi di sini akan saya perlihatkan screen layar saya dengan aplikasi JustJava dari Udacity.com pelajaran 3B (kamu musti sign-in dulu buat liat materinya).

ScrollView – Screen Scroll Back

Kalau kamu lihat gif di atas, kamu mungkin bisa tau kalau tiap kali button di-klik, maka layar kembali ke-scroll ke atas. Hal ini terjadi karena di layar, ada edit text yang sedang dalam kondisi “focus” (bisa dilihat dari cursor yang berkedip). ScrollView punya kecendrungan buat nampilin edit text yang focus itu. Kalau edit text yang lagi focus ini di dekat tombol, mungkin ga bakal keliatan pengaruhnya di layar. Tapi kalau udah pakai contoh kasus seperti di atas, edi text di paling atas layar, sedangkan button di paling bawah, ini bikin frustasi. Oh iya, untuk informasi. Hal ini ga akan terjadi kalau kamu pakai NestedScrollView. Untuk mengatasi hal di atas dari ScrollView (ceritanya kamu tetap harus pakai scroll view), maka kamu perlu menambahkan kode untuk menambahkan focus langsung di scroll view-nya. Caranya:

ScrollView view = (ScrollView)findViewById(R.id.scrollView);
view.setDescendantFocusability(ViewGroup.FOCUS_BEFORE_DESCENDANTS);
view.setFocusable(true);
view.setFocusableInTouchMode(true);
view.setOnTouchListener(new View.OnTouchListener() {
    @Override
    public boolean onTouch(View v, MotionEvent event) {
        v.requestFocusFromTouch();
        return false;
    }
});

Kode di atas, saya ga bisa jelasin lebih banyak. Jadi bisa dilihat sendiri langsung di sumbernya ya. Yap! Kodenya pakai Java. Kalau kotlin, belum tau.. belum move on eung. Segera deh.

Oke… itu behaviour dari ScrollView yang ga dimiliki oleh NestedScrollView. Sekarang, sebaliknya. Hal yang dimiliki NestedScrollView. Sifatnya, NestedScrollView gak akan bisa digulir kalau keyboard lagi dalam mode open. Hmmm… mungkin baiknya kamu lihat dulu kondisinya kayak gimana dari gambar di bawah ini.

Kondisi di atas merupakan kondisi normal dari ScrollView. Pas waktu keyboard lagi dalam kondisi terbuka, layar bisa di-scroll. Tapi, kondisi di atas ga akan bisa kamu temui di NestedScrollView. Bisa kamu cobain deh. Pas keyboard nutupin layar, kamu cuma bisa nge-scroll si layarnya sampai jarak tertentu yang udah kamu atur di layar. Intinya, kalau dari awal, layarnya emang udah tampil sepenuhnya di layar, layar ga akan nge-scroll. Walaupun ada view yang ketutup keyboard. Solusi dari hal ini, bisa kamu lihat dari pertanyaan di stackoverflow ini. Tambahkan android:windowSoftInputMode=”adjustResize” di manifest kamu untuk bagian activity.

<activity android:name="YourActivity" 
          android:windowSoftInputMode="adjustResize" />

Okeh… begitulah.. padahal cuma nulisin hal sepele yah, tapi jadi panjang banget gini. Tapi… Ya sudah lhah yah… Selamat bermain-main dengan view yang bisa digulir… btw, untuk yang mau bermain-main sama coordinator layout dan nested scrollview, bisa lihat link berikut. Keren banget lhoh.

0

Attached

Kalau kamu merasa terlalu terikat secara emosional ke pihak lain, hati2 aja ada ikatan lain yang bisa jadi terlepas karena itu. Apalagi kalau kamu belum “dewasa” secara emosional, ber-ego tinggi dan ga bisa (tepatnya menolak, plus ga mau) untuk didebat. Yah.. hati2 aja c.

Karena.. kamu bakal membela orang yang terikat secara emosional ke kamu. Berargumen habis2an, dan akhirnya akan ada orang yang terluka. Kamu pastinya ga bakal peduli, karena toh udah sibuk sama perasaan terluka dan ga terima. Bersikap seolah heroic, mengalah untuk menenangkan diri.. bangga akan diri sendiri.. padahal kamu melukai. Hmmm.. hati-hati aja c, itu pesan saya, kalau kamu masih mau dengerin nasihat orang lain.

Wajar kalau ini tentang ikatan darah.. tapi.. ada hal konyol yang lebih dari ini.

Persahabatan harus menemui akhirnya ketika ada idol yang dibela. Keluarga jadi menemui sengketa karena ada pilihan politik yang harus “dijaga”. Dan rusaknya hubungan kolega sesama pekerja karena klien yang yah.. gitu lhah. Seringkali, kasus ini muncul karena ego yang tinggi, hati yang terluka, kata maaf yang tidak pernah terucap, dan pengakuan kebenaran yang selalu ada.

Faktanya, klien itu hanyalah klien, mereka akan “pergi” pada saatnya. Sedangkan hubungan kolega kamu bertahan selamanya. Pilihan politik akan berganti pada masanya. Sedangkan darahmu selalu terikat hubungan keluarga. Dan idol.. well, idol itu untuk dikenal, dan bukan mengenal. Apa yang kamu dapat selain kepuasan sesaat?! Lazim? Entah..

Sepertinya kecenderungan bergantung untuk terikat dengan hal2 sementara ini sudah menjadi mayoritas daripada kondisi sebaliknya. Begitulah.. ga masalah c emotionally attached ke sesuatu yang kamu pilih. Tapi kamu musti tau kalau ada ego yang harus kamu atur, dan ada suatu prioritas yang harus kamu tetapkan.

Gitu aja..

0

Naik darah

Seminggu belakangan (which is 3 hari terakhir), bawaannya mau naik darah aja. Terutama sama kolega plus rekan kerja. Walaupun sebenarnya, ini bukan tentang mereka. Ini tentang saya sendiri dan apa yang ada dalam pikiran saya.

Udah dari lama, saya sadar banget kalau lingkungan saya dipenuhi orang-orang berfikiran sempit dengan ego di atas rata-rata. Beberapa di antaranya bahkan terkesan sulit diatur dan menganggap atasan-tak-tersentuh, ga lebih dari seorang yang bisa dimusuhi secara massal untuk mempererat persaudaraan sesama staff. 😶😶

Tapi semua itu tertutupi karena saya masih melihat kalau mereka care kepada sesama, masih punya musuh yang sama.. dan yah.. masih mau ngebantu saya kalau lagi kenapa2. Intinya ada sisi baik yang bisa selalu saya lihat.

Dan beberapa hari terakhir, dimulai dari Kamis sampai kemarin.. Saya jadi melihat mereka sebagai sosok berbeda. Penuh dengan keluhan, memikirkan bidang masing-masing, berusaha menang atas pendapat sendiri. Juga memuji diri sendiri berlebihan, dengan menyalahkan orang lain yang tidak sependapat dengan sindiran. Well, saya ga tahan dengan segala sindiran dan keluhan itu. 😞

Dan lagi-lagi, ini bukan tentang mereka.. ini tentang saya dan pikiran ini. Mungkin saya butuh hiburan aja yah.. sepertinya, saya butuh tidur mulai dari jam 9 malam ini sampai sebulan ke depan buat memperbaiki mood. 😔

Ok.. off lagi lhah berarti. 😴

0

Ini.si.a.tif = sulit (?!)

Inisiatif adalah hal yang sulit buat saya secara pribadi.. kalau kamu bertanya kenapa??.. jawabannya karena.. yah, kita hidup di jaman penuh orang2 judgemental. Nge-judge mental2in harapan kamu.

Ketika setiap orang bertindak, motivasinya pasti beda-beda kan yah. Ada yang sekedar karena wajib (daripada kena dosa–atau minimalnya Omelan lhah), ada yang menganggap ibadah, ada yang memang ingin mengambil keuntungan.. dan ada juga yang mengharap pujian karena lagi dilihat kecengan.

Buat saya, inisiatif timbul karena faktor terakhir yang udah ditulis di atas.. yaitu mengharap pujian dan ingin dilihat. Sebenarnya ga harus dipuji. Cukup dilihat, dan dikagumi. Cukup. Ga lebih, ga kurang. Berawal dari ini.. inisiatif bagi saya, adalah motivasi untuk bekerja sebaik mungkin karena merasa diperhatikan. Hmmm.. ini mirip kayak murid-murid yang berusaha terlihat sok serius saat mengerjakan soal ujian pas lagi dilihat sama guru.. atau pengikut tarekat tertentu yang musti pajang foto gurunya supaya ibadah lebih khusu’.

Terus sulitnya inisiatif ini di mana?! Mungkin kamu bertanya-tanya gitu.. dan jawabannya terletak dari hal penyebab dari judul tulisan ini. Bingung? Pasti bingung! Yuk kita runut bareng..

Kita bicara tentang inisiatif. Inisiatif adalah motivasi. Motivasi ini.. menyimpan harapan. Harapan ini lhah yang bikin sulit.. karena harapan itu terkait dengan tindakan orang lain. Kamu punya motivasi supaya dilihat, dikagumi, dan dipuji.. maka berharap untuk dilihat orang lain, dikagumi orang lain, dan pastinya dipuji orang lain. Ada tindakan orang lain dalam pikiran kamu. Ketika harapan itu tidak terjawab.. yah.. selesai lah tindakan kamu. Ini tuh mirip kayak kamu yang nganggap kalau kamu udah berbuat baik, tapi ternyata buat orang lain, kami itu jahat! Terpuruk, dan kecewa.. semua usaha terlihat sia-sia dan tanpa hasil.

Beberapa dari kamu mungkin ada yang bilang “ga gitu juga keles! Lebay banget!”.. memang harapan itu ada yang terjawab dengan menjadi kenyataan, ada juga yang cuma jadi angan-angan aja. Tapi satu yang musti kamu ingat.. ketika hal tersebut adalah bagian dari harapan terhadap pihak lain, dan bukan diri sendiri.. artinya kamu mencoba mengatur dia bertindak. Paling ga awalnya gitu dalam benak kamu. Padahal.. pihak lain mempunyai tindakan mereka sendiri secara sadar yang ga bisa kamu atur. Ketika pengaturan yang udah kamu set di awal dalam pikiran kamu karena motivasi tadi.. dan ternyata yang terjadi tidak sesuai pengaturan awal. Pasti kamu jadi sedih. Yap, harapan kamu mental.. sedih pasti.. Minimal kecewa.. iya kan..

Well, tapi faktanya itu wajar. Wajar banget. Itulah kenapa inisiatif itu sulit. Tapi apa iya sesulit itu?! Jawabannya tergantung.. efeknya kualitas, apa kuantitas. Kalau kuantitas, itu ga lebih mirip artis yang punya hater. Move on mah gampang selama masih ada yang dukung. Tapi kalau kualitas, lain cerita.. ini tuh kayak insiatif kasih ngasih bunga-mawar-permintaan-maaf-pake-go-send ke kecengan, tapi ternyata tanggapannya biasa aja.. karena kecengan kamu ga suka bunga. Dia sukanya ke kamu, kenapa kamu ga ngerti2 juga.. gitu deh.

Singkat cerita.. inisiatif itu beneran sulit kalau motivasi kamu terkait sikap orang lain. Kalau kamu udah nyampe di adult life.. kamu musti ngerti banget kalau kamu ga bisa mengatur, atau bahkan mengubah orang lain. Kamu cuma bisa membentuk diri sendiri dan menginspirasi orang lain. Jangan samain sama anak kecil ya.. anak kecil itu terinspirasi dari lingkungan. Mereka belum tau benar-salah. Makanya orang tua dibilang bisa ‘ngebentuk’ karakter anak.. karena orang tua lah yang mereka selalu perhatikan untuk menginspirasi mereka. Itupun kalau anak2 itu tinggal sama orangtuanya ya.. ada kasus khusus, tapi itu ga bisa kita generalisir. Namanya juga kasus khusus.

Dan yah.. gitu ajah deh. Lagi2 tulisan ga jelas lagi. Arrgghh.. kapan c blog ini bisa berhenti nulis tulisan ginian 😑 hhh.. ya sudahlah lah ya. Mari disudahi saja daripada makin ga jelas. Selesai!

0

Kejadian

Bogor. Siang. Hari kerja. Jam istirahat. Perempatan. Lampu merah. Berhenti. Lampu hijau. Kecelakaan motor. Tunggal. Oleng? Tidak seimbang? Jatuh. Mobil depan. Berhenti. Mobil belakang. Klakson. Bertubi-tubi. Mungin tidak tau. Atau tidak mau tau. Fakta. Terlihat. Tidak mungkin tidak tahu.