Paradigma Rekayasa Perangkat Lunak : V Model

September 13, 2015 in Uncategorized

Perangkat lunak adalah suatu benda tak berwujud (intangible) yang berpasangan dengan perangkat keras yang dibuat untuk memenuhi suatu maksud atau tujuan tertentu. Tujuan atau maksud ini bisa jadi bagian dari sebuah sistem atau bahkan sistem itu sendiri. Manusia berperan dalam membangun atau membuat kedua perangkat tersebut, dan berperan untuk menggunakan atau menerima hasilnya. Misalnya perangkat lunak personalia, perangkat lunak tersebut dijalankan pada suatu komputer (perangkat keras) untuk menangani masalah-masalah yang terkait dengan pengelolaan sumber daya manusia sebuah perusahaan. Ada orang-orang yang terlibat dalam mengembangkan perangkat lunak dan ada orang-orang yang menjalankan atau memakainya. Dari penjelasan di atas dapat dilihat ada beberapa hal atau elemen yang terlibat, yaitu perangkat lunak, perangkat keras, pembuat perangkat lunak, pemakai perangkat lunak dan masalah.

Disini saya akan membahas paradigma rekayasa perangkat lunak dengan metode V Model.

V Model

V Model merupakan variasi atau pengembangan dari model waterfall yang dikemukakan pertama kali oleh K. Forsberg and H. Mooz (1987). Pada V-model, perancangan software termasuk tahapan verifikasi dibagi menjadi beberapa fase dan setiap fase menghasilkan output tertentu. Output dari satu fase akan dijadikan landasan untuk fase berikutnya tidak mungkin melanjutkan ke fase berikutnya sebelum satu fase selesai/ disetujui.

v model

V Model

Tahapan pada V model dibagi menjadi 2 garis besar yaitu tahap Verifikasi dan Validasi atau testing.

Langkah-langkah pada V Model

Tahap Verifikasi mengacu kepada usaha penyesuaian spesifikasi software dengan kebutuhan klien/konsumen, tahapan ini meliputi serangkaian kegiatan sebagai berikut :

  • Business case : merupakan tahapan awal yang menggambarkan kebutuhan/harapan konsumen terhadap sistem yang akan dikembangkan, termasuk manfaat sistem terhadap konsumen dan perkiraan biaya yang harus disediakan.
  • Requirement : pada fase ini klien mendapatkan gambaran atau diminta memberikan gambaran kebutuhan yang diharapkan dapat dipenuhi oleh software, baik kebutuhan fungsional maupun non fungsional.
  • Analisis informasi : Setelah diperoleh spesifikasi sistem dari fase requirement, selanjutnya aktivitas difokuskan bagaimana cara kerja software untuk memenuhi kebutuhan tersebut, termasuk metoda, hardware dan software apa saja yang diperlukan untuk mencapai kebutuhan yang sudah didefinisikan.
  • Perancangan sistem : pada tahapan ini akan dibuat rancangan software secara lebih terinci sesuai spesifikasi yang sudah disepakati.
  • Unit design : merancang setiap elemen/unit software termasuk rancangan modul/program, antarmuka, database dan lain-lain.
  • Development : merealisasikan hasil rancangan menjadi satu aplikasi/program tertentu.

Tahapan Validasi merupakan serangkaian tahapan yang mengacu kepada kesesuaian software dengan spesifikasi yang sudah ditetapkan. Tahapan ini dicapai melalui serangkaian pengujian/testing sebagai berikut :

  • Unit test : menguji setiap komponen/unit program apakah sesuai dengan rancangan unit yang sudah ditetapkan. Secara teoritis seharusnya pengujian dilakukan oleh orang tertentu yang bertugas sebagai software tester, tetapi dalam kenyataannya seringkali unit testing dilakukan sendiri oleh pembuat program.
  • Interface test : setelah semua komponen diuji secara terpisah, tahapan selanjutnya dilakukan interface test untuk melihat sejauh mana setiap komponen dapat berinteraksi satu sama lain sesuai dengan fungsi yang diharapkan.
  • System test : setelah semua interface berjalan baik, selanjutnya dilakukan system test untukmelihat sejauh mana sistem/software dapat memenuhi kebutuhan secara keseluruhan. System testing bersifat menyeluruh dan tidak dilakukan berdasarkan fungsionalitas sistem yang diuji secara terpisah. Aktivitas pada system testing termasuk melakukan pengujian hal-hal berikut :

Performance – apakah kinerja sistem sesuai dengan target yang sudah didefinisikan sebelumnya.

