Menampilkan Citra Kecil dengan Fungsi IMSHOW Matlab

Citra biasanya ditampilkan dari file gambar (jpg, bmp, tiff, dan sejenisnya). Tetapi di Matlab, citra bisa juga ditampilkan dari matriks. Berikut ini contoh matriks yang menampilkan angka 7 segment. Buka Matlab, arahkan Current Directory ke folder yang sudah kita persiapkan dan ketik matriks yang menyatakan angka “empat” berikut ini:

  • >> empat=[1 0 1;1 0 1;1 1 1;0 0 1;0 0 1]
  • empat =
  • 1 0 1
  • 1 0 1
  • 1 1 1
  • 0 0 1
  • 0 0 1

Perhatikan angka satu di matriks di atas menunjukan formasi angka 4. Untuk melihat bentuknya dengan jendela baru, gunakan fungsi imshow().

Namun masalahnya adalah bentuknya kecil sekali. Oleh karena itu perlu ditambahkan parameter InitialMagnification untuk memperbesar citra hasil fungsi tersebut. Berikut ini contohnya:

>> imshow(empat, ‘InitialMagnification’, 5000)

Perhatikan angka di atas, yang berwarna putih adalah angka “1” pada matriks empat yang telah dimasukan sebelumnya. Selamat mencoba, semoga bermanfaat.

Kurikulum Teknik Komputer

Association for Computing Machinery (ACM) dan Institute of Electrical and Electronics Engineers (IEEE) membuat panduan (report) tentang materi yang harus dipelajari (kurikulum) untuk jurusan-jurusan:

  • Teknik Komputer (Computer Engineering)
  • Ilmu Komputer (Computer Science)
  • Sistem Informasi (Information System)
  • Teknologi Informasi (Information Technology)
  • Rekayasa Perangkat Lunak (Software Engineering), dan
  • Model di Masa yang akan datang (Future Model)

Karena kebetulan homebase saya di teknik computer (TK), postingan ini sedikit banyak membahas jurusan tua tersebut. Tahun 2004 ACM/IEEE membuat panduan kurikulum jurusan tersebut, tetapi kemudian direvisi mengikuti perkembangan teknologi pada tahun 2016 yang lalu. Yang dilaporkan panduan tersebut adalah:

  • Body of Knowledge (BoK)
  • Mata kuliah yang melingkupi BoK
  • Kebutuhan Inti jurusan
  • Karakteristik lulusan jurusan teknik komputer

Perkembangan Teknik Komputer

Jurusan TK merupakan hasil evolusi dari teknik elektro dan ilmu komputer. Pertama kali dibentuk untuk menyediakan tenaga terampil dengan spesialisasi logika digital, perancangan prosesor dan sistem komputer. Namun kemudian berkembang mengikuti evolusi yang berkembang dari jurusan ilmu komputer. Di panduan tersebut dibahas juga perkembangan TK di China, yang saat ini membagi jurusan ICT menjadi tiga: computer systems organization, computer applied technology, dan computer software and theory. Sementara itu di Inggris, beberapa kampus seperti University of Manchester menutup jurusan tersebut, waw.

Body of Knowledge Teknik Komputer

Struktur BoK terdiri dari Knowledge Area (KA) yang kemudian dipecah lagi menjadi Knowledge Units (KUs). KUs ini membahas outcome dari pembelajaran yang harus dicapai. BoK TK terdiri dari 12 KA antara lain:

  • CAE Circuits and Electronics
  • CAL Algoritma Komputasi
  • CAO Arsitektur dan Organisasi Komputer
  • DIG Disain Dijital
  • ESY Sistem Tertanam
  • NWK Jaringan Komputer
  • PPP Keprofesian
  • SEC Keamanan Informasi
  • SGP Pemrosesan Sinyal
  • SPE Rekayasa sistem dan proyek
  • SRM Manajemen Sumber Daya
  • SWD Perancangan software

Sementara itu rincian KA beserta KUs-nya silahkan lihat di halaman 25 panduannya. Beberapa mata kuliah sepertinya sulit dijalankan di kampus swasta dengan dana pas-pasan. Oiya, di panduan tersebut ada pembahasan rinci tentang laboratorium yang harus disediakan antara lain:

  • Circuits and electronics (wajib)
  • Arsitektur dan disain komputer (tambahan)
  • Pemrosesan sinyal (tambahan)
  • Disain Sistem digital dan logika (wajib)
  • Sistem Tertanam (wajib)
  • Pengenalan rekasyasa (disarankan)
  • Jaringan (disarankan)
  • Disain software (disarankan)
  • Disain proyek akhir (wajib)

Unik juga, ternyata jaringan bukan praktek wajib, melainkan hanya disarankan. Silahkan baca untuk yang TI, SI, dan ilkom. Sekian, semoga bermanfaat.

Manajemen dan Strategi Informasi Perusahaan-Perusahaan Besar

Ketika membenahi buku-buku lawas yang berantakan, saya menemukan buku yang digunakan untuk perkualiahan IT strategy. Perkuliahan S2 tersebut “lumayan”. Maksudnya sulit dimengerti karena ada unsur “mengantuk”nya. Maklum temanya berat karena masih agak asing. Di tahun 2008 memang era disrupsi belum dimulai (atau mungkin sedang dimulai). Buku berjudul “Corporate Information Strategy and Management, 7 edition – Text and Cases” tersebut dikarang oleh Lynda M. Applegate, dkk, yang merupakan dosen harvard business school.

Ketika membacanya, buku terbitan tahun 2005 itu memang berbahasa Inggris “level atas”. Ditambah dengan banyak studi kasus, membuat kepala pening. Padahal niatnya ingin dapat nilai sekadarnya dan lulus master sebagai prasarat minimal jadi seorang dosen. Namun saat ini, ketika membacanya kembali ada sedikit kekaguman. Ternyata bagus juga bukunya dalam mengulas secara detil kasus per kasus.

