Tujuh Kebiasaan Orang Efektif – Proaktif vs Reaktif

Ada satu buku karangan Covey “The 7 Habits of Highly Effective People” yang cukup menarik. Sebelum masuk ke apa saja kebiasaan-kebiasaan tersebut, dibahas sikap yang baik, proaktif atau reaktif.

Reaktif

Mungkin ini sikap alamiah kita yang merupakan bawaan dari unsur hewan. Reaktif di sini adalah respon terhadap kondisi yang menimpa. Misalnya diturunkan dari jabatan, maka reaksi di dalam hati misalnya: “pimpinan tidak mempercayai saya”, atau “ada orang yang memfitnah saya”, dan sebagainya.

Satu saran yang menurut saya sangat baik dalam bab itu adalah kita adalah makhluk yang bebas. Bebas di sini adalah bebas dalam menentukan sikap kita terhadap suatu keadaan. Apapaun yang terjadi, kita bebas memilih apakah bahagia atau kecewa. Memang kita tidak bisa bebas dari “circle of influence” diri kita. Kita mau tidak mau ikut aturan kerja kalau tidak tentu saja bisa dipecat. Tetapi kita juga bebas bersikap, berkarya, berinisiatif, dan karakter-karakter lain yang termasuk dalam lawan dari reaktif, yaitu proaktif.

Proaktif

Dalam buku tersebut dikisahkan sebuah kantor yang memiliki bos yang kurang bisa menciptakan suasana yang baik sehingga para bawahan cenderung bersikap reaktif. Pimpinan tersebut cenderung hanya menjalankan intruksi ke bawahan, harus begini, harus begitu, dan sejenisnya. Terkadang menyalahkan bawahan jika kurang baik hasilnya. Tapi ada satu bawahan yang bersikap proaktif. Dari pada berkata dalam hati, “bos kurang menghargai saya”, dia cenderung berkata, “Aku haru bisa menyelesaikan tugas secepatnya”, atau “aku harus bisa mengajak rekan-rekan menjadi tim yang kuat”, dan sejenisnya. Hasilnya ternyata bisa membuat kantor itu bertahan. Kalau dalam bahasa jaman now, mungkin orang proaktif tidak “baper-an”, aliash bawa-bawa perasaan. Sikap proaktif biasanya timbul karena istilah berikut.

End Mind

Sebenarnya ini istilah lain dari tujuan (goal). Orang yang sibuk belum tentu efektif. Terutama jika tidak mengetahui tujuan dari yang dikerjakannya. Jika mengetahui tujuan, seseorang akan tangguh, tidak begitu terpengaruh “circle of influence”, seperti misalnya kantor dengan seorang bos pada contoh kasus di atas. Jika tujuan suatu tim sepakbola adalah memenangkan turnamen, tidak ada yang mengeluh atau baper ketika dicadangkan oleh pelatih. Jika tujuannya ingin menjadi negara jadi maju, tidak akan mengeluh tidak terpilih jadi caleg, cabup, cagub, cawalkot, atau capres, termasuk simpatisannya juga. Perang kata-kata di medsos, cacian, hinaan dan sejenisnya, bagi orang yang proaktif tidak masalah selama tujuan utama selalu diingat, toh pilihan sikap ada di tangan kita dan kita bebas memilih apa sikap yang kita ambil, membalas dengan cacian juga, menumpahkan emosi, atau bersabar, tetap bersahabat, dan tetap bekerja sama membangun bangsa.

Referensi

Iklan

Kemajuan Teknologi Informasi India

Indonesia dan India sama-sama pernah dijajah. Jika Indonesia dijajah Belanda, India oleh Inggris. Namun tidak dapat dipungkiri kemajuan teknologi India mengungguli negara kita yang masih asyik bertengkar sendiri. Dari sisi waktu merdeka-nya, Indonesia sebenarnya lebih dahulu merdeka. Tapi mengapa hal ini bisa terjadi.

Tanggal 14 April 2018 yang lalu di acara pelantikan pengurus APTIKOM JABAR, Prof Iping sedikit membicarakan topik tersebut. Profesor penggagas berdirinya asosiasi perguruan tinggi informatika dan komputer (INFOKOM) sedikit bercerita.

Peran Mahatma Gandhi

Bapak bangsa India tersebut mengatakan di hadapan rakyatnya. Dia bertanya apakah bangsanya ingin seperti saat dijajah, ataukah ingin setara dengan sang mantan penjajahnya (Inggris)? Atau bahkan bisa menjajah balik, bukan dalam arti sesungguhnya, melainkan lewat ekonomi.

