Minggu, 08 Juni 2014

Rian Saadillah

Inheritance dalam java



Inheritance (turunan) merupakan salah satu konsep penting dalam pemrograman berorientasi obyek. Turunan memperbolehkan penggunaan kelas yang sudah ada sebagai superclass di dalam mendefinisikan kelas turunannya. Kelas turunan (subclass) akan mewarisi (inherit) data field (properti atau atribut) dan metoda terakses (accessible) yang dimiliki oleh superclass. Superclass akan mempunyai sifat lebih umum (general), sedangkan kelas turunannya akan lebih spesifik. Umumnya kelas turunan mempunyai data field dan metoda tambahan selain data field dan metoda yang diwarisi dari superclass.

Penekanan konsep turunan adalah penggunaan kelas yang sudah ada (reusability). Konsep turunan dapat mempersingkat waktu pendefinisian subclass. Sekali sebuah subclass didefinisikan, kelas tersebut dapat menjadi superclass untuk subclass yang lain. Kelas Object berada di puncak teratas dalam hirarkhi kelas di Java. Semua kelas, langsung maupun tidak langsung, merupakan turunan dari kelas Object. Salah satu metoda istimewa yang dimiliki oleh kelas Object adalah metoda toString yang merupakan string representation dari sebuah objek.

Superclass dan Subclass.

Kelas atas atau kelas asal sering disebut dengan superclass, base class, atau parent class, sedangkan kelas turunannya sering disebut dengan child class, derived class atau extended class. Di artikel Mendefinisikan Kelas Java, terdapat contoh program kelas PersegiPanjang yang hasil kompilasinya (PersegiPanjang.class) diletakkan di direktori (paket) c:\filejava\javaapp\kelas\bangun\datar.

Persegi panjang merupakan bangun datar yang mempunyai sisi panjang dan lebar sebagai data field. Dari sisi panjang dan lebar, dapat ditentukan keliling dan luas persegi panjang. Misalnya, Anda ingin membuat kelas baru yaitu kelas Balok. Balok merupakan bangun ruang yang mempunyai sisi panjang, lebar, dan tinggi sebagai data field. Dari sisi panjang, lebar, dan tinggi, dapat ditentukan pula volume balok. Untuk memudahkan dan mempersingkat pendefinisian kelas Balok, Anda dapat menggunakan atau memanfaatkan kelas PersegiPanjang sebagai superclass dari subclass Balok.

Kata kunci extends.

Kata kunci extends digunakan untuk mendeklarasikan kelas turunan (subclass) dari kelas atasnya (superclass). Dengan kata kunci extends, kelas turunan akan mewarisi data field dan metoda yang dimiliki oleh kelas di atasnya. Sebenarnya tidak semua data field dan metoda akan diwariskan kepada kelas turunnannya. Data field dan metoda yang dideklarasikan dengan modifier private, tidak diwariskan kepada kelas turunannya. 

Subclass dan superclass di paket berbeda.

Kelas turunan dapat didefinisikan lebih cepat dengan memanfaatkan kelas yang ada. Apabila definisi kelas turunan berasal dari superclass yang berada di paket berbeda, Anda harus mengimpor kelas tersebut terlebih dahulu dengan menggunakan kata kunci import. Apabila superclass berada di paket yang sama dengan subclass yang sedang didefinisikan, Anda tidak perlu untuk mengimport superclass. Kelas sebaiknya dikelompokkan menurut jenis dan fungsinya dan diletakkan di nama paket yang menggambarkan kelas tersebut.

Sebagai contoh, kelas PersegiPanjang di artikel Mendefinisikan Kelas Java merupakan bangun datar dan diletakkan di direktori c:\filejava\javaapp\kelas\bangun\datar. Apabila Anda ingin mendefinisikan kelas baru (misalnya subclass Balok) yang merupakan turunan dari kelas PersegiPanjang, sebaiknya kelas tersebut diletakkan di direktori (paket) berbeda, misalnya c:\filejava\javaapp\kelas\bangun\ruang karena subclass Balok merupakan bangun ruang yang berbeda dengan bangun datar. Dengan memanfaatkan paket (package) untuk mengkategorikan atau mengkelompokkan kelas, Anda akan lebih gampang menemukan kelas yang akan digunakan. Paket juga memungkinkan Anda untuk mendefinisikan kelas dengan nama sama. Namun demikian, ini bukan berarti bahwa kelas yang masuk kategori bagun datar dan bagun ruang benar-benar harus diletakkan dalam paket berbeda. Anda dimungkinkan untuk meletakkan kelas apapun dalam satu paket tanpa harus mengkategorikannya ke dalam paket berbeda. 
Read More

Sabtu, 07 Juni 2014

Rian Saadillah

