Data Yang Digunakan Analisis Sistem

BAB 3 ANALISIS DAN PERANCANGAN SISTEM Bab ini membahas analisis wavelet transform based filter pada sistem dan membahas tahap-tahap yang dilakukan pada sistem yang akan dibangun.

3.1. Data Yang Digunakan

Data yang digunakan dalam penelitian ini adalah data rekaman suara pernapasan menggunakan stetoskop digital dari perusahaan Littmann. Data yang ada dapat dilihat seperti yang dirangkum pada tabel 3.1. Tabel 3.1 Rangkuman Data Rekaman Suara Pernapasan No. Jenis Suara Rekaman Bagian 1. Bronkial Lobus bawah kiri 2. Coarse Crackles Lobus bawah kanan 3. Fine Crackles dengan Bronkial yang gugur Lobus tengah kanan 4. Fine Crackles Dasar paru-paru

5. Inspirasi Stridor

Trakea

6. Trakea Normal

Trakea interskapula

7. Vesikular Normal

Lobus bawah kanan, Lobus bawah kiri 8. Gesekan Pleura Lobus tengah kanan

9. Rhonchus

Lobus bawah kanan

10. Wheezing

Lobus bawah kiri Universitas Sumatera Utara

3.2. Analisis Sistem

Analisis sistem bertujuan untuk mengidentifikasi sistem yang akan dikembangkan. Analisis diperlukan sebagai dasar perancangan sistem. Pada penelitian ini, terdapat lima tahap proses yaitu tahap preprocess, tahap dekomposisi sinyal, tahap threshold, tahap rekonstruksi sinyal, dan tahap final process. Adapun tahapan dari preprocess yaitu sebagai berikut: 1. Masukkan berkas audio rekaman suara pernapasan. 2. Inisialisasi data, audioinputstream, berkas. 3. Jika berkas mengindikasi path rekaman suara yang digunakan sebagai masukan, maka ambil stream audio dari berkas dan tentukan sebagai audioinputstream . Jika tidak, cetak “Tidak dapat membaca” dan hentikan tahap preprocess. 4. Tentukan data sebagai larik bertipe byte dari audioinputstream. 5. Mulai pembacaan data dan kembalikan sebagai larik bertipe byte. 6. Hitung panjang data dan berikan hasilnya sebagai nilai N. 7. Inisialisasi larik d bertipe double. 8. Dengan menggunakan persamaan 3.1, baca kembali data dan kembalikan sebagai larik bertipe double dengan nilai antara -1.0 dan +1.0. [ ] [ ] [ ] 3.1 dimana:  d[] = larik data bertipe double  i = indeks larik  N = panjang berkas data dalam bentuk integer  data[] = larik data bertipe byte 9. Hasil dari tahapan preprocess yaitu larik d dengan nilai larik bertipe double dalam setiap indeks. Adapun tahapan dari dekomposisi sinyal yaitu sebagai berikut: 1. Inisialisasi sinyal masukan dengan hasil dari preprocess sebagai nilainya. Universitas Sumatera Utara 2. Inisialisasi tingkat dekomposisi dengan nilai 2. 3. Inisialisasi panjang sinyal masukan. 4. Inisialisasi currentLevelLength dengan nilai panjang sinyal masukan sebagai nilai awal. 5. Inisialisasi larik result dengan panjang sama dengan panjang sinyal masukan. 6. Lakukan perulangan untuk proses dekomposisi sebanyak tingkat dekomposisi. 7. Dalam perulangan lakukan dekomposisi untuk bagian low pass filter dengan persamaan 3.2. [ ] 3.2 [ ] 3.3 [ ] 3.4 [ ] 3.5 [ ] 3.6 √ √ 3.7 √ √ 3.8 √ √ 3.9 √ √ 3.10 dimana:  tmp[j] = larik hasil dekomposisi bagian low pass filter  i = indeks larik untuk vi  j = indeks larik untuk tmp  c = currentLevelLength  si = sinyal masukan  k0 = koefisien pertama wavelet transform  k1 = koefisien kedua wavelet transform  k3 = koefisien ketiga wavelet transform  k4 = koefisien keempat wavelet transform 8. Lakukan dekomposisi untuk bagian high pass filter dengan persamaan 3.11. Universitas Sumatera Utara [ ] 3.11 [ ] 3.12 [ ] 3.13 [ ] 3.14 [ ] 3.15 dimana:  tmp[j+1] = larik hasil dekomposisi bagian high pass filter  i = indeks larik untuk vi  j = indeks larik untuk tmp  c = currentLevelLength  si = sinyal masukan  k0 = koefisien pertama wavelet transform  k1 = koefisien kedua wavelet transform  k3 = koefisien ketiga wavelet transform  k4 = koefisien keempat wavelet transform 9. Tambahkan 2 pada nilai indeks larik sinyal masukan dan indeks larik tmp. 10. Jika nilai indeks larik tmp lebih besar dari nilai currentLevelLength, hentikan perulangan. 11. Duplikasi larik tmp, simpan dalam larik result. 12. Atur keluaran agar bagian low pass filter di setengah depan keluaran dan bagian high pass filter di setengah belakang keluaran. Lakukan perulangan, terapkan persamaan 3.16 dan persamaan 3.17 untuk setiap indeks larik result. [ ] [ ] 3.16 [ ] [ ] 3.17 dimana:  result[i] = larik klon dari tmp  tmp[2j] = larik hasil dekomposisi bagian low pass filter  tmp[2j+1] = larik hasil dekomposisi bagian high pass filter  i = indeks larik untuk result Universitas Sumatera Utara  j = indeks larik untuk tmp  c = currentLevelLength 13. Jika perulangan untuk mengatur output selesai, ubah nilai currentLevelLength dengan membagi 2. Simpan result dalam sinyal masukan, ulangi proses dekomposisi sampai nilai i lebih besar dari tingkat dekomposisi. 14. Hasil dari tahap dekomposisi adalah result dengan nilai larik bertipe double dalam setiap indeks. Adapun tahapan dari threshold yaitu sebagai berikut: 1. Inisialisasi sinyal masukan, panjang sinyal, threshold, standar deviasi, sinyal suara pernapasan, noise. 2. Hitung nilai standar deviasi sinyal input menggunakan persamaan 3.18. √ ∑ ̅ 3.18 dimana:  σ = standar deviasi  N = panjang sinyal input  x 1 , x 2 , ..., x N = nilai-nilai nilai indeks larik yang membentuk sinyal  ̅ = rata-rata nilai-nilai yang membentuk sinyal 3. Hitung nilai threshold dengan menggunakan persamaan 3.19 Strang Nguyen, 1995. √ 3.19 dimana:  t = threshold  σ = standar deviasi  N = panjang sinyal input Universitas Sumatera Utara 4. Lewatkan setiap indeks larik melalui threshold. Pendekatan threshold yang digunakan dalam penelitian ini adalah hard thresholding. Namun, untuk mencoba menghilangkan white noise dari sinyal, maka hard thresholding dimodifikasi. Jika nilai pada indeks larik lebih besar atau sama dengan threshold maka masukkan ke dalam larik pembentuk noise. Sebaliknya, jika nilai pada indeks larik lebih kecil dari threshold maka masukkan ke dalam larik pembentuk sinyal suara pernapasan. 5. Hasil dari tahap threshold adalah larik pembentuk sinyal suara pernapasan dan larik pembentuk noise. Adapun tahapan dari rekonstruksi sinyal yaitu sebagai berikut: 1. Inisialisasi sinyal masukan dengan hasil dari proses dekomposisi sebagai nilainya. 2. Inisialisasi tingkat rekonstruksi dengan nilai 2. 3. Inisialisasi panjang sinyal masukan. 4. Inisialisasi currentLevelLength dengan nilai yang dicari menggunakan persamaan 3.20 sebagai nilai awal. 3.20 dimana:  c = currentLevelLength  N = panjang sinyal input 5. Inisialisasi larik result dengan melakukan duplikasi pada sinyal masukan. 6. Lakukan perulangan untuk proses rekonstruksi sebanyak tingkat rekonstruksi. 7. Ubah urutan sinyal masukan dari sebelumnya terbagi dua, setengah low pass filter dan setengah high pass filter, menjadi selang-seling low pass filter – high pass filter. 8. Lakukan perulangan untuk proses rekonstruksi menggunakan persamaan 3.21 dan persamaan 3.26. [ ] 3.21 [ ] 3.22 Universitas Sumatera Utara [ ] 3.23 [ ] 3.24 [ ] 3.25 [ ] 3.26 [ ] 3.27 [ ] 3.28 [ ] 3.29 [ ] 3.30 9. Hasil dari tahap rekonstruksi adalah result dengan nilai larik bertipe double untuk masing-masing larik pembentuk noise dan larik pembentuk sinyal suara pernapasan. Adapun tahapan dari final process yaitu sebagai berikut: 1. Inisialisasi nama berkas dan larik masukan bertipe double. 2. Inisialisasi format audio dengan spesifikasi 44.100 sample rate, 16 bit audio, mono, signed PCM, dan little endian. 3. Inisialisasi larik data bertipe byte dengan panjang sama dengan 2 kali panjang larik input. 4. Lakukan perulangan untuk memulai konversi dari larik masukan bertipe double menjadi larik bertipe byte dan menyimpannya dalam larik data. 5. Simpan file dengan pengaturan audio file format WAVE. Gunakan format audio dan nama berkas yang telah diinisialisasikan. 6. Hitung signal-to-noise ratio. Universitas Sumatera Utara Start data = null , datainputstream = null , file audioinputstream = getaudioinputstreamfile file.exist Tidak dapat membaca file data = byte[audioinputstream] audioinpustream.readdata N = data.length d = [N 2] i = 0 d[i] = short data[2i+1] 0xFF 8 + data[2i] 0xFF double MAX_16_BIT i N 2 i = i + 1 Stop Yes No Yes No A Gambar 3.1 Flowchart tahapan preprocess Universitas Sumatera Utara lth = si.length result = 0 , i = 0 i level tmp = result.clone index = 0 , j = 0 j currentlvllength tmp[j] = k0si[index] + k1si[index+1] + k2si[index+2currentlvllength] + k3si[index+3currentlvllength] tmp[j+1] = k3si[index] - k2si[index+1] + k1si[index+2currentlvllength] - k0si[index+3currentlvllength] Index+=2 , j+=2 index = 0 result = tmp.clone j currentlvllength 2 result[index] = tmp[2j] result[index+current lvllength 2] = tmp[2j+1] index+=1 , j+=1 currentlvllength=2 si = result i = i + 1 Yes No Yes No Yes No k0 , k1 , k2 , k3 , si = d , level = 2 A B Gambar 3.2 Flowchart tahapan dekomposisi Universitas Sumatera Utara si, lth, t, sum=0, sum2=0, tmp1=si, tmp2=si, tmp3=si, vbs, vn, x=0, y=0 i = 0 i lth sum += tmp1[i] i++ mean = sumlth Yes No i = 0 tmp3[i]=tmp2[i]-mean 2 i lth i++ i = 0 tmp3[i]=tmp2[i]-mean 2 i lth i++ sd= √sum1lth sigma=sd t=sigma √2LogLth j=0 vn, vbs j lth |vi[j]| = t vn[x]=si[j] x++ j++ vbs[y]=si[j] y++ Yes No Yes No Yes No Yes No B C Gambar 3.3 Flowchart tahapan threshold Universitas Sumatera Utara D si=result , level=2 , lth=vi.length currentlvllength = lth 2 level-1 result=si.clone i = 0 i level index=0 , tmp=result.clone , j=0 index = currentlvllength - 2 j currentlvllength tmp[j] = result[index] result = tmp.clone , j = 0 tmp[j+1] = result[index+currentlvllength 2] index+=1 j+=2 j currentlvllength result[j] = k2tmp[index] + k1tmp[index+1] + k0tmp[index+2currentlvllength] + k3tmp[index+3currentlvllength] result[j+1] = k3tmp[index] - k0tmp[index+1] + k1tmp[index+2currentlvllength] - k2tmp[index+3currentlvllength] index = index + 2currentlvllength j+=2 currentlvllength=2 i = i + 1 Yes No Yes No Yes No C Gambar 3.4 Flowchart tahapan rekonstruksi Universitas Sumatera Utara namafile= ne file. a , input = result format = 44.100 sample_rate , 16 bit_audio , mono , signed_PCM , little_endian byte[] data = byte[2input.length] data[2i+1] = temp 8 data[2i+0] = temp temp = input[i]MAX_16_BIT i input.length Yes No bais = ByteArrayInputStreamdata i = i + 1 ais = AudioInputStreambais, format, input.length writeais, type.WAVE, Filenamafile namafile.endswith . a or namafile..endswith . WAVE File format tidak dapat digunakan Stop Yes No i = 0 SNR D Gambar 3.5 Flowchart tahapan final process Universitas Sumatera Utara

3.3. General architecture