Untuk itu diperlukan empat tingkatan yang harus ditempuh India agar bisa setara dan mengimbangi negara penjajahnya dalam hal pendidikan dan pengajaran. Tanpa melalui empat tingkatan tersebut, India tidak akan bisa bersaing dengan Inggris.

Tingkat pertama adalah ketika mengajarkan apakah yang diajarkan sudah sesuai dengan semestinya. Misalnya ketika mengajarkan “algoritma” benar-benar sudah mengajarkan hal-hal yang perlu diajarkan. Di sini pentingnya konten. Berkembang pesatnya ilmu tentu saja menuntut pengajar untuk terus belajar dan mengembangkan materi pembelajarannya.

Berikutnya adalah tingkatan kedua dimana seorang pengajar harus mengetahui cara bagaimana membuat peserta didiknya mampu menyerap apa yang diajarkan. Harus dipastikan siswa memahami konsep yang benar. Metode belajar banyak dikembangkan saat ini, seperti Flipped Learning, Student Center Learning (SCL), pendidikan jarak jauh (PJJ), dan sejenisnya.

Tingkat ketiga jujur saja saya sedikit blank karena mengantuk. Apa yang diajarkan ke siswa semestinya berguna dan bermanfaat. Ajarkanlah apa-apa yang sekiranya berguna dan bermanfaat. Di jepang misalnya, mahasiswa IT tahun pertama (untuk tingkat sarjana) ada mata pelajarn keterampilan mengetik. Jadi harapannya para mahasiswa akan cepat dalam mengetik. Sehingga mempermudahkan mereka mengetik coding, membuat laporan dan sejenisnya. Tingkat keempat, seperti diutarakan oleh pembicara berikutnya, Prof Ucok, adalah level “ma’rifat”. Maksudnya adalah siswa diharapkan memiliki visi ke depan yang mampu beradaptasi dengan kondisi yang akan datang yang sulit diprediksikan saat ini. Bekal yang cukup diharapkan mampu digunakan oleh mahasiswa untuk menghadapi era yang belum diketahui saat ini.

Ketika merdeka, India segera mengelola institusi-institusi pendidikan dengan baik. Negara ini walaupun sudah mengarah menjadi negara maju masih banyak menghadapi masalah-masalah, seperti kemiskinan, kesenjangan dan sejenisnya. Jumlah SKS S1 di sana yang berjumlah 190 sks jauh melebihi negara kita yang di kisaran 150-an SKS (saya sendiri 160-an ketika di UGM dulu). Bahkan isi mata kuliahnya tidak seperti negara kita yang ada kewarganegaraan, agama, dan sejenisnya, mereka langsung ke Science. Memang ilmu sosial mereka kurang mendapat fokus dibanding ilmu pasti/alam.

Walau demikian, negara kita diprediksi ikut rombongan INDIA dan CHINA yang akan pesat perkembangannya di tahun-tahun yang akan datang, asalkan bonus demografi (lonjakan usia produktif) dapat tersalurkan dengan baik, yang lagi-lagi membutuhkan peran pendidikan untuk mempersiapkannya. Semoga tugas berat Ristek-Dikti dan Diknas dapat berjalan sesuai harapan.

Menormalkan Data Untuk Range Sempit

Beberapa literatur, seperti (Hagan, M. T., Demuth, H. B., & Beale 1997) merekomendasikan penggunakan normal Euclidis (Euclidean) untuk menormalkan data agar hanya berada pada rang [0,1]. Alasannya adalah keortogonalan matriks konversi yang mempermudah Jaringan Syaraf Tiruan (JST) dalam proses pelatihan (Training). Postingan kali ini memperkenalkan teknik yang sering digunakan pada proses peramalan (Forecasting) dengan rentang data tertentu yang sempit, misalnya range [0.2,0.9]. Caranya adalah dengan menggunakan rumusan di bawah ini (Siang 2009):

dengan b dan a adalah data maksimum dan minimum. x’ adalah hasil konversi dari harga awal x. Perhatikan ketika x adalah data maksimum maka x’ akan berharga 0.7+0.2 sementara jika sebaliknya, x data minimum, maka 0 + 0.2 yang cocok dengan range dari 0.2 hingga 0.9. Tetapi ketika ingin dipresentasikan kembali hasil peramalan ke nilai real-nya perlu konversi kembali dengan formula:

