Sabtu, 31 Januari 2015

Chapter 8 Q&A

0 komentar

8.14. Does “refactoring” mean that you modify the entire design iteratively? If not, what does
it mean?


Refactoring tidak harus mengubah keseluruhan desain iteratifnya, refactoring adalah teknik reorganisasi yang menyederhanakan desain (atau kode) dari komponen tanpa mengubah fungsinya atau perilaku. Fowler mendefinisikan refactoring dengan cara sebagai berikut: "Refactoring adalah proses mengubah perangkat lunak sistem sedemikian rupa bahwa itu tidak mengubah perilaku eksternal dari kode [desain] menigkatkan struktur internal. "


           Ketika perangkat lunak refactored, desain yang ada diperiksa untuk redundansi, elemen desain yang tidak terpakai, tidak efisien atau algoritma yang tidak perlu, buruk dibangun atau pantas struktur data, atau kesalahan desain lain yang dapat diperiksa untuk menghasilkan desain yang lebih baik. Misalnya, desain iterasi pertama mungkin menghasilkan komponen yang menunjukkan kohesi rendah (yaitu, ia melakukan tiga fungsi yang hanya memiliki hubungan yang terbatas satu sama lain). Setelah pertimbangan cermat, Anda mungkin memutuskan bahwa komponen harus refactored menjadi tiga komponen yang terpisah, masing-masing menunjukkan kohesi tinggi.
Jadi refactoring digunakan untuk memperbaiki secara internal tanpa menganggu sifat eksternal. Berikut merupakan contoh dari langkah-langkah Refactoring Large Software Systems.

pada artikel tersebut dibahas secara keseluruhan tentang refactoring, sama seperti metode lain, dalam refactoring juga dibutuhkan banyak hal, mulai dari analisa hingga implementasi, namun ada beberapa perbedaan dari refactoring dengan metode-metode lainnya.
Read more...

Written by: Admin ngampus mulu, ga mampus Updated at : 12:45

Jumat, 30 Januari 2015

Soal UTS Oracle Fundamental PL/SQL Semester Genap 2012/2013

1 komentar

Mata Kuliah     : Oracle Fundamental PL/SQL
Tanggal            : Rabu, 1 Mei 2013
Waktu              : 90 Menit
Sifat Ujian        : Buka Noted 1 Lembar A4


Tuliskan Select Statement  dari Soal-Soal Berikut berdasarkan ER dibawah ini :



1.     Perintah untuk menampilkan struktur dari table Countries!


2.     Tampilkan isi dari table region yang awal nama regionnya huruf a!

3. Tampilkan nama depan dan belakang, email dan id pekerjaan dari karyawan yang emailnya mengandung huruf h!


4. Tampilkan nama belakang dan gaji dari karyawan yang memiliki gaji diatas sama dengan 13000, urut berdasarkan gaji tertinggi!

5. Tampilkan nama, dan jumlah panjang nama dari karyawan yang panjang gabungan namanya diatas 10 digit, urutkan berdasarkan nama yang paling panjang!

6. Tampilkan nama karyawan dan id departemen dari karyawan yang tidak bekerja pada departemen 20 dan 50, urut berdasarkan nama belakangnya!

7. Tampilkan nama karyawan dan id departemen dari karyawan yang tahun mulai bekerjanya diantara 1994 hingga 2000 dan belum pernah berpindah bagian, urut berdasarkan nama!

8.   Tampilkan id, nama belakang karyawan, gaji dan gaji setelah ditambahkan 1,5% dari gaji, urut berdasarkan nama belakang

9.   Tampilkan id karyawan, nama beserta departemen yang dipimpinnya dari karyawan yang menjadi manajer urut berdasarkan nama departemen

10.  Tampilkan id karyawan, nama kota dan nama departemen dengan menggunakan multiple natural join using on clause, dan bukan department yang diawali huruf s, urut berdasarkan nama kota

11.     Jelaskan perbedaan antara fungsi left, right dan outer join jika melibatkan 2 table yaitu ABC (field a PK,b,c) dan XYZ (field x PK,y,z,a FK)!

12. Tampilkan id department , nama departemen, salary minimum per masing-masing departemen, yang salary minimumnya diatas dari salary maksimum karyawan yang bekerja di departemen 60, urut berdasarkan id departemen!