HCI (Human Computer Interface)

Interaksi manusia dan komputer (HCI) adalah disiplin ilmu yang mempelajari hubungan antara manusia dan komputer yang meliputi perancangan, evaluasi, dan implementasi antarmuka pengguna komputer agar mudah digunakan oleh manusia. Ilmu ini berusaha menemukan cara yang paling efisien untuk merancang pesan elektronik. 

Sedangkan interaksi manusia dan komputer sendiri adalah serangkaian proses, dialog dan kegiatan yang dilakukan oleh manusia untuk berinteraksi dengan komputer yang keduanya saling memberikan masukan dan umpan balik melalui sebuah antarmuka untuk memperoleh hasil akhir yang diharapkan.

Sistem harus sesuai dengan kebutuhan manusia dan dirancang berorientasi kepada manusia sebagai pemakai.

Contoh
dalam interaksi manusia dengan komputer terdapat beberapa panca indera digunakan untuk dapat berinteraksi----: Manusia mewujudkan fisiologi yang diperlukan untuk menyerap informasi dalam bentuk suara.  Sama seperti mata dapat melihat berbagai variasi cahaya - rona, briteness, kontras - telinga mampu penginderaan array yang luas dari suara melalui perubahan timbre, kenyaringan, dan pitch. Pikiran kemudian dapat mengasosiasikan suara ini dengan peristiwa, objek, atau gagasan abstrak.

Paling sering, suara-sebagai-informasi ada sebagai pidato atau musik, dan memang ini akan terus di Internet. Audio konten juga umumnya dihasilkan oleh mesin untuk menyampaikan informasi, dan penggunaan ini juga akan terus di Internet.

Contoh: Dalam sebuah rumah sakit, suara Mengenal dari elektrokardiograf (EKG) berbunyi 'bip' dalam irama ke jantung; pager alert wanita di sebuah sudut jalan, telegraf memancarkan klik merata-spasi dalam kode Morse. Semua ini adalah contoh menampilkan pendengaran, suara yang dibuat oleh sebuah mesin dalam rangka berhubungan informasi. Di zaman ketika bahasa telah menjadi bentuk komunikasi dominan, suara memainkan peran penting dalam hidup kita.

8 aturan emas desain antarmuka

Upayakan untuk konsistensi.

  • urutan tindakan yang konsisten harus diminta dalam situasi yang mirip
  • terminologi identik harus digunakan pada prompt, menu, dan membantu layar.
  • warna yang konsisten, tata letak, kapitalisasi, font, dan sebagainya harus digunakan seluruhnya.

Memungkinkan pengguna sering untuk menggunakan jalan pintas

  • untuk meningkatkan laju singkatan menggunakan interaksi, tombol khusus, perintah tersembunyi, dan makro.

Penawaran informatif umpan balik

  • untuk setiap tindakan pengguna, sistem harus merespon dalam beberapa cara (dalam desain web, hal ini dapat dicapai dengan DHTML - misalnya, tombol akan membuat suara klik atau mengubah warna saat diklik untuk menampilkan sesuatu yang pengguna telah terjadi).

Desain dialog untuk menghasilkan penutupan.

  • Urutan tindakan harus diatur ke dalam kelompok dengan awal, tengah, dan akhir. Umpan balik yang informatif pada penyelesaian sekelompok pengguna tindakan menunjukkan aktivitas mereka telah selesai dengan sukses.[1]

Penawaran kesalahan pencegahan dan penanganan kesalahan sederhana.

  • desain bentuk sehingga pengguna tidak dapat membuat kesalahan serius, misalnya, lebih memilih pilihan menu untuk membentuk mengisi dan tidak mengizinkan karakter abjad di bidang entri numerik.
  • jika pengguna melakukan kesalahan, instruksi harus ditulis untuk mendeteksi kesalahan dan menawarkan instruksi sederhana, konstruktif, dan khusus untuk pemulihan.
  • segmen panjang formulir dan mengirimkan bagian terpisah, sehingga pengguna tidak dikenakan sanksi karena harus mengisi formulir lagi - tapi pastikan Anda menginformasikan kepada user bahwa beberapa bagian yang datang

Izin tindakan pemulihan.
Dukungan internal lokus kontrol

  • Pengguna yang berpengalaman ingin bertanggung jawab. Mengejutkan sistem tindakan, urutan membosankan data, ketidakmampuan untuk memasukan atau kesulitan dalam mendapatkan informasi yang diperlukan, dan ketidakmampuan untuk menghasilkan tindakan yang diinginkan semua membangun kecemasan dan ketidakpuasan.