Entah mengapa saya cenderung menggunakan normal Euclidis (fungsi normalize atau dengan memanfaatkan norm jika tidak ada fungsi normalize). Untuk versi 2013 sepertinya sudah ada fungsi normalize. Berikut tampilan Matlab jika ada fungsi yang bersangkutan. Semoga bermanfaat.

  • >> help normalize
  • — help for dfilt.normalize —
  • normalize Normalize coefficients between -1 and 1.
  • G = normalize(Hd) normalizes the feed-forward coefficients between -1
  • and 1 and returns the gain G due to normalization. Subsequent calls to
  • normalize will not change the feed-forward coefficients and G will
  • always return the gain used in the first normalization.

 

  • See also dfilt.denormalize.
  • Copyright 1988-2004 The MathWorks, Inc.

Referensi

Hagan, M. T., Demuth, H. B., & Beale, M., 1997. Neural Network Design, Boston: PWS Publishing Co.

Siang, J.J., 2009. Jaringan Syaraf Tiruan dan Pemrogramannya Menggunakan Matlab, Yogyakarta: Penerbit Andi.

 

Simulasi Membutuhkan Bilangan Random

Simulasi mencoba menjalankan suatu model seolah-olah mengikuti kenyataan yang ada. Simulasi banyak diterapkan dalam permainan. Misalnya pemain bola, C. Ronaldo, dalam game memiliki akurasi tinggi dalam mencetak gol, tetapi tentu saja tidak selalu tendangannya akurat, seperti kenyataan di lapangan sesungguhnya. Jadi ketika pemain tersebut mengeksekusi, program harus membangkitkan suatu bilangan acak dalam rentang akurasinya sehingga bisa saja tendangannya (misal pinalti) tidak berhasil.

Fungsi “rand” di Matlab

Salah satu fungsi di Matlab yang membangkitkan bilangan random adalah fungsi rand. Fungsi ini membangkitkan bilangan acak dari nol hingga satu dalam pecahan. Ketik saja “rand” pada command window maka akan dimunculkan bilangan pecahan yang dimaksud.

Silahkan ketik help rand di command window maka akan muncul tata cara penggunaannya. Bahkan ada varian lagi dari fungsi tersebut di bagian akhir help (suggestion). Untuk membuat bilangan random yang dalam rentang tertentu, misal 9 hingga 10 butuh trik kusus, misalnya rand*10 atau 9+rand.

Contoh Kasus

Program berikut mensimulasian fungsi tangga dari suatu rangkaian masa dan suspensi. Disimulasikan beberapa komposisi pegas dan peredam yang menghasilkan beberapa kemungkinan. Perlu pengetahuan fungsi alih (transfer function) dan juga penggunaan fungsi plot pada Matlab. Buku command window.

  • figure
  • hold

Dua instruksi di atas akan menyiapkan satu gambar yang akan digunakan untuk menangkap output tiap-tiap komposisi pegas peredam. Fungsi hold membuat grafik menangkap lebih dari satu komposisi.

  • m=100;
  • for i=1:4
  • c=rand*10;
  • k=rand*10;
  • model=tf([1],[m c k])
  • step(model)
  • end

Kemudian Matlab mengeksekusi kode di atas dengan jumlah loop sebanyak empat kali. Tiap loop mencetak (fungsi step) model yang dalam bentuk fungsi alih tersebut. Massa diset 100 karena memang tidak terlalu berubah (massa motor, mobil, dan sebagainya cenderung tetap). Di sini nilai hanya sebagai contoh saja (tanpa satuan, dan standar yang telah ditentukan dalam perancangan elemen mesin). Selamat mencoba.

Variabel Dinamis pada Fungsi Alih Simulink Matlab

[m.kul,ruang,dosen,jur:t-pemodelan-simulasi,software,rahmadya-phd,t-kom-d3]

Berbicara mengenai fungsi alih, mau tidak mau harus sedikit kilas balik ke materi pengenalan pengaturan (tek. Kendali). Untuk mudahnya ambil kasus sederhana suspensi kendaraan (post terdahulu). Fungsi alih suatu sistem suspensi adalah:

Fungsi Alih = 1/(ms^2+cs+k)

m, c dan k berturut-turut massa (Kg), peredam (N.s/m), dan konstanta pegas (N/m). Kemudian untuk memasukan variabel dinamis fungsi alih, buka simulink dengan mengetik simulink pada command window Matlab.

Memasukan Variabel Dinamis

