Minggu, 02 Oktober 2011

5. Model Konvensional Proses Perangkat Lunak

Terdapat 4 jenis model, antara lain:
1.Model aliran kerja (workflow): menunjukkan kegiatan pada proses bersama dengan input, output, dan ketergantungannya. Merepresentasikan pekerjaan manusia.
2.Model aliran data (data flow): merepresentasikan proses sebagai suatu set kegiatan yang melakukan transformasi data. Menunjukkan bagaimana input ke proses, misalnya spesifikasi ditransformasi menjadi output, misalnya menjadi desain.
3.Model peran/aksi: merepresentasikan peran orang yang terlibat pada PL dan kegiatan yg menjadi tanggung jawab mereka.
4.Model air terjun (waterfall): Mengambil kegiatan dasar seperti spesifikasi, pengembangan, validasi, dan evolusi dan merepresentasikannya sebagai fase-fase proses yang berbeda seperti spesifikasi persyaratan, perancangan perangkat lunak, implementasi, pengujian dan seterusnya.

MODEL EVOLUSIONER
Model ini bersifat iteratif/ mengandung perulangan. Hasil proses berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Selain itu tidak ada kegiatan spesifikasi, pengembangan, dan validasi yang terpisah. Kegiatan tersebut dilakukan pada saat yang bersamaan dengan umpan balik yang cepat untuk masing-masing kegiatan.

Kelebihan:
-Lebih efektif dari pendekatan air terjun dalam menghasilkan sistem yang dibutuhkan
-user mendapat pemahaman yang lebih baik dari masalah mereka

•Kekurangan:
-Tidak ada visibilitas proses
-Sistem biasanya tidak terstruktur dengan baik
-Kemampuan khusus (misalnya bahasa untuk
-prototipe cepat) kemungkinan diperlukan

•Aplikasi:
-Untuk sistem interaktif berukuran kecil atau medium
-Untuk bagian dari sistem besar (misalnya user interface)
-Untuk sistem dengan daur hidup pendek

Terdapat 2 jenis model evolusioner yaitu:
1.Pengembangan Eksplotari
Tujuan: bekerja dengan pelanggan untuk menyelidiki persyaratan mereka dan mengirimkan sistem akhir.
Obyektif : bekerja dengan konsumen dan melibatkan sistem akhir dari spesifikasi skema inisial. Dimulai dengan kebutuhan yang dimengerti dengan baik.
2.Prototipe yang dapat dibuang (throw-away) à
Berkonsentrasi pada eksperimen, dengan persyaratan pelanggan yang tidak dipahami dengan baik.
Obyektif : mengerti kebutuhan sistem. Dimulai dengan kebutuhan yang tidak dimengerti dengan baik.

Selain 2 model di atas, masih terdapat 2 jenis model berdasarkan Mills dan Boehm yaitu:
1.Incremental Model (Original: Mills)
•berdasarkan model sistem yang dipecah sehingga model pengembangannya secara increment/bertahap.
•Masalah :
1.cocok untuk proyek berukuran kecil (tidak lebih dari 200.000 baris coding)
2.mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment

2.Spiral Model (Original: Boehm)
•Setiap loop mewakili satu fase dari software process.
•Loop paling dalam berfokus pada kelayakan dari sistem, loop selanjutnya tentang definisi dari kebutuhan, loop berikutnya berkaitan dengan desain sistem dan seterusnya
•Masalah:
Membutuhkan waktu yang cukup panjang , sehingga waktu yang lama sama dengan biaya yang lebih besar.

4. Software Engineering

Merupakan disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal spesifikasi sistem sampai pemeliharaan sistem setelah digunakan. Dalam RPL mengadopsi pendekatan yang sistematis dan terorganisir terhadap pekerjaannya. Selain itu juga menggunakan tool yang sesuai serta teknik yang ditentukan berdasarkan masalah yang akan dipecahkan, kendala pengembangan dan sumber daya yang tersedia.
Metode Rekayasa Perangkat Lunak:
Merupakan pendekatan terstruktur pengembangan PL termasuk model sistem, notasi, perancangan dan petunjuk pemrosesan. Terdiri dari:
•Deskripsi Model: deskripsi pemodelan dengan grafik
•Aturan: batasan yang digunakan pada model sistem
•Rekomendasi: saran dalam membentuk perancangan yang baik
•Petunjuk proses: aktifitas yang harus diikuti

MITOS SOFTWARE
1.Mitos Manajemen
a.Buku yang lengkap dan banyak sebagai referensi telah cukup untuk pengembangan sebuah software
b.Disediakan komputer terbaru
c.Jika pengembangan terlambat, tambahkan programmer baru
2.Mitos Pelanggan
a.Pernyataan umum sudah dapat digunakan untuk memulai pembuatan program
b.Kebutuhan proyek pengembangan software akan terus berubah, tapi perubahan dapat mudah diatasi
3.Praktisi
a.Sekali menulis programàdapat membuatnya bekerjaà pekerjaan selesai.
b.Untuk menilai kualitas programà membuat sendiri program itu bisa berjalan
c.Hasil akhir dari sebuah proyek à hanyalah dapat berjalan atau tidaknya program