Kurangi beban memori jangka pendek.

  • Sebuah studi menunjukkan bahwa manusia terkenal dapat menyimpan hanya 7 buah (plus atau minus 2) informasi dalam memori jangka pendek mereka. Anda dapat mengurangi beban memori jangka pendek dengan merancang layar di mana pilihan yang jelas terlihat, atau menggunakan pull-down menu dan ikon.

Media antarmuka manusia dan komputer
Media Tekstual
Adalah ”bentuk sederhana dialog atau komunikasi antara manusia dan komputer yang hanya berisi teks dan kurang menarik”. Salah satu contoh antarmuka manusia dan komputer berbentuk teks yang menggunakan bahasa pemrograman PASCAL adalah readln dan writeln.


Media GUI (Graphical User Interface)
Adalah ”bentuk dialog atau komunikasi antara manusia dan komputer yang berbentuk grafis dan sangat atraktif”.Contoh antarmuka manusia dan komputer yang berbentuk grafis menggunakan pemrograman visual (Visual Basic, Visual Foxpro, Delphi dan lain-lain).

Tujuan interaksi manusia dengan komputer
Tujuan utama disusunnya berbagai cara interaksi manusia & komputer :
  • untuk mempermudah manusia dalam mengoperasikan komputer dan mendapatkan berbagai umpan balik yang ia perlukan selama ia bekerja pada sebuah sistem komputer. Para perancang antarmuka manusia dan komputer berharap agar sistem komputer yang dirancangnya dapat bersifat akrab dan ramah dengan penggunanya (user friendly).
  • Sebagai contoh, misalnya sebuah komputer lengkap dipasang pada sebuah tempat yang tidak nyaman bagi seorang pengguna yang menggunakan. Atau keyboard yang digunakan pada komputer tersebut tombol-tombolnya keras sehingga susah untuk mengetik sesuatu.

Contoh-contoh diatas merupakan beberapa hal mengapa kita membutuhkan mempelajari Interaksi Manusia dan Komputer.

Kita butuh Interaksi manusia komputer adalah agar kita lebih cepat dalam menyelesaikan suatu pekerjaan. serta dapat membuat waktu pengerjaannya lebih cepat dan tidak membutuhkan banyak biaya dalam membuat suatu pekerjaan.
Read More

Jumat, 06 Juni 2014

Rian Saadillah

Ergonomi




Ergonomika atau (kurang tepat) ergonomi adalah ilmu yang mempelajari interaksi antara manusia dengan elemen-elemen lain dalam suatu sistem, serta profesi yang mempraktekkan teori, prinsip, data, dan metode dalam perancangan untuk mengoptimalkan sistem agar sesuai dengan kebutuhan, kelemahan, dan keterampilan manusia.

Ergonomi berasal dari dua kata bahasa Yunani: ergon dan nomos: ergon berarti kerja, dan nomos berarti aturan, kaidah, atau prinsip. Pendapat lain diungkapkan oleh Sutalaksana (1979): ergonomi adalah ilmu atau kaidah yang mempelajari manusia sebagai komponen dari suatu sistem kerja mencakup karakteristik fisik maupun nonfisik, keterbatasan manusia, dan kemampuannya dalam rangka merancang suatu sistem yang efektif, aman, sehat, nyaman, dan efisien.

Read More
Rian Saadillah

Method dan Paramater


Method

Method atau fungsi dalam java adalah suatu cara untuk memecah program menjadi beberapa bagian, sehingga ketika mengerjakan program tersebut bisa dilakukan pembagian tugas kepada beberapa orang. Ketika kita sudah mendevelop program dalam skala besar maka kita perlu menggunakan yang namanya method.

Untuk membuat method yang memiliki nilai kembalian/return value, maka kita harus menghilangkan keyword void pada method yang kita buat dan menggantikannya dengan jenis variable kembalian kita, dimana dalam contoh tersebut nilai kembalian / return value berupa integer. Pengenalan Teknik Rekursif Selain itu dalam suatu method kita dapat memanggil method yang lainnya, atau bahkan memanggil method itu sendiri, peristiwa pemanggilan method oleh dirinya sendiri inilah yang disebut rekursif.

Parameter
Jika subrutin adalah kotak hitam, maka parameter merupakan alat atau mekanisme untuk memberikan informasi dari dunia luar ke dalam kotak. Parameter merupakan bagian dari antar muka dengan suatu subrutin. Dengan menggunakan parameter, kita dapat mengatur perilaku suatu subrutin sesuai dengan input yang diberikan.

Sebagai analogi, kita ambil contoh AC — yaitu alat yang mengatur suhu ruangan pada temperatur konstan. AC memiliki parameter, yaitu tombol remote yang digunakan untuk memasukkan suhu yang diinginkan. AC akan selalu melakukan tugas yang sama, yaitu mengatur suhu ruangan. Akan tetapi, tugas persis yang dilakukan tergantung suhu yang diterima dari remote control.