Sedikit Ringkasan di Modul – 1: Business Impacts

Banyak studi kasus yang diberikan modul 1, biasanya cerita sukses penggunaan IT dalam mempertahankan kinerja perusahaannya. Tapi ada satu kolom yang ditulis oleh Nicholas G. Carr (ditulis dalam majalah Financial Times tahun 2001). Isinya kira-kira sebagai berikut:

Penerapan CPU dalam Silikon Kecil

Waktu itu, di tahun 68, seorang peneliti di Intel, Ted Hoff, mampu menyisipkan prosesor dalam silikon kecil. Sejak itulah pembuatan komputer berukuran kecil membanjiri pasaran. Dari penggunaan anggaran 5%, 15%, dan terus hingga 50% perusahaan-perusahaan AS digunakan untuk sarana dan prasarana IT.

IT Sebagai Penentu Kesuksesan

Banyak perusahaan-perusahaan besar yang memiliki sarana dan prasarana IT yang baik mengungguli perusahaan-perusahaan lain yang kurang memiliki sarana tersebut. Hal ini berlangsung cukup lama. Namun lama kelamaan akibat teknologi IT yang terus berkembang, sarana dan prasarana IT menjadi sangat murah dan semua perusahaan mampu membelinya. Ini menimbulkan sedikit gejolak baru.

Menghilangnya IT Sebagai Penentu Kesuksesan

Mirip kejadian era setelah revolusi industri. Ketika itu banyak perusahaan-perusahaan kuat memiliki jalur distribusi sendiri, seperti kereta api, pasokan daya listrik, bahkan jalan khusus pabrik tersebut. Namun berkembangnya teknologi kelistrikan dan elektronik. Munculnya perusahaan-perusahaan jasa pengiriman, memunculkan dibangunnya sarana dan prasarana untuk umum. Sehingga tiap perusahaan bisa menggunakannya, istilah saat ini adalah share infrastruktur. Begitu pula yang terjadi dalam IT yang masuk ke dunia online. Tidak ada lagi saat ini yang menggunakan infrastruktur IT yang full terisolasi, yang berpotensi menuntut biaya tinggi.

Terlalu Banyak Hal-Hal yang Baik

Tulisan tersebut diakhiri dengan satu kekhawatiran. Memang waktu tulisan itu ditulis, dunia online belum begitu tampak. Amazon, Alibaba, Gojek, Grab, dan sejenisnya belum tampak. Atau bahkan beberapa pendiri masih sekolah. Namun dengan analogi era setelah revolusi industri, sepertinya akan terulang lagi. Bahkan, sejarawan D.S. Landes memprediksi adanya ketidakpastian akibat penerapan teknologi IT yang terus berkembang dan kian sempurna.

Demikian, kolom singkat di modul-1 yang bagi saya sangat menarik. Menarik di sini karena tulisan itu bisa meramal kondisi 10 tahun kemudian dimana saat ini banyak perusahaan-perusahaan raksasa tumbang akibat perkembangan pesat teknologi informasi. Sekian, semoga bisa menginspirasi.

Mendaftarkan Hak Atas Kekayaan Intelektual (HKI) Suatu Ciptaan

Berbeda dengan mendaftar hak patent yang lebih sulit, bahkan pendingnya bisa bertahun-tahun, mendaftar hasil ciptaan di negara kita lebih mudah. Kementerian yang bertanggung jawab mendata hasil ciptaan adalah Kementerian Hukum dan Hak Asasi Manusia (Kemenkumham), khususnya Direktorat Jenderal Kekayaan Intelektual. Prosesnya sangat cepat, kurang dari seminggu untuk karya tertentu, namun manfaatnya cukup besar terutama jika di kemudian hari ada yang menjiplak. Posisi jadi lebih kuat jika kita sudah mendaftarkan/mencatatkan hasil ciptaan di kemenkumham.

Salah satu hal yang mempercepat proses pencatatan adalah tersedianya fasilitas online, dengan nama e-Hak Cipta Kekayaan Intelektual (lihat link resminya untuk registrasi). Butuh satu hari untuk verifikasi akun kita. Jika sudah, kita siap mendaftarkan ciptaan kita dengan terlebih dahulu login dengan akun yang telah diverifikasi.

Isi permohonan baru jika ingin mendaftarkan ciptaan. Setelah itu dilanjutkan untuk mengisi data-datanya. File-file yang harus disiapkan untuk diunggah antara lain:

  • Scan NPWP
  • Scan KTP
  • Scan Pernyataan Bermaterai
  • File Ciptaan (Foto, Bagan, Manual, dll)

Jika sudah diupload, tunggu dicek oleh pihak e-HKI dengan terlebih dahulu membayar dengan biaya antara 400 hingga 600 ribu. Khusus UMKM ada keringanan biaya (hampir separuhnya).

Tunggu beberapa hari untuk menunggu pengesahan oleh pihak e-Hakcipta. Jika sudah disetujui, file HKI bisa diunduh langsung sebelum menerima berkas aslinya.

Untuk panduan lengkapnya silahkan unduh berkas panduan resminya dari link berikut. Selamat mendaftar ciptaan, semoga bermanfaat.

Menggunakan RDBMS untuk Pemrograman Berbasis Obyek

Di ruangan tampak buku-buku analisa disain yang lumayan tebal. Kebanyakan tentang analisa dan disain sistem berorientasi obyek. Buku yang ternyata milik rekan yang digunakan ketika ambil S2 belasan tahun yang lalu itu cukup menarik dan “wajib” dibaca oleh pemerhati mata kuliah analisa dan disain sistem informasi, khususnya yang tertarik dengan pemrograman berbasis obyek.

 