SOFTWARE PROCESS
Merupakan serangkaian kegiatan dan hasil-hasil relevannya yang menghasilkan perangkat lunak sebagian besar dilakukan oleh perekayasa perangkat lunak. Ada 4 kegiatan/aktivitas pada proses PL :
•Spesifikasi Perangkat Lunak : Fungsionalitas perangkat lunak dan batasan kemampuan operasinya harus didefinisikan.
•Pengembangan (Perancangan dan Implementasi) Perangkat Lunak: Perangkat lunak yang memenuhi spesifikasi harus di produksi.
•Validasi Perangkat Lunak : Perangkat lunak harus divalidasi untuk menjamin bahwa perangkat lunak melakukan apa yang diinginkan oleh pelanggan.
•Evolusi Perangkat Lunak: Perangkat lunak harus berkembang untuk memenuhi kebutuhan pelanggan. 

3. Analisis Perangkat Lunak

Definisi Analisis Kebutuhan
Analisis kebutuhan adalah proses menemukan permasalahan dan menghasilkan alternatif pemecahan yang relevan.
Tujuan tahap analisis adalah untuk mengetahui kebutuhan customer berkaitan dengan sistem perangkat lunak yang diinginkan. Pada tahap ini yang terlibat adalah tim spesifikasi/analisis dan customer (meliputi end-user, manajer dan staf lain yang terlibat).

Metric (Ukuran) Analisis Kebutuhan
Metric analisis kebutuhan diperlukan untuk :
  • Mengukur apakah suatu kebutuhan didefinisikan dengan baik. Hal ini dapat dilihat antara lain dari persentase spesifikasi kebutuhan yang ambigu dan derajat kelengkapan kebutuhan yang didefinisikan
  • Mengukur apakah inspeksi terhadap pendefinsian kebutuhan dilakukan secara efektif

Kebutuhan adalah deskripsi fungsionalitas sistem yang berorientasi pada customer dan batasan-batasan yang menyertai pengoperasian sistem tersebut [SOM00].
Penulisan Definisi Kebutuhan:
  • Menggunakan bahasa natural (english) meskipun secara universal dimengerti, namun tetap dimungkinkan muncul hal-hal berikut yang harus dihindari, antara lain :
o ketidakjelasan disebabkan dokumen yang dibuat sulit dibaca karena terlalu rinci
o pencampuradukan antara kebutuhan fungsional dan kebutuhan non fungsional
o beberapa kebutuhan diekspresikan dengan satu pernyataan

  • Menggunakan format standar (misal : IEEE)Spesifikasi Kebutuhan adalah deskripsi rinci dan terukur dari fungsi-fungsi dan batasan-batasan sistem yang telah didefinisikan [SOM00].
Penulisan Spesifikasi Kebutuhan :Structured language specifications
o Bentuk terbatas dari bahasa natural (english) yang digunakan untuk mengekspresikan kebutuhan
o Menghilangkan beberapa problem yang diakibatkan oleh ambiguitas dan fleksibilitas

2. Perangkat Lunak

Tujuan utama rekayasa perangkat lunak adalah menghasilkan suatu produk perangkat lunak. Produk Perangkat Lunak menurut Ian Sommerville [SOM00] didefinisikan sebagai berikut:
Software Products are Software Systems delivered to a customer with the documentation which describes how to install and use the system.
Produk perangkat lunak adalah sistem perangkat lunak beserta dokumentasinya yang menjelaskan prosedur penyiapan dan penggunaan perangkat lunak tersebut.
Pada definisi lain yang dikutip oleh Pressman [PRE01] dalam bukunya Software Engineering A Practioner’s Approach, perangkat lunak didefinisikan lebih riinci lagi yaitu sebagai:
a. instruksi-instruksi yang jika dieksekusi akan memberikan layanan-layanan atau fungsi seperti yang diinginkan
b. struktur data yang diperlukan oleh suatu program untuk memanipulasi informasi
c. dokumen-dokumen yang mendeskripsikan penggunaan suatu program.

Karakteristik Perangkat Lunak
Menurut Pressman [PRE01], ada beberapa karakteristik perangkat lunak yang membedakan dengan perangkat keras :

Karakteristik pertama : Software is developed or engineered, it is not manufactured in the classical sense.
Perangkat lunak adalah suatu produk yang lebih menekankan pada kegiatan rekayasa (engineering) dibandingkan kegiatan manufacturing (rancang bangun di pabrik). rumit.

Karakteristik kedua : Software doesn’t “wear out”
Perangkat lunak bukanlah produk yang dapat usang atau rusak untuk kemudian dibuang, seperti halnya produk perangkat keras. Yang dapat terjadi adalah produk-produk perangkat lunak tersebut tidak dapat melayani beberapa kebutuhan yang dikehendaki pemakainya, disebabkan berkembangnya kebutuhan-kebutuhan baru.

