Tampilkan postingan dengan label Tutorial. Tampilkan semua postingan
Tampilkan postingan dengan label Tutorial. Tampilkan semua postingan

COCOMO (Constructive Cost Model)

0 komentar

COCOMO merupakan singkatan dari Constructive Cost Model yaitu algortima model estimasi biaya perangkat lunak yang dikembangkan dan diterbitkan oleh Barry Boehm. Cocomo merupakan sebuah model  model untuk memperkirakan usaha, biaya dan jadwal untuk proyek-proyek perangkat lunak.
COCOMO merupakan model terbuka sehingga semua detail dapat dipublikasi, termasuk :
  1. Dasar persamaan perkiraan biaya
  2. Setiap asumsi yang dibuat dalam model
  3.  Setiap definisi
  4. Biaya yang disertakan dalam perkiraan dinyatakan secara eksplisit 
Jenis-jenis COCOMO :

  • Basic (COCOMO I 1981)
Menghitung dari estimasi jumlah LOC (Lines of Code). Pengenalan Cocomo ini diawali tahun 70-an akhir. Sang pelopor Boehm, melakukan riset dengan mengambil kasus dari 63 proyek perangkat lunak untuk membuat model matematisnya. Model dasar dari model ini adalah sebuah persamaan sebagai barikut :

effort = C * size^M
Ket:
effort : adalah usaha yang dibutuhkan selama proyek, diukur dalam person-months;
c dan M : adalah konstanta-konstanta yang dihasilkan dalam riset Boehm dan tergantung pada penggolongan besarnya proyek perangkat lunak;
size : adalah estimasi jumlah baris kode yang dibutuhkan untuk implementasi, dalam satuan KLOC (kilo lines of code)
Ukuran program dinyatakan dalam KLOC.  Model Cocomo dapat diaplikasikan dalam tiga tingakatan kelas yaitu :
  1. Proyek Organic (Organic Mode) adalah proyek dengan ukuran relatif kecil, dengan anggota team yang sudah berpengalaman dan mampu bekerja pada permintaan yang relatif fleksibel.
  2. Proyek Sedang (Semi-Detached Mode) merupakan proyek yang memiliki ukuran dan tingkat kerumitan yang sedang, dan tiap anggota tim memiliki tingkat keahlian yang berbeda.
  3. Proyek Terintegrasi (Embedded Mode), Proyek yang dibangun dengan spesifikasi dan operasi yang ketat.

Model COCOMO dasar ditunjukkan dalam persamaan 1, 2, dan 3 berikut ini:

keterangan :
E : besarnya usaha (orang-bulan)
D : lama waktu pengerjaan (bulan)
KLOC : estimasi jumlah baris kode (ribuan)
P : jumlah orang yang diperlukan

  • COCOMO Menengah (Intermediet COCOMO)
Intermediate COCOMO menghitung usaha pengembangan perangkat lunak sebagai fungsi ukuran program dan sekumpulan “cost drivers” yang mencakup penilaian subjektif produk, perangkat keras, personil dan atribut proyek. Ekstensi ini mempertimbangkan satu set empat “cost drivers”, masing-masing dengan sejumlah atribut anak:
  1. Atribut produk (product attributes)
  2. Perangkat lunak yang disyaratkan reliabilitas (RELY)
  3. Ukuran database aplikasi (DATA)
  4. Kompleksitas produk (CPLX)
  5. Hardware atribut (computer attibutes)
  6. Run-time kinerja kendala (TIME)
  7. Memori kendala (STOR)
  8. Volatilitas lingkungan mesin virtual (VIRT)
  9. Diperlukan waktu pembalikan haluan (TURN)
  10. Personil atribut (personnel attributes)
  11. Analis kemampuan (ACAP)
  12. Kemampuan rekayasa perangkat lunak (PCAP)
  13. Aplikasi pengalaman (AEXP)
  14. Mesin virtual pengalaman (VEXP)
  15. Bahasa pemrograman pengalaman (LEXP)
  16. Proyek atribut
  17. Penggunaan perangkat lunak (MODP)
  18. Penerapan metode rekayasa perangkat lunak (TOOL)
  19. Diperlukan jadwal pengembangan (SCED)
  • COCOMO Detil (Detailed COCOMO)