Di sini subrutin ambilDouble memiliki parameter tunggal yang bertipe String dan bernama pertanyaan. Ketika subrutin ini dipanggil, suatu nilai harus ikut disertakan, dan nilai ini dimasukkan dalam parameter “pertanyaan”. Misalnya, subrutin dapat dipanggil dengan a = ambilDouble(“hallo”);. Ketika komputer menjalankan perintah ini, komputer akan memasukkan “hallo” ke dalam parameter “pertanyaan”, kemudian subrutin ambilDouble menjalankan semua perintah di dalamnya.

Jika parameter yang diberikan berupa variabel, misalnya variabel str berisi “kabar”, kemudian subrutin ambilDouble panggil dengan perintah ambilDouble(str), maka isi dari str akan dikopi ke dalam parameter “pertanyaan” terlebih dahulu sebelum seluruh perintah dalam subrutinambilDouble dilaksanakan.

Perlu dicatat bahwa istilah “parameter” digunakan dalam dua konsep berbeda tetapi berkaitan. Yang pertama adalah “parameter” digunakan untuk mendefinisikan suatu subrutin. Parameter yang digunakan pada definisi suatu subrutin disebut parameter formal. “Parameter” yang digunakan untuk memanggil suatu subrutin disebut parameter aktual. Ketika suatu subrutin dipanggil, parameter aktual akan dievaluasi, dan hasilnya akan dimasukkan ke dalam parameter formal.

Parameter formal berbentuk seperti pengenal atau nama, dan bersifat seperti halnya variabel dan memiliki tipe — misalnya int, double, atau String. Parameter aktual bersifat seperti nilai atau angka, jadi bisa berbentuk ekspresi atau perintah apapun yang menghasilkan nilai atau angka. Sewaktu kita memanggil subrutin, kita harus memberi parameter aktual untuk setiap parameter formal yang didefinisikan.
Read More

Kamis, 05 Juni 2014

Rian Saadillah

Manajemen Proyek Perangkat Lunak

Proyek
• Kumpulan orang-orang untuk menyelesaikan suatu permasalahan
• Sebuah aktivitas yang bertujuan untuk menghasilkan sebuah hasil tertentu, dengan pada suatu jangka waktu tertentu dengan sumber daya tertentu
• Alokasi sumber-sumber dalam waktu tertentu dan koordinasi terhadap kejadian-kejadian yang saling berhubungan untuk mencapai tujuan yang menyeluruh, sambil menghadapi tantangan-tantangan yang unik dan dapat diperkirakan.

Karakteristik Proyek
• Proyek memiliki tujuan tertentu
• Proyek harus selesai dalam jangka waktu tertentu
• Ada penentuan waktu awal dan akhir secara spesifik
• Proyek harus selesai dengan sejumlah dana tertentu yang diberikan
• Meskipun beberapa proyek memiliki dana yang cukup besar, tapi tetap memiliki batasan biaya
•  royek dikerjakan oleh tim
• Penugasan seseorang ke dalam sebuah proyek dapat berupa full-time atau part-time, tergantung kebutuhan proyek tersebut
• Proyek itu unik
• Meski derajat keunikannya dapat bervariasi untuk setiap proyek, semua proyek pada esensinya hanya terjadi sekali

Manajemen Proyek
• Penerapan pengetahuan, skill, tool, dan teknik pada aktivitas proyek agar memenuhi kebutuhan proyek.
• Manajemen Proyek IT melibatkan Hardware, Software, dan juga Jaringan
• Adalah sebuah Sistem yang mempunyai:
Prinsip
Kebijakan
Metoda
Prosedur
Petunjuk pelaksanaan dan petunjuk teknis
Teknologi
Ketrampilan

Tercapai apabila
• Penerapan dan integrasi dari proses manajemen proyek yang meliputi inisialisasi (initiating), perencanaan (planning), eksekusi (excecuting), monitoring, dan controlling.
• Orang yang bertanggung jawab : manager proyek (Project Manager)

Manajer Proyek
• Orang yang memiliki tanggung jawab untuk mengawasi semua aspek dan aktivitas sehari-hari dalam mencapai tujuan proyek, yang meliputi: koordinasi staf, mengalokasikan sumber-sumber, mengelola anggaran, dan mengkoordinasi seluruh usaha untuk mencapai hasil tertentu yang diinginkan

Penyebab Kegagalan Proyek
• Penentuan tujuan dan spesifikasi yang sembrono
• Perencanaan proyek yang buruk
• Batas waktu (deadline) dan budget yang tidak realistis