Karakteristik ketiga : Most software is custom-built rather than being assembled from existing components
Kebanyakan perangkat lunak tidak dibangun dari perangkat lunak-perangkat lunak yang sudah ada. Pembangunan aplikasi baru kebanyakan dimulai dari awal, dari tahap analisis sampai tahap pengujian. Namun demikian, kini paradigma baru mulai dikembangkan, yaitu konsep reuseability. Dengan konsep ini suatu aplikasi baru dapat dikembangkan dari aplikasi yang sudah ada yang menerapkan konsep reusability tersebut.

Kualitas Perangkat Lunak
Ukuran kualitas perangkat lunak dilihat dari atribut antara lain :
  • Maintainability , yaitu tingkat kemudahan perangkat lunak tersebut dalam mengakomodasi perubahan-perubahan
  • Dependability, ketidakbergantungan perangkat lunak dengan elemen-elemen sistem lainnya atau sistem secara keseluruhan.Artinya kegagalan elemen lain tidak mempengaruhi performansi perangkat lunak
  • Efficiency , menyangkut waktu eksekusi
  • Usability , yaitu atribut yang menunjukkan tingkat kemudahan pengoperasian perangkat lunak 
Aplikasi Perangkat Lunak
Pressman [PRE01] mendefinisikan aplikasi perangkat lunak sebagai berikut:
- Perangkat lunak sistem
Suatu perangkat lunak yang berfungsi melayani perangkat lunak lain, seperti : kompilator, editor, sistem operasi, utilitas, da lain-lain.
- Perangkat lunak Real time (waktu nyata)
Suatu perangkat lunak yang berfungsi mengendalikan, memonitor atau menganalisis kejadian (event) yang terjadi pada keadaan nyata. Perangkat lunak ini mempunyai komponen sebagai berikut :
    • komponen pengumpul data : mengumpulkan & memformat informasi dari lingkungan eksternal
    • komponen analisis: melakukan transformasi informasi yang dibutuhkan aplikasi
    • komponen control/output: merespon lingkungan eksternal
    • komponen pemonotoran : mengkoordinasi seluruh komponen sehingga respon real time yang diinginkan dapat tercapai
- Perangkat lunak bisnis
Perangkat lunak yang mengakses satu atau lebih basisdata besar yang berisi informasi bisnis, sebagai contoh sistem payroll, sistem invetori, dan lain-lain.
-  Perangkat lunak keteknikan dan keilmuan
Perangkat lunak ini banyak membantu memecahkan permasalahan di bidang astronomi, vulkanologi, automotive stress analysis, molecular biology, automotive manufacturing, Computer Aided Design (CAD), dan lain-lain.
- Embedded software
Perangkat lunak yang ditanam pada suatu chip (EEPROM). Perangkat lunak ini terintegrasi dengan perangkat keras dan berfungsi mengatur kinerja dari perangkat keras tersebut. Sebagai contoh : microwave oven, telpon genggam, pengaturan avionik pesawat udara, dan lain-lain.
- Perangkat lunak Komputer personal (PC)
Perangkat lunak yang dioperasikan di PC, seperti : pengolah kata, multimedia, DBMS.
- Perangkat lunak Kecerdasan Buatan
Perangkat lunak yang menerapkan algoritma nonnumerik untuk memecahkan permasalahan yang kompleks. Contoh : perangkat lunak kecerdasan buatan, sistem pakar, dan lain-lain.

PROSES PERANGKAT LUNAK
Proses perangkat lunak adalah sebuah kerangka kerja untuk membangun perangkat lunak yang berkualitas tinggi.
- Proses : mendefinisikan kerangka kerja (frame work) , sehingga pembangunan perangkat lunak dapat dilakukan secara sistematis.
- Metode : mendefinisikan bagaimana perangkat lunak dibangun, meliputi metode-metode yang digunakan dalam melakukan analisis kebutuhan, perancangan, implementasi dan pengujian. Sebagai contoh : metode terstruktur, metode berorientasi objek, dan lain-lain.
- Alat Bantu : perangkat yang bersifat otomatis maupun semi otomatis yang berfungsi mendukung tiap tahap pembangunan perangkat lunak. Contoh : CASE, CAD, dan lain-lain.

MODEL PROSES
Fungsi utama model proses pengembangan perangkat lunak adalah :
  • menentukan tahap-tahap yang diperlukan untuk pengembangan perangkat lunak. 
  • menentukan urutan pelaksanaan dari tahap-tahap tersebut dalam rangka pengembangan perangkat lunak.
  • menentukan kriteria transisi/perpindahan dari satu tahap ke tahap berikutnya.

1. Pendahuluan Rekayasa Perangkat Lunak