13. Tampilkan id department , nama departemen, salary minimum per masing-masing departemen, yang salary minimumnya diatas dari salary maksimum karyawan yang bekerja di departemen 60, urut berdasarkan id departemen!


14.     Tampilkan nama dan gaji karyawan yang memiliki gaji tertinggi!


15. Tampilkan nama dan job_id dari karyawan yang belum pernah berpindah bagian, dengan menggunakan fungsi minus, urut berdasarkan nama!



Read more...

Written by: Admin ngampus mulu, ga mampus Updated at : 08:52

Kamis, 29 Januari 2015

Contrast Stretching Menggunakan Matlab

0 komentar

Pada contrast stretching ini digunakan program matlab, yakni dengan menggunakan metode function, yang dimana functionnya sebagai berikut:


function run = ContrastStretching(r1,r2,s1,s2)
f = imread('low1.jpg');
citra=double(f);
[M N] = size(citra)
L=(2)^8;
Lmaks=(L-1);


for incI=1:M
  for incJ=1:N
        Ibaru=citra(incI,incJ);
        if(Ibaru<r1)
            Ibaru = round((s1/r1)*Ibaru);
        elseif(Ibaru<=r2)
            Ibaru = s1+round((Ibaru-r1)*(s2-s1)/(r2-r1));
        else
            Ibaru = s2+round((Ibaru-r2)*(Lmaks-s2)/(Lmaks-r2));
        end
    citra(incI,incJ)=Ibaru;
    end
end

hasil=uint8(citra)
subplot(2,2,1);imshow(f);title('Citra Asli');
subplot(2,2,3);imshow(hasil);title('Hasil Contrast');
subplot(2,2,2);imhist(f);title('Histogram Awal');

subplot(2,2,4);imhist(hasil);title('Histogram Hasil');


Function tersebut diberi nama ContrastStretching, function akan dijalankan apabila function telah dipanggil, ketika function dipanggil maka akan meproses untuk menghasilkan citra baru beserta histogramnya.

Untuk pemanggilan function, dapat menggunakan:

ContrastStretching(r1,r2,s1,s2)

Yakni memanggil function, diikuti dengan nilai input untuk r1,r1 dan s1,s2 sesuai yang diinginkan

Nilai input tersebut dapat dimasukan dengan bebas selama tidak melebihi batas maksimal/ diatas 255, namun perbedaan nilai input akan menghasilkan citra yang berbeda, karena nilai input tersebut berguna untuk mengatur besaran r dan s pada citra yang akan dihasilkan.

>>ContrastStretching(60,120,150,185);

Pada case ini menggunakan nilai input r1=60,r2=120,s1=150,s2=185


Pada Contrast Stretching ini citra awal dengan contrast yang kurang baik akan menjadi terlihat lebih terang (ada peningkatan contrast) pada hasil akhirnya, namun apabila citra awal memiliki contrast yang sudah baik, justru cenderung menghasilkan citra yang kurang baik, citra dapat menjadi lebih gelap dan kabur/kurang jelas.

Read more...

Written by: Admin ngampus mulu, ga mampus Updated at : 20:49

Rabu, 28 Januari 2015

Class Responsibility Collaborator (CRC) Model

0 komentar

Chapter 6
Q.A

6.8. Develop a complete set of CRC model index cards on the product or system you chose as 
part of  Problem 6.5 
6.5. You have been asked to build one of the following systems:
b. a Web-based order-processing system for a computer store.


Class Responsibility Collaborator  (CRC) Model.

         CRC adalah kumpulan kartu indeks standar yang telah dibagi menjadi tiga bagian (class,responsibilities, collaborator). Class merupakan koleksi benda-benda yang sama, responsibilities adalah sesuatu yang diketahui class atau tidak, dan collaborator yang berinteraksi  untuk mengisi dari responsibilities.

CRC memiliki layout seperti:

Jadi seperti dijelaskan sebelumnya, CRC terdiri dari tiga bagian (class, responsibilities, collaborator)
  
CRC
Berikut merupakan gambaran pada kasus Web-based order-processing system for a computer store.
b. a Web-based order-processing system for a computer store.


           Pada case ini, terlihat kesinambungan antara layout CRC yang satu dengan lainnya. Misalnya pada Class Order Item, yang menjadi collaborator ialah Class Inventory item, Class Order Item sendiri merupakan collaborator pada class Order, Order & Surface Address menjadi collaborator di Class customer yang menggambarkan bahwa pemesanan dari Order dengan detail order yang tertera pada order item tersebut dilakukan oleh customer, dengan details alamat dikolaborasi kan dengan Surface Address yang mendeskripsikan jelas alamat dari si pemesan.