Ada satu bab yang menarik yaitu pembahasan mengenai penggunaan RDBMS ketika mengimplementasikan pemrograman berbasis obyek. Ivar Jacobson, pengarang buku berjudul “Object Oriented Software Engineering” sekaligus salah satu pencetus UML menyarankan beberapa teknik berikut ini.

  • Problem utama ketika menerapkan konsep obyek ke sistem basis data relasional adalah masalah impedansi. Di sini aplikasi berbasis obyek harus melekat dengan basis data. Padahal konsep RDBMS bebas platform aplikasi. Untuk itu perlu mengurangi kelekatannya dengan sedikit mengatur pentabelannya.
  • Konversikan atribut menjadi field atau kolom dalam tabel. Jika tidak cukup, buat satu tabel baru yang mengakomodasi atribut yang kompleks yang dimiliki oleh aplikasi berbasis obyek.
  • Instansiasi pada aplikasi berbasis obyek dikonversikan menjadi record atau baris pada tabel RDBMS.
  • Ketika dijumpai satu relasi [0..N], buat satu tabel baru dengan kunci diambil dari bagian yang bukan “many”. Kasus ini sering dijumpai ketika membuat tabel “detil pemesanan” ketika dijumpai jumlah pesanan yang lebih dari satu untuk satu orang pelanggan.
  • Kasus yang terberat adalah masalah inheritance dimana ada sedikit sudut pandang dalam mengkonversikan menjadi RDBMS. Dua pilihan yang mungkin diambil antara lain: 1) membuat kelas abstrak dalam satu tabel, dan 2) tidak membuat kelas abstrak. Masing-masing punya kelemahan dan kelebihan. Untuk kecepatan akses, pembuatan kelas abstrak menjadi tabel tersendiri (pilihan 1), mengakibatkan lambatnya proses ketika melakukan proses “join” pada instruksi SQL.

Memang dari sudut pandang pemrograman berbasis obyek, RDBMS terlihat sangat primitif karena membatasi kelas dalam tipe data tertentu, ditambah lagi tidak bisa menyimpan method/operasi dalam suatu tabel, dan mengandalkan aplikasi. Demikian, resensi singkat, semoga bermanfaat.

Membuat Video Tutorial dengan Mobizen pada Android

Untuk sarana pendukung pertemuan kuliah terkadang penjelasan dalam bentuk video pembelajaran perlu juga. Bentuknya bisa power point atau capture dari laptop dengan aplikasi tertentu, misalnya screen-O-matic yang gratis. Jika materi dalam bentuk power point tidak masalah. Lain halnya jika penjelasan berupa rumus-rumus matematika yang dijelaskan seperti pada white board di kelas.

Banyak cara, salah satunya adalah dengan membeli pen-drive, dengan pena dan tatakan elektronik yang mampu menulis lewat screen komputer. Tapi harganya lumayan juga. Dengan sedikit berfikir, saya melihat samsung galaxy note 2014 edition saya dahulu yang sudah error tombol chargernya, tetapi sebenarnya masih ok baik layar maupun pena stylusnya. Dan setelah menanyakan anak saya yang SD ternyata katanya ada aplikasi untuk capture screen di android, namanya Mobizen. Alhasil, saya langsung ke Bekasi Cyber Park untuk service tombol charger samsung saya, dan normal kembali dengan hanya mengeluarkan dana Rp 100 ribu saja (ganti tombol usb untuk charger di tablet). Kuat juga ternyata samsung, 4 tahunan masih OK. Berikut tampilannya, tapi ntah mengapa di bagian tengah voice hilang berganti dengan suara pulpen stylush, mungkin ada yang tertekan. Sekian, selamat mencoba aplikasi tersebut.

Sepertinya lebih baik menggunakan microphone dari headset, hasilnya lebih jernih seprti berikut ini.

Kode Warna HTML

Banyak referensi kode warna dijumpai di internet. Saya sendiri memerlukan referensi tersebut sewaktu-waktu. Terkadang repot juga ketika butuh, tidak ada catatan tentang kode tersebut. Terpaksa buka internet. Salat satu kode yang akurat adalah dari situs ini karena beragam warna tersedia.

Perhatikan, dengan mngklik warna hijau di pallete, langsung Color code muncul: #2EFE2E. Tapi untuk warna dasar bisa menggunakan kode berikut, sekaligus sebagai contekan jka sewaktu-waktu butuh:

  

  Nama Warna HEX RGB
 
Alice Blue #F0F8FF rgb(240, 248, 254)
 
Antique White #FAEBD7 rgb(251, 235, 217)
 
Aqua #00FFFF rgb(0, 255, 254)
 
Aquamarine #7FFFD4 rgb(115, 255, 216)
 
Azure #F0FFFF rgb(239, 255, 255)
 
Beige #F5F5DC rgb(245, 245, 223)
 
Bisque #FFE4C4 rgb(255, 227, 200)
 
Black #000000 rgb(0, 0, 0)
 
Blanched Almond #FFEBCD rgb(255, 234, 208)
 
Blue #0000FF rgb(0, 0, 255)
 
Blue Violet #8A2BE2 rgb(138, 43, 226)
 
Brown #A52A2A rgb(165, 42, 42)
 
Burly Wood #DEB887 rgb(222, 184, 135)
 
Cadet Blue #5F9EA0 rgb(95, 158, 160)
 
Chartreuse #7FFF00 rgb(127, 255, 1)
 
Chocolate #D2691E rgb(210, 105, 30)
 
Coral #FF7F50 rgb(251, 127, 80)
 
Cornflower Blue #6495ED rgb(100, 149, 237)
 
Cornsilk #FFF8DC rgb(225, 248, 220)
 
Crimson #DC143C rgb(220, 20, 60)
 
Cyan #00FFFF rgb(62, 254, 255)
 
Dark Blue #00008B rgb(0, 0, 139)
 
Dark Cyan #008B8B rgb(29, 139, 139)
 
Dark Golden Rod #B8860B rgb(184, 134, 11)
 
