• Tidak ada hasil yang ditemukan

BAB 2 LANDASAN TEORI

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB 2 LANDASAN TEORI"

Copied!
22
0
0

Teks penuh

(1)

2.1 Sinyal Analog dan Sinyal Digital

Suatu sinyal didefinisikan sebagai besaran fisis yang berubah-ubah menurut waktu, ruang, atau variabel lainnya. Secara matematik, kita mendefinisikan sinyal sebagai fungsi dari dua atau lebih variabel bebas. Ada sinyal yang termasuk kelas sinyal yang secara presisi didefinisikan dengan menetapkan ketergantungan fungsional pada variabel bebas. Namun, terdapat kasus yaitu hubungan fungsional seperti itu tidak diketahui atau terlalu rumit untuk setiap penggunaan praktis.

Sebagai contoh, suatu sinyal suara tidak dapat didiskripsikan secara fungsional. Umumnya, suatu segmen suara dapat dinyatakan dengan derajat ketelitian yang tinggi sebagai jumlah dari beberapa sinusoida dengan amplitudo dan frekuensi yang berbeda, yakni seperti

[

]

= + N i i i i t F t t t A 1 ) ( ) ( 2 sin ) (

π

θ

dengan {Ai(t)}, {Fi(t)}, dan {θi(t)} secara berturut-turut adalah himpunan amplitudo,

frekuensi, dan fase sinusoida yang bervariasi menurut waktu. Faktanya, salah satu cara untuk menginterpretasikan isi informasi atau pesan yang disampaikan dalam setiap segmen waktu yang pendek dari sinyal suara adalah dengan mengukur amplitudo, frekuensi, dan fase yang terdapat dalam segmen waktu sinyal yang pendek.

(2)

2.1.1 Sinyal Analog

Sebuah sinyal analog atau sinyal waktu kontinu adalah sinyal dengan variabel apapun yang merupakan sinyal kontinu dalam hal waktu, sehingga untuk setiap nilai waktu dapat diambil nilai-nilai dalam selang kontinu (a,b), dengan a dapat menjadi -∞ dan b dapat menjadi ∞. Perbedaannya dengan sinyal digital adalah pada sinyal analog, pergerakan naik turun dari sinyal – walaupun kecil – sangatlah berarti. Sinyal analog menggunakan beberapa sifat dari perantara untuk menyampaikan informasi sinyal.

Kerugian dari penggunaan sinyal analog adalah di setiap sistem terdapat gangguan (noise), sebagai contoh adalah variasi acak. Ketika sinyal ditransmisikan dengan jarak jauh, noise akan menjadi dominan. Efek dari noise akan membuat sinyal menghilang dan menyimpang, dan untuk mengembalikannya sangat susah, karena ketika sinyal dikuatkan untuk mengembalikan bagian sinyal yang lemah, maka noise juga akan dikuatkan.

2.1.2 Sinyal Digital

Sinyal digital adalah suatu sinyal waktu-diskrit yang mempunyai himpunan nilai-nilai diskrit. Biasanya, nilai-nilai-nilai-nilai sinyal dari suatu himpunan tebatas ini seimbang dan karena itu dapat dinyatakan sebagai suatu kelipatan integer dari jarak antara dua nilai berurutan.

2.1.3 Keuntungan Pemrosesan Sinyal Digital Dibandingkan Sinyal Analog

Suatu sistem digital yang dapat diprogram memiliki keluwesan untuk mengkonfigurasi ulang operasi-operasi sinyal digital secara sederhana dengan mengubah program. Sedangkan konfigurasi ulang suatu sistem analog biasanya menuntut mendesain ulang perangkat keras yang diikuti dengan pengkajian dan pembuktian untuk melhat apakah sistem itu beroperasi dengan baik.

Pertimbangan keakuratan juga memainkan peranan penting dalam penentuan bentuk prosesor sinyal. Toleransi pada komponen rangkaian analog membuat hal itu sangat sulit bagi pendesain sistem untuk mengontrol ketepatan suatu sistem pemrosesan sinyal analog. Dengan kata lain, suatu sistem digital menyediakan kontrol yang lebih baik untuk syarat keakuratan.

(3)

Sinyal digital mudah disimpan pada media magnetik tanpa mengalami penurunan atau kehilangan keaslian sinyalnya. Sehingga sinyal-sinyal itu menjadi mudah dipindah-pindah dan dapat diproses secara tidak terhubung (offline).

2.1.4 Elemen Dasar Sistem Pemrosesan Sinyal Digital

Sebagian besar sinyal-sinyal yang ditemukan dalam sains dan teknologi adalah analog. Yaitu, sinyal-sinyal yang merupakan fungsi dari suatu variabel kontinu, seperti waktu atau ruang, dan yang biasanya mengambil nilai-nilai dalam interval yang kontinu. Sinyal-sinyal seperti itu dapat diproses secara langsung dengan sistem analog yang tepat atau pengganda frekuensi yang bermaksud mengubah karakteristiknya atau mengambil beberapa informasi yang diinginkan. Itu artinya sinyal telah diproses secara langsung dalam bentuk analognya, dengan sinyal masukan maupun keluarannya adalah sinyal analog. Proses ini diilustrasikan pada gambar berikut :

Gambar 2.2 Sistem Proses Sinyal Analog

Pemrosesan sinyal digital menyediakan suatu metode alternatif untuk pemrosesan sinyal analog, seperti yang diilustrasikan pada gambar berikut :

Sinyal Masukan Analog Konverter Analog Digital Sinyal Masukan Digital Proses Sinyal Digital Sinyal Keluaran Digital Konverter Digital Analog Sinyal Keluaran Analog Sinyal Masukan Analog Prosesor Sinyal Analog Sinyal Keluaran Analog

(4)

Untuk melakukan pemrosesan sinyal digital, diperlukan suatu interface yang dinamakan pengkonversi sinyal analog menjadi sinyal digital (A/D). Keluaran pengkonversi A/D adalah sinyal digital yang cocok dengan masukan terhadap prosesor digital.

Untuk pemakaian dengan keluaran digital dari prosesor sinyal digital akan disampaikan kepada pemakai dalam bentuk analog. Untuk itu, diperlukan sebuah interface lain untuk mengubah sinyal digital menjadi sinyal analog, yang dinamakan dengan pengkonversi sinyal digital menjadi sinyal analog (D/A). Namun pada beberapa aplikasi, pengkonversi D/A tidak diperlukan, dikarenakan aplikasi tersebut hanya melakukan analisis sinyal dengan informasi yang ingin disampaikan dalam bentuk digital. Program aplikasi yang diteliti oleh penulis merupakan salah satu aplikasinya.

2.1.5 Konversi Sinyal Analog Menjadi Sinyal Digital

Sebagian besar sinyal-sinyal, seperti sinyal biologis, sinyal seismik, sinyal radar, dan khususnya adalah suara adalah sinyal analog. Untuk memproses sinyal analog dengan alat digital tidak dapat langsung diproses begitu saja. Tentunya, pertama kali adalah harus dikonversi dulu menjadi sinyal digital, yaitu mengkonversi menjadi suatu deret angka yang mempunyai presisi terbatas. Prosedur ini dinamakan konversi analog ke digital (A/D) dengan alat yang dinamakan pengkonversi A/D.

Secara konsepsi, kita memandang konversi A/D sebagai proses tiga langkah, yaitu :

1. Pencuplikan (Sampling)

Ini adalah konversi suatu sinyal waktu-kontinu menjadi suatu sinyal waktu diskrit yang diperoleh dengan mengambil cuplikan (sample) sinyal waktu kontinu pada saat waktu diskrit. Diketahui hubungan :

x(n) = xa(nT), - < n <

dengan x(n) adalah sinyal waktu diskrit yang diperoleh dengan mengambil cuplikan-cuplikan sinyal analog xa(t) setiap T detik. Selang waktu T antara

cuplikan yang berurutan dinamakan periode pencuplikan dan kebalikannya

(5)

2. Kuantisasi

Ini adalah konversi sinyal yang bernilai kontinu waktu diskrit menjadi sinyal bernilai diskrit, waktu diskrit (digital). Nilai setiap cuplikan sinyal digambarkan dengan suatu nilai terpilih dari himpunan berhingga nilai-nilai yang mungkin. Selisih antara cuplikan x(n) yang tidak terkuantisasi dan keluaran xq(n) yang terkuantisasi dinamakan Galat Kuantisasi (Quantization

Error). 3. Pengkodean

Dalam proses pengkodean, setiap nilai diskrit xq(n) digambarkan dengan

suatu barisan biner-b.

Gambar 2.4 Bagian Dasar Konversi Analog ke Digital

2.2 File Audio Wave

File Wave adalah format sebuah file untuk menyimpan audio digital yang dibuat oleh Microsoft dan menjadi standar dari format file audio komputer untuk segala sesuatu mulai dari suara sistem dan permainan, hingga format file untuk CD audio. File Wave

dapat diidentifikasi dengan nama file berekstension WAV (.wav). File Wave merupakan format umum yang paling sederhana untuk menyimpan data sinyal audio.

Pengkonversi A/D

Pencuplikan Pengkuantisasi Pengkodean

xa(t) x(n) xq(n) 01 01 1... Sinyal Analog Sinyal Waktu Diskrit Sinyal Terkuantisasi Sinyal Digital

(6)

File Wave terdiri dari 3 chunk (potongan) informasi yaitu :

1. RIFF chunk yang mengidentifikasikan bahwa file tersebut adalah file Wave. 2. Format chunk yang berisi format dari informasi file suara seperti jumlah channel,

sample rate, resolusi..

3. Data chunk yang menunjukkan ukuran dari informasi file suara dan di dalamnya terdapat kumpulan data.

Setiap chunk mengandung informasi-informasi sebagai berikut : 1. RIFF chunk

Tabel 2.1 Informasi pada RIFF Chunk

Offset File Ukuran (byte) Deskripsi Nilai

0x00 4 ID Chunk ”RIFF” (0x52494646)

0x04 4 Ukuran Chunk (ukuran file) – 8

0x08 4 Tipe ”WAVE” (0x57415645)

2. Format chunk

Tabel 2.2 Informasi pada Format Chunk

Offset File Ukuran (byte) Deskripsi Nilai

0x00 4 ID Chunk ”fmt” (0x666D7420)

0x04 4 Ukuran Chunk 16 + jumlah byte untuk

format extra

0x08 2 Kode Kompresi 0 = PCM tidak terkompresi

1 = Microsoft ADPCM 6 = ITU G.711 a-law 7 = ITU G.711 μ-law 17 = IMA ADPCM 20 = ITU G.273 ADPCM (Yamaha) 49 = GSM 6.10 64 = ITU G.721 ADPCM 80 = MPEG

(7)

0x0a 2 Channel number

(banyak saluran suara)

1 = mono 2 = stereo

0x0c 4 Sample rate (banyak

cuplikan per detik)

1 – 0xFFFFFFFF Contoh : 44100 Hz

0x10 4 Rata-rata byte yang

dimainkan per detik

= Sample rate * Channel number * Bits per Sample

0x14 2 Block align (jumlah

byte satu sample untuk semua channel)

= Channel number * Bits per Sample / 8

0x16 2 Bits per Sample

(banyak bit untuk 1 cuplikan)

1 – 65535

Contoh : 8 = 8 bit (1 byte) 16 = 16 biy (2 byte)

0x18 2 Tempat untuk

parameter lainnya (tidak terdapat pada format PCM)

0 – 65535

3. Data chunk

Tabel 2.3 Informasi pada Data Chunk

File Offset Ukuran (byte) Deskripsi Nilai

0x00 4 ID Chunk ”data” (0x64617461)

0x04 4 Ukuran Chunk Tergantung banyaknya

cuplikan

(8)

Gambar 2.5 Contoh Format File .WAV

2.3 Transformasi Diskrit Fourier

Transformasi Fourier, yang ditemukan oleh Joseph Fourier, sering digunakan untuk mentransformasikan sebuah sinyal domain waktu yang bersifat kontinu menjadi sinyal domain frekuensi. Transformasi Fourier merupakan sebuah transformasi integral yang menyatakan ulang sebuah fungsi ke dalam bentuk fungsi berbasis sinus, yaitu sebagai sebuah penjumlahan ataupun integral dari fungsi sinus yang dikalikan dengan suatu koefisien

Ada empat macam jenis dari transformasi Fourier, yaitu transformasi kontinu Fourier, transformasi diskrit Fourier, transformasi diskrit Fourier berbasis waktu, dan deret Fourier. Keempat macam jenis transformasi Fourier itu dapat dibedakan menurut sifat waktu dan frekuensinya yang dapat dilihat pada tabel 2.4 di bawah ini.

(9)

Tabel 2.4 Perbedaan Empat Macam Jenis Transformasi Fourier

Transformasi Waktu Frekuensi

Transformasi kontinu Fourier Kontinu, Aperiodik Kontinu, Aperiodik Deret Fourier Kontinu, Periodik Diskrit, Aperiodik Transformasi diskrit Fourier

berbasis waktu Diskrit, Aperiodik Kontinu, Periodik Transformasi diskrit Fourier Diskrit, Periodik Diskrit, Periodik

Transformasi kontinu Fourier menggambarkan spektrum dari sebuah sinyal waktu non-periodik yang bersifat kontinu. Transformasi kontinu Fourier X(f) dari sebuah fungsi waktu bersifat kontinu x(t) dapat ditulis sebagai berikut :

∞ ∞ − −

=

x

t

e

dt

f

X

(

)

(

)

jft (Pers 2-1) Transformasi kontinu Fourier merupakan sebuah metode yang sangat berguna untuk menentukan komponen frekuensi dari sebuah sinyal waktu, menentukan distribusi momentum dari partikel, dan untuk berbagai aplikasi lainnya. Transformasi kontinu Fourier sebetulnya merupakan dekomposisi dari sebuah fungsi menjadi bentuk fungsi berbasis sinus, yang biasanya diekspresikan sebagai eksponensial yang rumit.

Oleh karena untuk mengerjakan transformasi kontinu Fourier diperlukan kalkulus untuk menghitung integral yang ada, di mana komputer dapat menampilkan transformasi Fourier berupa fungsi-fungsi yang diskrit, membuat Joseph Fourier menciptakan transformasi diskrit Fourier dengan mengganti fungsi integral menjadi fungsi penjumlahan yang terbatas.

(10)

DFT diperkenalkan sebagai aproksimasi metode numerik untuk mengerjakan fungsi transformasi Fourier. DFT X(m) dari sebuah sinyal waktu yang diskrit x(n) dapat ditulis sebagai berikut :

− = −

=

1 0 / 2

)