Detil COCOMO menggabungkan semua karakteristik versi intermediate dengan penilaian dampak cost driver di setiap langkah (analisis, desain, dll) dari proses rekayasa perangkat lunak 1. model rinci kegunaan yang berbeda upaya pengali untuk setiap driver biaya atribut tersebut Sensitif pengganda Tahap upaya masing-masing untuk menentukan jumlah usaha yang dibutuhkan untuk menyelesaikan setiap tahap.

Pada COCOMO detail, upaya dihitung sebagai fungsi dari ukuran program dan satu set driver biaya yang diberikan sesuai dengan tiap tahap siklus hidup rekayasa perangkat lunak. Fase yang digunakan dalam COCOMO detail, perencanaan kebutuhan dan perancangan perangkat lunak, perancangan detil, kode dan menguji unit, dan pengujian integrasi
Referensi :

http://pu2tgoclo.blogspot.com/2011/04/apa-itu-cocomo-dan-apa-saja-jenis.html [Tanggal Akses : 5 Mei 2014]
http://raveshader.blogspot.com/2011/04/constructive-cost-model-cocomo.html [Tanggal Akses : 5 Mei 2014]

Program Looping Dengan PL/SQL

0 komentar

Input Program :

  Gambar 1. Input Program Looping
                                                                                         
Output Program :

 Gambar 2. Output Program Looping

Logika :

Perintah set serveroutput on digunakan untuk mengaktifkan konsol output. Declare adalah bagian yang mendeklarasikan variable beserta tipe datanya. Begin adalah bagian utama program yang berisi perintah inputan beserta proses untuk menghitung. For I untuk melakukan pengulangan sebanyak 5 kali dengan data yang diulang pada For J yakni 1 sampai 3. Untuk mencetak hasil digunakan perintah dbms_output.put_line. Perintah End adalah bagian akhir dari pembuatan program.

Program Cek Grade Nilai Menggunakan PL/SQL

0 komentar

Input Program :
 
Gambar 1. Input Program Cek Grade Nilai
                                                                                         
Output Program :


Gambar 2. Output Program Cek Grade Nilai

Logika :

Perintah set serveroutput on digunakan untuk mengaktifkan konsol output. Accept digunakan untuk membaca input variable dari pengguna. Declare adalah bagian yang mendeklarasikan variable beserta tipe datanya. Pada program ini terdapat satu variable yaitu nilai dengan tipe data number dengan 3 karakter. Begin adalah bagian utama program yang berisi perintah inputan beserta proses untuk menghitung. Pada PL/SQL untuk menerima inputan digunakan tanda & beserta nama variable untuk menampung nilai inputan tersebut. IF adalah perintah kondisi yang ada pada pl/sql sedangkan elsif adalah perintah lain jika 1 kondisi sebelumnya tidak terpenuhi. Apabila ingin mengakhiri kondisi if digunakan perintah endif. Untuk mencetak hasil digunakan perintah dbms_output.put_line. Perintah End adalah bagian akhir dari pembuatan program.

Mengatasi Apache yang bentrok dengan IIS

0 komentar

Hey kali ini gue mau memberikan tutorial tentang mengatasi Apache yang bentrok dengan IIS. Postingan ini gue buat berdasarkan kasus yang gue alamin di lab. Jadi waktu itu kita menggunakan Apache sebagai server untuk menjalankan script PHP, namun Apache tersebut tidak dapat di running. Setelah ditelusuri ternyata Apache tersebut bentrok dengan IIS. Nah berikut ini adalah cara untuk mengatasinya :

  • Buka jendela Run. Klik start --> Run.
  • Lalu ketik services.msc


  •  Kemudian nanti akan muncul jendela services.

  • Cari file dengan nama IIS Admin, lalu klik kanan stop.
  • Buka Xampp kemudian klik start pada Appache. 
  • Appache sudah dapat di running 


Menambahkan Efek Suara Pada Button di Flash

0 komentar

Hal pertama yang kita lakukan untuk membuat tombol yang diberi efek suara yaitu dengan menconvert objek  gambar atau tulisan yang akan dijadikan tombol. Caranya adalah dengan menekan f8. Nanti dipilihannya pilih convert to button. Lalu beri nama buttonnya, jika sudah klik ok. Ketika sudah diconvert, klik 2x  pada button tersebut untuk setting suara. Nanti akan muncul tampilan seperti ini :