Dark Gray #A9A9A9 rgb(169, 169, 169)
 
Dark Green #006400 rgb(19, 100, 0)
 
Dark Khaki #BDB76B rgb(189, 183, 107)
 
Dark Magenta #8B008B rgb(139, 0, 140)
 
Dark Olive Green #556B2F rgb(85, 107, 47)
 
Dark Orange #FF8C00 rgb(251, 140, 1)
 
Dark Orchid #9932CC rgb(153, 50, 204)
 
Dark Red #8B0000 rgb(139, 5, 0)
 
Dark Salmon #E9967A rgb(233, 150, 122)
 
Dark Sea Green #8FBC8F rgb(143, 188, 144)
 
Dark Slate Blue #483D8B rgb(72, 61, 139)
 
Dark Slate Gray #2F4F4F rgb(47, 79, 79)
 
Dark Turquoise #00CED1 rgb(48, 206, 209)
 
Dark Violet #9400D3 rgb(148, 0, 211)
 
Deep Pink #FF1493 rgb(249, 19, 147)
 
Deep Sky Blue #00BFFF rgb(43, 191, 254)
 
Dim Gray #696969 rgb(105, 105, 105)
 
Dodger Blue #1E90FF rgb(30, 144, 255)
 
Fire Brick #B22222 rgb(178, 34, 33)
 
Floral White #FFFAF0 rgb(255, 250, 240)
 
Forest Green #228B22 rgb(34, 139, 35)
 
Fuchsia #FF00FF rgb(249, 0, 255)
 
Gainsboro #DCDCDC rgb(220, 220, 220)
 
Ghost White #F8F8FF rgb(248, 248, 255)
 
Gold #FFD700 rgb(253, 215, 3)
 
Golden Rod #DAA520 rgb(218, 165, 32)
 
Gray #808080 rgb(128, 128, 128)
 
Green #008000 rgb(27, 128, 1)
 
Green Yellow #ADFF2F rgb(173, 255, 48)
 
Honey Dew #F0FFF0 rgb(240, 255, 240)
 
Hot Pink #FF69B4 rgb(240, 255, 240)
 
Indian Red #CD5C5C rgb(205, 92, 92)
 
Indigo #4B0082 rgb(75, 0, 130)
 
Ivory #FFFFF0 rgb(255, 255, 239)
 
Khaki #F0E68C rgb(240, 230, 140)
 
Lavender #E6E6FA rgb(230, 230, 250)
 
Lavender Blush #FFF0F5 rgb(254, 240, 245)
 
Lawn Green #7CFC00 rgb(124, 252, 2)
 
Lemon Chiffon #FFFACD rgb(255, 250, 205)
 
Light Blue #ADD8E6 rgb(173, 216, 230)
 
Light Coral #F08080 rgb(240, 128, 128)
 
Light Cyan #E0FFFF rgb(224, 255, 255)
 
Light Golden Rod Yellow #FAFAD2 rgb(250, 250, 210)
 
Light Gray #D3D3D3 rgb(211, 211, 211)
 
Light Green #90EE90 rgb(144, 238, 144)
 
Light Pink #FFB6C1 rgb(252, 182, 193)
 
Light Salmon #FFA07A rgb(251, 160, 122)
 
Light Sea Green #20B2AA rgb(40, 178, 170)
 
Light Sky Blue #87CEFA rgb(135, 206, 250)
 
Light Slate Gray #778899 rgb(119, 136, 153)
 
Light Steel Blue #B0C4DE rgb(176, 196, 222)
 
Light Yellow #FFFFE0 rgb(255, 255, 224)
 
Lime #00FF00 rgb(63, 255, 0)
 
Lime Green #32CD32 rgb(50, 205, 50)
 
Linen #FAF0E6 rgb(250, 240, 230)
 
Magenta #FF00FF rgb(249, 0, 255)
 
Maroon #800000 rgb(128, 4, 0)
 
Medium Aqua Marine #66CDAA rgb(102, 205, 170)
 
Medium Blue #0000CD rgb(0, 0, 205)
 
Medium Orchid #BA55D3 rgb(186, 85, 211)
 
Medium Purple #9370DB rgb(147, 112, 219)
 
Medium Sea Green #3CB371 rgb(60, 179, 113)
 
Medium Slate Blue #7B68EE rgb(123, 103, 238)
 
Medium Spring Green #00FA9A rgb(62, 250, 153)
 
Medium Turquoise #48D1CC rgb(72, 209, 204)
 
Medium Violet Red #C71585 rgb(199, 21, 133)
 
Midnight Blue #191970 rgb(25, 25, 112)
 
Mint Cream #F5FFFA rgb(245, 255, 250)
 
Misty Rose #FFE4E1 rgb(254, 228, 225)
 
Moccasin #FFE4B5 rgb(254, 228, 181)
 
Navajo White #FFDEAD rgb(254, 222, 173)
 
Navy #000080 rgb(0, 0, 128)
 
Old Lace #FDF5E6 rgb(253, 245, 230)
 
Olive #808000 rgb(128, 128, 1)
 
Olive Drab #6B8E23 rgb(107, 142, 35)
 
Orange #FFA500 rgb(252, 165, 3)
 
Orange Red #FF4500 rgb(250, 69, 1)
 
Orchid #DA70D6 rgb(218, 112, 214)
 
Pale Golden Rod #EEE8AA rgb(238, 232, 170)
 
Pale Green #98FB98 rgb(152, 251, 153)
 
Pale Turquoise #AFEEEE rgb(175, 238, 239)
 
Pale Violet Red #DB7093 rgb(219, 112, 147)
 
Papaya Whip #FFEFD5 rgb(254, 239, 213)
 
Peach Puff #FFDAB9 rgb(253, 218, 185)
 
Peru #CD853F rgb(205, 133, 63)
 
Pink #FFC0CB rgb(252, 192, 203)
 