Bayangkan anda mempunyai sebidang tanah yang luas yang akan dibangun sebuah rumah di atasnya. Membangun sebuah rumah membutuhkan biaya yang besar sehingga harus dipastikan apakah rumah yang akan dibuat sesuai dengan keinginan.
Bagaimana proses membangun rumah anda tsb ?

1. Jika anda memulai membangun dengan cepat ? (hanya dibantu oleh anak anda yang berumur 14 tahun), apakah yang akan dihasilkan ?
Mungkin rumah tersebut berhasil dibangun tetapi ternyata kualitas dinding yang dibangun rendah sehingga dikhawatirkan tidak cukup kuat untuk menopang atap, pengecatan yang tidak merata, tata ruang yang tidak memperhatikan sirkulasi udara, atap-atap yang masih berlobang, dan lain-lain.

2. Jika anda pergi ke sembarang pengembang, kemudian anda hanya memberitahukan rumah yang akan dibuat terdiri dari beberapa kamar tidur, kamar tamu, dapur dan sebuah kamar mandi. Anda tidak memberitahukan dengan jelas apa yang anda inginkan dan tidak pernah mengontrol pada saat pembangunan. Enam bulan kemudian ketika pengembang memberitahukan kepada anda bahwa rumahnya telah selesai dibangun, kemungkinan anda akan mengalami kekecewaan dan memiliki banyak keluhan: kenapa kamar mandi berdekatan dengan kamar tidur utama ? Saya tidak suka model pintu demikian ! Harusnya lantainya keramik! Lubang ventilasinya terlalu sedikit !

3. Jika Anda mempekerjakan seorang arsitek untuk mendesain dari awal
Secara berkala anda mengadakan pertemuan dengan arsitek tersebut. Beberapa keinginan (requirement) yang penting anda kemukakan kepada arsitek. Kemudian arsitek menggambarkan rancangan rumah yang akan dibangun dan menunjukkannya kepada anda. Anda kemudian memberikan masukan-masukan. Masukan-masukan tersebut kemudian dituangkan kembali dalam bentuk gambar rancangan dan ditunjukkan kembali kepada anda. Setelah anda menyetujui, maka dibangunlah rumah tersebut. Apa yang terjadi ? Anda akan mendapatkan rumah sebagaimana rumah yang sesuai dengan keinginan dan anda idam-idamkan !!!.
Diskusikan apakah ilustrasi membangun rumah di atas (diambil dari alm M Davis) dapat dianalogikan dengan proses membangun suatu perangkat lunak ? Apa pesan yang ingin disampaikan dari kasus di atas ?
Bagaiamana dengan membangun perangkat lunak ?
Kita, saya atau anda dan kebanyakan orang yang berkecimpung dalam dunia pembangunan perangkat lunak (software development), biasanya akan melakukan hal yang sama ketika mendapatkan persoalan sederhana yang membutuhkan solusi komputasi : berfikir sejenak, menghadap komputer dan kemudian mulai mengetikkan baris demi baris code. Tidak ada kertas-kertas yang memuat perancangan aristektur dan algoritma secara rinci, karena semua rancangan itu ada di dalam kepala. Bahkan kita sering merasa bahwa melakukan perancangan yang dituangkan dalam secarik kertas tidak lebih sebagai pemborosan waktu. Padahal dengan melakukan pendekatan seperti itu berulang kali kita dihadapkan pada masalah yang
memusingkan, yaitu terjadinya keterlambatan dalam menyelesaikan pembangunan perangkat lunak. Atau yang lebih ringan berbaris-baris error terpampang di layar monitor ketika kita mengkompilasi program yang telah dibuat. Namun demikian, ketika dihadapkan pada masalah baru yang memerlukan pembangunan perangkat lunak, lagi-lagi kita lupa untuk kemudian melakukan hal yang sama : berfikir sejenak, menghadap komputer dan kemudian mengetikkan baris demi baris code !
Untuk permasalahan-permasalahan yang sederhana seperti yang diilustrasikan di atas barangkali tidak begitu memerlukan pendekatan yang sistematis dan terukur. Tetapi untuk membangun perangkat lunak yang kompleks, bagaimana menurut anda ??

4 Mengapa Rekayasa Perangkat Lunak Diperlukan ?
a. Software Crisis
Software crisis terjadi di daratan Eropa pada kurun waktu 60-an. Kondisi-kondisi yang terjadi. Selain itu biaya pembangunan perangkat lunak lebih mahal dibandingkan biaya perangkat keras
Berdasarkan sebab-sebab pada tahun 1968, di Garmisch Jerman Barat, suatu workshop dirancang untuk mengangkat isu penting yaitu perlunya suatu manajemen proses dalam pembangunan perangkat lunak komputer. Dari sinilah kemudian istilah “Software Engineering” untuk pertama kalinya dipopulerkan. Istilah software engineering ini dalam bahasa Indonesia menjadi rekayasa perangkat lunak