Volume – apakah software/sistem dapat menampung volume informasi yang cukup besar

Stress – apakah software/sistem dapat menampung sejumlah informasi pada waktu-waktu tertentu (peak time).

Documentation – apakah semua dokumentasi penting sudah disiapkan.

Robustness – apakah software/sistem cenderung stabil pada berbagai kondisi di luar dugaan/ekstrim.

  • Acceptance test merupakan aktivitas untuk menguji sejauh mana sistem / software dapat membantu memecahkan business case, dalam artian apakah sistem/software tersebut sudah sesuai dengan harapan konsumen/klien dan sejauh mana manfaat sistem/software ini bagi klien. Test ini sering kali disebut sebagai User Acceptance test (UAT)
  • Release testing : test ini dilakukan untuk menguji sejauh mana sistem/software dapat mendukung aktivitas organisasi dan berjalan dengan harmonis sesuai dengan kegiatan rutin organisasi. Beberapa pertanyaan yang dicoba dijawab pada fase ini misalnya apakah software tersebut mempengaruhi sistem lain? Apakah software tersebut kompatibel dengan sistem yang lain? Bagaimana kinerja sistem sebenarnya di dalam organisasi?

Kelebihan V Model

V Model memiliki beberapa kelebihan. Kelebihan-kelebihan tersebut secara garis besar dapat dijelaskan seperti berikut:
  • V Model sangat fleksibel. V Model mendukung project tailoring dan penambahan dan pengurangan method dan tool secara dinamik. Akibatnya sangat mudah untuk melakukan tailoring pada V Model agar sesuai dengan suatu proyek tertentu dan sangat mudah untuk menambahkan method dan tool baru atau menghilangkan method dan tool yang dianggap sudah obsolete.
  • V Model dikembangkan dan di-maintain oleh publik. User dari V Model berpartisipasi dalam change control board yang memproses semua change request terhadap V Model

Kekurangan V Model

V Model juga memiliki beberapa kekurangan. Kekurangan-kekurangan tersebut yaitu:

  • V Model adalah model yang project oriented sehingga hanya bisa digunakan sekali dalam suatu proyek.
  • V Model terlalu fleksibel dalam arti ada beberapa activity dalam V Model yang digambarkan terlalu abstrak sehingga tidak bisa diketahui dengan jelas apa yang termasuk dalam activity tersebut dan apa yang tidak.
  • Asumsi yang digunakan adalah requirement bersifat tetap dan tidak berubah
  • Requirement dan rancangan tidak diverifikasi
  • Pada setiap fase terdapat peluang error. Pada V-model, fase validasi pertama dilakukan setelah desain modul selesai sehingga jika terjadi error atau kesalahan, maka pihak pengembang software sudah terlanjur bekerja cukup jauh.

Penerapan V Model

  • Dalam proyek teknologi informasi di Jerman
  • V Model dibandingkan dengan CMM
  • V Model didesain untuk mengembangkan sistem yang didalamnya terdapat dua komponen
  • Pengembangan V Model dalam bidang industri dapat dilakukan dengan mudah

Referensi

Animasi dan Multimedia

June 12, 2014 in Uncategorized

thumb_animsi_gif

Animasi adalah kumpulan gambar yang diolah sedemikian rupa sehingga menghasilkan gambar bergerak. Pergerakan gambar itu dibentuk dengan menampilkan urutan gambar yang berubah sedikit demi sedikit pada kecepatan yang tinggi, sehingga menghasilkan objek gambar statik yang dapat bergerak seperti hidup.

Animasi di dalam sebuah aplikasi multimedia menjanjikan suatu tampilan visual yang lebih dinamis, dapat menampilkan sesuatu yang mustahil atau kompleks dalam kehidupan yang sebenarnya dan dapat direalisasikan di dalam aplikasi tersebut. Sebagai contoh apabila aplikasi multimedia tersebut ingin menjelaskan proses suatu peristiwa alam seperti hujan, mungkin sulit untuk dipragakan atau dibuktikan secara nyata, maka dengan adanya animasi multimedia maka hal itu bisa digambarkan, dipaparkan dalam bentuk gambar bergerak yang seolah-olah hidup.

Animasi dapat berbentuk dua dimensi, tiga dimensi ataupun melalui berbagai kesan yang khas. Proses membuat animasi bukanlah sesuatu yang mudah, diperlukan pengalaman, kemahiran serta kepakaran yang tinggi. Untuk menhasilkan suatu animasi yang tinggi diperlukan banyak animator atau pembuat animasi.