Screenshot 1

Pada tampilan diatas disebelah layer terdapat tulisan up, over, down dan hit. Lalu insert keyframe di kotak over.  Agar lebih menarik kita dapat menambahkan efek perubahan warna pada button  ataupun tulisannya ketika diklik. Caranya dengan merubah warna tombol atau tulisan pada kotak overnya. Jika tidak ingin menambahkan efek tersebut anda dapat langsung mendrag suara ketombolnya. Nanti tampilannya akan seperti ini.

Screenshot 2

Apabila sudah selesai klik tulisan scene untuk balik ketampilan awal.


Screenshot3

Kondisi Pada Bahasa C

0 komentar

Kondisi digunakan untuk memeriksa kebenaran dari suatu ungkapan/statement sebagai proses penentuan langkah berikutya berdasarkan proses yang terjadi sebelumnya.

Contoh Program 1

Input :

#include
Int main()
{
Int i=0;
Do
{
Printf(“%d \n”,i);
i++
}
While (i<=5);
}



Screenshot1. Input Program

Output Program :



Screenshot2. Output Program

Logika Program :

#include

Kalimat yang diawali dengan tanda (#) adalah preprocessor directive. Bukan merupakan baris kode yang dieksekusi, tetapi indikasi untuk compiler. Dalam program ini kalimat #include memberitahukan preprocessor compiler untuk menyertakan header file standard stdio.h.  File spesifik ini juga termasuk library deklarasi standard I/O pada C dan file ini disertakan karena fungsi-fungsinya akan digunakan nanti dalam program.

main()

Baris ini mencocokan pada awal dari deklarasi fungsi main. Fungsi main merupakan titik awal dimana seluruh program C akan memulai dieksekusi. Diletakkan diawal, ditengah atau diakhir program, isi dari fungsi main akan selalu dieksekusi pertama kali. Pada dasarnya, seluruh program C memiliki fungsi main.

Main diikuti oleh sepasang tanda kurung () karena merupakan fungsi. Pada C, semua fungsi diikuti oleh sepasang tanda kurung () dimana, dapat berisi argument didalamnya. Isi dari fungsi main selanjutnya akan mengikuti, berupa deklarasi formal dan dituliskan diantara kurung kurawal ({}).


Int i=0 Do Printf(“%d \n”,i);  i++  While (i<=5);               

Mendeklarasikan variabel i berupa intejer dengan nilai = 0. Lalu memulai perulangan dengan membaca nilai decimal integer dari i kemudian dicetak dan berganti kebaris baru. Setelah itu menambahkan nilai i dengan 1. Batas perulangan, jika i sudah lebih dari sama dengan 5 maka perulangan akan dihentikan.


Contoh Program 2

Input Program :


#include
Int main()
{
Int nilai;
Printf(“Masukkan nilai =”);
Scanf(“%d”,&nilai);
If (nilai %2 ==0)
Printf(“Genap \n”);
Else
Printf(“Ganjil \n”);
}




Screenshot3. Input Program


Output Program :


Screenshot4. Output Program Genap

Screenshot5. Output Program Ganjil


Logika Program :

#include

Kalimat yang diawali dengan tanda (#) adalah preprocessor directive. Bukan merupakan baris kode yang dieksekusi, tetapi indikasi untuk compiler. Dalam program ini kalimat #include memberitahukan preprocessor compiler untuk menyertakan header file standard stdio.h.  File spesifik ini juga termasuk library deklarasi standard I/O pada C dan file ini disertakan karena fungsi-fungsinya akan digunakan nanti dalam program.


main()

Baris ini mencocokan pada awal dari deklarasi fungsi main. Fungsi main merupakan titik awal dimana seluruh program C akan memulai dieksekusi. Diletakkan diawal, ditengah atau diakhir program, isi dari fungsi main akan selalu dieksekusi pertama kali. Pada dasarnya, seluruh program C memiliki fungsi main.

int nilai;

Merupakan deklarasi tipe data yang akan digunakan. Jika akan menggunakan tipe data yang sama untuk beberapa indentifier maka dapat dituliskan dengan menggunakan tanda koma, contoh : int nilai; 

Printf(“Masukkan nilai =”);  -> Mencetak tulisan Masukan nilai.


Scanf(“%d”,&nilai);  -> Membaca inputan data nilai decimal yang telah dimasukan kedalam variabel nilai                                           

If (nilai %2 ==0) Printf(“Genap \n”); Else Printf(“Ganjil \n”)

Kondisi dimana jika nilai yang dimasukkan dibagi 2 dan hasilnya tidak memiliki sisa maka akan tercetak genap, jika masih memiliki sisa maka akan tercetak ganjil. 

Program Stack Part 5 (Program Stack Konversi Infix ke Postfix)

0 komentar

40 : begin
clrscr;
 gotoxy(20,4);writeln(' Program Konversi Infix Ke Postfix');
 gotoxy(20,5);writeln('***********************************');
writeln;
 gotoxy(15,8);write('Ketik Notasi Infix : ');
  read(okunan);
  uzunluk:=length(okunan);
  okunan[0]:=chr(uzunluk);
  j:=0;i:=1;
  while(i<=uzunluk) do
   begin
     a1:=okunan[i];
     val(a1,i4,code);
     top:=0;
     if code=0 then
      begin
        while (code=0) and (i<=uzunluk)do
          begin
            top:=top*10+i4;
            i:=i+1;
            a1:=okunan[i];
            val(a1,i4,code);
          end;
        j:=j+1;
        str(top,ifade[j]);
      end;
     if i<=uzunluk then
      begin
        j:=j+1;
        ifade[j]:=okunan[i];
        i:=i+1;
      end;
   end;
   n:=j;
{
Conversion to Postfix
}
  ptr:=0;
  i:=1; j:=0;
  while(i<=(uzunluk)) do
   begin
     token:=ifade[i];
     val(token,i4,code);
     if code = 0 then
      begin
        j:=j+1;
        yeni[j]:=token;
      end
     else
      begin
        tut:=token[1];
        case tut of
           '(','^': push2(tut);
           ')': begin
                  stack_elemani:=pop2;
                  while stack_elemani <> '(' do
                    begin
                      j:=j+1;
                      yeni[j]:=stack_elemani;
                      stack_elemani:=pop2;
                    end;
                end;
           '+','-': begin
                      stack_elemani:=pop2;
                      while (stack_elemani <> '(') and
                             (stack_elemani <> ' ') do
                        begin
                          j:=j+1;
                          yeni[j]:=stack_elemani;
                          stack_elemani:=pop2;
                        end;
                        if stack_elemani ='(' then
                           push2('(');
                        push2(tut);
                    end;
           '*','/','^':begin
                         stack_elemani:=pop2;
                         while(stack_elemani='*') or (stack_elemani='/')
                               or (stack_elemani='^')  do
                           begin
                             j:=j+1;
                             yeni[j]:=stack_elemani;
                             stack_elemani:=pop2;
                           end;
                         if stack_elemani <> ' ' then
                           push2(stack_elemani);
                         push2(tut);
                       end;
           end;{ case }
     end;{ else }
    i:=i+1;
   end; { while }
  stack_elemani:=pop2;
  while(stack_elemani <> ' ') do
    begin
       j:=j+1;
       yeni[j]:=stack_elemani;
       stack_elemani:=pop2;
    end;

gotoxy(20,12);writeln('- Setelah operasi push dan pop -');
  writeln;
gotoxy(15,16);write('Notasi Postfix    : ');
  n:=j;
  for i:=1 to n do
     write(yeni[i],' ');
  readln;
{
 Calculating the result using Postfix
}
  i:=1;
  ptr:=0;
  while(i<=n) do
    begin
      token:=yeni[i];
      val(token,i4,code);
      while(code=0) do
        begin
          ptr:=ptr+1;
          sayi_stack[ptr]:=i4;
          i:=i+1;
          token:=yeni[i];
          val(token,i4,code);
        end;
      tut:=token[1];
      sayi1:=sayi_stack[ptr];
      ptr:=ptr-1;
      sayi2:=sayi_stack[ptr];
      case tut of
        '+':sayi_stack[ptr]:=sayi1+sayi2;

        '-': sayi_stack[ptr]:=sayi2-sayi1;

        '*': sayi_stack[ptr]:=sayi2*sayi1;

        '/': sayi_stack[ptr]:=sayi2 div sayi1;

        '^':begin
              carp:=1;
              for ii:=1 to sayi1 do
                carp:=carp*sayi2;
              sayi_stack[ptr]:=carp;
            end;
        end; { case }
      i:=i+1;
    end;
gotoxy(15,18);  write('Hasil Perhitungan : ');write(sayi_stack[1]);

gotoxy(15,21);writeln('Ingin Kembali Ke Menu?');
gotoxy(15,23);write('Tekan y Untuk Ya atau Enter Untuk Tidak');
gotoxy(1,25);write('Masukkan pilihan anda : ');
read(pil2);
case  pil2 of
'y': goto awal;
else goto akhir
end;
end;

akhir : begin
clrscr;
gotoxy(20,10);write('Terima Kasih Sudah Menggunakan Program Ini :) ');
end;
readln;
end.

Itulah source code program yang saya jabarkan mulai dari deklarasi variabel sampai codingan pengaplikasian program stack. Silakan dicoba ya :) Sampai bertemu lagi di postingan selanjutnya.

Program Stack Part 4 (Program Stack Membalik Huruf)

0 komentar

30 : begin
clrscr;
awalan(t);
gotoxy(20,4);writeln(' Program Stack Membalik Huruf');
gotoxy(20,5);writeln('******************************');
writeln;
gotoxy(15,8);write('Ketik Kalimat  : '); readln(kalimat);
(*kalimat yang akan dibalik*)
writeln;
gotoxy(20,12);writeln('- Setelah operasi push dan pop -');
gotoxy(15,14);
for i:= 1 to length(kalimat) do (*mempush kalimat ke dalam tumpukan*)
push1(t, kalimat[i]);
for i:= 1 to length(kalimat) do (*mempop isi tumpukan sehingga terlihat kelimat yang terbalik*)
write(pop1(t));
gotoxy(15,16);writeln('Ingin Kembali Ke Menu?');
gotoxy(15,18);write('Tekan y Untuk Ya atau Enter Untuk Tidak');
gotoxy(1,20);write('Masukkan pilihan anda : ');
read(pil2);
case  pil2 of
'y': goto awal;
else goto akhir
end;
end;

Program Stack Part 3 (Program Stack Membalik Kata)

0 komentar

20 : begin
clrscr;
awalan(t);
gotoxy(20,4); writeln(' Program Stack Membalik Kata');
gotoxy(20,5); writeln('*****************************');
writeln;
gotoxy(15,8); write('Ketik Kalimat : '); readln(kalimat);
(*kalimat yang akan dibalik*)
writeln;
gotoxy(20,12);writeln('- Setelah operasi push dan pop -');
gotoxy(15,14);
for i:=1 to length(kalimat) do
begin
if (kalimat[i]= ' ') then
begin
for k:=(i-1) downto l do
word:=word+kalimat[k];
word:=word+kalimat[i];
end;
l:=length(word);
if i=length(kalimat) then
begin
for i:=length(kalimat) downto l do
word:=word+kalimat[i];
end;
end;
for i := 1 to (length(kalimat) + 1) do
push1(t, word [i]);
(*mempush word/kata ke dalam tumpukan*)
for i := 1 to (length(kalimat) + 1) do
write (pop1 (t) );
(*mempop isi tumpukan sehingga terlihat word/kata yang terbalik*)
gotoxy(15,17);writeln('Ingin Mengulang Lagi?');
gotoxy(15,19);write('Tekan y Untuk Ya atau Enter Untuk Tidak');
gotoxy(1,21);write('Masukkan pilihan anda : ');
read(pil2);
case  pil2 of
'y': goto awal;
else goto akhir
end;
end;

Program Stack Part 2 (Tampilan Menu)

0 komentar

Dibagian kedua ini saya akan berikan codingan untuk membuat tampilan menunya, berikut ini lah codingan program tersebut :

begin
awal: clrscr;
(* Author *)
gotoxy(20,4);  writeln(' --------------------------------------');
gotoxy(20,5);  writeln('|   Tugas Struktur Organisasi Data 2               |');
gotoxy(20,6);  writeln('|                                                                     |');
gotoxy(20,7);  writeln('|              Kelompok 1                                    |');
gotoxy(20,8);  writeln('|                                                                     |');
gotoxy(20,9);  writeln('| 1. Komang Anom Budi Utama  (13110912) |');
gotoxy(20,10);writeln('| 2. Gunarwin Ardi Rukmana       (13110046) |');
gotoxy(20,11);writeln('| 3. Jeanny Fatma M                   (13110733) |');
gotoxy(20,12);writeln('| 4. Yunnisa Mutiara Sari             (18110792) |');
gotoxy(20,13);writeln('|                                                                     |');
gotoxy(20,14);writeln('|                               2KA01  |');
gotoxy(20,15); writeln(' --------------------------------------');
(* Pilihan Menu *)
gotoxy(24,20);writeln('****** Pilih Program Stack ******');
gotoxy(22,22);writeln('1. Program Membalik Kata');
gotoxy(22,23);writeln('2. Program Membalik Huruf');
gotoxy(22,24);writeln('3. Program Konversi Infix ke Postfix');
gotoxy(22,25);writeln('4. Exit');writeln;
gotoxy(22,27);write  ('Masukan Pilihan Kamu : ');readln(pil);writeln;
case pil of
1 : goto 20;
2 : goto 30;
3 : goto 40;
4 : goto akhir;
else
write('Maaf data yang anda masukkan salah!');
readln;
goto awal
end;

Program Stack Part 1 (Deklarasi Variabel)

0 komentar

Dibagian pertama ini saya akan menampilkan deklarasi variabel apa saja yang digunakan dalam program ini. Berikut macam-macam variabel tersebut :
 
uses crt;
Label awal,20,30,40,akhir;
var pil:integer;
var pil2:char;
(*deklarasi variabel program membalik huruf dan kata*)
const elemen = 255;
(*mendeklarasikan konstanta elemen = 255 yang merupakan batas
index maksimal*)
type s255 = string[elemen];
tumpukan = record
isi:s255;
atas: 0..elemen;
end;
var t: tumpukan; (*nama tumpukan*)
i, k, l, m: integer; (*pencacah*)
kalimat, word: s255; (*kalimat yang dibalik*)
procedure awalan(var t: tumpukan);
(*inisialisasi tumpukan/stack*)
begin
t.atas:=0;
end;
procedure push1 (var t:tumpukan; x: char);
(*procedure untuk memasukkan elemen ke dalam tumpukan*)
begin
t.atas:=t.atas+1;
t.isi[t.atas]:= x;
end;
(*Untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack, Tambah satu (increment)
nilai top of stack terlebih dahulu setiap kali ada penambahan elemen stack, asalkan stack masih belum penuh,
kemudian isikan nilai baru ke stack berdasarkan indeks top of stack setelah ditambah satu (diincrement)*)
function pop1(var t:tumpukan):char;
(*fungsi untuk mengambil elemen dari tumpukan*)
begin
pop1:=t.isi[t.atas];
t.atas:=t.atas-1;
end;
(*Untuk mengambil elemen teratas dari stack. Ambil dahulu nilai elemen teratas stack dengan mengakses top of stack,
tampilkan nilai yang akan diambil terlebih dahulu, baru didecrement nilai top of stack sehingga jumlah elemen stack berkurang*)


(*deklarasi variabel konversi notasi infix ke postfix)
var
  okunan:string[50];
  ifade,yeni:array[1..30] of string;
  temp,uzunluk,j,i4,top,code,n,ptr,sayi1,sayi2,carp,ii:integer;
  token:string;
  sayilar:set of 0..9;
  a1,stack_elemani,tut:char;
  stack:array[1..10] of char;
  sayi_stack:array[1..20] of integer;
{
  PUSH process
}
Procedure push2(oprtr:char);
begin
  ptr:=ptr+1;
  stack[ptr]:=oprtr;
end;
{
  POP2 process
}
Function pop2:char;
begin
  if ptr=0  then
   begin
   pop2:=' ';
   end
  else
    begin
        pop2:=stack[ptr];
        ptr:=ptr-1;
    end;
end;

Tutorial Matematika

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | GreenGeeks Review