5 Apakah Rekayasa Perangkat Lunak itu ?
Pada modul ini hanya akan dikutipkan dua definisi, yaitu yang dikemukakan oleh Fritz Bauer dan definisi yang ditetapkan oleh IEEE. Dua definisi tersebut cukup representatif untuk menunjukkan dua sudut pandang dalam mendefinisikan rekayasa perangkat lunak. Dengan demikian diharapkan diperoleh gambaran yang jelas terhadap lingkup kajian rekayasa perangkat lunak.
Menurut Fritz Bauer [NAU69] :
Software engineering is the establishment and use of sound engineering principles in order to obtain economically software that is reliable and works eficiently on real machines[2].
Rekayasa perangkat lunak merupakan penerapan prinsip-prinsip rekayasa untuk mendapatkan produk perangkat lunak yang ekonomis, handal dan efisien. Pada definisi ini Fritz Bauer telah meletakkan ukuran-ukuran yang harus dipenuhi oleh suatu perangkat lunak, yaitu ekonomis, handal dan efisien.
Sedangkan menurut IEEE [IEEE93] :
Software Engineering is The aplication of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software [2]
Rekayasa Perangkat Lunak adalah suatu pendekatan yang sistematis, disiplin dan berkualitas yang diterapkan pada pengembangan, pengoperasian dan perawatan perangkat lunak.
Dua definisi tersebut mengisyaratkan cara pandang yang berbeda dalam mendefinisikan rekayasa perangkat lunak. Firtz Bauier menitikberatkan pada aspek perangkat lunak sebagai sebuah produk sedangkan definisi IEEE lebih terfokus pada kriteria proses yang harus dilakukan dalam pembangunan perangkat lunak. Secara terminologi kalimat rekayasa perangkat lunak sendiri mengandung dua unsur tersebut. Rekayasa adalah suatu bentuk dari proses, sedangkan perangkat lunak adalah suatu produk.Topik selanjunya akan meninjau perangkat lunak sebagai suatu produk dan proses.

5. Tutorial JavaFX

JavaFX Architecture
                                        JavaFX Architecture
JavaFX is an expressive rich client platform for creating and delivering rich Internet experiences across all the screens of your life.
Maka bisa disimpulkan bahwa JavaFX ini memungkinkan RIA [Rich Internet Application] untuk tampil di layar mobile device, desktop, televisi dsb.
Nah, untuk belajar sebuah teknologi baru, tentu saja kita butuh resources yang memadai, dan dibawah ini saya kumpulkan beberapa resources gratis, yang bisa anda pakai sebagai langkah awal untuk belajar JavaFX.
Mungkin itu dulu untuk saat ini, silahkan jika ada rekan-rekan yang mempunyai resources tambahan untuk belajar JavaFX, mungkin bisa di share disini.

4. Teknik Dasar Kompresi Audio

Kompresi audio adalah salah satu bentuk kompresi data yang bertujuan untuk mengecilkan ukuran file audio/video dengan metode
  • Lossy à format : Vorbis, MP3, MPEG-1;
  • Loseless à format : FLAC yang digunakan pada audio engineer
Kompresi dilakukan pada saat pembuatan file audio/video dan pada saat distribusi file audio/video tersebut
Kendala pada kompresi audio:
  • Perkembangan sound recording yang cepat dan beranekaragam
  • Kebutuhan sample audio berubah dengan cepat
Loseless audio codec tidak memperhatikan masalah dalam kualitas suara, penggunaannya dapat difokuskan pada:
  • Kecepatan kompresi dan dekompresi
  • Faktor kompresi
  • Dukungan hardware dan software
Lossy audio codec penggunaannya difokuskan pada:
  • Kualitas audio yang dihasilkan
  • Faktor kompresi
  • Kecepatan kompresi dan dekompresi
  • Inherent latency of algorithm (penting bagi real-time streaming)
  • Dukungan hardware dan software

Metode Kompresi Audio

  1. Metode Transformasi (Transform domain)
  • Menggunakan algoritma seperti MDCT (Modified Discreate Cosine Transform) untuk mengkonversikan gelombang bunyi ke dalam sinyal digital agar tetap dapat didengar oleh manusia (20 Hz s/d 20kHz) , yaitu menjadi frekuensi 2 s/d 4kHz dan 96 dB.
2.  Metode Waktu (Time domain)
  • Menggunakan LPC (Linier Predictive Coding) yaitu digunakan untuk speech (pidato), dimana LPC akan menyesuaikan sinyal data pada suara manusia, kemudian mengirimkannya ke pendengar.  Jadi seperti layaknya komputer yang berbicara dengan  bahasa manusia dengan kecepatan 2,4 kbps

MPEG(Moving Picture Expert Group)