(

)

(

N n N nm j

e

n

x

m

X

π (Pers 2-2) Dari persamaan 2-2, komponen dari bilangan natural dipisahkan menjadi bagian riil dan imajinernya menggunakan persamaan Euler, yaitu :

) sin( ) cos(θ θ θ j ej = + (Pers 2-3) Dengan menggabungkan persamaan 2-2 dan 2-3 maka didapat persamaan DFT yang baru yaitu :

(Pers 2-4) Seperti yang terlihat pada persamaan 2-2 dan 2-4, kalkulus tidak lagi dibutuhkan untuk menghitung DFT. Dengan fungsi penjumlahan yang terbatas, tidak dijumpai kesulitan dengan fungsi yang tak terbatas bersifat kontinu. Dalam bidang proses sinyal digital, sinyal dan spektra diproses hanya dalam bentuk sampel, sehingga DFT adalah sesuatu yang benar-benar dipakai untuk memrosesnya. Implementasi dari DFT dapat menggunakan transformasi Fourier cepat atau fast Fourier transform.

DFT merupakan metode yang lebih relevan untuk komputasional serta lebih sederhana secara matematika dibandingkan dengan transformasi Fourier.

2.4 Fast Fourier Transform

Walaupun DFT adalah prosedur matematika yang paling tepat untuk menentukan isi frekuensi dari berbasis-waktu, namun penggunaannya tidak efisien. Ketika jumlah cuplikan dalam DFT bertambah, maka perhitungannya akan bertambah jauh lebih banyak. Pada tahun 1965, ilmuwan Cooley dan Tukey menciptakan suatu algoritma yang sangat efisien dalam mengimplementasikan DFT. Algoritma itu dikenal dengan

− =

=

1 0

)]

