Proyek??

 

Berikut ini adalah definisi Proyek dari beberapa ahli :

Proyek adalah usaha/pekerjaan sementara yang dilakukan untuk membuat sebuah produk, servis atau hasil yang unik. [Information Technology Project Management, 4th ed, Kathy Schwalbe]

Proyek adalah usaha terkoordinasi menggunakan kombinasi manusia, teknik, administrasi dan keuangan, dalam rangka mencapai tujuan yang spesifik dalam jangka waktu tertentu. [Managing Information Technology Projects, Graham McLeod & Derek Smith]

Atribut Proyek :

  • Tujuan yang unik dan terdefinisi jelas
  • Sifatnya sementara
  • Dibangun berdasar elaborasi progresif
  • Adanya sumber daya
  • Ada pelanggan utama / sponsor
  • uncertainty

FUNGSI DAN PROSEDUR

Prosedur adalah pendefinisian suatu langkah dengan melalui tahap-tahap tertentu. Sedangkan fungsi itu adalah sebuah transformasi akibat dari pemetaan suatu nilai ke nilai lain. Tujuan dari fungsi dan prosedur adalah untuk mempermudah pemrogram dalam memprogram suatu program. Tujuan lain dari prosedur adalah untuk mempersingkat suatu program. Misalnya saja kita akan melakukan langkah yang sama namun secara berulang-ulang. Kita tak perlu untuk menulis algoritmanya secara berulang-ulang. Yang perlu untuk kita lakukan adalah dengan menuliskannya dalam sebuah prosedur atau pun fungsi, sehingga ketika kita membutuhkannya kita tinggal memanggil prosedur atau fungsi tersebut dalam program yang kita buat. Hal lain yang perlu diperhatikan dalam pembuatan fungsi dan prosedur adalah parameternya. Fungsi dan prosedur memiliki parameter. Parameter ada dua jenis yaitu parameter formal dan yang satunya adalah parameter actual.
Karena cukup panjang kalau saya jelaskan maka saya ambil contoh pada bahasa pascal saja.
Untuk parameter actual adalah parameter yang digunakan untuk memanggil prosedur ataupun fungsi, sedangkan parameter formal adalah parameter yang ada pada fungsi atau prosedur. Antara parameter formal dan actual ini akan saling berasosiasi, jadi urutan dan jumlahnya pun harus sama dan harus diperhatikan. Berikut ini adalah penjelasan terpisah untuk fungsi dan untuk prosedur :
1. Fungsi
Pada fungsi ini parameter formal dan actual dibutuhkan. Fungsi sendiri menghasilkan suatu nilai dengan tipe hasil sesuai dengan apa yang telah didefinisikan oleh pemrogram. Fungsi ini akan selalu mengupdate dan menghasilkan suatu nilai.
Berikut ini akan saya berikan contoh sebuah program yang menggunakan fungsi dalam pascal :
Program pakai;
Uses crt;
Var
A,b,c : integer;
Function jumlah(u,t:integer):integer;
Begin
u:=u+1;
t:=t+1;
jumlah:=u+t;
End;
Begin
Clrscr;
Readln(a);
Readln(b);
c:=jumlah(a,b);
writeln(‘hasilnya adalah ’,c);
Readln;
End.
Dalam contoh program diatas coba anda perhatikan baik-baik. Untuk pemanggilan fungsi itu diassign(dimasukkan) ke dalam variable c, karena hasil dari suatu fungsi itu sendiri merupakan asebuah nilai.
Untuk cara pemanggilan fungsi ada 2 cara. Misalnya yaitu :
1) variable:=nama_fungsi(parameterinputan)
2)writeln(nama_fungsi(parameterinputan))
Sedangkan sintaks untuk mendefinisikan fungsinya adalah sebagai berikut:

Function nama_fungsi(parameterinput:tipeparameter):tipehasil;