MPEG-1 menggunakan bandwidth 1,5 Mbits/sec untuk audio dan video, dimana 1,2 Mbits/sec digunakan untuk video sedangkan 0,3 Mbits/sec digunakan untuk audio.
Nilai 0,3 Mbits/sec ini lebih kecil dibandingkan dengan bandwidth yang dibutuhkan oleh CD Audio yang tidak terkompres sebesar 44100 samples/sec x 16 bits/sample * 2 channel > 1,4 Mbits/sec yang hanya terdiri dari suara saja.
Untuk ratio kompresi 6:1 untuk 16 bit stereo dengan frekuensi 48kHz dan bitrate 256 kbps CBR akan menghasilkan ukuran file terkompresi kira-kira 12.763 KB, sedangkan ukuran file tidak terkompresinya adalah 75.576 KB
MPEG-1 audio mendukung frekuensi dari 8kHz, 11kHz, 12kHz, 16kHz, 22kHz, 24 kHz, 32 kHz, 44kHz, dan 48 kHz.  Juga mampu bekerja pada mode mono (single audio channel), dual audio channel, stereo, dan joint-stereo

Algoritma MPEG Audio

Menggunakan filter untuk membagi sinyal audio: misalnya pada 48 kHz, suara dibagi menjadi 32 subband frekuensi.
Memberikan pembatas pada masing-masing frekuensi yang telah dibagi-bagi, jika tidak akan terjadi intermodulasi (tabrakan frekuensi)
Jika sinyal suara terlalu rendah, maka tidak dilakukan encode pada sinyal suara tersebut
Diberikan bit parity yang digunakan untuk mengecek apakah data tersebut rusak atau tidak (yang mungkin disebabkan oleh gangguan / noise), apabila rusak, maka bit tersebut akan digantikan bit yang jenisnya sama dengan bit terdekatnya.

Kompresi Audio MP3

  • Asal-usul MP3 dimulai dari penelitian IIS-FHG (Institut Integriette Schaltungen-Fraunhofer Gesellschaft), sebuah lembaga penelitian terapan di Munich, Jerman dalam penelitian coding audio perceptual.
  • Penelitian tersebut menghasilkan suatu algoritma yang menjadi standard sebagai ISO-MPEG Audio Layer-3 (MP3)
1. Auditory masking
Manusia tidak mampu mendengarkan suara pada frekuensi tertentu dengan amplitudo tertentu jika pada frekuensi di dekatnya terdapat suara dengan amplitudo yang jauh lebih tinggi.
2. Critical band
Critical band merupakan daerah frekuensi tertentu dimana pendengaran manusia lebih peka pada frekuensi-frekuensi rendah, sehingga alokasi bit dan alokasi sub-band pada filter critical band lebih banyak dibandingkan frekuensi lebih tinggi.
3. Joint stereo
Terkadang dual channel stereo mengirimkan informasi yang sama. Dengan menggunakan joint stereo, informasi yang sama ini cukup ditempatkan dalam salah satu channel saja dan ditambah dengan informasi tertentu. Dengan teknik ini bitrate dapat diperkecil.

Encoder / Decoder MP3

  • Ukuran file terkompresi harus sekecil mungkin
  • Kualitas suara file yang telah terkompresi haruslah sedekat mungkin dengan file asli yang belum dikompresi
  • Tingkat kesulitan rendah, sehingga dapat direalisasikan dengan aplikasi yang mudah dibuat dan perangkat keras yang ‘sederhana’ dengan konsumsi daya yang rendah

Sabtu, 01 Oktober 2011

3. Pengantar Multimedia