Animasi pada saat ini banyak dimanfaatkan untuk berbagai kebutuhan dalam berbagai kegiatan baik untuk kegiatan yang bersifat santai maupun serius, dari mulai fungsi yang utama sampai fungsi tambahan atau hiasan. Animasi dibangun berdasarkan manfaatnya sebagai media yang digunakan untuk berbagai keperluan, diantaranya :

- Media hiburan
- Media presentasi
- Media iklan
- Media ilmu pengetahuan
- Media bantu
- Media pelengkap

Read the rest of this entry →

KOMPRESI DATA MENGGUNAKAN ALGORITMA HUFFMAN

June 11, 2014 in Uncategorized

huffman_tree_algorithm

Secara garis besar kompresi data dapat dikelompokkan ke dalam dua metode yaitu metode kompresi lossy dan metode kompresi lossless. Metode kompresi lossy adalah suatu metode kompresi data dim ana data yang telah terkompresi apabila dikembalikan ke dalam benruk semula akan terdapat beberapa inforrnasi yang hilang. Contoh dari metode ini adalah pemampatan data gambar dan suara. Sedangkan metode kompresi lossless merupakan suatu metode kornpresi data dimana data yang telah terkompresi akan dapat dikembalikan seperti sernula tanpa ada informasi yang hilang. Implementasi dari metode ini yaitu pada pemampatan data teks atau dokumen ASCII.

Algoritma Huffman Statik
Algoritma Huffman Statik menggunakan kemungkinan kemunculan dari setiap karakter yang telah ditetapkan pada awal pengkodean dan kemungkinan kemunculan karakter tersebut juga dapat diketahui baik oleh enkoder maupun dekoder.
Cara kerja dari algoritma Huffman Statik untuk mengkompresi data yaitu dengan cara sebagai berikut:
a. Hitung jumlah karakter yang muncul di dalam file, sehingga masing-masing karakter yang ada akan memiliki bobot sesuai dengan banyaknya karakter tersebut didalam file. Kemudian susunlah suatu pohon biner yang dibangun berdasarkan bobot karakter yang ada. Inti dari pembangunan pohon biner adalah menggabungkan dua buah karakter dengan tingkat kemunculan (bobot) yang lebih kecil, kemudian membangkitkan satu buah node parent yang memiliki bobot gabungan dari kedua karakter tersebut.
b. Lakukan pengkodean (encoding) karakter yang ada didalam file menjadi suatu representasi bit sesuai dengan urutan pada pohon biner yang telah dibangun.

Algoritma Huffman Adaptif

AIgoritma Huffman Adaptif adalah algoritma dengan kemungkinan kemunculan dari setiap simbol tidak dapat ditentukan dengan pasti selama pengkodean. Hal ini disebabkan oleh perubahan pengkodean secara dinamis berdasarkan frekuensi dari simbol yang telah diolah sebelumnya. Algoritrna Huffman Adaptif merupakan pengembangan lebih lanjut dari algoritma Huffman. Ide dasar dari algoritma ini adalah meringkas tahapan algoritrna Huffman tanpa perlu menghitung jurnlah karakter keseluruhan dalam membangun pohon biner. Algoritma ini dikembangkan oleh trio Faller, Gallager, dan Knuth dan kemudian dikembangkan lebih lanjut oleh Vitter, sehingga tercipta dua buah algorima Huffman adaptif yaitu algoritma FGK dan algoritma V. Secara umum algoritma Huffman Adaptif adalah sebagai berikut:

a. Pada mesin enkoder:

initialize model();
do(
c=getc(input);
encode (c,output):
update model (c);
)while (c!=eof);

b. Pada mesin dekoder:

initialize model();
while((c=decode(input)) !=eof);
(
putc(c,output);
update_model(c);
)