Tracking program pakai
————————————————————————————————————————————- Misalnya saya memberikan inputan pertama 3, sedangkan yang kedua adalah 2, maka artinya nilai a=3, dan b=2.
Kemudian memanggil fungsi jumlah. Dalam fungsi jumlah ini menggunakan parameter input berupa variable a dan variable b yang telah memiliki nilai 3 dan 2.
Masing-masing parameter input/ parameter actual akan berasosiasi dengan parameter formal sesuai dengan urutannya
Kemudian variable a akan berasosiasi dengan variable u pada fungsi, sedangkan variable b akan berasosiasi dengan variable t pada fungsi.
Maka u=a dan t=b, u bernilai 3, dan t bernilai 2. Nilai u adalah u+1, maka nilai u adalah 3+1 yaitu 4, sedangkan nilai t adalah t+1, maka nilai t adalah 2+1 yaitu 3.
Fungsi jumlah memiliki hasil yang bertipe integer. Hasil dari fungsi jumlah tersebut adalah u+t
Maka fungsi jumlah bernilai 4+3 yaitu 7;
Kembali ke program utama, variable c diassignkan(diisikan) dengan fungsi jumlah, itu berarti bahwa c = jumlah, maka c = 7, maka dilayar akan dioutputkan hasilnya yaitu angka 7.

2. Prosedur
Didalam prosedur untuk membuatnya kita bisa menggunakan parameter yang berupa parameter input/output, atau parameter input saja. Bisa juga tanpa parameter. Kalau dalam fungsi harus ada parameternya, maka dalam prosedur tidak menggunakan parameterpun tidak apa.
Mengenai jenis parameter dalam pascal ada dua jenis. Yang pertama itu adalah parameter input saja, kemudian yang kedua adalah parameter input/output. Maksudnya adalah :
**Parameter input : parameter yang menerima inputa dari sebuah variable, namun parameter ini tidak mengubah ataupun mengupdate nilai.
**Parameter input/output : parameter yang menerima dua tugas sekaligus, yaitu sebagai penerima inputan sekaligus sebagai pengupdate nilai.
Penulisan sintax dalam pascalnya untuk membuat prosedur adalah :

Procedure nama_prosedur(variabelinput:tipevariabel ; var variabelinputoutput:tipevariabel);

Catatan: Kata var dalam sintax diatas menunjukkan bahwa variable tersebut berfungsi sebagai parameter input output. Atau sering disebut I/O.
Sedangkan sintax pascal untuk memanggilnya adalah sebagai berikut:

Nama_prosedur(parameter aktual);

Untuk lebih jelasnya perhatikan program dibawah ini :
Program ubah;
Uses crt;
Var
First:integer;
Second:integer;
Procedure ganti1(var a,b:integer);
Var
Temp:integer;
Begin
temp:=a;
a:=b;
b:=temp;
writeln(a,’-‘,b);
End;
Procedure ganti2(a,b:integer);
Var
Temp:integer;
Begin
temp:=a;
a:=b;
b:=temp;
writeln(a,’-‘,b);
End;

Begin
Clrscr;
Readln(first);
Readln(second);
Ganti1(first,second);
Ganti2(first,second);
Writeln(first,’-‘,second);
Readln;
End.
Misalnya saya memberikan inputan first dengan angka 1, kemudian second saya inputkan angka 2,
Maka akan muncul outputan dilayar :
2-1
1-2
2-1
Agar lebih jelas sebaiknya ditracking saja
Pertama first diinputkan 1, second diinputkan 2, maka nilai first adalah 1 dan second nilainya 2.
Kemudian memanggil prosedur ganti1, variable first berasosiasi dengan variable a sedangkan second akan berasosiasi dengan variable b, maka nilai a=1, b=2.
Nilai ditukar dan dioutputkan, maka nilai a menjadi 2 dan b menjadi 1. Setelah itu nilai dioutputkan dan muncul dilayar 2-1.
Kemudian karena parameter parameter formal ada tulisan var nya, maka variabel yang ada dibelakang kata var dalam parameter formal tersebut bertipe input output, maka nilai dari a dan b akan diupdate.
Karena nilai a dan b menjadi 2 dan 1 maka a beasosiasi dengan first dan b berasosiasi dengan second, sehingga nilai first menjadi 2, dan second menjadi 1.
Pemanggilan prosedur ganti1 selesai.
Sekarang kita dapatkan nilai first=2 dan second=1.
Kemudian memanggil prosedur ganti2.
Maka first akan berasosiasi dengan a sedangkan second akan berasosiasi dengan b.
Setelah itu nilai a dalam prosedur ganti2 menjadi 2 sedangkan b menjadi 1.
Maka berikutnya a dan b akan ditukar dalam prosedur tersebut, sehingga nilai a adalah 1 dan b adalah 2.
Kemudian dioutputkan kelayar dan hasilnya adalah 1-2.
Karena tidak ada kata var di dalam parameter formal di prosedur ganti2 maka nilai a = 1 dan b=2 hanya berlaku dalam prosedur ganti 2 itu saja, dan nilai tidak akan diupdate, sehingga variabel first dan second nilainya tetap tidak berubah seperti pada saat sebelum memanggil prosedur ganti2, yaitu first tetap 2 dan second tetap 1.
Pemanggilan prosedur selesai, kemudian akan dilanjutkan dengan mengoutputkan nilai first dan second, maka akan mengoutputkan tulisan 2-1 pada layar.