Untuk mensimulasikan sistem suspensi pada model simulink masukan tiga diagram blok antara lain: masukan tangga, fungsi alih, dan keluaran yang ditangkap oleh scope. Masukan tangga berada di bagian SOURCE, fungsi alih di bagian CONTINUOUS, dan scope pada bagian SINK. Caranya adalah dengan mendrag ke lembar model.

 

Atur fungsi alih (transfer function) agar diperoleh persamaan di awal tulisan ini. Gunakan variabel m, c dan k yang mewakili massa, peredaman, dan kekakuan pegas.

Tekan ganda transfer function dan isikan sebagai berikut. NOTE: Nilai m, c dan k di sini berupa variabel yang jika langsung dijalankan akan memunculkan pesan kesalahan.

Mengisi Variabel lewat Command Window

Bagaimana memasukan m, c, dan k? Mudah saja, kembali ke command window, ketikan saja tiga variabel itu dengan bilangan.

>> m=100;

>> c=20;

>> k=5;

Kembali ke jendela model. Tekan tombol RUN pada jendela model yang berupa segitiga warna hijau. Pastikan tidak muncul error. Lanjutkan dengan mengklik ganda SCOPE untuk melihat grafiknya.

Atur komposisi c dan k agar diperoleh respon yang halus (smooth). Bagaimana terapan ke program GUI-nya? Sepertinya butuh postingan tersendiri karena ada sedikit masalah saat praktek tadi, yaitu data m, c, dan k tidak terkirim ke jendela model.

 

Sanggupkah ANFIS Mengenali Pola Gambar?

[m.kul/ruang/dosen:pengenalan-pola/software/rahmadya]    

Adaptive Neuro-Fuzzy Inference System (ANFIS) merupakan gabungan Jaringan Syaraf Tiruan (JST) dengan Fuzzy Inference System (FIS). Cara kerja neuron pada JST (lihat JST sederhana) lebih sederhana dibanding dengan ANFIS (lihat post dasar2 ANFIS). Pada ANFIS jumlah neuron harus mengikuti jumlah masukan dan fungsi keanggotaan (membership function) tiap masukan. Selain itu tiap bilangan numerik (crisp) masukan harus dikonversi menjadi fuzzy sets. Akibatnya butuh proses komputasi dibanding JST yang langsung meneruskan masukan numerik ke pembobotan di neuron.

Kasus Citra Hitam-Putih

Citra hitam-putih (B/W) hanya mengenal dua angka yaitu 1 dan nol yang merepresentasikan citra (beberapa peneliti menganjurkan dengan 1 dan -1), sehingga tiap masukan hanya mengenal dua nilai itu. Secara intuitif JST lebih praktis dibanding ANFIS karena kemampuan fuzzy dari ANFIS tidak berfungsi jika hanya bernilai biner (1 dan 0). Tetapi jika kasusnya RGB atau CMYK dengan range bilangan yang cukup besar 0 hingga 255 maka peran fuzzy pada ANFIS jadi penting.

Masalah Jumlah Masukan pada ANFIS

Jika menggunakan data angka 1 sampai 5 yang direpresentasikan dengan matriks berukuran 5×3 maka kita memiliki vektor berukuran 1×15 untuk tiap-tiap angka. Jadi ada 15 input pada ANFIS-nya. Ketika dipraktekan di kelas, baik Matlab 2013 maupun 2014 dengan prosesor i5 dan RAM 4 Gb, anfisedit pada Matlab tidak sanggup.

Pesan kesalahan tersebut muncul di tahap Generate FIS yaitu setelah tombol OK ditekan. Matlab tidak sanggup meng-create ANFIS dengan masukan sebanyak 15. Berikut ini dicoba dengan mereduksi tiap angka menjadi 5 masukan.

Rule akan terbentuk sebanyak 32 buah kombinasi dari MFs (membership function) dengan satu masukan dengan masukan lainnya. Ketika di-training dengan hybrid method dihasilkan ANFIS yang siap dipakai.

Mereduksi Jumlah Masukan

Cara mereduksi masukan adalah dengan menerapkan fungsi imresize pada Matlab. Fungsi ini akan menghasilkan citra yang lebih kecil ukurannya. Tapi tentu saja akan sedikit berbeda dengan citra sebelum direduksi. Selain itu citra yang tadinya berbentuk biner berubah menjadi real. Misal kita memiliki image angka dua dengan ukuran 5×3 (atau vektor sepanjang 15 kolom).

  • >> duaReal
  • duaReal =
  • 1 1 1
  • 0 0 1
  • 1 1 1
  • 1 0 0
  • 1 1 1