/

2

sin(

)

/

2

)[cos(

(

)

(

N n

N

nm

j

N

nm

n

x

m

X

π

π

(11)

nama fast Fourier transform (FFT). Dalam perkembangannya, ada berbagai macam algoritma yang dikembangkan untuk FFT ini, namun yang akan dipakai adalah algoritma FFT radix-2.

Algoritma FFT radix-2 sangat efisien ketika menghitung DFT dengan batasan adalah ukuran dari DFT haruslah dalam bentuk perpangkatan dari 2 (N = 2k). Jumlah dari perhitungan yang dibutuhkan untuk memproses FFT sejumlah N-titik adalah

N N

2

log

2 .

Dari persamaan pada N-titik pada DFT, yaitu

− = −

=

1 0 / 2

)

(

)

(

N n N nm j

e

n

x

m

X

π (Pers 2-5) FFT memisahkan input data x(n) menjadi dua bagian, yaitu elemen ganjil dan elemen genap, sehingga persamaan 2-5 berubah menjadi

= − = + − −

+

+

=

( /2) 1 0 1 ) 2 / ( 0 / ) 1 2 ( 2 / ) 2 ( 2

)

1

2

(

)

2

(

)

(

N n N n N m n j N m n j

e

n

x

e

n

x

m

X

π π (Pers 2-6) Dengan mengeluarkan fase sudut yang konstan dari penjumlahan tersebut

= − = − − −

+

+

=

( /2) 1 0 1 ) 2 / ( 0 / ) 2 ( 2 / 2 / ) 2 ( 2

)

1

2

(

)

2

(

)

(

N n N n N m n j N m j N m n j

e

n

x

e

e

n

x

m

X

π π π (Pers 2-7) Persamaan berikut disederhanakan dengan menetapkan notasi baku, yaitu

W

N

e

j N

/ 2π

=

sehingga persamaan 2-7 berubah menjadi

− +

− + = ( /2) 1 2 ( /2) 1 2 ) 1 2 ( ) 2 ( ) ( N N nm N m N nm N W x n W W n x m X

(12)

= − =

+

+

=

( /2) 1 0 1 ) 2 / ( 0 2 / 2 /

(

2

1

)

)

2

(

)

(

N n N n nm N m N nm N

W

x

n

W

W

n

x

m

X

(Pers 2-9) Sekarang kita mempunyai 2 buah penjumlahan N/2 yang akan menghasilkan N-titik DFT. Dengan menggantikan nilai m pada persamaan 2-9 dengan m+N/2, maka didapat

= − = + + +

+

+

=

+

( /2)1 0 1 ) 2 / ( 0 ) 2 / ( 2 / ) 2 / ( ) 2 / ( 2 /

(

2

1

)

)

2

(

)

2

/

(

N n N n N m n N N m N N m n N

W

x

n

W

W

n

x

N

m

X

(Pers 2-10) Melihat hubungan ) ( 2 2 /2 2 / 2 / 2 / 2 / ) 2 / ( 2 / N N n j nm N nN N nm N N m n N W W W e W + = = − π nm N nm N W W /2(1)= /2 = (Pers 2-11) untuk semua n bilangan bulat, maka faktor yang disebut dengan twiddle factor di depan penjumlahan dapat disederhanakan menjadi

m N m N N N j m N N N m N N m N

W

W

W

e

W

W

W

( + /2)

=

/2

=

(

− 2π /2

)

=

(

1

)

=

(Pers 2-12) Dengan menggunakan persamaan 2-11 dan 2-12, maka nilai X(m+N/2) pada persamaan 2-10 berubah menjadi

= − = + − = + ( /2)1 0 1 ) 2 / ( 0 2 / 2 / (2 1) ) 2 ( ) 2 / ( N n N n nm N m N nm N W x n W W n x N m X (Pers 2-13) Sehingga didapat 2 buah persamaan baru yaitu

= − =

+

+

=

( /2) 1 0 1 ) 2 / ( 0 2 / 2 /

(

2

1

)

)

2

(

)

(

N n N n nm N m N nm N

W

x

n

W

W

n

x

m

X

(Pers 2-14) dan

(13)

= − = + − = + ( /2)1 0 1 ) 2 / ( 0 2 / 2 / (2 1) ) 2 ( ) 2 / ( N n N n nm N m N nm N W x n W W n x N m X (Pers 2-14’) Dengan hanya merubah tanda pada twiddle factor maka kita mendapatkan 2 buah persamaan, yaitu X(m) dan X(m+N/2). Sehingga kita hanya membutuhkan m

sebanyak N/2 mulai dari 0 hingga (N/2)−1 untuk mendapatkan semua nilai outputnya. Dengan mengambil contoh kasus N=8, persamaan 2-14 dan 2-14’ dapat diimplementasikan pada gambar 2.6

(14)

) ( ) ( ) 2 / (m N A m W B m X + = − Nm (Pers 2-15’) kita dapat memecah dua buah 4-titik DFT menjadi empat buah 2-titik DFT, yaitu dengan cara seperti sebelumnya, memecahnya menjadi bagian ganjil dan bagian genap.

= − = − = + + + = =( /2)1 0 1 ) 4 / ( 0 2 1 ) 4 / ( 0 2 ) 1 4 ( 2 / 4 2 / 2 / (4 ) (4 1) ) 2 ( ) ( N n N n N n m n N nm N nm N x nW x n W W n x m A atau

− = − = + + = ( /4) 1 0 2 2 4 / 2 / 1 ) 4 / ( 0 2 2 4 / (4 1) ) 4 ( ) ( N n nm N m N N n nm N W x n W W n x m A (Pers 2-16) Dengan mengganti nilai 2n menjadi p, maka persamaan 2-16 dapat disederhanakan menjadi

− = − = + + = ( /4)1 0 4 / 2 / 1 ) 4 / ( 0 4 / (2 1) ) 2 ( ) ( N p pm N m N N p pm N W x p W W p x m A (Pers 2-17) Ada kemiripan bentuk antara persamaan 2-14 dengan 2-17. Dengan ini, FFT memiliki kemampuan untuk mengurangi jumlah perhitungan pada DFT. Dengan langkah sama, maka nilai B(m) pada persamaan 2-14’ dapat diubah menjadi

− = − =

+

=

( /4)1 0 4 / 2 / 1 ) 4 / ( 0 4 /

(

2

1

)

)

2

(

)

(

N p pm N m N N p pm N

W

x

p

W

W

p

x

m

B

(Pers 2-18) Untuk contoh kasus N=8, persamaan 2-17 dan 2-18 dapat diimplementasikan pada gambar 2.7

(15)

Gambar 2.7 Implementasi FFT dari 8-titik DFT menggunakan dua buah 4-titik DFT dan empat buah 2-titik DFT

Bentuk pola yang tertera pada gambar 2.6 disebut dengan butterfly pattern. Pada gambar, telah terdapat empat buah 2-titik DFT yang tidak dapat dibagi lagi, sehingga proses pembagian N-titik telah selesai. Dari definisi WN, maka WN0 =ej2π0/N =1 dan

1 2 / 2 2 / = −j πN N = −jπ =− N N e e

(16)

Susunan lengkap dari contoh kasus 8-titik DFT terlihat pada gambar 2.9

Gambar 2.9 Implementasi lengkap FFT dari 8-titik DFT

Untuk penentuan komponen ganjil dan genap, dilakukan suatu proses pemecahan yang disebut dengan bit reversal. Proses ini melakukan penukaran bit-bit biner dari angka desimal. Misalkan ada sejumlah n bit. Cara kerja dari bit reversal adalah dengan menukar bit ke-0 dengan bit ke n-0, bit ke-1 dengan bit ke n-1, dan seterusnya. Untuk lebih jelasnya, dapat dilihat di tabel 2.5.

(17)

Tabel 2.5 Input Index Bit Reversal untuk 8-titik DFT Normal order of index n Binary bits of index n Reversed bits of index n Bit-reversed order of index n 0 1 2 3 4 5 6 7 000 001 010 011 100 101 110 111 000 100 010 110 001 101 011 111 0 4 2 6 1 5 3 7

2.5 Algoritma Divide And Conquer

Algoritma Divide and Conquer merupakan algoritma yang sangat popular di dunia Ilmu Komputer. Divide and Conquer merupakan algoritma yang berprinsip memecah-mecah permasalahan yang terlalu besar menjadi beberapa bagian kecil sehingga lebih mudah untuk diselesaikan. Langkah-langkah umum algoritma Divide and Conquer :

Divide : Membagi masalah menjadi beberapa submasalah yang memiliki kemiripan

dengan masalah semula namun berukuran lebih kecil (idealnya berukuran hampir sama).

Conquer : Memecahkan masing-masing submasalah secara rekursif.

Combine : Menggabungkan solusi masing-masing submasalah sehingga membentuk

solusi masalah semula.

Objek masalah yang dibagi adalah masukan (input) atau instances yang berukuran n: tabel (larik), matriks, dan sebagainya, bergantung pada masalahnya. Tiap-tiap sub-masalah mempunyai karakteristik yang sama (the same type) dengan

(18)

demikian, algoritma ini dapat diimplementasikan dengan cara iteratif (perulangan biasa), karena pada prinsipnya iteratif hampir sama dengan rekursif. Salah satu penggunaan algoritma ini yang paling populer adalah dalam hal pengolahan data yang bertipe array

(elemen larik). Mengapa? Karena 1 pengolahan array pada umumnya selalu menggunakan prinsip rekursif atau iteratif. Penggunaan secara spesifik adalah untuk mencari nilai minimal dan maksimal serta untuk mengurutkan elemen array. Dalam hal pengurutan ini ada empat macam algoritma pengurutan yang berdasar pada algoritma

Divide and Conquer, yaitu merge sort, insert sort, quick sort, dan selection sort. Merge sort dan Quick sort mempunyai kompleksitas algoritma O(n ²log n). Hal ini lebih baik jika dibandingkan dengan pengurutan biasa dengan menggunakan algoritma brute force.

2.6 Software Development Life Cycle

Menurut Turban, et. al., Software Development Life Cycle (SDLC) adalah kerangka terstruktur yang terdiri dari beberapa proses yang berurutan vang diperlukan untuk membangun suatu sistem informasi. Pendekatan waterfall digunakan untuk menggambarkan SDLC. SDLC dirancang dengan tujuan untuk membangun alur pemrograman yang terstruktur dan untuk membantu manajemen proyek dalam perhitungan estimasi waktu dan sumber yang dibutuhkan suatu proyek.

(19)

Tahap-tahap SDLC adalah sebagai berikut : 1. System Investigation.

System Investigation adalah tahap yang mengutamakan pembelajaran terhadap segala kemungkinan yang dapat terjadi. Dengan pembelajaran maka suatu sistem dapat terhindar dari kesalahan yang dapat mengakibatkan peningkatan usaha, waktu dan jumlah pengeluaran.

2. System Analysis.

System Analysis adalah tahap yang menganalisis masalah yang perlu diselesaikan. Tahap ini mendefinisikan permasalahan, mengidentifikasikan penyebab, menspesifikasikan solusi, serta mengidentifikasikan informasi-informasi yang diperlukan.

3. System Design

System Design adalah tahap yang menjelaskan bagaimana suatu sistem akan bekerja. Hasil dari tahap ini adalah output, input dan user interface dari sistem serta hardware, software, database dan prosedur.

4. Programming

Programming adalah tahap yang menerjemahkan spesifikasi desain sistem menjadi bahasa pemrograman yang dapat dimengerti oleh komputer.

5. Testing

Testing adalah tahap yang digunakan untuk memeriksa apakah pemrograman telah menghasilkan hasil yang diinginkan dan diharapkan atas situasi tertentu.

Testing dirancang untuk mendeteksi adanya kesalahan coding. 6. Implementation

Implementation adalah proses perubahan dari penggunaan sistem lama menjadi sistem yang baru.

7. Operation and Maintenance

(20)

2.7 Bentuk Program

Arsitektur aplikasi program dirancang dengan dua tipe konsep yaitu :

Object Oriented Programming. Procedural Programming.

Object Oriented Programming (OOP) adalah sebuah paradigma pemrograman yang menggunakan class dan object dan interaksinya untuk mendesain aplikasi dan program komputer Deitel. Keunggulan yang membuat OOP sering digunakan adalah karena sifatnya yang reusable, di mana programmer tidak perlu berulang-ulang membuat program untuk modul-modul yang mempunyai kegiatan fungsional yang mirip, sehingga penerapan OOP sangat cocok untuk membuat aplikasi atau program yang rumit. OOP terdiri dari tiga bagian konsep, antara lain adalah :

Encapsulation. Inheritance. Polymorphism.

Encapsulation adalah konsep untuk membungkus atribut-atribut dan method-method yang ada pada suatu bagian menjadi sebuah class. Tujuan dari encapsulation

adalah untuk memudahkan konsep pemrograman, menyembunyikan informasi yang rahasia, dan untuk memungkinkan pembuatan objek-objek yang mempunyai sifat yang sama.

Inheritance adalah konsep penurunan sifat yang terdapat pada OOP, yang bertujuan untuk memudahkan pemrograman dari yang sederhana menjadi yang rumit sehingga tidak akan membuat konsep pemrograman menjadi rumit. Tujuan dari

inheritance selain untuk memudahkan pemrograman adalah untuk menjaga hubungan antar class. Sehingga balik programmer maupun user dapat dengan mudah memengerti aliran program apabila program telah berkembang menjadi rumit.

Polymorphism adalah konsep OOP di mana sebuah objek dapat berubah bentuk sifatnya ditengah jalannya program. Dasar dari konsep polymorphism adalah konsep

inheritance. Pada dasarnya polymorphism adalah sebuah abstract class yang mempunyai

virtual method yang diturunkan menjadi beberapa class yang harus mengimplementasikan virtual method tersebut. Tujuan dari polymorphism adalah untuk

(21)

memantapkan arsitektur pemrograman, karena dengan adanya polymorphism arah hubungan antar class akan menjadi jelas dan method-method dari class tersebut juga akan menjadi jelas.

Dengan adanya tiga konsep OOP tersebut, OOP menjadi konsep pemrograman yang handal dan dapat diimplementasikan dalam segala situasi.

Procedural programming adalah pemrograman dengan pemanggilan function atau

procedure, disebut juga dengan istilah umum routines. Biasa dikenal juga sebagai

imperative programming. Setiap dari procedure harus mengandung sederetan langkah-langkah algoritma. Sejumlah Procedure tersebut dapat dipanggil dari program setiap saat. Procedural Programming adalah konsep pemrograman sederhana dengan menerapkan urutan-urutan langkah.

2.8 State Transition Diagram

STD merupakan suatu modeling tool yang menggambarkan sifat ketergantungan sistem. Pada mulanya hanya digunakan untuk menggambarkan suatu sistem yang memiliki sifat real time seperti proses control, telephone switching system, dan control system.

State adalah kumpulan keadaan dan atribut yang mencirikan objek pada waktu atau kondisi tertentu. Disimbolkan dengan segi empat.

Gambar 2.11 Notasi State

Transition adalah simbol perpindahan keaktifan dari sebuah objek menjadi objek lain. Transition disimbolkan dengan anak panah.

(22)

Condition adalah suatu keadaan pada lingkungan eksternal yang dapat dideteksi oleh sistem. Condition menggambarkan syarat yang biasanya digunakan dalam hubungan seleksi. Action adalah yang dilakukan sistem bila terjadi perubahan state

atau merupakan reaksi terhadap kondisi. Aksi akan menghasilkan keluaran atau output.

Display adalah hasil yang merupakan STD.

2.9 User Interface Design

User Interface (UI) Design adalah perancangan tampilan antarmuka yang bersifat visual dari suatu aplikasi agar aplikasi tersebut dapat berinteraksi dengan baik dengan

user dan dapat digunakan dengan maksimal.

Proses perancangan UI harus mengandung arti dari unsur-unsur visual yang seimbang, yang dapat memodelkan inti dari operasi aplikasi yang akan dijalankan. Selain itu perancangan UI yang baik juga harus dapat membuat aplikasi hingga mudah digunakan dan dapat disesuaikan dengan kebutuhan masing-masing user.

Dalam perancangan UI, terdapat delapan aturan emas yang mendukung sebuah perancangan UI yang baik. Delapan aturan emas tersebut antara lain:

1.Usaha untuk konsistensi dalam tampilan.

2.Memungkinkan user yang rutin untuk menggunakan shortcut.

3.Memberikan umpan balik yang informatif. 4.Memunculkan dialog box pada penutupan. 5.Mempunyai error-handling sederhana.

6.Memungkinkan user untuk membatalkan tindakan. 7.Mendukung komponen dan control.

Gambar

Gambar 2.2  Sistem Proses Sinyal Analog
Gambar 2.4  Bagian Dasar Konversi Analog ke Digital
Tabel 2.2  Informasi pada Format Chunk  Offset File  Ukuran (byte)  Deskripsi  Nilai
Tabel 2.3  Informasi pada Data Chunk  File Offset  Ukuran (byte)  Deskripsi  Nilai
+7

Referensi

Dokumen terkait

Penelitian ini mengeksplorasi kewirausahaan korporasi untuk kontraktor berdasarkan lima dimensi yang disampaikan oleh Lumpkin dan Dess (1996), yaitu: otonomi, agresif dalam

Pada penelitian disertasi ini diperoleh terminologi baru dari invers Moore Pen- rose pada ring R dengan elemen satuan yang dilengkapi involusi &#34;∗&#34;, yaitu bahwa invers

Nama : ……….. B-S Pembawa Islam pertama ke Indonesia adalah pedagang Gujarat,arab dan Cina. B-S Marcopolo dapat membuktikan bahwa Islam di Indonesia sudah ada

Dengandemikian industrialisasi yang ditopang dengan sektor jasa dipandang cukup berhasil diterapkan di provinsi Sumatera Utara selama periode tersebut.Namun

Pemberi pelatihan yang berbeda dengan skema kompetensi diatur antara lain adalah Perusahaan Jasa Keselamatan dan Kesehatan Kerja bidang pembinaan yang telah disahkan

Penelitian ini dilakukan untuk mengetahui tingkat kebutuhan protein untuk hidup pokok dan pertumbuhan pada napu sehingga akan memudahkan menyusun kandungan protein

Berlakunya Undang-undang Nomor 25 tahun 2004 tentang Sistem Perencanaan Pembangunan Nasional juga telah mengubah wajah proses perencanaan pembangunan didaerah, dari bersifat top

Epidemiologi deskriptif lebih mengarah pada hal pokok antara lain tempat, orang dan waktu. Keadaan ini merupakan hal informasi yang penting dalam