ARRAY / LARIK

Apa sih array itu?
Sebelum belajar array alangkah baiknya saya sarankan belajar perulangan terlebih dahulu.

Ibaratkan saja array itu seperti laci-laci atau loker. Fungsi dari array itu adalah untuk menyimpan data yang memiliki jenis yang sama. Kalau pengertian dari array sendiri adalah sekumpulan tempat penyimpanan data yang memiliki tipe yang sama dan masing-masing memiliki indeks. Macam-macam array sendiri terbagi menjadi dua, yaitu array satu dimensi dan array multi dimensi. Nah, berikut ini adalah penjelasan tentang masing-masing array tersebut.
Ctt : Array boleh berupa tipe bentukan.
1. Array satu dimensi
Array satu dimensi itu adalah array yang memiliki satu indeks saja. Untuk lebih jelasnya lihat gambar dibawah ini :

Variabel itu merupakan tempat penyimpanan data yang telah diberi nama. Dalam satu buah variable itu hanya dapat menampung satu buah nilai. Kalau pada gambar di atas disebut variable maka yang disebut array itu seperti penjelasan gambar di bawah ini.

Array itu digunakan sebagai tempat penyimpanan data. Dalam array itu dapat menyimpan lebih dari satu nilai tergantung pada pendefinisian jumlah array dalam program yang dibuat. Namun data yang disimpan harus memiliki tipe yang sama.
Kalau di ibaratkan seperti loker , indeks array itu seperti nomor loker, sedangkan nilai dari array itu seperti barang yang disimpan dalam loker tersebut.

Mendefiinisikan array satu dimensi :
Kalau dalam algoritma
Nama_array: array [0..nomorke_x] of tipearray

Kalau dalam pascal
Nama_array: array [nomor_awal..nomorke_x] of tipearray;

Kalau dalam bahasa C;
Tipearray nama_array [kapasitas] ;

Begitulah untuk mendefinisikannya.
Penjelasan :
Nama_array adalah nama dari array yang akan dibuat atau didefinisikan. Tipe array adalah tipe dari larik yang akan didefinikan, misalnya real,integer, char (kalau dalam pascal), float, int (kalau dalam C) ,dll. O.. iya tipe bentukan juga bisa…kalau kapasitas itu merupakan banyaknya nilai yang akan disimpan.
Dalam algoritma [0..nomorke_x], dalam pascal [nomor_awal..nomorke_x], dalam bahasa C [kapasitas].