Pemakaian istilah multimedia pada mulanya digunakan dalam penyajian seni pertunjukan, untuk mendramatisasi suatu cerita  dengan menambahkan unsur gerak, musik, dan video. Sekarang multimedia di asumsikan sebagai media audio visual yang memberi cakupan yang lebih luas dalam menyampaikan informasi yang utamanya disampaikan melalui teks, tidak selalu dengan menambahkan lebih banyak teks, tetapi dengan menyertakan elemen bunyi, gambar, musik,animasi ,video dan unsur interaktifitas(ref; Sejarah multimedia dan Authoring software)
unsur-unsur mm
Elemen/Unsur/obyek multimedia
Etimologi Multimedia sesuai dengan asal katanya adalah:
MULTI (latin nouns) : Banyak, macam-macam
MEDIA (latin): Sesuatu yang dipakai untuk menyampaikan atau membawa sesuatu.
Terdapat beberapa definisi menurut beberapa ahli mengenai multimedia dalam konteks komputer:
1. Multimedia adalah persekutuan media diantara sumber dan pemasukan informasi, di presentasikan dan di terima(Robert webking,2001)
2. Kombinasi dari tiga elemen: suara, gambar, dan teks(McCommick,1996)
3. Kombinasi dari paling sedikit dua media input atau output. Media ini dapat berupa audio, video, treks, grafik, dan gambar(Turban dan kawan-kawan)
4. Alat yang dapat menciptakan presentasi yang dinamis dan interaktif yang mengkombinasikan teks,grafik, animasi, audio, dan video(Robin dan Linda,2001)
Secara garis besar multimedia dapat didefinisikan sebagai penggunaan beberapa media yang berbeda untuk menyampaikan informasi dalam bentuk teks, audio, grafik,  animasi, dan video dengan menggabungkan link dan tool yang memungkinkan pengguna melakukan navigasi, berinteraksi, berkomunikasi, dan berkreasi .
Multimedia dimanfaatkan juga dalam berbagai aspek kehidupan. Di bidang pendidikan, multimedia digunakan sebagai media pengajaran, baik dalam kelas maupun secara mandiri. Di bidang bisnis, multimedia digunakan sebagai media profil perusahaan, profil produk, pada media kiosk informasi, dan sistem e-learning.
Kiosk
Advance Multimedia..
Kemampuan Multimedia pada masa sekarang tidak hanya terbatas pada akses dengan indra penglihatan (gambar diam, teks, gambar gerak video, dan gambar gerak rekaan/animasi), dan indra pendengaran (suara) saja, perkembangan multimedia juga merambah unsur kinetik (gerak) dan bau yang merupakan konsumsi indra penciuman.
Teknologi multimedia melibatkan gerak manusia atau obyek , seperti pada konsol video game dan pertunjukan film 3 dimensi yang digabungkan dengan gerakan pada kursi tempat duduk penonton.
xbox kinect dan nintendo wii menggunakan gerakan tubuh sebagai pengganti "joystik"
Bau juga mulai menjadi bagian dari multimedia sejak ditemukan teknologi reproduksi bau melalui telekomunikasi. Dengan perangkat input penditeksi bau, seorang operator dapat mengirimkan hasil “peng-digital-an” bau tersebut melalui internet. Pada komputer penerima harus tersedia perangkat output berupa mesin reproduksi bau. Mesin reproduksi bau ini mencampurkan berbagai jenis bahan bau yang setelah dicampur menghasilkan output berupa bau yang mirip dengan data yang dikirim dari internet. Dengan mengumpamakan proses ini dengan printer, alat ini menjadikan feromon-feromon bau sebagai pengganti tinta. Output bukan berupa cetakan melainkan aroma.

2. Multimedia Authoring dan tools

Multimedia Authoring Tools atau alat penyusun multimedia adalah paket perangkat lunak yang dapat dipergunakan untuk membuat dan paket penyampaian konten multimedia (gabungan dari teks, gambar, grafik, suara, animasi, dan video) kepada pengguna.
Meskipun alat penyusun multimedia memiliki berbagai kegunaan, mereka umumnya digunakan untuk membuat modul e-Learning. Modul ini umumnya ditulis untuk memenuhi beberapa standar internasional, seperti SCORM (Shareable Content Object Reference Model) atau AICC (CBT) (Aviation Industry CBT Committee).
Distribusi konten yang dibuat dengan alat penyusun multimedia juga bervariasi. Metode Distribusinya meliputi: file web, kiosk, CD-ROM interaktif, dan file yang dapat dieksekusi.
Karena istilah ini agak umum, banyak program yang dapat dianggap sebagai authoring tools, termasuk Adobe Flash, dan Microsoft PowerPoint. Namun, hanya sekelompok kecil program khusus termasuk dukungan untuk konten e-learning standar termasuk didalamnya, antara lain : e2train Composica, Macromedia (Adobe) Authorware, Adobe Director, Mohive, Lectora, Komposer FX, dan Presenter iSpring.