Read more...

Written by: Admin ngampus mulu, ga mampus Updated at : 14:27

Selasa, 27 Januari 2015

Edge Linking Metode Robert dan Prewitt menggunakan Matlab

0 komentar

Salah satu teknik yang dapat digunakan untuk edge linking adalah local processing, yaitu dengan menganalisa karakteristik pixel-pixel didalam seuatu neighborhood (3x3) atau (5x5) pada semua titik (x,y) didalm citra yang telah mengalami edge-detection. Selanjutnya semua titik yang sejenis dihubungkan sehingga membentuk kumpula pixel yang memiliki sifat-sifat yang sama, Pada case ini edge-detection digunakan metode sobel, karena hasil yang dihasilkan lebih baik dibandingkan metode Robert dan Prewitt.

Dua sifat utama yang digunakan untuk menentukan kesamaan edge pixel dalam analisa ini adalah:

1. Besarnya respon gradient operator yang digunakan
2. Arah gradient

Sifat yang pertama dinyatakan dengan nilai Ñf yang telah dibahas sebelumnya. Jadi suatu edge pixel dengan koordinat (x’,y’) dan bertetangga dengan (x,y), dikatakan memiliki magnitude sama dengan pixel di (x,y) jika:
dimana T adalah threshold positif.

Sedangkan arah vektor gradient dinyatakan dengan a(x,y) yang juga telah dibahas sebelumnya.
Suatu edge pixel dengan koordinat (x’,y’) dan bertetangga dengan (x,y), dikatakan memiliki sudut yang sama dengan pixel di (x,y) jika:

dimana A adalah threshold sudut.

Suatu titik yang   menjadi  tetangga dari (x,y)  dihubungkan  dengan titik (x,y) jika memenuhi
kedua kriteria di atas, baik magnitude maupun sudutnya. Proses linking ini diulang untuk seluruh lokasi titik yang ada di dalam citra.

Pada case ini program dibuat dengan menggunakan Matlab, sebagai berikut:


A = imread('image.jpg');
B = rgb2gray(A);
C = double(B);
[p q] = size(C);
for i=2: p-2
    for j=2: q-2
        Gx = ((2*C(i+2,j+1) + C(i+2,j) + C(i+2,j+2)) - (2*C(i,j+1) + C(i,j) + C(i,j+2)));
       
        Gy = ((2*C(i+1,j+2) + C(i,j+2) + C(i+2,j+2)) - (2*C(i+1,j) + C(i,j) + C(i+2,j)));

        h(i,j) = sqrt(Gx.^2 + Gy.^2);
        A(i,j) = atand(Gy/Gx);
        h_gx(i,j) = Gx;
        h_gy(i,j) = Gy;       
    end
end

h = uint8(h);
Thresh=120;
B=max(h,Thresh);
B(B==round(Thresh))=0;
B=uint8(B);
hold_a = 40;
hold_t = 15;

for i=2 : p-3
    for j=2 : q-3
        if(i>1 && i<p && p>1 && n<q)
            if(abs((h(i+1,j) - h(i,j))) <= hold_t && abs((A(i+1,j) - A(i,j))) < hold_a)
                img(i,j) = B(i,j);
                img(i+1,j) = B(i+1,j);
            end
            if(abs((h(i,j+1) - h(i,j))) <= hold_t && abs((A(i,j+1) - A(i,j))) < hold_a)
                img(i,j) = B(i,j);
                img(i,j+1) = B(i,j+1);
            end
            if(abs((h(i+1,j+1) - h(i,j))) <= hold_t && abs((A(i+1,j+1) - A(i,j))) < hold_a)
                img(i,j) = B(i,j);
                img(i+1,j+1) = B(i+1,j+1);
            end
        else
            img(i,j)=0;
        end
    end
end
figure;imshow(uint8(h_gx)); title(‘operator Gx');
figure;imshow(uint8(h_gy)); title('operator Gy');
figure;imshow(img); title('Hasil Edge Linking');

Read more...

Written by: Admin ngampus mulu, ga mampus Updated at : 22:12