Untuk membaca array tinggal dipanggil saja array yang ke berapa yang akan dipanggil.
Umpamakan L adalah sebuah larik dari bilangan dengan tipe integer.
Dalam sintax algoritma untuk memanggil array dengan cara
L index
Dalam sintax pascal untuk memanggil array dengan cara
L[index]
Dalam sintax C untuk memanggil array dengan cara
L[index]
Perlu di ingat bahwa dalam bahasa C itu merupakan bahasa yang sensitive case. Jadi antara huruf besar dan kecil itu dibedakan, berbeda dengan bahasa pascal. Kalau dalam pascal huruf besar dan kecil dianggap sama.
Berikut ini adalah contoh program dalam pascal untuk menggunakan array satu dimensi. Contoh sederhananya seperti ini :
—————————————————————————–
Program larik_larik;
Uses crt;
Var
Bilangan : array [1..10] of integer ;
i : integer ;
Begin
Clrscr;
for i:=1 to 10 do
readln(bil[i]);
for i:=1 to 10 do
write(bil[i] : 3); {maksudnya menuliskan bil[i] menyamping ke kanan dengan menyediakan 3 buah space}
Readln;
End.
—————————————————————————–
2. Array multidimensi
Array multi dimensi itu adalah array yang memiliki dua index atau lebih. Untuk tahap pembelajaran yang sering digunakan adalah dengan dua indeks.
Untuk lebih jelasnya lihat gambar di bawah ini :

Cara mengaksesnya sama dengan cara mengakses pada array satu dimensi.
Nah, berikut ini adalah cara mendefinisikan array dua dimensi.
Dalam algoritma hampir mirip dengan mendefinisikan array 1 dimensi
Nama_array : array [0..nomorke_x,0..nomorke_y] of tipearray

Dalam bahasa pascal juga hampir mirip dengan array 1 dimensi
Nama_array : array [nomorawal..nomorke_x,nomorawal..nomorke_y] of tipearray ;

Dalam bahasa C hampir mirip dengan array 1 dimensi
Tipearray Nama_array [kapasitas]…[kapasitas];

Catatan sepele tapi penting : dalam pengaksesan array gunakan saja perulangan agar tidak repot sehingga tak perlu mengakses satu persatu array yang dibuat.

Cara pemanggilan
Anggaplah L adalah larik suatu tipe tertentu. Maka :
Dalam sintaks algoritma
Lindeks1,indeks2

Dalam sintaks pascal
L[indeks1,indeks2]

Dalam sintaks C
L[indeks1][indeks2]

Seperti itulah!!!
Nah, berikut ini adalah contoh program yang menggunakan array dua dimensi :
Program menjumlahkan matriks :

—————————————————————————–
program larik2dimensi;
uses crt;

type matriks=array [1..10,1..10] of integer;
var
m1,m2,m3:matriks;
baris:integer;
kolom:integer;
i,j:integer;

procedure jumlah(baris,kolom:integer;m1,m2:matriks ;var m3:matriks);
begin
for i:=1 to kolom do
for j:=1 to baris do
m3[i,j]:=m1[i,j]+m2[i,j];
end;
procedure inputmatriks(baris,kolom:integer; var m:matriks);
begin
for i:=1 to kolom do
begin
for j:=1 to baris do
begin
write(‘input matriks [‘,i,’,’,j,’] : ‘);readln(m[i,j]);
end;
end;
end;
procedure view(baris,kolom:integer;m:matriks; nama:string);
begin
writeln(‘Matriks ‘,nama);
for i:=1 to kolom do
begin
for j:=1 to baris do
begin
write(m[i,j]:3);
end;
writeln;
end;
end;

begin
clrscr;
write(‘input jumlah baris matriks : ‘);readln(baris);
write(‘input jumlah kolom matriks : ‘);readln(kolom);
inputmatriks(baris,kolom,m1);
inputmatriks(baris,kolom,m2);
jumlah(baris,kolom,m1,m2,m3);
clrscr;
view(baris,kolom,m1,’A’);
view(baris,kolom,m2,’B’);
view(baris,kolom,m3,’C’);
readln;
end.
—————————————————————————–

Seperti itulah contoh dari program yang menggunakan array 2 dimensi.

Sepertinya penulis sudah capek nih njelasin tentang array,…. Udah dulu aja ya!! Ntar kalau ada waktu lagi akan aku jelaskan hal lain yang lebih menarik lagi………

Pengertian Algoritma

Upss……