Adobe Flash (dahulu bernama Macromedia Flash) adalah salah satu perangkat lunak komputer yang merupakan produk unggulan Adobe Systems. Adobe Flash digunakan untuk membuat gambar vektor maupun animasi gambar tersebut. Berkas yang dihasilkan dari perangkat lunak ini mempunyai file extension .swf dan dapat diputar di penjelajah web yang telah dipasangi Adobe Flash Player. Flash menggunakan bahasa pemrograman bernama ActionScript yang muncul pertama kalinya pada Flash 5.
Sebelum tahun 2005, Flash dirilis oleh Macromedia. Flash 1.0 diluncurkan pada tahun 1996 setelah Macromedia membeli program animasi vektor bernama FutureSplash. Versi terakhir yang diluncurkan di pasaran dengan menggunakan nama 'Macromedia' adalah Macromedia Flash 8. Pada tanggal 3 Desember 2005 Adobe Systems mengakuisisi Macromedia dan seluruh produknya, sehingga nama Macromedia Flash berubah menjadi Adobe Flash.
Adobe Flash merupakan sebuah program yang didesain khusus oleh Adobe dan program aplikasi standar authoring tool professional yang digunakan untuk membuat animasi dan bitmap yang sangat menarik untuk keperluan pembangunan situs web yang interaktif dan dinamis. Flash didesain dengan kemampuan untuk membuat animasi 2 dimensi yang handal dan ringan sehingga flash banyak digunakan untuk membangun dan memberikan efek animasi pada website, CD Interaktif dan yang lainnya. Selain itu aplikasi ini juga dapat digunakan untuk membuat animasi logo, movie, game, pembuatan navigasi pada situs web, tombol animasi, banner, menu interaktif, interaktif form isian, e-card, screen saver dan pembuatan aplikasi-aplikasi web lainnya. Dalam Flash, terdapat teknik-teknik membuat animasi, fasilitas action script, filter, custom easing dan dapat memasukkan video lengkap dengan fasilitas playback FLV. Keunggulan yang dimiliki oleh Flash ini adalah ia mampu diberikan sedikit code pemograman baik yang berjalan sendiri untuk mengatur animasi yang ada didalamnya atau digunakan untuk berkomunikasi dengan program lain seperti HTML, PHP, dan Database dengan pendekatan XML, dapat dikolaborasikan dengan web, karena mempunyai keunggulan antara lain kecil dalam ukuran file outputnya
Movie-movie Flash memiliki ukuran file yang kecil dan dapat ditampilkan dengan ukuran layar yang dapat disesuaikan dengan keingginan. Aplikasi Flash merupakan sebuah standar aplikasi industri perancangan animasi web dengan peningkatan pengaturan dan perluasan kemampuan integrasi yang lebih baik. Banyak fiture-fiture baru dalam Flash yang dapat meningkatkan kreativitas dalam pembuatan isi media yang kaya dengan memanfaatkan kemampuan aplikasi tersebut secara maksimal. Fiture-fiture baru ini membantu kita lebih memusatkan perhatian pada desain yang dibuat secara cepat, bukannya memusatkan pada cara kerja dan penggunaan aplikasi tersebut. Flash juga dapat digunakan untuk mengembangkan secara cepat aplikasi-aplikasi web yang kaya dengan pembuatan script tingkat lanjut. Di dalam aplikasinya juga tersedia sebuah alat untuk men-debug script. Dengan menggunakan Code hint untuk mempermudah dan mempercepat pembuatan dan pengembangan isi ActionScript secara otomatis.

Microsoft Office PowerPoint adalah sebuah program komputer untuk presentasi yang dikembangkan oleh Microsoft di dalam paket aplikasi kantoran mereka, Microsoft Office, selain Microsoft Word, Excel, Access dan beberapa program lainnya. PowerPoint berjalan di atas komputer PC berbasis sistem operasi Microsoft Windows dan juga Apple Macintosh yang menggunakan sistem operasi Apple Mac OS, meskipun pada awalnya aplikasi ini berjalan di atas sistem operasi Xenix. Aplikasi ini sangat banyak digunakan, apalagi oleh kalangan perkantoran dan pebisnis, para pendidik, siswa, dan trainer. Dimulai pada versi Microsoft Office System 2003, Microsoft mengganti nama dari sebelumnya Microsoft PowerPoint saja menjadi Microsoft Office PowerPoint. Versi terbaru dari PowerPoint adalah versi 12 (Microsoft Office PowerPoint 2007), yang tergabung ke dalam paket Microsoft Office System 2007.

1. Pemrograman Multimedia dengan menggunakan J2ME

2ME (Java 2 Micro Edition), sebuah platform dari java yang men-support pemrograman untuk aplikasi mikro. Aplikasi mikro tersebut dapat berjalan di mobile phone.
Pemrograman J2ME banyak digunakan untuk berbagai tujuan, seperti: aplikasi, penjadwalan, e-mobile, dll. Selain itu, J2ME juga marak digunakan untuk keperluan multimedia, salah satunya adalah aplikasi game.
Dengan berbekal kemampuan dasar j2me, kita akan dapat membuat sebuah aplikasi sederhana di handphone kita sendiri. Namun, pemrograman multimedia pada J2ME adalah sebuah proses yang cukup sulit, karena kita harus dapat mengembangkan aplikasi sendiri.
Pada tulisan kali ini, akan melengkapi tugas pembuatan sebuah game 2 dimensi (2D) berbasis j2me. Konsep game ini sangat sederhana, yaitu permainan peperangan pesawat luar angkasa yang dapat menembak musuh-musuhnya.
Sebagai sebuah aplikasi game, game ini masih tergolong game yang rendah/sederhana, hal itu jika dilihat dari segi tampilan multimedianya (baik grafik, animasi, suara, semuanya tergolong sederhana). Game ini menyajikan sebuah peperangan antara sebuah “sprite”, yang merupakan aktor utama dalam permainan, dan beberapa musuh yang bertugas menghancurkannya.
Sprite tersebut-lah yang telah diprogram untuk dapat dikontrol oleh user, sehingga dapat menghindar maupun menembak musuhnya.
Pada tulisan kali ini mungkin tidak dijelaskan secara detail langkah pemrograman dari game ini. Namun secara keseluruhan konsep game ini menyajikan sebuah pengembangan pemrograman j2me yang memerlukan interaksi user. Dan game ini mungkin masih sederhana dari segi multimedia, sehingga masih memerlukan banyak penambahan untuk