Alasan Pentingnya Manajemen Proyek
• Pada tahun 1995 Standish Group Study menemukan hanya 16.5% dari proyek IT yang berhasil, 31% dibatalkan sebelum selesai, menghabiskan biaya sekitar 81 miliar dolar hanya untuk di Amerika

Constraint (Batasan)
• Scope: Apa yang ingin dicapai oleh proyek?
• Time: Berapa lama waktu yang dibutuhkan?
• Cost: Biaya apa saja yang dibutuhkan?
Tugas dari Project Manager adalah untuk menyeimbangkan ketiga hal ini.

Constraint Universal
Time
Batasan yang berkaitan dengan jadwal

Cost
• Pengeluaran atas sumber daya dari proyek
• Umumnya berurusan dengan uang, meski tidak semuanya begitu (biaya lembur, komputer, pelatihan, dsb)

Scope (ruang lingkup)
Dapat menjadi masalah jika berurusan dengan atasan yang tidak tahu apa yang dia mau

Interaksi dengan Client
• Merupakan constraint ke empat: relasi yang baik dengan klien
• Ukuran keberhasilan paling utama adalah klien

Knowledge Area
• 4 pengetahuan inti yang berfokus pada tujuan diadakannya sebuah proyek (Scope, time, cost, quality)
• 4 fasilitas pendukung agar tujuan tersebut dapat tercapai (sumber daya manusia, komunikasi, resiko, Procurement Management)
• Project integration management yang mempengaruhi dan dipengaruhi oleh yang lain

Komponen Manajemen Proyek Perangkat Lunak:
• Manajemen Proses
• Manajemen Produk
• Manajemen Orang

Hubungan MPPL dengan Komponen MP
Manajemen Orang
• Pengelolaan tim dan individu

Manajemen Proses
• Kebutuhan
• Pekerjaan yang telah selesai

Manajemen Produk
• Permintaan perubahan
• Pengelolaan perubahan
• Produk untuk diperiksa
• Laporan review

Hubungan Manajemen Proyek dengan Basis Data Proyek
• Data histori proyek
• Data perencanaan yang lalu

>>>
Read More
Rian Saadillah

Menggambar obyek dari bentuk geometri

Java menyediakan serangkaian class untuk bidang grafika komputer  2 dimensi (untuk selanjutnya dengan grafis )  yang dikenal dengan  Java 2D Application Programming Interface (2D API).

Java bersifat Object Oriented Programming (OOP) sehingga pengetahuan dan penguasaan tentang OOP amat diperlukan untuk memahami program grafis ini.

Untuk membetuk grafis diperlukan class yang tergabung dalam paket java.awt.graphics dan java.awt.graphics2D. Sedangkan bentuk geometri dapat dibuat dengan menggunakan class yang ada pada poaket java.awt.geom. Java.awt.geom berisi  class antara lain : 
  • Line2D,Line2D.Double,Line2D.Float
  • Point2D,Point2D.Double,Point2D.Float
  • GeneralPath
  • Rectangle2D. Rectangle2D.Double, Rectangle2D.Float
  • Ellipse2D, Ellipse2D.Double, Ellipse2D.Float
  • Arc2D, Arc2D.Double, Arc2D.Float

Membentuk Garis


Garis dihasilkan dari class Line2D  yang terdapat pada java.awt.geom.Line2D.

Line2D alias=new Line2D(x1,y1,x2,y2)
Atau 
Line2D alias;
alias=new Line2D x1,y1,x2,y2);

Catatan :
Cara penulisan konstruktor seperti diatas juga berlaku untuk yang lain 

Dengan x1,y1: koordinat titik awal garis
              x2,y2:koordiat akhir garis  

Membentuk Kotak

Rectangle2D alias=new Rectangle2D(x,y,lebar,tinggi)

Dengan x,y: koordinat  sudut kiri atas
                lebar: lebar kotak
    tinggi : tinggi kotak

Lingkaran/Ellips

Ellipse2D alias=new Ellipse2D(x,y,lebar,tinggi)

Dengan x,y: koordinat  sudut awal ellipse imajiner
                lebar:lebar ellipse
tinggi : tinggi  ellipse

Catatan :
Alias  adalah nama variabel bebas yang mewakili  class tersebut

Kurva 

Arc2D alias=new Arc2D(x,y,lebar,tinggi,sudut_awal,lebar_sudut,jenis)

Dengan x,y:tiik kurva awal
             Lebar: lebar kurva
             Tinggi: tinggi kurva
                     Sudut_awal: sudut muklai kurva
     Lebar_sudut: sudut penggambaran kurva
Jenis:  OPEN  - terbuka
PIE   - terhubung haris ke pusat
CHORD - ditarik garis lurus antar ujung

Sourcode :

import java.awt.Color;
import javax.swing.JFrame;