Contoh Algoritma Huffman secara :
1. Pilih dua simbol dengan peluang (probability) paling kecil. Kedua simbol tadi dikombinasikan sebagai simpul orang tua dari simbol B dan D sehingga menjadi simbol BD dengan peluang 1/7 + 1/7 = 2/7, yaitu jumlah peluang kedua anaknya.
2. Selanjutnya, pilih dua simbol berikutnya, termasuk simbol baru, yang mempunyai peluang terkecil.
3. Ulangi langkah 1 dan 2 sampai seluruh simbol habis. Sebagai contoh, dalam kode ASCII string 7 huruf “ABACCDA” membutuhkan representasi 7 × 8 bit = 56 bit (7 byte)
Sebagai contoh, dalam kode ASCII string 7 huruf “ABACCDA” membutuhkan representasi 7 × 8 bit = 56 bit (7 byte), dengan rincian sebagai berikut:
01000001 01000010 01000001 01000011 01000011 01000100 01000001
A               B               A               C              C              D               A
Untuk mengurangi jumlah bit yang dibutuhkan, panjang kode untuk tiap karakter dapat dipersingkat, terutama untuk karakter yang frekuensi kemunculannya besar. Pada stringdi atas, frekuensi kemunculan A = 3, B = 1, C = 2, dan D = 1, sehingga dengan menggunakan algoritma di atas diperoleh kode Huffman seperti pada Tabel 1.
Dengan menggunakan kode Huffman ini, string “ABACCDA” direpresentasikan menjadi rangkaian bit : 0 110 0 10 10 111 0. Jadi, jumlah bit yang dibutuhkan hanya 13 bit. Dari Tabel 1 tampak bahwa kode untuk sebuah simbol/karakter tidak boleh menjadi awalan dari kode simbol yang lain guna menghindari keraguan (ambiguitas) dalam proses dekompresi atau decoding. Karena tiap kode Huffman yang dihasilkan unik, maka proses dekompresi dapat dilakukan dengan mudah. Contoh: saat membaca kode bit pertama dalamrangkaian bit “011001010110”, yaitu bit “0”, dapat langsung disimpulkan bahwa kode bit “0” merupakan pemetaan dari simbol “A”. Kemudian baca kode bit selanjutnya, yaitu bit “1”. Tidak ada kode Huffman “1”, lalu baca kode bit selanjutnya, sehingga menjadi “11”. Tidak ada juga kode Huffman “11”, lalu baca lagi kode bit berikutnya, sehingga menjadi “110”. Rangkaian kode bit “110” adalah pemetaan dari simbol “B”. Metode Huffman yang diterapkan dalam penelitian ini adalah tipe statik, dimana dilakukan dua kali pembacaan (two-pass) terhadap file yang akan dikompresi, pertama untuk menghitung frekuensi kemunculan karakter dalam pembentukan pohon Huffman, dan kedua untuk mengkodekan simbol dalam kode huffman.

Kompresi Data

May 12, 2014 in Uncategorized

Dalam ilmu komputerkompresi data adalah sebuah cara untuk memadatkan data sehingga hanya memerlukan ruangan penyimpanan lebih kecil sehingga lebih efisien dalam menyimpannya atau mempersingkat waktu pertukaran data tersebut. Ada terdapat dua jenis pemampatan data, yaitu pemampatan tanpa kehilangan (lossless data compression) dan pemampatan berkehilangan (lossy data compression).

Kompresi Data merupakan cabang ilmu komputer yang bersumber dari Teori Informasi. Teori Informasi sendiri adalah salah satu cabang Matematika yang berkembang sekitar akhir dekade 1940-an. Tokoh utama dari Teori Informasi adalah Claude Shannon dari Bell Laboratory.

Kompresi berguna karena membantu mengurangi konsumsi sumber daya mahal, seperti hard disk space atau transmisi bandwidth . Pada sisi negatifnya, data dikompresi harus didekompresi untuk digunakan, dan ini pengolahan tambahan mungkin merugikan beberapa aplikasi. Sebagai contoh, skema kompresi untuk video mungkin memerlukan perangkat keras mahal untuk video yang akan didekompresi cukup cepat untuk dilihat karena sedang decompressed (pilihan untuk dekompresi video secara penuh sebelum menonton mungkin nyaman, dan membutuhkan ruang penyimpanan untuk decompressed video). Rancangan skema kompresi data sehingga melibatkan trade-off antara berbagai faktor, termasuk tingkat kompresi, jumlah distorsi memperkenalkan (jika menggunakan skema kompresi lossy ), dan sumber daya komputasi yang dibutuhkan untuk kompres dan uncompress data.

Ada 2 kompresi data :

1. Lossy

Lossy kompresi citra digunakan dalam kamera digital, untuk meningkatkan kapasitas penyimpanan dengan minimal penurunan kualitas gambar. Demikian pula, DVD menggunakan lossy MPEG-2 Video codec untuk kompresi video.

Dalam lossy kompresi audio, metode psychoacoustics digunakan untuk menghapus non-terdengar (atau kurang terdengar) komponen dari sinyal. Kompresi berbicara manusia sering dilakukan dengan teknik khusus bahkan lebih, sehingga pidato kompresi atau suara coding kadang-kadang dibedakan sebagai suatu disiplin yang terpisah dari kompresi audio. audio yang berbeda dan kompresi standar pidato terdaftar di bawah codec audio. Suara kompresi akan digunakan dalam telepon Internet misalnya, sementara kompresi audio yang digunakan untuk CD ripping dan diterjemahkan oleh pemain audio.