Plum #DDA0DD rgb(221, 160, 221)
 
Powder Blue #B0E0E6 rgb(176, 224, 230)
 
Purple #800080 rgb(128, 0, 128)
 
Rebecca Purple #663399 rgb(102, 51, 153)
 
Red #FF0000 rgb(255, 0, 0)
 
Rosy Brown #BC8F8F rgb(188, 143, 142)
 
Royal Blue #4169E1 rgb(65, 105, 225)
 
Saddle Brown #8B4513 rgb(139, 69, 19)
 
Salmon #FA8072 rgb(250, 128, 114)
 
Sandy Brown #F4A460 rgb(244, 164, 95)
 
Sea Green #2E8B57 rgb(46, 139, 87)
 
Sea Shell #FFF5EE rgb(255, 245, 238)
 
Sienna #A0522D rgb(160, 82, 45)
 
Silver #C0C0C0 rgb(192, 192, 192)
 
Sky Blue #87CEEB rgb(135, 206, 235)
 
Slate Blue #6A5ACD rgb(106, 90, 205)
 
Slate Gray #708090 rgb(112, 128, 145)
 
Snow #FFFAFA rgb(255, 250, 250)
 
Spring Green #00FF7F rgb(63, 255, 128)
 
Steel Blue #4682B4 rgb(70, 130, 180)
 
Tan #D2B48C rgb(210, 180, 140)
 
Teal #008080 rgb(26, 128, 127)
 
Thistle #D8BFD8 rgb(216, 191, 216)
 
Tomato #FF6347 rgb(250, 99, 71)
 
Turquoise #40E0D0 rgb(64, 224, 208)
 
Violet #EE82EE rgb(238, 130, 238)
 
Wheat #F5DEB3 rgb(245, 222, 179)
 
White #FFFFFF rgb(255, 255, 255)
 
White Smoke #F5F5F5 rgb(245, 245, 245)
 
Yellow #FFFF00 rgb(255, 255, 0)
 
Yellow Green #9ACD32 rgb(154, 205, 49)

 

Referensi:

  • dianagung.com
  • html-color-codes.info/
  • w3schools.com/cssref/css_colors.asp

 

Error mclmcrrt7x.dll pada Hasil Kompilasi Matlab

Lanjutan dari postingan yang lalu tentang instal Matlab yang digunakan untuk kompilasi program, banyak di internet pertanyaan mengenai setelah kompilasi sukses dikerjakan tetapi executable program tidak berjalan dengan semestinya dan muncul pesan kesalahan di bawah ini.

Banyak komentar yang menjawab masalah-masalah tersebut, dari yang ilmiah hingga yang aneh-aneh. Setelah membaca kilat komentar-komentar yang kebanyakan dengan bahasa Inggris tersebut ada satu komentar yang cukup OK, yaitu RESTART. Gitu saja, kebanyakan, termasuk saya, malas kalau me-reset komputer sehabis menginstall. Maklum laptop tua yang kalau restart lama banget. Akibatnya ketika menjalankan program hasil kompilasi tersebut tidak dijumpai dll yang memang terisi setelah restart. Masalah ini mirip menjalankan program aplikasi Matlab pada komputer yang tidak terinstal Matlab di dalamnya. Program exe tidak bisa dijalankan terlebih dahulu kecuali menjalankan exe paket yang diperoleh ketika kompilasi (cukup besar juga sekitar ratusan Mb). Paket tersebut menginstall dll Matlab yang gratis diinstall pada komputer target.

Saat ini saya masih menghadapi problem di Matlab 2013 dan 2014 yang gagal dalam mengkompilasi m-file menjadi exe. Anehnya pada Matlab 2015 berjalan, walau ada sedikit masalah ketika melakukan kalkulasi.

Masalah Lisensi yang Expired pada Matlab

Saat ini beberapa Matlab versi jadul dipaksa memperbaharui lisensinya, kalau tidak, aplikasi tersebut tidak dapat digunakan. Taktik ini cukup berhasil dan banyak yang terpaksa membeli versi student Matlab dengan harga lisensi sekitar Rp 2 jt-an (tanpa toolbox). Sayangnya untuk versi student tidak disertai dengan fasilitas kompilasi menjadi executable program.

Tetapi jangan khawatir, Matlab jadul, misalnya 2007a dan masih dapat digunakan. Saya sendiri terkadang menggunakannya untuk mengkompilasi M-file. Kebanyakan berhasil dengan baik. Untuk mengatasi problem lisensi dapat menggunakan taktik berikut:

  • Gunakan vmware tanpa koneksi internet dan instal Matlab di dalamnya
  • Mundurkan tahun pada tanggal komputer. Sesederhana itu dan Matlab 2007a, 2008b atau sebelumnya siap digunakan.

Mengapa saya suka Matlab 2007a? ternyata untuk jaringan syaraf tiruan versi inilah yang terbaik dibanding dengan 2008b (lihat post yang lalu). Cukup uji saja dengan training dan testing logika XoR. Semoga bermanfaat.

[Update: 29.4.2018]

Iseng-iseng mengaktivasi ulang Matlab 2008b dengan lisensi 2013b ternyata bisa juga. Akhirnya bisa beraktivitas lagi dengan Matlab versi 2008b yang cepat.

Problem pada Edit Menu dan Sidebar Menu di OJS 3.1

Ada sedikit masalah ketika menambahkan satu menu baru di bawah about misalnya “editorial team”. Beberapa user bisa tetapi ada satu user yang tidak berhasil menambahkan menu tersebut. Kuncinya ternyata di menu terdiri dari dua jenis:

  • User Menu, dan
  • Primary Menu

Video berikut memperlihatkan tampilannya. Perhatikan jika tidak muncul, tinggal drag saja unassigned menu ke kiri agar tampak. Gunakan primary menu agar tampil di menu khusus jurnal yang dilihat (jila lebih dari satu jurnal dalam situs OJS).