public class geo_dasar
{
   
   public static void main( String asas[] )
   {
     
      JFrame frame = new JFrame( "Menggambar Geometri 2D" );
      frame.setDefaultCloseOperation( JFrame.EXIT_ON_CLOSE );
      geo_dasar_panel geopanel = new geo_dasar_panel();
      frame.add( geopanel ); 
      frame.setBackground( Color.BLUE ); 
      frame.setSize( 800, 600 ); 
      frame.setVisible( true ); 
   } 


Hasil :


Menempatkan/menggambar  bentuk geometri ke jendela

Read More

Rabu, 04 Juni 2014

Rian Saadillah

Alpha dan Beta Test

Alpha testing
Tujuannya untuk identifikasi dan menghilangkan sebanyak mungkin masalah sebelum akhirnya sampai ke user, dilakukan setelah software jadi oleh orang-orang yang tidak terlibat dalam pengembangan dan memang ahli dibidangnya. Terdapat formulir resmi evaluasi.

Beta testing
evaluasi sepenuhnya oleh pengguna. Pengguna dipilih 3 orang yang dibagi menjadi : potensial, average, dan slow learner. Mereka diberitahukan prosedur evaluasi, diamati proses penggunaannya, diwawancarai lalu dinilai dan dilakukan revisi.
Read More
Rian Saadillah

White box Testing


White Box Testing merupakan cara pengujian dengan melihat ke dalam modul untuk meneliti kode-kode program yang ada, dan menganalisis apakah ada kesalahan atau tidak. Jika ada modul yang menghasilkan output yang tidak sesuai dengan proses bisnis yang dilakukan, maka baris-baris program, variabel, dan parameter yang terlibat pada unit tersebut akan dicek satu persatu dan diperbaiki, kemudian di-compile ulang.

Dengan menggunakan white box akan didapatkan kasus uji yang :

• Menguji semua keputusan logikal

• Menguji seluruh Loop yang sesuai dengan batasannya

• Menguji seluruh struktur data internal yang menjamin validitas

Kelebihan White Box Testing

Kesalahan Logika

Digunakan pada sintaks ‘if’ dan pengulangan. Dimana White Box Testing akan mendeteksi kondisi-kondisi yang tidak sesuai dan mendeteksi kapan proses pengulangan akan berhenti.

• Ketidaksesuaian asumsi

Menampilkan asumsi yang tidak sesuai dengan kenyataan, untuk di analisa dan diperbaiki.

• Kesalahan ketik

Mendeteksi bahasa pemrograman yang bersifat case sensitive.


Kelemahan White Box Testing

Untuk perangkat lunak yang tergolong besar, White Box Testing dianggap sebagai strategi yang tergolong boros, karena akan melibatkan sumber daya yang besar untuk melakukannya.

Referensi : http://teknologi.kompasiana.com/terapan/2010/12/06/white-box-testing-323009.html
Read More
Rian Saadillah

Blackbox testing


Black-box testing adalah metode pengujian perangkat lunak yang tes fungsionalitas dari aplikasi yang bertentangan dengan struktur internal atau kerja (lihat pengujian white-box). pengetahuan khusus dari kode aplikasi / struktur internal dan pengetahuan pemrograman pada umumnya tidak diperlukan. Uji kasus dibangun di sekitar spesifikasi dan persyaratan, yakni, aplikasi apa yang seharusnya dilakukan. Menggunakan deskripsi eksternal perangkat lunak, termasuk spesifikasi, persyaratan, dan desain untuk menurunkan uji kasus. Tes ini dapat menjadi fungsional atau non-fungsional, meskipun biasanya fungsional. Perancang uji memilih input yang valid dan tidak valid dan menentukan output yang benar. Tidak ada pengetahuan tentang struktur internal benda uji itu.

Metode uji dapat diterapkan pada semua tingkat pengujian perangkat lunak: unit, integrasi, fungsional, sistem dan penerimaan.Ini biasanya terdiri dari kebanyakan jika tidak semua pengujian pada tingkat yang lebih tinggi, tetapi juga bisa mendominasi unit testing juga.

BLACKBOX TESTING

Metode ujicoba blackbox memfokuskan pada keperluan fungsional dari software. Karna itu ujicoba blackbox memungkinkan pengembang software untuk membuat himpunan kondisi input yang akan melatih seluruh syarat-syarat fungsional suatu program. Ujicoba blackbox bukan merupakan alternatif dari ujicoba whitebox, tetapi merupakan pendekatan yang melengkapi untuk menemukan kesalahan lainnya, selain

Menggunakan metode whitebox.

Ujicoba blackbox berusaha untuk menemukan kesalahan dalam beberapa kategori, diantaranya :

1. Fungsi-fungsi yang salah atau hilang
2. Kesalahan interface
3. Kesalahan dalam struktur data atau akses database eksternal
4. Kesalahan performa
5. kesalahan inisialisasi dan terminasi
Read More

Minggu, 01 Juni 2014

Rian Saadillah

Menggerakkan animasi mengikuti lintasan

Terdapat 2 cara utnuk mendeteksi suatu lintasan yaitu dengan deteksi koordinat lintasan dan  deteksi warna piksel lintasan (tidak dibahas di panduan ini).

Gerakan obyek dilakukan dengan transformasi translasi seperti yang sudah dibahas sebelumnya,yakni :