Algoritma ya…..!!!!
Beginilah hidupnya anak informatika…. Setiap hari musti ada yang namanya algoritma. Algoritma itu sendiri apa sih? Algorima itu merupakan deskripsi langkah-langkah pelaksanaan dari suatu proses. Setiap langkah dalam algoritma itu dinyatakan dalam sebuah pernyataan atau istilah lainnya adalah instruksi. Instruksi itu sendiri berisi sebuah aksi yang akan dilakukan.  Bila sebuah pernyataan dieksekusi maka akan dikerjakan sebuah aksi yang bersesuaian dengan instruksi tersebut.

Tentang dasar algoritma sendiri sebenarnya ada 3 macam bentuk struktur dasar dari algoritma. Apa sajakah itu??? Inilah dia bentuk bentuknya:

Pertama adalah runtutan , sering kita sebut dengan sequence. Sebuah runtutan itu terdiri dari satu atau lebih pernyataan dan setiap pernyataan itu ditulis dalam satu bari atau dipisahkan dengan tanda semicolon atau sering disebut titik koma ( ; ). Tiap pernyataan dikerjakan secara berurutan mulai dari awal sampai akhir sesuai dengan urutannya di dalam teks algoritma. Sebuah instruksi akan dilaksanakan setelah instuksi sebelumnya selesai dilaksanakan. Bila urutannya diubah, ada kemungkinan hasilnya pun juga akan berubah

Saya misalkan saya menulis sebuah urutan demikian

Algoritma urutan mau minum:

  • Ambil air
  • Tuangkan ke gelas
  • Minum air yang ada di dalam gelas

Atau demikian yang lebih singkat

Algoritma urutan mau minum:

  • Ambil sebotol air
  • Teguk air yang ada dalam botol

Dua algoritma di atas pada dasarnya bertujuan sama yaitu untuk urutan mau minum, tetapi caranya berbeda, namun coba anda bedakan dengan algoritma dibawah ini

Algorima urutan mau minum:

  • Minum air
  • Tuangkan ke gelas
  • Ambil air

Tidak  akan mungkin kalau algoritma di atas akan menghasilkan suatu hasil yang sama dengan yang sebelumnya. Itu karena urutannya tidak benar.

Saya punya contoh lain…..

Coba berfikir!!!

Bagaimana algoritma untuk menukarkan isi dari dua buah ember  berisi air yang misalnya masing-masing ember saya beri variabel A dan B (isi ember A menjadi isi ember B dan sebaliknya)?masing-masing ember berisi air penuh.

Tidak mungkin kalau kita akan langsung menuangkan ember A ke B atau sebaliknya. Karena embernya kan penuh. Misalnya kita tuang langsung ember A ke ember B pasti airnya akan tumpah.

Jadi hal yang harus kita lakukan adalah tambahkan sebuah variabel lagi yang kosong, misalnya ember C yang kosong. Hal yang kita lakukan adalah sebagai berikut

Status awal :

Proses Pertukaran :

Masukkan isi ember A kedalam ember C

Masukkan isi ember B kedalam ember A

Masukkan isi ember C kedalam  ember B

Status akhir yang dihasilkan:

Yang ke dua adalah pemilihan,  Ada kalanya suatu perintah itu di lakukan apabila pada kondisi tertentu. Misalnya saat kita melanggar peraturan pemerintah, kita akan dipenjara. Langkah tersebut dapat kita tuliskan sebagai berikut :

Jika kita melanggar peraturan pemerintah, maka kita akan dipenjara

Pernyataan diatas dapat kita tulis dalam pernyataan pemilihan (selection-statement), atau disebut juga pernyataan kondisional, sebagai berikut:

If kodisi then Aksi

Kalau kita definisikan dalam bahasa indonesia if artinya adalah jika dan then artinya adalah maka. Kondisi tersebut dapat bernilai benar ataupun salah. Seperti yang kita lihat pada contoh kalimat di atas, misalkan jika kita benar melanggar peraturan pemerintah , maka aksi yang dilakukan adalah kita akan dipenjara, namun jika kita tidak melanggar peraturan pemerintah, maka kita tidak akan dikenai aksi apapun.

Namun, adakalanya ketika kita ingin membuat pernyataan kondisional yang pasti dikenai suatu  aksi baik kondisi bernilai benar maupun salah kita dapat mendeklarasikannya sebagai berikut :

If kondisi then aksi1

