Friday, December 27, 2019

Buku Pemrograman Matlab - Function


Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link


kalian bisa lanjut baca lagi di  http://softscients.com/2020/03/29/buku-pemrograman-matlab-mengenal-dan-setup-global-function/



Sinopsis Dasar-Dasar Pemrograman Matlab - Function

Sebelumnya kalian telah belajar dasar-dasar pemrograman matlab yaitu Array, nah pada bagian ini kalian akan belajar mengenai function pada Matlab yang sangat berguna yaitu 
  1. Pengertian function
  2. Membuat Function
  3. Anonymous Function
  4. Overloading Function menjadikan function yang kalian buat menjadi dinamis argument inputnya
  5. Security Kode Function agar kalian bisa share binary code tanpa takut diliat source codenya
  6. Membuat Toolbox mempermudah kalian membuat project
Dengan mempelajari  Dasar-Dasar Pemrograman Matlab Function, kalian akan lebih mudah dalam mengimplementasikan algoritma dalam bahasa pemrograman serta mengurangi/reduce kode yang sering dipanggil berulang-ulang, layaknya sebuah persamaan matematika yang menggunakan function y(x)
    Jangan lupa ya Follow dan Subcribe ya dasar-dasar pemrograman matlab


    Terima kasih

      Pengertian Function

      Pengertian function merupakan sekumpulan code yang menerima input dan output argument  yang bertugas untuk operasi tertentu. Function sudah sering kita gunakan lho seperti perintah clc, clear, whos, close adalah perintah/function bawaan Matlab. Sebuah function mempunyai tipe berikut
      1. Terdiri dari argumen input dan output
      2. Tidak mempunyai argumen input dan output

      Model umum dari sebuah function yaitu

      function [argument_output] = namafunction(argument_input)
      %deklarasi prosedur

      Penamaan function sebaiknya menggunakan huruf kecil semua dan disimpan dengan akhiran .m serta tidak mengandung spasi, contoh berikut sebuah perhitungan luas segitiga dengan rumusnya


      $$luassegitiga = {{alas*tinggi} \over 2}$$

      function [luas] = luassegitiga(a,t)
      %menghitung luas segitiga
      luas = 0.5*(a*t);

      Kalian bisa lihat sudah disimpan dengan nama luassegitiga.m




      untuk cara pemanggilan function, kalian harus pastikan berada di work directory yang sama dengan lokasi function disimpan.

      luassegitiga(10,8)


      Satu hal yang harus kalian tahu yaitu perlu hati-hati dalam membuat nama function agar tidak terjadi bentrok dengan function built in nya Matlab, cara buat ceknya yaitu help namafunction, bila ada pesan error maka dipastikan tidak ada nama function tersebut.


      Sebenarnya ada beberapa function di matlab yang bersifat terbuka lho alias kalian bisa mengintip source code nya yaitu dengan perintah edit namafunction, coba saja perintah berikut kalian coba di command window

      edit kmeans


      Function kmeans adalah algoritma k-means clustering, tapi karena function tersebut dibuat oleh pihak matlab agak rumit bagi orang awam untuk memahami kode-kodenya karena kode tersebut sudah dioptimasi serta melibatkan banyak argument.

      Membuat function dalam sebuah script

      Kalian juga bisa membuat function yang bersifat local dalam sebuah script adapun untuk cara penempatan kode function diletakan dipaling bawah setelah script, contohnya seperti berikut


      clc;clear all;close all;
      %cara memanggil function dalam sebuah script
      alas = 9;
      tinggi = 90;
      luas_segitiga = luassegitiga(alas,tinggi)
       
      function [luas] = luassegitiga(a,t)
          %menghitung luas segitiga
          luas = 0.5*(a*t);
      end 
      

      Kalian simpan dengan nama contoh_function.m dan jangan lupa untuk run F5 akan menghasilkan berikut:

      Jadi alangkah baiknya kalau kalian membuat nama function  dan script mengikuti aturan berikut
      1. Nama function dan script harus lowercase
      2. Nama function tidak boleh dipisah sedangkan script bisa dipisah dengan underscore: hitungkuadrat.m (fungsi) sedangkan contoh_panggil_function.m (script)

      Anonymous Function

      Anonymous function atau function tanpa nama, biasa digunakan untuk mempermudah pemanggilan  function tanpa disave dalam sebuah file ataupun function tersebut sebagai input argument pada function yang lain. Biasanya anonymous function digunakan untuk algoritma pada kasus metaheuristik dengan banyak function. Anonymous function hanya terdiri dari satu baris saja alias inline function seperti berikut





      y = @(a) a*2; %adalah fungsi kuadrat
      z = y(9); %menghasilkan angka 18

      Variabel y diatas disebut handle function, kalian bisa cek whos.


      Jadi kalian jangan bingung ya kalau ada tanda @ yang merupakan place holder nya anonymous function. Kasus yang lainnya yaitu membuat persamaan kuadrat

      $$y(x)=x^2+4x+10$$

      Maka cara membuat anonymous function yaitu

      kuadrat = @(x) x.^2+4.*x+10; %adalah fungsi persamaan kuadrat
      x = -10:0.1:10;
      y = kuadrat(x);

      Bahkan kalian bisa memanggil function sebagai argument lho, misalkan kalian ingin memanggil function mean() dengan sebutan average agar sama seperti di excel menggunakan place holder @

      average = @mean;
      x = [1,4,9]
      average (x)


      Overloading function

      Yaitu dengan nama function yang sama tetapi dapat menerima input argument berbeda.  Tujuan dibuatnya overloading yaitu memudahkan penggunaan method dengan fungsi yang hampir sama. Sebenarnya kalian sudah sering pakai koq, contoh paling mudah penggunaan function mean.


      clc;clear all;close all;
      disp('Array a:')
      a = [1,3,8;10,20,35]
      disp('Rerata ALL')
      mean(a(:))
      disp('Rerata Per Kolom')
      mean(a,1)
      disp('Rerata Per Baris')
      mean(a,2)

      Array a:
      a =
           1     3     8
          10    20    35
      Rerata ALL
      ans =
         12.8333
      Rerata Per Kolom
      ans =
          5.5000   11.5000   21.5000
      Rerata Per Baris
      ans =
          4.0000
         21.6667
      

      Function mean tersebut diatas menggunakan 1 dan 2 argument yang menghasilkan output yang berbeda, hanya dengan satu nama function, bisa menerima banyak argument input itulah kegunaan teknik overloading function sehingga tidak perlu membuat banyak nama function yang berbeda-beda.
      Contoh sederhana untuk membuat function operasi tambah menerima banyak input (simpan dengan nama file tambah.m)

      function [hasil] = tambah(varargin)
      %contoh overloading function
      hasil = 0;
      for i = 1:nargin
            hasil = varargin{i} + hasil;
      end
      

      Contoh pemakaian dan hasil nya

      Kalian juga bisa menggunakan cara berikut untuk menerapkan overloading function, kalian simpan saja dengan nama overloadingfunction.m

      function overloadingfunction(argument1,argument2,argument3)
      %contoh overloading function
      if nargin ==1
          disp(argument1)
      end
       
      if nargin == 2
          disp(argument1)
          disp(argument2)
      end
       
      if nargin == 3
          disp(argument1)
          disp(argument2)
          disp(argument3)
      end

      Teknik overloading menggunakan keyword varargin dan nargin. Varargin singkatan dari Variable length input argument list sehingga dengan keyword tersebut bisa menerima jumlah input secara dinamis, sedangkan untuk nargin singkatan dari Number of function input arguments untuk mengetahui jumlah argument input yang digunakan. Oiya kalian bisa menggunakan teknik berikut untuk mempermudah setup sebuah function lho. Berikut ini diberikan contoh menggunakan ploting bar (ntar dibahas mengenai ploting), jangan lupa simpan dengan nama plotingdata.m

      function plotingdata(data,varargin)
      %contoh overloading function
      %
      if nargin==1
          plot(data)
      end
      if nargin == 2
          error('Error jumlah argument');
      end
      if nargin==3
          if length(varargin) == 2
              if strcmp(varargin{1},'type')
                  if strcmp(varargin{2},'bar')
                      bar(data);
                  end
                  if strcmp(varargin{2},'line')
                      plot(data);
                  end
              end           
          end        
      end
      
      

      Contoh pemakaian function diatas

      clc;clear all;close all;
      x =  [1 2 1 4 5 6 1 4];
      figure,plotingdata(x,'type','line');
      figure,plotingdata(x,'type','bar');
      


      Security Kode di Matlab

      Salah satu keunggulan Matlab daripada Scilab, Octave, dan Python yaitu adanya binary file dengan extension *.p (singkatan dari psuecode script) yaitu untuk mengubah kode file *.m menjadi versi binary sehingga kamu sharing kode tanpa perlu takut source code terbaca dengan mudah oleh klien karena sampai saat ini belum ada yang buat aplikasi reverse engineering *.p di Matlab. Cara penggunaannya pun sangat mudah sekali.


      pcode  file.m

      Atau untuk semua file *.m dalam satu folder

      pcode *.m


      Ketika perintah tersebut dijalankan akan terdapat *.p yang kamu bisa share ke klien sehingga source code akan relatif aman tanpa perlu kuatir terbukanya informasi mengenai cara kerja aplikasi yang anda buat kalau pun di reverse engineering akan terasa sulit untuk dibaca dan dipahami. Misalkan kalian akan mengubah semua *.m yang ada di direktori ‘daftar function’, maka langkah pertama adalah menuju work direktori ‘daftar function’



      Kode diatas menggunakan perintah pwd untuk memastikan lokasi current direktori yaitu di direktori ‘daftar function’, kemudian menggunakan perintah pcode *.m untuk mengkonversi semua *.m menjadi *.p maka untuk mengecek hasilnya menggunakan perintah ls, terlihat ada nama *.p sama persis dengan *.m-nya. Maka code *.p inilah yang kalian bisa distribusikan kepada orang lain tanpa takut source code terbuka karena *.p tidak bisa diubah lagi ke *.m. Berikut ketika  menggunakan *.p ditempat folder yang baru kemudian memanggil function persegipanjang




      Penggunaan function *.p sama seperti dengan *.m, jika kita ingin melihat sourc code *.p maka bisa menggunakan texteditor seperti notepad/notepad++ akan tampil seperti berikut yang sulit untuk dipahami karena sudah diubah kedalam kode hexadecimal



      Teknik diatas bisa anda gunakan untuk melindungi source code anda sehingga kita bisa mendistribusikan *.p sebagai versi demo kepada pihak yang lain dan tanpa takut *.p tersebut di reverse engineering.


      Membuat Toolbox

      Pada Bab Pendahuluan https://www.softscients.web.id/2019/12/dasar-dasar-pemrograman-matlab.html telah dijelaskan mengenai Toolbox Matlab,  Kalau kalian ingin tahu lokasi toolbox bisa dicek koq dengan mudah yaitu Set Path

       


      Disitulah letak semua function-function yang terbungkus rapi dalam sebuah toolbox yang berisi ribuan function yang bersifat global tanpa dipengaruhi oleh work directory kalian sehingga bisa dipanggil secara global. Misalkan kalau kalian punya banyak function bisa coba Add Folder atau ketikan perintah addpath()

      Caranya sebagai berikut:
      1.    Buatlah folder dengan susunan seperti ini (link https://www.softscients.web.id/2019/12/dasar-dasar-pemrograman-matlab.html) yang dibuat terpisah menjadi 3 folder yaitu daftar-pustaka, dataset, resource

      2.    Buatlah function tambah.m yang disimpan di folder daftar-pustaka/tambah.m

      function [hasil] = tambah(varargin)
      %contoh overloading function
      hasil = 0;
      for i = 1:nargin
            hasil = varargin{i} + hasil;
      end



      3.    Buatlah script buat memanggil function main_app.m

      clc;clear all;close all; %bersihkan semua
      addpath('daftar-pustaka')
      %panggil function 
      tambah(8,60)

      Coba kalian run, ketika tampil pesan berikut pilih Change Folder

       

      Maka script main_app.m akan memanggil function yang ada di daftar-pustaka/tambah.m

       



      Kalian bisa cek juga menggunakan perintah path pada Command Window

       

      Secara tidak langsung kalian sudah membuat toolbox sendiri lho! Karena function tambah() yang kalian buat bisa dipanggil disemua work directory. Nah pada sesi ini kalian sudah belajar mengeni dasar-dasar pemrograman matlab untuk function yang merupakan basic dari Matlab itu sendiri, dimana sekumpulan function-function akan dibuat sebuah toolbox


      Wednesday, December 25, 2019

      Soal Test CPNS - Kemampuan Penalaran Bag 1

      KEMAMPUAN PENALARAN

      Pada test ini akan dilihat kemampuan penalaran dari soal cerita (tipsnya adalah carilah sebuah korelasi), pada test Soal Test CPNS - Kemampuan Penalaran terdiri dari 20 soal mulai dari kausalitas, komparasi, sampai urutan.


      1. Ada petani yang rajin ke sawah. Kebanyakan petani memiliki sawah sendiri.
      a. Petani memiliki sawah sendiri harus rajin ke sawah.
      b. Ada petani yang rajin ke sawah dan memiliki sawah sendiri.
      c. Petani yang rajin ke sawah adalah yang memiliki sawah sendiri.
      d. Petani yang memiliki sawah sendiri tidak rajin ke sawah.

      Tuesday, December 24, 2019

      Soal Test CPNS - Bahasa Indonesia Bag 1


      Agak sedikit melenceng dari tujuan blog ini, tapi ya sudahlah daripada kosong tidak ada postingan, makanya penulis buat sesi test cpns/test umum, ya lumayanlah buat nambah-nambah pengetahuan kalian kalau mau test masuk kerja. Contoh test CPNS/kisi-kisi soal CPNS terdiri dari banyak topik yaitu bahasa, matematika, pengetahuan umum. Untuk mempermudah pencarian, kalian bisa klik label kisi-kisi test CPNS.


      Bicara mengenai Test Soal Bahasa Indonesia pada test CPNS/kisi-kisi soal CPNS menjadi menarik karena berbeda dengan soal yang bersifat pasti (eksak seperti matematika), tidak dipungkiri pada test Bahasa karena ada faktor Subjektif oleh karena hal tersebut sering-seringlah menjawab soal-soal bahasa indonesia agar lebih paham. Sementara ini masih sedikit kumpulan test CPNS, ntar penulis update lagi. Kisi-kisi soal test CPNS bahasa indonesia terbagi menjadi 4 bagian yaitu
      1. Kosa kata
      2. Sinonim
      3. Antonim
      4. Analogi

      Sunday, December 22, 2019

      Buku Pemrograman Matlab


      Postingan bertujuan untuk memudahkan para pembaca dalam belajar Matlab karena penggunaan yang sangat luas untuk beragam keperluan terutama kalangan riset yang membutuhkan bahasa pemrograman yang bersifat functional. 

      Pendahuluan

      Sejak penulis menggunakan Matlab 2009 sampai sekarang sudah mencapai R2019a sudah banyak perubahan terlihat dari ukuran installer nya 6 GB, ukuran yang sangat besar sekali. Ada banyak tools sejenis seperti Scilab, Octave, ataupun Python. Keunggulan Matlab yaitu lingkungan yang terintegrasi serta kelengkapan library/pustaka built in yang ada didalamnya sehingga sangat populer bagi kamu yang sedang belajar bahasa pemrograman terutama visualisasi yang kompleks.

      Hanya saja kalau kamu yang bekerja pada software production sangat tidak disarankan untuk digunakan karena bukan tujuan dari Matlab itu sendiri seperti untuk membuat aplikasi terus kamu jual ke konsumen melainkan bahasa pemrograman yang bersifat teknis yaitu lebih kepada kemudahan dalam mengembangkan algoritma/metode.

      Toolbox Matlab

      Matlab telah banyak dilengkapi dengan toolbox yaitu sebuah set function (bisa ratusan function didalamnya) yang dikhususkan berdasarkan topik-topik tertentu sesuai standar riset dan industri
      1. Statistics and Machine Learning Toolbox™ (Statistics and Machine Learning Toolbox)
      2. Curve Fitting Toolbox™ (Curve Fitting Toolbox)
      3. Control System Toolbox™ (Control System Toolbox)
      4. Signal Processing Toolbox™ (Signal Processing Toolbox)
      5. Mapping Toolbox™ (Mapping Toolbox)
      6. System Identification Toolbox™ (System Identification Toolbox)
      7. Deep Learning Toolbox™ (Deep Learning Toolbox)
      8. DSP System Toolbox™ (DSP System Toolbox)
      9. Datafeed Toolbox™ (Datafeed Toolbox)
      10. Financial Toolbox™ (Financial Toolbox)
      11. Image Processing Toolbox™ (Image Processing Toolbox)
      12. Text Analytics Toolbox™ (Text Analytics Toolbox)
      13. Predictive Maintenance Toolbox™
      Pengguna matlab sudah sangat terkadomodasi dengan ke 13 toolbox diatas, kalau untuk blog ini hanya fokus pada Image Processing, Signal Processing, Statistics and Machine Learning Toolbox, dan Deep Learning. Kalau kalian ingin tahu demo masing-masing toolbox diatas bisa ketikan perintah demo di command window (ntar dibahas dibawah ini apa itu command window). Demo sudah sangat lengkap koq yaitu
      1. Statistics and Machine Learning Toolbox: Visualize Distribution of Channel Data with a Box Plot, Find Mean of Data Ignoring NaN Values, Fit a Linear Regression Model, Plot a Histogram with a Distribution Fit.
      2. Curve Fitting Toolbox: Visualize Linear Fit to Scattered ThingSpeak Data, Visualize Wind Speed as a Function of Ambient Temperature and Pressure.
      3. Control System Toolbox: Compute Linear Response Characteristics
      4. Signal Processing Toolbox: Remove and Visualize Outliers in Your Data, Remove Outliers in Your Data, Visualize Peaks in Your Data, Visualize Abrupt Changes in Signals
      5. Mapping Toolbox: Visualize Path Traversed in Vector Maps, Visualize Path Traversed in NASA Maps.
      6. Datafeed Toolbox: Retrieve Current Financial Data Using Datafeed Toolbox.
      7. Financial Toolbox: Visualize Simple Moving Average of Your Data, Create a Candle Plot with Customized Date Axis: Plot the MACD Indicator.
      8. DSP System Toolbox: Remove High-Frequency Noise in Measured Data, Generate Chirp Signal.
      9. System Identification Toolbox: Fit an Autoregression Model to the Tidal Depth Data, Visualize and Compare Measured and Predicted Tidal Depths, Forecast Tidal Depths Using ThingSpeak Data.
      10. Deep Learning Toolbox: Create and Train a Feedforward Neural Network, Plot Error Histogram for a Neural Network.
      11. Image Processing Toolbox: Detect and Measure Circular Objects in an Image
      12. Text Analytics Toolbox: Visualize Word Frequency in a Word Cloud 
      Bahkan bila dirasa kurang cukup kalian bisa koq buat sendiri toolbox untuk menunjang profesi mu, misalkan kalian seorang trader saham, sangat mungkin sekali membuat toolbox forecasting saham yang berisi sekumpulan function siap pakai yang bisa kamu tulis sendiri khusus untuk trading saham.
      Oiya dalam postingan ini, penulis menggunakan spesifikasi Matlab yaitu R2018a 64 bit dengan Windows 10 Home 64 bit 


      Untuk membedakan dengan tag yang sudah ada yaitu Matlab, maka akan digunakan tag ebook pemrograman Matlab sehingga kamu bisa fokus mempelajari Matlab dengan baik melalui blog ini. Kalau pun kamu belum menemukan solusinya, bisa koq untuk kontak di http://www.softscients.web.id/p/konsultasi.html.

      Secara umum tujuan dari postingan ini dibuat yaitu
      1. Semudah mungkin untuk dipelajari untuk kalian pemula ataupun yang sudah paham mengenai dasar-dasar pemrograman berdasarkan pengalaman penulis yang telah lama menggunakan Matlab.
      2. Alur dibuat secara ber urutan sehingga pembaca tidak bingung.
      3. Memuat informasi penting seperti gambar dan tabel. 
      4. Update secara berkala dan dilengkapi studi kasus yang sederhana

      Daftar Isi

      Berikut daftar isi yang kamu dapatkan di blog ini
      1. Dasar/Fundamental Matlab
      2. Array

      Saturday, December 21, 2019

      Buku Pemrograman Matlab - Array

       

      Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

      Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
      Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link


      kalian bisa lanjut baca lagi di http://softscients.com/2020/03/29/buku-pemrograman-matlab-pengenalan-dan-operasi-array/



      Sinopsis Dasar-Dasar Pemrograman Matlab - Array

      Pada bagian ini kalian akan belajar mengenai beberapa dasar mengenai Array pada Matlab yang sangat berguna mulai dari
      1. Pengertian Array
      2. Membuat 1D, 2D, serta 3D
      3. Akses Array
      4. Ubah value Array
      5. Operasi Matematika Array
      6. Replikasi, Reshape, dan Flip Array
      7. Operasi Dasar Statistika Array
      8. Operasi Masking Array
      9. Operasi Stacking Array
      Dengan mempelajari Array di Matlab (Matrix Laboratory) maka kalian akan sangat terbantu beragam komputasi yang melibatkan Array yang pada dasarnya variabel di Matlab berupa Array lho seperti  kalkulator ilmiah yang sangat canggih.

      Jangan lupa ya Follow dan Subcribe ya


      Terima kasih

      Pengertian Array di Matlab

      Array adalah core engine-nya di Matlab karena Matlab itu sendiri adalah singkatan Matrix Laboratory dengan sejarahnya dibangun menggunakan Bahasa Java sebagai interfacingnya terhadap library algebra Fortan yaitu LAPACK yang dikenal dengan function algebra yang kuat. Oiya penyebutan Array / Matrix / Vector akan disebut dengan 1 istilah saja agar tidak membuat kalian bingung yaitu Array. Secara umum tipe/jenis Array yaitu
      1. Hanya terdiri dari 1 baris dan beberapa kolom disebut array 1D
      2. terdiri dari beberapa baris dan beberapa kolom disebut array 2D
      3. seperti point 2 tapi bertumpuk disebut dengan array multidimensi, biasanya digunakan untuk format gambar ataupun GIS (peta satelit).
      Biar kalian tidak bingung dibawah ini gambarannya ya


      Array 1D di Matlab

      Operator Array pada Matlab sangatlah flexible sekali yaitu terdiri dari operator kurung kurawal kotak, semicolon, serta koma dan space seperti kode berikut dibawah ini (tulis di command window)

      %pembuatan array 1D
      a = [1 2 3 ] %menggunakan pemisah space atau dengan cara berikut
      b = [1,2,3] %menggunakan pemisah koma
      c = 1:3 %atau menggunakan operator semicolon dengan increment default 1
      d = 1:0.5:3 %membuat array dengan increment 0.5 dari 1 sampai dengan 3
      

      Note: tanda prosentase % digunakan untuk memberikan comment

      Hasilnya

      a =
      
           1     2     3
      
      
      b =
      
           1     2     3
      
      
      c =
      
           1     2     3
      
      
      d =
      
          1.0000    1.5000    2.0000    2.5000    3.0000
      

      Biar makin yakin, bisa kamu cek menggunakan perintah whos, akan tampil hasil dibawah ini

        Name      Size            Bytes  Class     Attributes
      
        a         1x3                24  double              
        b         1x3                24  double              
        c         1x3                24  double              
        d         1x5                40  double     
      

      Array 2D di Matlab


      %Untuk array 2D yang terdiri dari beberapa baris dan kolom
      a = [1,2,3; 4,5,6]
      b = [1 2 3
       4 5 6]

      Hasil

      a =
      
           1     2     3
           4     5     6
      
      
      b =
      
           1     2     3
           4     5     6
      

      Coba kamu cek perintah whos

        Name      Size            Bytes  Class     Attributes
      
        a         2x3                48  double              
        b         2x3                48  double              
      

      gunakan perintah clc untuk membersihkan layar serta clear all untuk menghapus semua variabel yang ada.

      Array 3D di Matlab

      Untuk Array 3D yang terdiri dari layer/lapisan, misakan 2 baris x 3 kolom x 2 layer

      clc; clear all;
      a(:,:,1) = [1,2,3;4,5,6];
      a(:,:,2) = [7,8,9;10,11,12];
      a

      Note: tanda titik koma ; pada akhir sebuah variabel digunakan agar tidak ditampilkan secara langsung

      Hasil

      a(:,:,1) =
      
           1     2     3
           4     5     6
      
      
      a(:,:,2) =
      
           7     8     9
          10    11    12
      

      Friday, December 20, 2019

      Tips Cara Bertanya via Email

      Kalian tentu pernah berkunjung ke blog/forum kalau lagi stuck mengenai topik tertentu kemudian masih ada yang perlu ditanyakan via email atau comment dibawah postingan. Biasanya sih via email lebih mudah karena bisa lebih detail dalam bertanya, nah untuk hal tersebut kalian bisa mengikuti tips berikut
      1. Subjek: setiap email pasti berisi subjek, gunakanlah subjek dengan benar jangan diberi asal-asalan. Penulis kasih contoh cara mengisi subjek dengan baik. Subjek: Tanya mengenai Frekuensi Sampling FFT
      2. content dari isi nya sebaiknya (tidak harus)

      Salam pagi, sejahtera, atau Assalamu'alaikum (jika kamu muslim)
      Kenalkan diri minimal nama, dilanjutkan isi pertanyaan yang dimaksud, misalkan

      Perkenalkan nama saya Dina Aggraini, mau bertanya mengenai link berikut http://www.softscients.web.id/2019/12/teknik-pemisahan-suara-yang-berurutan.html
      Yaitu teknik FFT nya apakah menggunakan Fs (frekuensi sample 44.000 Hz)


      Tips memilih bahasa pemrograman

      Memilih bahasa pemrograman itu bisa saja subjektif, malahan kalau yang tidak tahu/orang awam membandingkan head to head antara bahasa satu dengan yang lainnya, padahal setiap bahasa yang diciptakan mempunyai tujuan tersendiri. Kalau dalam perusahaan besar biasanya menggunakan banyak bahasa untuk develop sebuah sistem yang besar agar didapatkan keunggulan masing-masing bahasa itu sendiri. Nah dalam memilih bahasa pemrograman bisa ikuti tips berikut

      Sunday, December 8, 2019

      Buku Pemrograman Python-Cara Cleaning Up Currency di Pandas


      Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

      Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
      Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link


      kalian bisa lanjut baca lagi di http://softscients.com/2020/03/28/buku-pemrograman-python-cara-cleaning-up-currency-di-pandas/



      Format currency adalah hal umum yang sering dijumpai dalam pengolahan data berbasis excel karena memudahkan bagi user untuk memisahkan nilai nominal yang besar. Penggunaan format currency yang digunakan oleh Indonesia dan Amerika itu berbeda dalam seperator ribuan dan separator desimal.  Misalkan dalam format Currency Amerika untuk nominal sepuluh ribu lima ratus dalam excel ditulis $ 10,500.00 sedangkan dalam format Indonesia Rp 10.500,00.

      Postingan kali ini membahas pertanyaan email dari pembeli buku saya di http://www.softscients.web.id/2018/11/buku-belajar-mudah-python-dengan.html 

      Bagaimana mengolah data dari CSV/Excel yang mempunyai format currency serta menampilkan dalam bentuk grafik serta diberikan keterangan seperti contoh gambar diatas.


      Friday, December 6, 2019

      Buku Dasar-Dasar Pengolahan Sinyal Digital dengan Matlab-Teknik Pemisahan Suara yang Berurutan-Sequence



      Melanjutkan tulisan sebelumnya (http://www.softscients.web.id/2019/11/belajar-dasar-dasar-sinyal.html) dengan judul Belajar Dasar-Dasar Sinyal mulai dari Frekuensi, Sample Rate/Cuplikan, Domain Waktu, Domain Frekuensi, serta contoh penerapannya secara nyata pada sinyal audio nada piano. Nah sekarang penulis lanjutkan sedikit mengenai Pemisahan Suara yang Berurutan/Sequence. Dalam penggabungan sinyal ada 2 macam seperti tulisan Belajar Dasar-
      Dasar Sinyal yaitu
      \([A+B]\): yang berarti 2 sinyal atau lebih dibunyikan secara bersama-sama
      \([A,B]\): yang berarti 2 sinyal dibunyikan secara berurutan

      Nah yang kita bahas pada tulisan kali ini adalah kasus yang sederhana yaitu \([A,B]\) sesuai dengan plot Domain Waktu dibawah ini yaitu terdiri dari 6 suara yang dibunyikan secara berurutan.



      Algoritma yang digunakan seperti berikut
      1.     Operasi Blocking
      2.     Operasi Windowing
      3.     Operasi Powering
      4.     Penentuan Batas/Thresholding
      5.     Pencarian Peak


      Seiring dengan meningkatnya traffic dan kemudahan dalam mengelola content, kami mengucapkan banyak terima kasih kepada para pembaca setia pada blog www.softscients.web.id

      Per 19 Maret 2020, kami sedang melakukan migrasi ke domain dan hosting yang lebih baik yaitu
      Semoga dengan alamat domain dan hosting terbaru akan semakin memudahkan para pembaca dalam mencari materi/content. Migrasi dilakukan secara bertahap yang membutuhkan waktu yang cukup lama jadi jangan kuatir selama migrasi akan dilakukan secara hati-hati untuk memimalkan broken link

      Operasi Blocking

      Digunakan untuk memisahkan sinyal perblock secara overlapping
       
      Ref: https://dsp.stackexchange.com/questions/36509/why-is-each-window-frame-overlapping

      dimana M panjang tiap frame dan N overlapping tiap frame-nya.

       
      Kemudian kita akan melakukan operasi frame blocking
      Berikut jika menggunakan M = 4 dengan N = 3 (selisih antar block)

       

      Kembali ke bitrate yang digunakan file audio yaitu 44100 Hz/detik, sehingga kita putuskan menggunakan waktu 0.02 detik atau 0.02 x 44100 = 882 sebagai nilai M dan 400 sebagai N nya. Kamu bisa lihat sejumlah block (ada 7 block saja yang ditampilkan).

       

      Operasi Windowing

      Setiap block akan diterapkan operasi  windowing  yang berguna untuk memperhalus ujung kiri dan kanan, perhatikan 2 sinyal berikut yang saling overlapping, akan terlihat bahwa sinyal smooth (yang sudah diterapkan windowing)
       

      rumus umum seperti berikut



      Ref: https://docs.scipy.org/doc/scipy-0.19.1/reference/generated/scipy.signal.hamming.html
      Kamu bisa mencoba beragam windowing seperti
      1.     Triangular window
      2.     Parzen window
      3.     Welch window
      4.     Sine window
      5.     Cosine-sum windows
      6.     Blackman window
      Lebih jelasnya ref: https://en.wikipedia.org/wiki/Window_function

      Sekarang kamu bisa melihat penerapan hamming window dibawah ini , dengan tiap ujung lebih halus
       

      Operasi Powering

      Tiap – tiap block akan diberikan powering agar terlihat peak-peak sinyal, dengan rumus berikut
      Makin jelas perbedaannya, hal ini bisa dikatakan bahwa area sinyal terdiri dari 6 sinyal.

      Penentuan Nilai Ambang Batas dan Peak Powering

      Hal penting selanjutnya yaitu penentuan ambang batas, dalam kasus ini dibuat 0.5 serta dicari peak powering (titik bulatan) seperti berikut
       
      Sehingga sinyal suara akan terlihat jelas lagi yaitu bagian yang diberi warna biru
       
      Setelah ditemukan titik-titik peaknya, maka hasil akhir sebagai berikut yaitu reverse dari area block yang diindikasikan sebagai area sinyal akan diberi warna-warna selain biru.
       
      Akhirnya kita bisa memisahkan 6 sinyal secara berurutan yaitu terdapat 6 suara (voice) yang terpisah dengan non suara (unvoiced) berdasarkan amplitudo nya yang rendah, biar lebih jelasnya ditampilkan dalam versi 3 Dimensi secara berurutan.
       
      Selesai sudah pembahasan kita mengenai pemisahan suara yang berurutan, penulis sengaja membuat semuanya dalam bentuk plotting grafik di Matlab agar kalian mudah memahami secara visual step by stepnya, secara code menjadi rumit untuk menampilkan visualisasi diatas.

      untuk pembahasan selanjutnya cukup rumit yaitu pemisahan sinyal yang berbunyi secara bersama-sama, tentu teknik yang digunakan akan berbeda yaitu menggunakan analisis frekuensi, seperti gambar berikut jika 6 nada dibunyikan secara bersama-sama, maka secara visual menjadi seperti berikut:

      Semuanya hampir mirip satu sama lainnya secara domain waktu.

      Dukung blog ini agar menjadi lebih baik dengan cara subscribe email mu panel dibagian kanan