                                  X’=x+Tx dan y’=y+Ty

Lintasan dengan  titik deteksi lintasan dapat diilustrasikan dibawah ini

1. obyek bergerak dari lintasn datar menuju lintasan miring/menanjak



2. Pada lintasan menanjak ini, obyek bergerak miring mengikuti jalur lintasan dan kemirinan obyek juga akan berubah sesuai sudur miring lintasan

Sudut ini  akan memiliki 3 fungsi, yakni 
  1. membuat sudut lintasan
  2. menentukan arah gerakan vertikal. Dimana akan menentukan Ty (faktor penggeseran vertikal)
  3. sudut putar dari obyek krn harus mengikuti sudut lintasan seperti yang lazim terjadi di dunia nyata.

Faktor Ty ini dapat dihitung dari Tx (pada program Tx=transformasi,dengan transformasi adalah faktor translasi mendatar)

Ty=Tx*tan q

Diatas adalah sedikit teori yang membingungkan tentang program yang akan kita buat, langsung saja ya teman-teman

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.GeneralPath;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Line2D;
import java.awt.geom.Rectangle2D;
import java.util.Timer;
import java.util.TimerTask;
import javax.swing.*;

public class Gabungan7_1 extends JFrame{
    private JPanel buttonPanel;
    private Mobil gambar;
    private JButton btGerak;
    public JTextField masukan;
    private int faktor, a;
    public float Ax2,Bx2,Cx2;
  public int Ty;
    public int sensorDepan, sensorBelakang;
public float lintasan,sudut,sudut_b,sudut_c;

    Timer timer = new Timer();

    public Gabungan7_1() {
        super("Mobil Genius");
        gambar= new Mobil();
        gambar.setBackground(Color.white);
               btGerak = new JButton( "Start" );
        btGerak.addActionListener(new ActionListener() {
            public void actionPerformed( ActionEvent event ) {
                gerakkan(true);
            }
        });

         buttonPanel = new JPanel();
        buttonPanel.setLayout( new GridLayout( 1, 1 ) );
                buttonPanel.add(btGerak);
        Container container = getContentPane();
        container.add( gambar, BorderLayout.CENTER );
        container.add( buttonPanel, BorderLayout.SOUTH);
        setSize(800, 500);
        setVisible( true );
    }

    public static void main( String args[] ){
        Gabungan7_1 application = new Gabungan7_1();
        application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE );
    }

    class putar extends TimerTask{
        private boolean mundur;
        public void run() {
            try{
                //faktor=Integer.parseInt(masukan.getText());
                if(mundur){
                    a -= faktor;
                    gambar.draw(Mobil.GERAK, a);

                    if(sensorBelakang <= 40)
                           mundur = false;
                   }else
                   {
if(sensorDepan>Ax2 && sensorDepan<=Bx2)
sudut=sudut_b;
else if(sensorDepan>Bx2)
sudut=sudut_c;
 else
sudut=0;

                    a += faktor;
                    gambar.draw(Mobil.GERAK, a);
                    if(sensorDepan >= Cx2)
gerakkan(false);
//mundur=true;
                        //mundur = true;
                 }

            }catch(Exception e){}
        }
    }

    public void gerakkan(boolean laju){
        if(laju){
            faktor=1;
            timer.schedule(new putar(), 0, 50);
        }
        else if (laju == false)
            faktor=0;
            }