Berikut ciri-cirinya:

  • Terdapat informasi yang hilang pada saat sampai pada telinga dan mata manusia.
  • Digunakan pada kompresi objek audio, image, video dimana keakuratan data absolut tidak diperlukan.
  • Contoh: bila video image dikompres dengan basis frame-by- frame hilangnya data pada satu frame tidak mempengaruhi penglihatan.
  • Aplikasi: medical screening systems, video conferencing, dan multimedia messaging systems. · Metode kompresi yang banyak digunakan adalah standar JPEG.

2. Lossless

Berikut ini cirri-cirinya:

  • Data tidak berubah atau hilang pada proses kompresi atau dekompresi
  • Membuat satu replika dari objek asli
  • Menghilangkan perulangan karakter
  • Digunakan pada data teks dan image
  • Pada saat dilakukan dekompres, perulangan karakter diinstal kembali

Standart compressing lossless:

1. Packbits encoding (Run-length encoding)

  • Kompresi data paling sederhana dan digunakan pada awal penggunaan kompresi.
  • Digunakan untuk kompresi image hitam-putih (binary).
  • String karakter yang berulang menempati dua byte:
  • Byte pertama berisi jumlah dari banyaknya perulangan
  • Byte kedua berisi karakter itu sendiri
  • Dilakukan pada satu baris (atau scanline), dan tidak digunakan pada baris yang mempunyai jumlah scanline banyak.
  • Byte lebih besar dari pada byte image asli. Efek ini disebut reverse compression atau negative compression.

2. CCIT Group 3 1D

  • Berdasarkan run-length encoding, scanline dilakukan pada pixel dari warna yang sama (hitam atau putih).
  • Hanya untuk image hitam-putih, bukan grayscale atau warna
  • Aplikasi utama digunakan pada faksimil dan pada awal document imaging
  • Menggunakan Huffman encoding untuk encoding pixel runlength pada CCIT Group 3 dan Group 4. Keuntungan:
  • Sederhana pada implementasi
  • Menjadi standar faksimil dan aplikasi document imaging Kerugian:
  • Satu dimensi dengan code setiap baris atau garis terpisah.
  • Tanpa mekanisme untuk melindungi dari kesalahan.

3. CCIT GRoup 3 2D

4. CCIT Group 4

  • Dua dimensi tanpa faktor K, yaitu garis seluruhnya.
  • Garis referensi pertama adalah semua garis putih pada image bagian atas.
  • Group pertama dari pixel (scanline) dikode yang menganggap garis putih sebagai garis referensi dari garis berikutnya.
  • Mendapatkan level kompresi yang tinggi.

5. Lempel-Ziv and Welch aalgoruthm LZW

The Lempel-Ziv (LZ) metode kompresi adalah salah satu algoritma paling populer untuk penyimpanan lossless. mengempis adalah variasi LZ yang dioptimalkan untuk kecepatan dekompresi dan rasio kompresi, sehingga kompresi ini bisa lambat. Deflate digunakan dalam PkZip , gzip dan PNG . LZW (Lempel-Ziv-Welch) digunakan dalam gambar GIF. Juga patut diperhatikan adalah LZR (LZ-Renau) metode, yang melayani sebagai dasar dari metode Zip. metode LZ memanfaatkan model kompresi berbasis tabel di mana entri tabel diganti untuk string data yang diulang. Untuk metode yang paling LZ, tabel ini dihasilkan secara dinamis dari data sebelumnya dalam input. Tabel sendiri sering Huffman dikodekan (misalnya Shri, LZX). berdasarkan skema coding LZ arus yang baik adalah melakukan LZX , digunakan dalam Microsoft CAB format.

Yang sangat kompresor terbaik menggunakan model probabilistik, di mana prediksi yang digabungkan dengan algoritma yang disebut aritmatika coding. Arithmetic coding, diciptakan oleh Jorma Rissanen , dan berubah menjadi metode praktis oleh Witten, Neal, dan Cleary, mencapai kompresi lebih unggul dari algoritma Huffman dikenal-baik, dan cocok terutama baik untuk konteks data kompresi adaptif tugas dimana prediksi sangat- tergantung. Pengkodean aritmatika digunakan dalam standar kompresi gambar-bilevel JBIG , dan dokumen-standar kompresi DjVu . Entri teks sistem, Dasher , adalah-terbalik aritmatika-coder.