Side Bar Menu

Ada lagi masalah dalam OJS 3.1 yaitu tidak bisa mengupload suatu gambar. Misalnya di sidebar (menu yang ada di sisi kanan OJS) akan ditayangkan “indexed by” dengan tampilan logo Google Scholar dan Sinta, ternyata tidak bisa upload gambar. Solusi sementara sebelum menemukan jawaban pastinya adalah dengan mengarahkan gambar ke sumber lain. Lihat video berikut. Sekian semoga sedikit banyak bermanfaat.

Instruksi Keluar dari Kalang (Loop) pada Matlab

Beberapa hari ini ada sedikit masalah ketika mengkonversi program yang dibuat dengan M-file menjadi berbasis Graphic User Interface (GUI). Program tersebut mengkalkulasi secara serial beberapa lahan yang akan dioptimasi. Ketika tidak semua lahan dioptimasi, tentu saja ketika sampai ke lahan terakhir, program harus keluar dari proses kalkulasi dan merangkum hasilnya.

Instruksi GOTO

Untuk rekan yang pernah belajar bahasa pemrograman jadul (BASIC, Fortran, dan sejenisnya) pasti mengenal instruksi GOTO tersebut. Matlab tidak menyediakan instruksi tersebut, tetapi beberapa volunteer berhasil membuat fungsi goto() yang mengarahkan urutan program ke lokasi tertentu (berbasis nomor baris atau dalam bentuk string label). Silahkan kunjungi situsnya, dan jalankan beberapa sample programnya.

Example 22:

  • a = 0;
  • 2-
  • goto([6,6,6,6,6,6,9])
  • return
  • 5-
  • 6- a = a + 1;
  • 7- goto(‘End’)
  • 8- return
  • 9- msgbox(num2str(a))
  • 10-
  • 11- % LABEL End

Tampak instruksi goto mengarahkan ke baris perintah 6,6,6,6,6,6, dan terakhir 9. Perhatikan juga selain dengan baris instruksi, goto juga bisa mengarahkan ke label ‘End’ di akhir program. Instruksi goto di berbagai bahasa pemrograman sudah jarang dipakai dan sangat tidak disarankan untuk digunakan.

Break, Return, dan Continue

Tadinya lumayan lega setelah mengunduh fungsi goto(). Tetapi ternyata bermasalah ketika jalan di GUI, entah mengapa. Akhirnya, setelah sedikit mengutak-atik struktur program digunakanlah satu dari tiga fungsi penghentian proses, yaitu continue. Sebenarnya fungsi ini telah saya kenal lama, tetapi jarang dipakai. Namun ketika diterapkan di fungsi serial tersebut, tidak bisa karena bukan instruksi kalang/loop.

Ternyata jawabannya sederhana. Buat saja kalang dengan iterasi berjumlah satu. Ketika dijumpai kondisi tertentu, gunakan continue untuk keluar dari kalang tersebut. Misalnya dengan instruksi berikut.

  • JPLnew=JPLnew-1
  • if JPLnew == 0
  • continue
  • end

Misalnya saya ada 10 proses dan user hanya meminta 5 saja secara berurutan, maka tiap proses harus berkurang 1 dan ketika ditemui nilai nol, program harus loncat keluar 10 proses tersebut (hanya diminta lima). Agar keluar dari kalang, gunakan saja kalang dengan satu iterasi sebelum proses.

  • iteratian=1
  • JPLnew=JPL
  • for i=1:iteration
  • …….

Perhatikan perbedaan break, return dan continue dengan cara mengetik help break/return/continue pada command window. Sekian, semoga bermanfaat.

 

Strategi Pembelajaran Daring (Online)

Dalam menghadapi era revolusi 4.0 dan university 5.0 pemerintah mencetuskan GEN-RI 4.0 yang salah satunya adalah dengan menarapkan Sistem Pembelajaran Daring (SPADA). Kendala tentu saja akan dihadapi ketika menerapkan sistem pembelajaran daring tersebut. Beberapa literatur di internet banyak mengupas hal tersebut, salah satunya dari situs ini.

Daring vs Tatap Muka

Pembelajaran tatap muka sudah dilaksanakan sejak taman kanak-kanak. Guru atau dosen datang, melaksanakan rutinitas seperti biasa, memperkenalkan diri, mengecek absensi, mengeluarkan lelucon tertentu yang membuat siswa tertarik, dan sebagainya. Peserta didik pun melakukan hal yang sama, berusaha memahami tujuan pembelajaran, mempersiapkan materi, berusaha datang tepat waktu, dan dapat mengikuti pelajaran yang diajarkan. Bagaimana dengan perkuliahan daring?

Perkuliahan daring menimbulkan masalah bukan hanya siswa tetapi pengajar (tutor) pun mengalami hal yang sama. Fokus utama tentu saja kepada peserta didik yang menjadi sasaran pembelajaran. Ibarat mengajari berenang, siswa dipaksa terjun ke kolam tanpa terlebih dahulu diberi teknik/teori dasarnya. Hal ini terkadang membuat siswa frustasi. Banyak siswa mengalami ketidakjelasan terhadap materi yang diajarkan. Materi datang dan pergi begitu saja tanpa ada bekas di benak peserta didik.

Tiga Strategi Pembelajaran Daring