Else aksi2

Misalkan saja untuk kondisi seperti di bawah ini :

Jika tinggi > 165 maka tinggi selain itu pendek

Jadi ketika tinggi kita lebih dari 165 maka kita tergolong tinggi dan selain itu ( ≤ 165) kita tergolong pendek.

Dalam algoritma dapat kita tulis

if tinggi > 165 then panjang

else pendek

Adakalanya juga ketika sebuah pernyataan kondisional bersarang. Kita sering menyebutnya nested if atau if bersarang.

Contohnya seperti di bawah ini:

if nilai>80 then output(‘A’)

else if nilai>60 then

output(‘B’)

else if nilai>50 then

output(‘C’)

else if nilai>30 then

output(‘D’)

else output(‘E’)

{endif}

Algoritma yang dicek berurutan mulai dari if yang pertama sampai if yang terakhir secara berurutan

Jadi ketika inputan nilai adalah 40 maka akan dicek dari atas, apakah 40 itu lebih dari 80?Karena tidak, maka lanjut ke proses berikutnya. Apakah 40 lebih dari 60?Karena 40 tidak lebih dari 60 maka lanjut ke if berikutnya. Apakah 40 lebih dari 50? Karena tidak maka lanjut ke if berikutnya lagi. Di cek lagi apakah 40 lebih dari 30?Karena perbandingan tersebut bernilai benar maka akan menghasilkan outputan D . Sedangkan kondisi berikutnya tidak akan ikut dieksekusi karena kondisi sudah terpenuhi.

Kemudian,

Yang ketiga adalah perulangan,

Pernahkah anda dihukum menulis sesuatu misalnya “aku berjanji aku akan jadi anak baik” sebanyak 500 kali? Apakah anda melakukan hal tersebut? Apakah anda menulisnya seperti dibawah ini?

1.aku berjanji aku akan jadi anak baik

2.aku berjanji aku akan jadi anak baik

3.aku berjanji aku akan jadi anak baik

Sampai yang ke500.

Sebenarnya itu bagus, tapi kurang efektif. Tangan anda pasti akan serasa putus jika melakukan hal tersebut terus-menerus.

Sebenarnya ada cara lain yang lebih efektif, yaitu dengan memakai algoritma. Seperti apakah itu?Perhatikan Algoritma dibawah ini:

Repeat 500 timesOutput(‘aku berjanji aku akan menjadi anak baik’)

Singkatkan!!!!!!

Bagaimana?Cukup dengan menuliskan algoritma di atas anda jadi orang yang efektif. Tak perlu capek-capek menulisnya sebanyak 500 kali.

Itulah hebatnya komputer. Komputer itu tidak akan lelah dan bodsan ketika mengerjakan sesuatu yang sama secara berulang-ulang, berbeda dengan manusia, manusia akan cepa t lelah dan bosan ketika melakukan sesuatu secara berulang-ulang.

Perulangan itu digunakan ketika ingin melakukan proses yang sama dan berulang-ulang.

Berikut ini merupakan beberapa struktur Algoritma dalam pengulangan:

Repeat N times Aksi

Yang artinya aksi diulang dan dikerjakan sebanyak N kali

Kemudian struktur lainya adalah:

Pencacah travesal [1..N] Aksi

Kalau di pascal seperti “for….. to …..do…….”

Maksudnya adalah untuk pencacah dari satu sampai N kerjakan aksinya.

(pencacah harus bersifat suksesif, maksudnya adalah pencacah harus punya successor ataupun predesessor). Pencacahnya misalnya sesuatu yang bertipe char ataupun integer.

Struktur berikutnya adalah:

while kondisi do aksi

Maksudnya selama kondisi terpenuhi (bernilai benar) maka aksi akan dilakukan sampai kondisi tidak terpenuhi

Kemudian ada algoritma  yang berbentuk seperti ini :

Repeat Aksi

Until kondisi

Maksudnya adalah lakukan aksi hingga kondisi terpenuhi ( kondisi bernilai true).

Yups…..Mungkin Cuma itu saja struktur dasar dari algoritma, kalau anda ingin mengembangkan  silahkan saja.