BAB II LANDASAN TEORI 2.1 Sinyal 2.1.1 Definisi Sinyal Secara umum, sinyal didefinisikan sebagai suatu besaran fisis yang merupakan fungsi waktu, ruangan atau beberapa variabel. Contoh dari sinyal adalah sebagai berikut: Tegangan listrik (V) sebagai fungsi waktu Potensial listrik adalah fungsi dari posisi pada suatu ruang 3 dimensi Intensitas sebagai fungsi koordinat x, y dan waktu Suatu sinyal mempunyai beberapa jenis informasi yang dapat diamati, misalnya amplitudo, frekuensi, perbedaan fase dan gangguan akibat noise. Untuk mengamati informasi tersebut, dapat digunakan secara langsung dengan peralatan ukur elektronik seperti osiloskop, spectrum analyzer, dan lain-lain. Peralatan ukur tersebut bekerja dengan memanfaatkan model matematik dari sinyal tersebut. 2.1.2 Klasifikasi Sinyal Sinyal dapat diklasifikasikan sebagai berikut, yaitu: 1. Sinyal Waktu Kontinu dan Sinyal Waktu Diskrit Sinyal waktu kontinu yaitu sinyal yang terdefinisi untuk setiap nilai pada sumbu waktu t, dimana t adalah bilangan riil. Sedangkan sinyal waktu diskrit adalah sinyal yang terdefinisi hanya pada nilai waktu diskrit n, dimana n adalah bilangan bulat. 2. Sinyal Analog dan Sinyal Digital Sinyal analog adalah sinyal data dalam bentuk gelombang yang kontinyu, yang membawa informasi dengan mengubah karakteristik gelombang. Sinyal digital merupakan sinyal data dalam bentuk pulsa yang dapat mengalami perubahan yang tiba-tiba dan mempunyai besaran 0 dan 1. 4 5 3. Sinyal Riil dan Sinyal Kompleks Sinyal riil merupakan sinyal yang bersifat riil untuk semua variabel. Sedangkan sinyal kompleks merupakan sinyal yang mempunyai nilai yang kompleks, terdapat faktor nilai imajiner. 4. Sinyal Deterministik dan Sinyal Random Sinyal deterministik adalah sinyal yang keseluruhan nilainya dapat ditentukan dengan suatu persamaan matematis, contohnya sinyal sinus. Sedangkan sinyal random mempunyai nilai random atau tidak diketahui dengan pasti untuk waktu yang diberikan, contohnya noise tegangan pada penguat. 5. Sinyal Ganjil dan Sinyal Genap Sinyal x (t) atau sinyal x (n) dikatakan sebagai sinyal genap jika x (-t) = x (t) x [-n]= x [n] Sinyal x (t) atau sinyal x (n) dikatakan sebagai sinyal ganjil jika x (-t) = -x (t) x [-n]= -x [n] 6. Sinyal Periodik dan Sinyal Non-Periodik Sinyal periodik yaitu sinyal yang mengalami pengulangan bentuk yang sama pada selang waktu tertentu. Secara matematis, sinyal waktu kontinyu dinyatakan periodik jika dan hanya jika x (t + kT) = x (t) untuk - ~ < t < ~ dimana k adalah bilangan bulat dan T adalah periode sinyal. Sinyal waktu diskrit dinyatakan periodik jika dan hanya jika x (n + kN) = x (n) untuk - ~ < n < ~ dimana k adalah bilangan bulat dan N adalah periode sinyal. 2.2 Sampling Sinyal Analog Sampling adalah suatu proses untuk membagi suatu sinyal kontinyu dalam interval waktu yang telah ditentukan. Sampling ini dilakukan dengan mengubah sinyal analog menjadi sinyal digital dalam fungsi waktu. Proses sampling berbeda untuk setiap sinyal, bila sampling terhadap suatu sinyal tidak tepat maka akan terjadi misleading atau hasil yang tidak sesuai dengan aslinya. 6 Salah satu fenomena yang paling sering terjadi akibat pengambilan sampling yang tidak tepat adalah aliasing. Fenomena aliasing merupakan hasil dari sampling secara diskrit pada suatu sinyal yang terlalu rendah sehingga memberikan resolusi yang rendah pula. Nyquist rate adalah rata-rata sampel minimum yang harus dipakai untuk mereduksi fenomena aliasing. Nyquist rate membuat frekuensi dan amplitudo sinyal aliasing menjadi pada level yang sangat rendah sehingga tidak menyebabkan dampak yang besar. Besarnya Nyquist rate adalah dua kali frekuensi maksimum sinyal. Sesuai ideal frekuensi dalam Low Pass Filter (LPF) sampling, frekuensi maksimum suatu sinyal adalah 10 kali lebih besar dari frekuensi asli sinyal tersebut. 2.3 Operasi Shifting Operasi Shifting adalah operasi dasar sinyal yang melakukan penjumlahan unit impuls dengan konstanta sehingga menyebabkan pergeseran sinyal. Penjumlahan unit impuls dengan konstanta akan menyebabkan sinyal mengalami percepatan (tergeser ke kiri sejauh nilai konstanta). Sedangkan pengurangan unit impuls dengan konstanta akan menyebabkan sinyal mengalami perlambatan atau delay (tergeser ke kanan sejauh nilai konstanta). Pergeseran ke kanan (diperlambat/delay) Gambar 2.1 Proses Shifting x [k-1] Gambar di atas menunjukkan sinyal yang mengalami operasi shifting yaitu diperlambat 1 satuan waktu sehingga sinyal tersebut bergeser ke kanan 1 satuan waktu namun amplitudonya tidak berubah. 7 Pergeseran ke kiri (percepatan) Gambar 2.2 Proses Shifting x [k+3] Gambar di atas menunjukkan sinyal yang mengalami operasi shifting yaitu percepatan 3 satuan waktu sehingga sinyal tersebut bergeser ke kiri 3 satuan waktu namun amplitudonya tidak berubah. 2.4 Operasi Reversal Operasi Reversal adalah operasi dasar sinyal yang melakukan pembalikkan atau mirroring suatu sinyal impuls terhadap nilai waktu nol. Gambar 2.3 Proses Reversal Gambar di atas menunjukkan sinyal yang mengalami operasi reversal sehingga sinyal tersebut mengalami pembalikkan terhadap nilai nol namun amplitudonya tidak berubah. 2.5 Sistem LTI (Linear Time Invariant) Dua sifat sistem yang penting adalah sifat linearitas dan sifat waktu invarian. Sistem yang mempunyai kedua sifat penting ini disebut dengan sistem linear waktu invarian (Linear Time Invariant atau LTI). Sebuah sistem dikatakan 8 linear apabila sistem tersebut memenuhi teori superposisi. Teori ini dapat diringkas menggunakan dua hukum, yaitu hukum penjumlahan (additivity) dan homogenitas (homogeneity). Sebuah sistem dikategorikan sebagai sistem yang time-invariant apabila pergeseran waktu yang dialami oleh sinyal input akan dialami juga oleh sinyal output dengan besar yang sama. Sehingga apabila sebuah sistem menerima sinyal input yang mengalami penundaan sebesar m detik, maka sinyal output juga akan mengalami penundaan sebesar m detik. Apabila penundaan ini terjadi pada besaran yang berbeda maka sistem tersebut merupakan sistem yang tidak time-invariant. Pada sistem LTI, sinyal dapat dipecah dan diperlihatkan sebagai penjumlahan dari deret unit sampel. Sebagai konsekuensi dari sifat linearitas dan time invariant dari sistem, maka respons sistem untuk input sinyal yang sembarang dapat diekspresikan dalam respons unit sampel dari sistem. 2.5.1 Additivity Law Additivity law atau hukum penjumlahan menyatakan bahwa jika sebuah sistem memiliki n input, maka output dari sistem tersebut dapat dihitung dengan menjumlahkan output dari setiap masukan secara individu. Hal ini berarti pada saat menghitung output dari input ke-n, maka input selain n dimatikan. Metode ini sama dengan teori superposisi dalam rangkaian listrik. 2.5.2 Homogeneity Law Homogeneity law atau hukum homogenitas menyatakan bahwa jika sebuah input dikalikan dengan sebuah konstanta, maka outputnya secara otomatis akan dikalikan dengan konstanta juga. Hal ini diformulasikan dengan u (t) y (t) α u(t) α y(t) Faktor pengali pada output ini muncul sebagai akibat dari proses di dalam sistem dan bukan akibat dari dikalikan langsung dengan output yang normal. Apabila α u(t) menghasilkan α y(t), maka sistem ini dikatakan linear. 2.6 Intel® Hardware Accelerated Execution Manager Intel Hardware Accelerated Execution Manager (Intel ® HAXM) adalah mesin virtualisasi hardware (hypervisor) yang menggunakan Intel Virtualization Technology (Intel ® VT) untuk mempercepat emulator Android pada komputer. Kombinasi antara sistem image Android x86 emulator dari Intel dan Android SDK 9 Manager, HAXM memungkinkan untuk mempercepat kinerja emulator Android pada sistem yang telah mengaktifkan Intel VT. Platform yang didukung oleh Intel HAXM, yaitu: 1. Microsoft Windows Windows 8 (32/64-bit), Windows 7 (32/64-bit), Windows Vista (32/64-bit), Windows XP (32-bit) 2. Mac OS X Prosesor Mac berbasis Intel, Mac OS X 10.6 dan seterusnya (32/64-bit) 3. Linux Ubuntu (64-bit) 2.7 Android Device Program Pengolahan Sinyal ini nantinya akan berjalan pada Android device. Android device adalah perangkat mobile phone dengan platform Android. Menurut Ed Burnette (2010), platform Android diciptakan untuk mobile atau telepon seluler yang berbasis Linux. Android menyediakan platform terbuka bagi para pengembang untuk menciptakan aplikasi mereka sendiri. Awalnya, Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance (OHA), konsorsium dari 34 perusahaan hardware, software, dan perusahaan telekomunikasi, termasuk Google, HTC, Intel, Motorola,Qualcomm, T-Mobile, dan Nvidia. Pada saat perilisan perdana Android, 5 November 2007, Android bersama Open Handset Alliance menyatakan mendukung pengembangan standar terbuka pada perangkat seluler. Di lain pihak, Google merilis kode–kode Android di bawah lisensi Apache, sebuah lisensi perangkat lunak dan standar terbuka perangkat seluler. 10 2.7.1 Arti Logo Android Gambar 2.4 Logo Android Beberapa sumber menyatakan logo Android diilhami dari sebuah game bernama Gauntlet: The Third Encouter yang salah satu tokohnya berbentuk robot bernama Android. Di bawah ini dipaparkan arti dari logo Android yaitu: 1. Memiliki Bentuk seperti Robot Robot identik dengan suatu benda yang dapat dimodifikasi bentuk, tampilan dan performanya sesuai dengan keinginan. Modifikasi tersebut juga dapat dilakukan pada device yang menggunakan platform Android, Android dapat dibuat menjadi seperti keinginan dan membuatnya lebih baik 2. Memiliki 2 buah Antena di bagian Kepala Antena mencerminkan bahwa Android memiliki jangkauan atau wawasan yang luas. Dengan adanya antena tersebut membuatnya mengerti akan perkembangan teknologi di masa mendatang 3. Memiliki 2 buah Mata Bulat Mata mempunyai arti bahwa Android dapat melihat dunia luas dengan adanya fitur intenet yang dapat dilakukan secara real time dan juga terintegrasi dengan baik sehingga mudah untuk menjelajah di dunia maya 11 4. Warna Hijau pada Android Banyak yang menyatakan bahwa warna hijau adalah warna yang memiliki arti „Tumbuh‟. Misalnya saja pada tanaman, daun yang baru atau kuncup pasti memiliki warna hijau seperti logo Android. Oleh karena itu maka Android diharapkan dapat tumbuh dan berkembang dengan baik 2.7.2 Versi Android Platform Android selalu menghadirkan pengembangan serta inovasi yang berbeda pada setiap versi yang dirilis dan Android memberikan nama pada setiap versinya mengikuti abjad sesuai urutannya sebagai berikut: 1. Android versi 1.1 (Bender) 2. Android versi 1.5 (Cupcake) Gambar 2.5 Logo Android versi Cupcake 3. Android versi 1.6 (Donut) 4. Android versi 2.0/2.1 (Eclair) Gambar 2.6 Logo Android versi Eclair 5. Android versi 2.2 (Froyo: Frozen Yoghurt) 12 6. Android versi 2.3 (Gingerbread) Gambar 2.7 Logo Android versi Gingerbread 7. Android versi 3.0/3.1 (Honeycomb) Gambar 2.8 Logo Android versi Honeycomb 8. Android versi 4.0 (ICS: Ice Cream Sandwich) 9. Android versi 4.1/4.2/4.3 (Jelly Bean) 10. Android versi 4.4 (Kitkat) 13 Gambar 2.9 Logo Android versi Kitkat 11. Android versi 5.0/5.1 (Lollipop) Gambar 2.10 Logo Android versi Lollipop 2.8 Konsep Pemrograman Berorientasi Objek Konsep program Pengolahan Sinyal ini merupakan pemrograman berorientasi objek. Pemrograman berorientasi objek merupakan suatu konsep yang membagi program menjadi objek-objek yang saling berinteraksi satu sama lain. Objek memiliki 2 elemen penyusun, yaitu memiliki keadaan dan perilaku. 14 Gambar 2.11 Logo Bahasa Pemrograman Java Java merupakan salah satu bahasa pemrograman yang menggunakan konsep OOP, bahasa pemrograman yang akan digunakan dalam pembuatan aplikasi Pengolahan Sinyal ini. Java adalah suatu teknologi di dunia software computer. Selain merupakan suatu bahasa pemrograman, Java juga merupakan suatu platform. Mulanya Java diciptakan dengan tujuan untuk menghasilkan bahasa komputer sederhana yang dapat dijalankan diperalatan sederhana dengan tidak terikat pada arsitektur tertentu. Dikutip dari Rickyanto (2005), terakhir teknologi Java melahirkan J2ME (Java 2 Micro Edition) untuk menghasilkan aplikasi mobile baik games maupun software bisnis dan berbagai jenis software lain yang dapat dijalankan di mobile device seperti ponsel. Kelebihan Java Terdapat beberapa kelebihan pada Java yang membuat Java menjadi salah satu bahasa pemrograman utama diantaranya: 1. Java adalah bahasa pemrograman yang berorientasi objek sehingga memudahkan siapapun untuk membuat maupun mengembangkan program dengan cepat 2. Java bersifat sederhana dan mudah dipelajari 3. Java dapat digunakan dibanyak platform seperti Windows, Linux, Mac OS, Solaris dan sebagainya. 15 4. Sesuai dengan tagline-nya “Write Once, Run Anywhere”, cukup dengan menulis sebuah program Java dan dikompilasikan, hasilnya dapat dijalankan pada beberapa platform tanpa harus melakukan perubahan. Kelebihan ini memungkinkan sebuah program berbasis Java dikerjakan diatas platform Linux tetapi dijalankan dengan baik di atas Microsoft Windows 5. Java digunakan oleh berbagai device yang ada di dunia 6. Pada Android Studio, terdapat fitur “Debug” yang akan mendeteksi kesalahan pada penulisan program Java 7. Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu kelas Java dengan menambahkan properti ataupun method dapat dilakukan tanpa mengganggu program yang menggunakan kelas tersebut Struktur Bahasa Pemrograman Java Dalam pembuatan program java yang harus diperhatikan adalah penulisan huruf besar dan kecil karena java memiliki sifat Case Sensitive. Berikut akan dipaparkan tentang struktur program Java. Gambar 2.12 Contoh Penulisan Program Java Penjelasan Baris pertama: Package (paket) Merupakan kumpulan dari berbagai kode yang terangkum dalam satu paket. Paket digunakan untuk memudahkan penulisan dan pembagian logika suatu program, satu paket terbagi menjadi beberapa berkas (file) di mana setiap file memiliki fungsi atau tugas yang sangat khusus. Nama 16 package tidak dapat dituliskan dengan huruf besar atau karakter tertentu. Pada Java setiap kalimat harus diakhiri dengan titik koma (;). Baris kedua: Class (kelas) Kelas merupakan bagian penting dari bahasa Java karena Java merupakan bahasa pemrograman berorientasi objek. Kelas dgunakan untuk menggambarkan ciri-ciri objek secara umum. Nama kelas yang juga merupakan nama file Java harus diawali dengan penggunaan huruf kapital dan dituliskan tanpa spasi atau karakter tertentu. Baris ke-4: Komentar Komentar pada penulisan program Java adalah semua karakter yang terdapat diantara /* dan */ atau setelah // , komentar tidak akan dicompile sehingga biasanya digunakan untuk memberi keterangan syntax. Baris ke-7 dan 8: Fungsi main() Funsi main() dijadikan sebagai awal pengeksekusian program Java, kode yang terdapat pada metode inilah yang akan dieksekusi pertama. Metode main() didefinisikan sebagai public static void, berikut penjelasannya public, berarti metode ini dapat dipanggil dari luar class static, menunjukkan metode ini bersifat sama untuk semua class void, berarti metode ini tidak mengembalikan nilai Argument args[] adalah array objek string argument baris-baris perintah Baris ke-10: Statement Statement berisi sintaks yang terdapat di dalam method main yang dapat dieksekusi. Android Studio Penulisan program Java untuk pembuatan program ini dilakukan pada sebuah teks editor yang cukup handal yaitu Android Studio. Android Studio adalah sebuah IDE (Integrated Development Environment) resmi untuk mengembangkan perangkat lunak di platform Android. 17 Android SDK (Software Development Kit) Android-SDK merupakan tools bagi para pembuat program Android yang mencakup seperangkat alat pengembangan yang komprehensif. Android SDK terdiri dari debugger, libraries, handset emulator, dokumentasi, contoh kode, dan tutorial.