Strategi di sini hanya berupa hal-hal yang perlu disadari oleh pengajar online (tutor) ketika memulai perkuliahan daringnya. Hal-hal tersebut adalah aspek-aspek yang membedakan kuliah daring dengan tatap muka, baik dari sisi kelemahan maupun kelebihannya.

  • Pembelajaran daring bukan hanya berkutat dengan internet, melainkan aspek penting yaitu “lebih aman (safer)”. Kita mengenal Learning Management Systems (LMS) sebagai komponen penting e-learning. Akhir-akhir ini aksi “bulying” kerap terjadi ketika proses pembelajaran. Dengan LMS, peserta didik dengan nyaman berinteraksi dengan tutor-nya tanpa khawatir dicemooh oleh peserta lainnya. Di sinilah letak “safe” tersebut. Intinya, peserta didik bebas mengekspresikan ide-idenya.
  • Pembelajaran daring memperluas komunitas pembelajaran. Memperluas di sini karena antara satu siswa dengan siswa lainnya memiliki akses komunikasi yang lebih baik dibanding diskusi tatap muka yang terbatas oleh ruang dan waktu. Bahkan diskusi tatap muka yang sudah baik pun masih memiliki kendala dimana ada kecenderungan siswa kurang peduli terhadap apa yang dikatakan oleh rekannya. Mungkin karena akibat dia sendiri sedang berjuang memahami konsep-konsep di benaknya. Selain itu, kebanyakan perkuliahan tatap muka hanya menjadi ajang kontes kecanggihan profesor pengajar saja, padahal harusnya berfokus ke perkembangan intelektual peserta didik.
  • Menemukan ritme. Hal terakhir ini salah satu kendala utama pembelajaran daring. Ketika kita terbiasa dengan jadwal yang pasti, urutan proses perkuliahan yang runtun, pada perkuliahan online peserta didik harus mengatur sendiri jadwal yang optimal kapan dia belajar dan harus keluar dari zona nyamannya yang biasa mereka lakukan dari taman kanak-kanak hingga perguruan tinggi (tatap muka yang teratur). Jika tidak diantisipasi, dapat dipastikan siswa akan lalai dalam mengatur waktunya. Tetapi jika siswa mampu mengetahui kapan waktu-waktu optimalnya akibat kebebasan dalam belajar daring, banyak keutamaan-keutamaan yang diperoleh dari perkuliahan online.

Itulah tiga hal yang harus disadari oleh tutor online. Ada baiknya tutor memastikan peserta didik cepat mencapai zona nyamannya dalam kuliah daring. Tentu saja tiap siswa berbeda, namun demikian pada umumnya perbedaan-perbedaan yang ada memiliki keunggulan tersendiri. Postingan ini disarikan dari tulisan pada referensi berikut. Sekian semoga bermanfaat.

Referensi:

Era University 5.0

Untuk menghadapi era revolusi 4.0, ristek dikti mencanangkan GEN-RI 4.0 (post yang lalu). Sementara itu saat ini kabarnya kita siap menghadapi era university 5.0. Sebelum masuk ke era tersebut, ada baiknya membahas era-era sebelumnya.

University 1.0

Ada sedikit perbedaan antara satu sumber dengan sumber lainnya mengenai pembagian era university. Situs berikut menjelaskan saat ini adalah era pendidikan tinggi (higher education) 3.0, sementara situs lainnya versi 5.0. Jika diambil dari rujukan yang terakhir, university 1.0 adalah pendidikan yang ditujukan untuk para kaum elit/bangsawan.

University 2.0

Munculnya era revolusi industri memaksa perubahan paradigma pendidikan. Pendidikan tidak hanya untuk kaum elit saja.

University 3.0

Setelah perang dunia kedua, semua negara fokus untuk meningkatkan pertumbuhan ekonomi. University berperan dalam melakukan inovasi-inovasi dalam rangka meningkatkan daya saing.

University 4.0

Era ini ditunjukan dengan perubahan sosial dimana wanita berperan juga dalam mengembangkan ilmu pengetahuan. Era ini sekitar tahun 60-an hingga 70-an.

University 5.0

Pada era ini pendidikan tinggi dituntut mampu mengikuti perkembangan globalisasi ditandai dengan pesatnya perkembangan telekomunikasi dan perubahan budaya era modern. Sebenarnya siapakah konsumen university 5.0 ini? Tidak lain dan tidak bukan adalah generasi z.

Generasi Z

Generasi Z merupakan penerus generasi sebelumnya (millenials dan baby boomers). Generasi ini (saat ini berusia 7 – 23 tahun) yang ditandai dengan “melek internet” memiliki ketabahan dan tangguh dalam mencapai sesuatu (Grit). Karakter-karakternya antara lain:

  • Ingin unggul dibanding rekan-rekannya
  • Ingin menguasai dunia dengan kegiatan suka rela
  • Percaya bahwa tiap aksi pasti ada hasil nyata
  • Melihat aspek sosial ketika memilih bekerja di suatu institusi
  • Beberapa ingin bekerja yang memiliki dampak terhadap dunia sekitar
  • Gemar membagi (share) ilmu lewat dunia maya
  • Percaya bahwa dunia online bisa membantunya menggapai keinginan
  • Percaya bahwa apapun memiliki kemungkinan untuk diraih
  • Lebih pragmatis dibanding generasi sebelumnya. Mereka terkadang menghargai orang biasa dibanding selebritis terkenal
  • Menghargai nilai kejujuran
  • Sangat memperhatikan keseimbangan dunia kerja dengan kehidupan
  • Sangat menghargai uang, terkadang pandai berhemat tetapi terkadang membeli hal-hal tertentu yang unik (“cool product” dari pada “cool experience”).

Tuntutan Generasi Z terhadap University 5.0

Oleh karena hal-hal di atas, generasi Z membutuhkan kampus-kampus sebagai berikut:

  • Kampus yang akuntabel yang bisa menjangkau semua golongan (inclusive)
  • Value Oriented. Generasi Z harus melihat manfaat dari kampus tempat dia kuliah.
  • Interaktif. Generasi ini menuntut jawaban segera ketika menjumpai masalah.
  • Berdasarkan kenyataan. Kampus harus bisa membuktikan diri bahwa institusinya layak dipilih oleh mereka
  • Fleksibel. Kampus harus mampu beradaptasi terhadap perkembangan jaman yang cepat.
  • Personal. Tidak ada kampus yang memiliki strategi yang tepat untuk semua mahasiswa generasi Z yang beragam karakternya. Mereka ingin diperhatikan personal yang berbeda dengan rekan-rekannya.