Jika diterapkan fungsi imshow akan diperoleh image angka 2 (lihat yang berwarna putihnya).

  • imshow(duaReal,’InitialMagnification’,5000)

Selanjutnya kita reduksi dengan fungsi imresize. Perhatikan di bagian akhir (0.75) menyatakan persentasi pengecilan dari ukuran sebenarnya.

  • >> duaCrop=imresize(duaReal,.75)
  • duaCrop =
  • 0.6902 0.8532 1.0162
  • 0.4380 0.7667 1.0654
  • 0.8851 0.2718 0.2707
  • 0.9837 0.9288 0.9316

Gambar berikut adalah pengecilan menjadi setengahnya (kiri) dan diperbesar 3 kali lipat (kanan). Sepertinya yang diperkecil tidak begitu jelas.

Jadi bagaimana, sanggupkah ANFIS mengenali pola citra? Sepertinya perlu membatasi jumlah masukan kira-kira 5 sampai 10 untuk laptop rata-rata. Selain itu perlu preprocessing untuk mereduksi pola. Jangan lupa, perhatikan batas pengecilan maksimal agar citra masih dikenali, dan terhindar dari false positive. Sekian, selamat mencoba.

Prinsip Kerja Adaptive Neuro Fuzzy Inference System (ANFIS)

Adaptive Neuro Fuzzy Inference System (ANFIS) menggabungkan prinsip kerja Jaringan Syaraf Tiruan (JST) dengan Fuzzy Inference System (FIS). Dengan menggabungkan ANFIS denang JST diharapkan dapat meminimalisir kelemahan masing-masing metode. Kedua metode tetap menggunakan prinsip machine learning.

Plus Minus ANFIS

FIS yang mengharuskan terlibatnya expert dalam menyusun rule, pada ANFIS tidak lagi diperlukan. ANFIS sendiri selain mampu mengolah angka numerik, juga pengetahuan berbasis bahasa (linguistic). Selain itu, ANFIS lebih transparan terhadap pengguna dibanding JST yang seperti kotak hitam (black box). Hal ini karena rule hasil olah ANFIS dapat diketahui oleh pengguna. Namun kebanyakan riset menunjukan bahwa JST lebih akurat dibanding ANFIS. Di antara dua jenis FIS (mamdani dan sugeno), untuk ANFIS sugeno lebih dianjurkan karena proses lebih cepat.

Bentuk ANFIS

Berikut diambil dari jurnal internasional yang membahas cara kerja ANFIS [1]. Mirip dengan JST, ada juga layer dalam ANFIS tetapi jumlahnya rata-rata lima lapis seperti gambar berikut:

Contoh di atas adalah ANFIS dengan dua masukan dan satu keluaran (f). Berikut keluaran (diberi simbol O besar) di tiap-tiap lapis.

Lapis Pertama

Lapis pertama berfungsi mengkonversi angka crisp menjadi bilangan fuzzy dengan menggunakan fuzzy sets. Keluarannya adalah:

Lapis Kedua

Jika pada lapis pertama hanya melibatkan tiap-tiap masukan, pada lapis kedua tiap masukan menuju lapis yang sama guna mengetahui kekuatan penyalaan (firing strength). Fuzzy Sets dikalikan antara satu masukan dengan masukan lainnya dengan hubungan sebagai berikut:

Lapis Ketiga

Pada lapis ketiga dilakukan perhitungan normalisasi sebelum diterapkan ke lapis keempat. Normalisasi adalah proses pembobotan ulang agar diperoleh total/max bernilai satu.

Lapis Keempat

Setelah pembobotan yang telah dinormalkan selesai, proses dilanjutkan dengan mengalikan dengan fungsi yang melibatkan masukan (x dan y) untuk menghasilkan keluaran yang sudah dalam bentuk CRISP.

Lapis Kelima

Langkah terakhir adalah dengan mengakumulasi hasil dari lapis keempat (untuk dua rule).

Sementara untuk metode learning, dua metode bisa digunakan antara lain: backpropagation dan hybrid. Prinsipnya adalah meminimalisir error yang terjadi. Ada dua metode penghitungan error: 1) Mean Absolute Percent Error (MAPE) dan 2) Mean Absolute Deviation.

Reference

[1]    M. Şahin and R. Erol, “A Comparative Study of Neural Networks and ANFIS for Forecasting Attendance Rate of Soccer Games,” Math. Comput. Appl., vol. 22, no. 4, p. 43, 2017.