    class Mobil extends JPanel {
        public final static int GERAK = 1;
        private int shape;
        int transformasi = 0;
        Color warna,warna1;
        @Override
        public void paintComponent( Graphics g ) {
            super.paintComponent( g );
            Graphics2D g2=(Graphics2D) g ;
//koordinan klintasan
float Ax1,Ay1,Ay2,Bx1,By1,By2,Cx1,Cy1,Cy2,Asdt,Bsdt;
//lintasan A
Ax1=50;Ay1=400;
Ax2=300;Ay2=400;
//lintasan B
Bx1=Ax2;By1=Ay2;
Bx2=400;By2=200;
//lintasan C
Cx1=Bx2;Cy1=By2;
Cx2=800;Cy2=400;

//hitung sudur lintasan B
float B_dx=Bx2-Bx1;
float B_dy=By2-By1;
float sudut_rad_b=(float) Math.atan(B_dy/B_dx);
sudut_b=- (sudut_rad_b/3.14f)*180f;

//hitung sudut lintasan C
float C_dx=Cx2-Cx1;
float C_dy=Cy2-Cy1;
float sudut_rad_c=(float) Math.atan(C_dy/C_dx);
sudut_c=-(sudut_rad_c/3.14f)*180f;



            // Rangka Mobiil
            int mX1 = 90, mY1 = 390;
            int mX2 = 180, mY2 = 390;
            int mX3 = 90, mY3 = 350;
float sudut_rad=-((sudut/180f)*3.14f);

float cos_sdt=(float) Math.cos(sudut_rad);
float sin_sdt=(float) Math.sin(sudut_rad);

float fmX1=(float) mX1;
float fmY1=(float) mY1;
float fmX2=(float) mX2;
float fmY2=(float) mY2;
float fmX3=(float) mX3;
float fmY3=(float) mY3;


float ffmX1= fmX1*cos_sdt-fmY1*sin_sdt ;
float ffmY1=  fmX1*sin_sdt+fmY1*cos_sdt;
float ffmX2= fmX2*cos_sdt-fmY2*sin_sdt ;
float ffmY2=fmX2*sin_sdt+fmY2*cos_sdt;
float ffmX3= fmX3*cos_sdt-fmY3*sin_sdt ;
float ffmY3=  fmX3*sin_sdt+fmY3 *cos_sdt;
    //titik pusat putar di titik 1
float dx= ffmX1-fmX1;
float dy= ffmY1-fmY1;

fmX1=ffmX1-dx;
  fmY1=ffmY1-dy;
fmX2=ffmX2-dx;
fmY2=ffmY2-dy;
fmX3=ffmX3-dx;
fmY3=ffmY3-dy;

mX1=(int) fmX1;
mY1=(int) fmY1;
mX2=(int) fmX2;
mY2=(int) fmY2;
mX3=(int) fmX3;
mY3=(int) fmY3;


//hitung perubahan gerak vertukal
    double trf=(double) transformasi;
if(sensorDepan>Ax2 && sensorDepan<Bx2 )

   Ty= (int) ((trf-Bx1+100)*Math.tan(sudut_rad));
else if(sensorDepan>=Bx2)
Ty= (int) ((trf-Cx1-320)*Math.tan(sudut_rad));


    Polygon mobil = new Polygon();
mobil.addPoint(mX1 + transformasi, mY1+Ty );
   mobil.addPoint(mX2 + transformasi, mY2+Ty );
mobil.addPoint(mX3 + transformasi, mY3+Ty );
            warna = new Color(80, 164, 245);
            g2.setColor(warna);
              g2.fill(mobil);
            g2.drawPolygon(mobil);
int R1_x=mX1 + transformasi+15;
int R1_y=mY1+Ty-5 ;
int R2_x=R1_x+40;
int R2_y=R1_y;
Stroke ban =new BasicStroke(8);
g2.setStroke(ban);
warna = new Color(0, 0, 0);

Ellipse2D roda1=new Ellipse2D.Double(R1_x,R1_y,15,15);
Ellipse2D roda2=new Ellipse2D.Double(R2_x,R2_y,15,15 );
g2.setColor(warna);
g2.setPaint(warna);
g2.draw(roda1);
g2.draw(roda2);

//pembuana lintasa
warna1 = new Color(50, 0, 50);

      Stroke lbjalan =new BasicStroke(10,BasicStroke.CAP_ROUND,BasicStroke.JOIN_ROUND);
            //Lintasan
GeneralPath lintas=new GeneralPath();
lintas.moveTo(Ax1,Ay1);
lintas.lineTo(Ax2,Ay1);
lintas.lineTo(Bx2,By2);
lintas.lineTo(Cx2,Cy2);
      g2.setStroke(lbjalan);
    g2.setColor(warna1);
            g2.setPaint(warna1);
    g2.draw(lintas);

String str="Mobil :"+ String.valueOf(sensorDepan)+"-->"+String.valueOf(sudut);

            g2.drawString(str, 130 + transformasi, 420);

            //sensor depan dan belakang
            sensorDepan = mX2+transformasi ;
            sensorBelakang = mX1+transformasi   ;

            if ( shape == GERAK){
                transformasi += faktor;
            }
        }

        public void draw( int shapeToDraw, int fak) {
            shape = shapeToDraw;
            transformasi = fak;
            repaint();
        }
    }
}

Hasil yang akan di keluarkan :



SEMOGA BERMANFAAT 

Read More