Referensi:

Beralih dari Program Berbasis Konsol ke Graphic User Interface (GUI) pada Matlab

Berbasis konsol atau yang dikenal dengan istilah teks merupakan pemrograman tertua. Sebelum ada pemrograman visual, pemrograman teks menjadi andalan para programmer dalam membuat suatu aplikasi. Pada Matlab, pemrograman berbasis teks masih digunakan dalam bentuk command window dan m-file.

Command Window

Command Window merupakan dasar pemrograman pada Matlab. Matlab menyediakan m-file, yaitu suatu file yang berisi kode program. Ada dua jenis yaitu script dan function. Biasanya yang digunakan adalah function. Sementara itu command window digunakan untuk menguji apakah suatu kode dapat berjalan dalam m-file. Diibaratkan pelukis yang akan menggambar sebuah lukisan, command window adalah plat yang digunakan pelukis untuk mengecek warna sebelum dituangkan ke lukisan. Pada Matlab, sebelum seorang pemrogram menulis kode di m-file editor (editor yang disediakan Matlab untuk mengetik program), sebaiknya diuji dahulu di Command Window. Jika di Command Window berjalan dengan baik, maka di m-file biasanya berjalan dengan baik juga.

Graphic User Interface (GUI)

Pertama kali Matlab diluncurkan, tidak disertai dengan pemrograman visual. Walaupun demikian, beberapa pemrogram bisa menciptakan GUI dengan kode-nya. Namun agak merepotkan. Akhirnya di versi-versi berikutnya, toolbox GUIDE dibuat, yaitu toolbox untuk merancang input-output dalam sebuah jendela program. Ketika GUI mudah dibuat, kemampuan Matlab dalam komputasi sedikit terbantu, yaitu dari sisi user friendly program yang dibuat programmer.

Kendala-Kendala

Beberapa masalah muncul ketika beralih dari konsol ke GUI. Bagi pengguna yang biasa menggunakan visual basic, delphi, dan pemrograman visual lainnya, sedikit heran dengan format GUI pada Matlab. Bentuk antar fungsi Matlab sepertinya sudah berbasis object, sehingga ada sedikit aturan yang harus diikuti programmer. Untungnya Matlab menyediakan bantuan (sekadarnya). Contohnya adalah teknik menangkap masukan, serta mengkonversinya menjadi numerik (jika yang ditangkap angka). Di bagian atas fungsi terdapat bantuan kode yang bisa dicopas.

Perhatikan “Hint” di atas yang saya copy ke kode yang dibuat (jumlahPL). Ada sedikit metode penanganan object (diistilahkan dengan “handles”). Supaya tidak bingung, ikuti saja penamaannya (yaitu dengan istilah “handles”) walaupun sebenarnya bisa diganti.

Ketika riset, saya menggunakan konsol untuk optimasi penataan wilayah. Program berjalan dengan baik (lihat artikel tersebut di jurnal internasional, dan conference), tetapi ketika coba dijalankan dengan GUI beberapa fungsi seperti type, dan pareto diblok Matlab karena merupakan fungsi bawaan Matlab (padahal ketika dijalankan pada konsol (Command Window) berjalan dengan baik. Akhirnya dengan susah payah saya ganti dengan nama lain yang belum dimiliki Matlab. All in all .. sepertinya beralih ke GUI menjadi keharusan karena dapat memudahkan user memakainya, apalagi saat ini sudah terkoneksi dengan sistem database dengan mudah. Sekian, semoga bermanfaat.

Menyederhanakan Alamat Link dengan Bit.ly

Memang ketika membagi alamat situs yang berisi data selayaknya ditulis lengkap dengan menyertakan nama domainnya. Tetapi terkadang dengan menuliskan secara lengkap, ketika berbagi data dengan rekan tim jika ditulis terlalu panjang sedikit merepotkan, ditambah lagi dengan link yang berisi kode-kode tertentu yang tidak “human readable“. Salah satu situs terkenal yang memberikan layanan penyederhanaan alamat situs yang di-share adalah bit.ly.

Manfaat yang saya rasakan dengan situs ini adalah mudah dalam mengingat alamat situs yang dibagikan dari/ke orang lain, terutama ketika menginfokan sesuatu secara ofline (bukan dengan WA, facebook, dan sejenisnya). Dengan format “bit.y/(keterangan)” maka orang lebih mudah mengingat/mencatat “keterangannya” dan terhindar dari salah tulis. Berikut ini langkah-langkah penggunaannya:

Mendaftar/Sign-up

Pertama kita diminta untuk mendaftar di bit.ly. Tekan tombol “Sign Up” untuk mendaftar. Jika malas mengisi data, bisa dengan sign up dengan facebook.

Menyederhanakan Link dengan Bitlink

Misalkan ada link seperti ini: https://drive.google.com/file/d/0BzvQ5rbP5stZUHRmMU1oTnJDOVVOOVRfRWZtNm8yeUdwamlz/view?usp=sharing

yang harus di share. Tentu saja sulit diingat, kecuali memang dengan cara copas. Dengan bit.ly kita tinggal memasukan ke isian link yang akan disederhanakan setelah menekan Create Bitlink dilanjutkan dengan mengeditnya. Misalnya saya edit menjadi: “10-tips-penulisan” yang tentu saja mudah diingat dan ditulis/diketik. Tekan Save dan alamat yang sudah disederhanakan siap dipakai.

Bandingkan link sebelumnya yang panjang dan disederhanakan menjadi: http://bit.ly/10-tips-penulisan saja. Mudah diingat bahkan jika ingin mengeshare secara lisan dapat dilakukan dengan kata “10-tips-penulisan” dengan alamat depan “bit.ly” yang juga mudah diingat. Sekian semoga bermanfaat.