Rabu, 14 Juli 2010

Tugas 6

Soal
1. Buatlah contoh dasar bahasa pemrograman dan gaya pengkodean !
Jawab :
Bahasa Pemrograman Pascal
Struktur program Pascal dapat dikelompokkan dalam tiga bagian, yaitu:
1. Kepala Program
2. Bagian Deklarasi
3. Bagian Pernyataan/Statemen
Kepala program terdiri dari kata program dan nama program. Kepala program
bisa tidak dituliskan. Bagian deklarasi berisi konstanta dan variabel yang akan
dipakai. Bagian statemen berisi perintah-perintah yang harus harus dikerjakan dan
dimengerti oleh bahasa Pascal.

Program Lingkaran;
Uses crt;
Const pi=3.14159;
Var jarijari, keliling, luas : real;
Begin
Clrscr;
Write('Masukkan jari-jari : ');
Readln(jarijari);
Keliling := 2*pi*jarijari;
Luas := pi*sqr(jarijari);
Writeln('Jari-jari =',jarijari:5:2);
Writeln('Keliling =',keliling:6:3);
Writeln('Luas =',luas:6:3);
Readln;
End.

Suatu bahasa program komputer biasanya mempunyai aturan penulisan
programnya sendiri. Aturan penulisan program Pascal adalah sebagai berikut;
1. Program Pascal boleh ditulis mulai kolom berapa saja dan diakhiri pada kolom
berapa saja
2. Setiap statemen diakhiri dengan ; (titik koma)
3. Beberapa statemen boleh ditulis sekaligus di dalam satu baris
Kepala Program
Bagian Deklarasi
Bagian Pernyataan
Bahasa Pemrograman Pascal
58
3. Percabangan I : If ….. Then …. Else …..
Pernyataan percabangan/kendali/bersyarat merupakan pernyataan yang
akan mengeksekusi suatu pernyataan yang mengikutinya bila suatu persyaratan
dipenuhi.
Salah satu pernyataan kendali untuk pengambilan keputusan dalam Pascal
adalah pernyataan If … Then … Else …
Bentuk umum :
IF kondisi THEN
Statemen 1
ELSE
Statemen 2
dimana :
kondisi : ungkapan boolen yang menghasilkan nilai benar atau salah
statemen 1, statemen 2 : pernyataan-pernyataan tunggal/majemuk. Dalam
Pascal, pernyataan majemuk adalah kumpulan dari beberapa pernyataan yang
diawali dengan kata baku BEGIN dan diakhiri oleh kata baku END, yang
dianggap sebagai sebuah pernyataan tunggal.
Maksudnya : bila kondisi bernilai TRUE (benar) maka akan dikerjakan statemen 1
dan statemen 2 dilewati, sedangkan jika kondisi bernilai FALSE (salah) maka
akan dikerjakan statemen 2 dan statemen 1 dilewati.
Untuk pernyataan IF yang berkalang (ada pernyataan IF yang lain dalam
pernyataan IF), ELSE selalu berpasangan dengan dengan IF yang terletak sebelum
dan yang paling dekat dengan ELSE tersebut, serta terletak dalam blok pernyataan
yang sama.

Contoh 1 : Program untuk mencari akar persamaan kuadrat di bawah ini
Program PersamaanKuadrat;
uses crt;
Bahasa Pemrograman Pascal
59
var a,b,c,d,x1,x2 :real;
begin
clrscr;
writeln('Menghitung akar-akar persamaan kuadrat');
writeln('Nilai a,b,c dimasukkan dengan jeda spasi');
write('Masukkan nilai a,b,c:');
readln(a,b,c);
d:=b*b-4*a*c;
if d<0 then writeln('tidak ada akar real')
else
begin
x1:=(-b+sqrt(d))/(2*a);
x2:=(-b-sqrt(d))/(2*a);
writeln('x1 =',x1:6:2);
writeln('x2 =',x2:6:2);
end;
readln;
end.
Contoh Hasil Eksekusi :
- jika d = 0
Menghitung akar-akar persamaan kuadrat
Nilai a,b,c dimasukkan dengan jeda spasi
Masukkan nilai a,b,c:1 4 2
x1 = -0.59
x2 = -3.41
- jika d < 0 :
Menghitung akar-akar persamaan kuadrat
Nilai a,b,c dimasukkan dengan jeda spasi
Masukkan nilai a,b,c:1 2 6
tidak ada akar real
Catatan :
1. Di dalam IF boleh ada IF (pernyataan IF yang berkalang)
2. Jika diinginkan kondisi = FALSE tidak mengerjakan apa-apa, maka ELSE
tidak perlu dituliskan.
3. Pernyataan ELSE tidak diakhri dengan ; (titik koma) begitu pula baris
pernyataan sebelum ELSE.
4. Percabangan II : Case ….. Of …..
Pernyataan CASE …. OF …. Digunakan untuk pengambilan keputusan
jika terdapat lebih dari dua alternatif jawaban yang tersedia.
Bentuk umum :
CASE ungkapan OF
Label 1 : Statemen 1
Label 2 : Statemen 1
………..
………..
………..
Label n : Statemen n
END;
dimana :
ungkapan : dapat berupa sembarang ungkapan yang memberikan hasil
integer, char, boolean atau tipe terbilang (kecuali real).
Label : konstanta yang mempunyai tipe yang sama dengan ungkapan
Statemen : pernyataan yang mengikuti berupa rangkaian instruksi yang
harus dikerjakan jika nilai konstanta dalam label sama dengan
nilai variabel
Maksudnya jika ungkapan bernilai label 1, maka dikerjakan statemen1, jika
bernilai label 2 akan dikerjakan statemen 2 dan seterusnya.
Pernyataan CASE …. OF …. boleh diikuti ELSE. Perlu diketahui, ELSE
dalam pernyataan CASE …. OF …. Hanya bersifat pilihan, dalam artian boleh
disertakan boleh tidak. Jika ELSE disertakan, pernyataan yang mengikuti ELSE
akan dieksekusi hanya bila nilai dari syarat-pemilih tidak ada dalam semua label.
Contoh 1 :
Program nilai_ujian;
uses crt;
var nama : string[25];
nim : string[8];
nilai: integer;
begin
clrscr;
write('Masukkan nama mahasiswa : ');
readln(nama);
write('Masukkan nomor induk mahasiswa : ');
readln(nim);
write('Masukkan nilai ujian : ');
readln(nilai);
writeln;
case nilai div 10 of
10,9 : writeln('Nilai huruf = A');
8 : writeln('Nilai huruf = B');
7 : writeln('Nilai huruf = C');
6 : writeln('Nilai huruf = D');
5,4,3,2,1,0 : writeln('Nilai huruf = E');
end;
readln;
end.
Contoh 2 :
Program konversi;
uses crt;
var
menit, jam, kaki, meter, fahrenheit, celcius : real;
pilihan :char;
begin
clrscr;
writeln('Pilihan konversi:');
writeln('1) Menit ke jam');
writeln('2) Kaki ke meter');
writeln('3) Derajat Fahrenheit ke Celcius');
write('pilihan ? ');
readln(pilihan);
case pilihan of
'1' : begin
write('menit= ');
readln(menit);
jam:=menit/60;
writeln('nilai ini sama dengan ',jam:4:1,'
jam');
readln;
end;
'2' : begin
write('kaki= ');
readln(kaki);
meter:=0.3048*kaki;
writeln('nilai ini sama dengan ',meter:4:1,'
meter');
readln;
end;
'3' : begin
write('Derajat Fahrenheit = ');
readln(fahrenheit);
celcius:=5/9*(fahrenheit-32);
writeln('nilai ini sama dengan ',Celcius:4
:1,' Celcius');
readln;
end;
else writeln('Tidak melakukan konversi');
end;
end.
5. KalanG I : For … To … Do… dan For ... Downto ... Do…
Salah satu ciri bahasa pemrograman adalah adanya perintah-perintah yang
harus dikerjakan berulang-ulang. Pengulangan ini sering disebut dengan kalang.
Dalam bahasa Pascal ada beberapa perintah untuk membuat kalang, yaitu:
FOR … TO … DO… dan FOR … DOWNTO … DO…
Bentuk umum :
FOR pengubah:=ungkapan1 TO ungkapan2 DO
Statemen;
dan
FOR pengubah:=ungkapan1 DOWNTO ungkapan2 DO
Statemen;
dimana,
pengubah : suatu pengubah yang disebut pengubah kendali, dapat berupa
pengenal dari tipe integer, char, boolean atau tipe terbilang.
ungkapan1 : nilai awal pengubah
ungkapan2 : nilai akhir pengubah
Beberapa aturan yang harus dipenuhi :
- Pengubah, ungkapan1 dan ungkapan2 harus mempunyai tipe data yang sama
- Pada kalang TO ungkapan1- Pada kalang DOWNTO ungkapan1>ungkapan2
Contoh 1 : Program untuk menghitung jumlah n bilangan pertama dan jumlah
kuadrat n bilangan pertama
Program jumlahKuadrat;
Uses crt;
Var jumlah, jmlkuadrat,i,n : integer;
begin
clrscr;
Write('Banyak n bilangan yang akan diproses');
readln(n);
jumlah:=0;
jmlkuadrat:=0;
for i:=1 to n do
begin
jumlah:=jumlah+i;
jmlkuadrat:=jmlkuadrat + i*i;
writeln('Jumlah ',i:2,' bilangan pertama
= ',jumlah:5);
writeln('Jumlah Kuadrat ',i:2,' bilangan pertama
= ',jmlkuadrat:5);
end;
readln;
end.
Contoh 2 : Mencetak abjad dengan urutan terbalik dari z…a
Program tulisabjad;
Uses crt;
Var karakter : char;
begin
clrscr;
for karakter:= 'z' downto 'a' do
write(karakter:2);
readln;
end.
Contoh 3 :
Program berikut adalah program untuk menghitung deret eksponensial dan
membandingkan dengan fungsi pustaka EXP.
Deret eksponensial adalah :
.......
!
.....
2! 3! 4!
1
!
2 3 4
0
+ + + + + + + = =å¥
= n
x x x x
x
n
x
e
n
n
n
x
Program eksponensial;
uses crt;
var eksponen, x,suku : real;
n,i : integer;
begin
clrscr;
write('Masukkan banyaknya suku(n): ');
readln(n);
write('Masukan nilai x : ');
readln(x);
eksponen:=1.0;
suku:=1.0;
for i:=1 to n do
begin
suku:=suku*x/i;
eksponen:=eksponen+suku;
end;
writeln;
writeln('Nilai deret = ',eksponen:10:6);
writeln('Nilai fungsi = ',exp(x):10:6);
readln;
end.
Contoh 4 :
Bilangan Fibonacci memiliki rumusan : Fi = Fi-1 + Fi-2
Suku ke-1 merupakan penjumlahan bilangan Fibonacci suku ke-(i-1) dan suku ke-
(i-2), dengan bilangan pada suku pertama dan suku kedua didefinisikan sama
dengan satu.
Program Fibonacci;
Uses crt;
Var i,n,f,f1,f2 : integer;
begin
clrscr;
writeln('Ingin mencetak bilangan Fibonacci');
write('sampai suku ke-');
readln(n);
writeln;
writeln('Suku ke- 1 = ',1);
writeln('Suku ke- 2 = ',1);
f1 :=1; f2:=1;
for i:=3 to n do
begin
f:=f1+f2;
writeln('Suku ke- ',i:2,' = ',F:3);
f2:=f1; f1:=f;
end;
readln;
end.
6. Kalang II : While .… Do…. dan Repeat .... Until ….
Selain membuat kalang dengan FOR….TO.…DO.… dan FOR..…
DOWNTO … DO … ada bentuk kalang yang lebih umum yaitu : WHILE … DO
…. yang bentuk umumnya adalah sebagai berikut :
WHILE kondisi DO
Statemen
dimana,
kondisi : adalah ungkapan boolean yang digunakan sebagai syarat agar
statemen dikerjakan berulang kali
statemen : adalah pernyataan tunggal atau pernyataan majemuk yang akan
diproses ulang.

Contoh 1 : Jumlah deret n bilangan asli pertama
Program Jumlah_Deret;
Uses crt;
Var n, jumlah, pencacah : integer;
begin
clrscr;
Writeln('Menghitung jumlah 1 + 2 + 3 + ... + n');
write('n = ? ');
readln(n);
pencacah:=1;
jumlah:=0;
while pencacah <= n do
begin
jumlah:=jumlah+pencacah;
pencacah:=pencacah + 1;
end;
writeln;
writeln('Jumlah deret = ',jumlah:5);
readln;
end.
Selain membuat kalang dengan 3 cara di atas masih ada cara lain untuk membuat
kalang, yaitu dengan perintah REPEAT …. UNTIL yang bentuk umumnya adalah
sebagai berikut :
REPEAT
…………
Statemen
………….
UNTIL kondisi
dimana,
statemen : adalah pernyataan tunggal atau pernyataan majemuk yang akan
diproses ulang.
Kondisi : adalah ungkapan boolen sebagai syarat agar pernyataan diproses
ulang.
Catatan : Salah satu statemen diantara repeat dan until harus ada yang bisa
merubah nilai kondisi sehingga kalang bisa berhenti
Contoh 2 : Mengganti kalang WHILE … DO …. Dari contoh 1 dengan kalang
REPEAT …. UNTIL …..
Program Jumlah_Deret;
Uses crt;
Var n, jumlah, pencacah : integer;
begin
clrscr;
Writeln('Menghitung jumlah 1 + 2 + 3 + ... + n');
write('n = ? ');
readln(n);
pencacah:=0;
jumlah:=0;
repeat
begin
jumlah:=jumlah+pencacah;
pencacah:=pencacah + 1;
end;
until pencacah = n+1;
writeln;
writeln('Jumlah deret = ',jumlah);
readln;
end.
Contoh 3 : Program berikut adalah program untuk menghitung deret
eksponensial dan membandingkan dengan fungsi pustaka EXP
dengan kalang WHILE …. DO ….
Deret eksponensial adalah :
.......
!
.....
2! 3! 4!
1
!
2 3 4
0
+ + + + + + + = =å¥
= n
x x x x
x
n
x
e
n
n
n
x
Program eksponensial;
uses crt;
var eksponen, x,suku : real;
n,i : integer;
begin
clrscr;
write('Masukkan banyaknya suku(n): ');
readln(n);
write('Masukan nilai x : ');
readln(x);
eksponen:=1.0;
suku:=1.0;
i:=1;
while i <= n do
begin
suku:=suku*x/i;
eksponen:=eksponen+suku;
i:=i+1;
end;
writeln;
writeln('Nilai deret = ',eksponen:10:6);
writeln('Nilai fungsi = ',exp(x):10:6);
readln;
end.
Contoh 4 :
Program untuk menghitung mean dan standar deviasi dari sejumlah data
masukkan non negatif dan berhenti apabila masukkan data adalah -1.
Program Mean_StdDev;
Uses crt;
Const neg=-1;
Var bilangan, total1, total2, mean, std : real;
n : integer;
begin
clrscr;
total1:=0.0;
total2:=0.0;
n:=0;
writeln('Masukkan data non negatif, dan untuk
mengakhiri masukkan angka -1');
readln(bilangan);
repeat
n:=n+1;
total1:=total1+bilangan;
total2:=total2+bilangan*bilangan;
writeln('Masukkan data non negatif, dan untuk
mengakhiri masukkan angka -1');
readln(bilangan);
until bilangan=neg;
mean:= total1/n;
std:=sqrt(total2/(n-1)-sqr(total1)/(n*(n-1)));
writeln('Mean = ',mean:7:2);
writeln('Deviasi Standar = ',std:8:3);
readln;
end.
7. Procedure dan Fungsi
Procedure merupakan bentuk subprogram dalam bahasa Pascal, yaitu
sekelompok statemen yang bisa menjadi bagian dari program / sub program.
Procedure dipakai untuk mengelompokkan bagian program, yang dapat dikerjakan
berkali-kali dengan memanggil namanya saja, sehingga menyederhanakan
struktur program dan mengurangi pengulangan penulisan bagian-baigan program
berkali-kali.
Deklarasi procedure terletak pada bagian deklarasi pada program yang
menggunakannya, dibawah deklarasi VAR pada program utama.
Bentuk umum :
PROCEDURE ();

Begin

End;
dimana,
pemberian nama procedure : mengikuti aturan perberian nama variabel
daftar parameter formal : bersifat option, boleh ada boleh tidak. Daftar ini
hanya untuk mengontrol komunikasi informasi ke
dan dari procedure tersebut.
Ada 2 tipe parameter formal, yaitu :
1. Parameter perubah, yang mengambil nilai dari parameter aktual dan jika
nilainya berubah, maka nilai parameter aktual juga berubah.
2. Parameter nilai, yang hanya mengambil nilai dari parameter aktual yang sesuai
tanpa mengubah nilainya, meskipun nilai parameter formal ini berubah.
Dalam procedure maupun program utamanya terdapat bagian deklarasi
varibel. Variabel yang dideklarasikan pada program utama disebut variabel global,
yaitu variabel yang dapat diakses pada semua bagian program. Sedangkan pada
procedure dideklarasikan variabel lokal, yaitu variabel yang hanya bisa diakses
oleh bagian program dimana variabel tersebut dideklarasikan.
Sebuah procedure bisa memanggil procedure lain yang telah didefinikan
sebelumnya, kemudian dipanggil pada program utama.
Bentuk umum pemanggilan procedure :
Nama_procedure (daftar parameter aktual);
dimana,
Nama procedure : harus sesuai dengan nama procedure yang digunakan
pada waktu dideklarasikan.
Daftar parameter aktual : berisi nama-nama parameter yang dioperasikan pada
procedure yang dipanggil.
Parameter-parameter aktual ini harus dideklarasikan pada program utama, tidak
boleh berupa konstanta atau ungkapan. Urutan posisi, caca parameter dan tipe data
setiap parameternya harus sesuai dengan parameter formal.
Fungsi mempunyai kegunaan yang hampir sama dengan procedure dengan
sedikit perbedaan, yaitu :
· Fungsi hanya memberikan satu hasil
· Nama fungsi, selain digunakan untuk memanggil fungsi tersebut, juga
dianggap sebagai satu peubah, sehingga dapat digunakan sebagai bagian dari
ungkapan.
· Jika fungsi digunakan, fungsi selalu akan menghitung satu nilai perubah
(dalam hal ini nilai fungsi)
· Dalam fungsi tidak ada istilah parameter perubah, semua parameter dianggap
sebagai parameter nilai.
· Semua parameter diperlukan sebagai masukan pada fungsi tersebut dengan
keluarannya adalah nama fungsi yang bertindak sebagai satu perubah.
Bentuk umum suatu fungsi:
FUNCTION () : ;

Begin

End;
dimana,
Function : kata cadangan Pascal yang memberikan tanda bahwa deklarasi
function dimulai.
Nama : nama fungsi
Daftar parameter formal : nama parameter yang akan dioperasikan di dalam
fungsi.
Tipe hasil : tipe data dari nilai fungsi
Contoh 1 :
Program Pangkat_Rekursif;
Uses crt;
Var a,z : real;
b : integer;
Procedure pangkat(x:real; n:integer; var y:real);
Var p:real;
Begin
if n=0 then y:=1
else
if n>0 then
begin
pangkat(x,n-1,y);
y:y*x);
end
else
begin
pangkat(x,n+1,y);
y:y/x;
end;
end;
begin
clrscr;
writel('Data A: '); readln(a); writeln;
writel('Data B: '); readln(b); writeln;
while(a<>0) or (b<>0) do
begin
writeln;
write(a:5:2,' pangkat',b:3'=');
pangkat(a,b,z);
write(z:5:2);
writeln;
writeln;
write('Data A: '); readln(a); writeln;
write('Data B: '); readln(b); writeln;
end;
write('Tekan ')
readln;
end.
Contoh 2 :
Program Jumlahan;
Uses crt;
Var jum, x : integer;
function jumlah(n:integer):integer;
Var i,s : integer;
begin
s:=0;
for i:=1 to n do
s:=s+i;
jumlah:=s;
end;
begin
clrscr;
writeln('Masukkan bilangan bulat 1 ...100');
readln(x);
jum:=jumlah(x);
writeln;
writeln('jumlah',x,'suku pertama deret hitung = '
,jum:6);
readln;
end.
Contoh 3 :
Program Pangkat_Rekursif2;
Uses crt;
Var a : real;
b : integer;
function pangkat(x:real; n:integer):real;
begin
if n=0 then pangkat:=1
else
if n>0 then pangkat:=pangkat(x,n-1)*x
else pangkat:=pangkat(x,n+1)/x;
end;
begin
clrscr;
write('Data A: '); readln(a); writeln;
write('Data B: '); readln(b); writeln;
while(a<>0) or (b<>0) do
begin
writeln;
write(a:5:2,' pangkat',b:3,'=');
write(pangkat(a,b):5:2);
writeln;
writeln;
write('Data A: '); readln(a); writeln;
write('Data B: '); readln(b); writeln;
end;
write('Tekan ');
readln;
end.

8. Tipe Data Array
Array merupakan tipe data berstruktur yang berisi sekumpulan komponen /
elemen dengan tipe sama, yang menggunakan identifier yang sama, dengan
masing-masing elemen memiliki indeks tersendiri, yang biasa dinamakan indeks
array. Melalui indeks array ini, setiap elemen dalam array dapat diakses secara
langsung.
Pendefinisian tipe array terdiri dari kata baku ARRAY diikuti dengan tipeindeks
yang diletakkan dalam tanda kurung siku, kata baku OF dan kemudian
tipe-komponen.
ARRAY[tipe-indeks-1,…..,tipe-indeks-n] OF tipe-komponen
Jumlah tipe- indeks dapat terdiri lebih dari satu. Jika terdapat lebih dari satu tipeindeks,
maka tipe-indeks yang satu dengan lainnya dipisahkan dengan tanda
koma. Masing- masing tipe dari tipe-indeks dapat berbeda. Perlu diketahui, tipe
dari tipe- indeks dapat berupa sembarang tipe ordinalm kecuali integer. Jadi dapat
berupa tipe cahr, boolean atau tipe skalar buatan dan juga tipe subrange. Tipeindeks
menyatakan tipe nilai dari indeks array. Tipe-komponen menyatakan tipe
dari elemen yang terdapat dalam array dan dapat berupa sembarang tipe. Contoh
deklarasi tipe array :
TYPE
Buahcatur = (Pion, Gajah, Benteng, PerdanaMenteri, Raja);
Warna=(Putih, Hitam);
Pilihan = ARRAY [warna,1..6] of BuahCatur
Pada contoh di atas, Pilihan mengandung dua tipe indeks, dengan tipe pertama
berupa skalar buatan dan tipe kedua berupa subrange.
Contoh yang lain :
TYPE
Operator = (plus, minus, kali, bagi);
Nilai = 1..0;
Tanda = ARRAY[operator] of integer;
ArrayKar = ARRAY [char] of integer;
VAR
Jumlahtanda : tanda;
Cacahkarakter : arraykar
Vektor : ARRAY[nilai] of String[15]
Contoh pendefinisian tipe array yang salah : (tipe-indeks berupa integer tidak
diperkenankan)
TYPE Nilai = integer;
Daftar = ARRAY[Nilai] OF real;
Array Berdimensi Satu
Array berdimensi satu merupakan array dengan ciri memiliki tipe-indeks
hanya sebuah dan tipe-komponen tidak berupa array. Contoh array berdimensi
satu :
VAR x : ARRAy [1..8] of real;
Menyatakan bahwa indeks-array dari variabel x dapat berupa 1,2,3,…,8 dan isi
array bertipe real. Sedangkan
VAR Huruf : ARRAy [‘A’..”Z’] of integer;
Menyatakan bahwa indeks-array dari variabel Huruf dapat berupa karakter A, B,
C, …, Z dan tipe isi array adalah integer. Ukuran Array x sama dengan 8. Ukuran
Array Huruf sama dengan 26.
Pengaksesan terhadap suatu array, dapat dibedakan dalam dua macam operasi,
yaitu penyimpanan dan pengambilan elemen array. Untuk menjelaskan hal ini,
diambil contoh :

TYPE
DaftarNilai = ARRAY[1..3] OF integer;
VAR
D : DaftarNilai;
Pendeklarasian seperti di atas menginstruksikan kepada compiler supaya
menyediakan 3 lokasi memori untuk menyimpan data integer dari variabel D,
yaitu lokasi dari D[1], D[2], dan D[3]. Jadi masing-masing indeks-array[1..3] dari
D memiliki lokasi penyimpanan tersendiri. Untuk menyimpan suatu nilai ke
dalam lokasi penyimpanan, dapat dilakukan dengan instruksi dengan instruksi
D[i] := nilai, dengan i merupakan indeks-array dan nilai adalah bilangan yang
hendak disimpan di D[i]. Sebagai contoh :
D[1]:=320;
setelah pengeksekusian pernyataan, D[1] bernilai 320.
Untuk mengambil isi array D, misalnya D[1], dapat digunakan instruksi :
Writeln(D[1]);
yang akan menampilkan nilai D[1] pada layar. Contoh lain :
X:=D[1];
memberikan nilai dari D[1] ke variabel X.
Array Multidimensi
Yang termasuk dalam array multidimensi yaitu array yang memiliki lebih
dari satu dimensi. Ciri dari tipe array ini, yakni mempunyai tipe- indeks lebih dari
satu atau tipe-komponen berupa array yang lain. Contoh array dengan tipekomponen
berbentuk array :
TYPE Matriks2D = ARRAY [1..3] OF ARRAY [1..5] OF integer;
Matriks3D = ARRAY [1..2] OF ARRAY [1..3] OF ARRAY [1..5]
OF char;
Matrik2D mengandung 3 elemen, dengan masing-masing elemen terdiri dari 5
elemen. Dengan kata lain, Matrik2D mempunyai 3 x 5 elemen. Tipe dari elemen
integer. Matrik3D merupakan tipe array yang mengandung 2 x 3 x 5 elemen,
dengan tipe elemen yaitu char. Bentuk seperti Matrik2D dan Matrik3D dapat
disederhanakan menjadi :
TYPE Matriks2D = ARRAY [1..3 ,1..5] OF integer;
Matriks3D = ARRAY [1..2 ,1..3 ,1..5] OF char;
Bentuk penulisan yang lain :
TYPE Matriks2D = ARRAY [1..3] [1..5] OF integer;
Matriks3D = ARRAY [1..2] [1..3] [1..5] OF char;
Tipe seperti Matriks2D dinamakan array berdimensi dua. Sedangkan bentuk
seperti Matriks3D dinamakan array berdimensi tiga. Penggambaran array
berdimensi dua, misalnya untuk variabel yang dideklarasikan :
VAR X : Matriks2D ;
kolom 1 kolom 2 kolom 3 kolom 4 kolom 5
*
Untuk mengakses setiap elemen dari X diperlukan dua buah indeks array.
Indeks-array pertama untuk menunjuk baris, indeks-array kedua untuk
menentukan kolom. Secara umum dapat dituliskan sebagai berikut :
X[ i , j]
Baris 1
Baris 2
Baris 3
Yang menyatakan elemen pada baris idan kolom j. Pada diagram, elemen yang
ditandai dengan * memiliki identitas X[2,3].
Untuk array berdimensi tiga, identitas dari suatu elemen array ditentukan
oleh tiga buah indeks-array. Contoh berikut menunjukkan car membuat isi
keseluruhan elemen array X bernilai nol.
for i := 1 to 3 do
for j := 1 to 5 do
X [ i , j] := 0;
Proses membuat elemen array X sama dengan nol untuk perintah di atas dimulai
dari X[1,1] kemudian X[1,2], X[1,3], X[1,4], X[2,1], X[2,2], X[2,3], X[2,4],
X[3,1], X[3,2], X[3,3], X[3,4], X[4,1], X[4,2], X[4,3] dan terakhir X[4,4]
Contoh 1 :
Program deviasi_standar;
{ untuk menghitung nilai rata-rata, }
{ varians dan deviasi standart }
uses crt;
const maksdata = 25;
type arraydata = array[1..maksdata] of real;
var
i, n : integer;
data : arraydata;
jumlah, rerata, temp, varians, standev : real;
begin
clrscr;
write('Banyak Data : ');
readln(n);
writeln;
for i:= 1 to n do
begin
write('Data ke - ',i:2,' = ');
readln(data[i]);
end;
{menghitung jumlah dan rata-rata data}
jumlah :=0;
for i:=1 to n do
jumlah:=jumlah+data[i];
rerata:=jumlah/n;
{menghitung varian dan deviasi standar}
temp:=0;
for i:=1 to n do
temp:=temp+sqr(data[i]-rerata);
varians:=temp/n;
standev:=sqrt(varians);
{cetak hasil}
writeln;
writeln('Cacah data = ',n:10);
writeln('Jumlah data = ',jumlah:10:4);
writeln('Nilai rata-rata = ',rerata:10:4);
writeln('Varians = ',varians:10:7);
writeln('Deviasi standart = ',standev:10:7);
readln;
end.
Contoh 2 :
Program MengurutkanDataString;
{untuk mengurutkan data menurut abjad}
uses crt;
Type MaksString = string[30];
Var
i,j,n : integer;
temp : MaksString;
data : array[1..20] of MaksString;
begin
clrscr;
write('Jumlah Data : '); readln(n);
writeln; writeln('Data Semula : ');
writeln;
for i:=1 to n do
begin
write(i:2,'. ');
readln(data[i]);
end;
{proses pengurutan}
for i:=1 to n do
for j:=1 to n do
if data[i] < data[j] then
begin
temp:=data[i];
data[i]:=data[j];
data[j]:=temp;
end;
{cetak hasil}
writeln; writeln('Data setelah diurutkan : ');
writeln;
for i:=1 to n do
writeln(i:2,'. ',data[i]);
readln;
end.
Contoh 3 :
Program Baca_dan_Cetak_Matriks;
uses crt;
var
i,j, baris, kolom : integer;
x : array[1..10,1..10] of real;
begin
clrscr;
{baca data, data dibaca elemen baris per baris}
write('Banyak baris (maks = 10) : ');
readln(baris);
write('Banyak kolom (maks = 10) : ');
readln(kolom);
writeln;
for i:=1 to baris do
begin
for j:=1 to kolom do
begin
write('elemen( ',i,',',j,') = ');
readln(x[i,j]);
end;
writeln;
end;
{cetak elemen dalam matriks}
writeln;
writeln('Matriks : '); Writeln;
for i:=1 to baris do
begin
for j:=1 to kolom do
write(x[i,j]:8:3);
writeln;
end;
readln;
end.
Contoh 4 :
Program Daftar_nama;
uses crt;
type array_nama = array[1..1000] of string[30];
array_alamat = array[1..100] of string[50];
var
i,j : integer;
nm : string[30];
nama : array_nama;
alamat : array_alamat;
begin
clrscr;
writeln('Tulis nama, jika selesai beri(.) pada
nama');
writeln;
j:=0;
write('Nama : ');
readln(nm);
while nm <> '.' do
begin
j:=j+1;
nama[j]:=nm;
write('Alamat : ');
readln(alamat[j]);
writeln;
write('Nama : ');
readln(nm);
end;
writeln(' DAFTAR NAMA ALAMAT ');
writeln('---------------------------------');
writeln('|No| Nama | Alamat |');
writeln('==================================');
for i:=1 to j do
writeln('|',i:3,'|',nama[i]:15,'|',
alamat[i]:21,'|');
write('----------------------------------');
readln;
end.
7.9. Record (Rekaman)
Record merupakan salah satu tipe data terstruktur yang terdiri atas
sekumpulan variabel data terstruktur. Tipe data tersebut memungkinkan untuk
memanipulasi sekumpulan elemen data dengan tipe yang tidak sama, yang seolaholah
merupakan satu obyek. Variabel data terstruktur penyusun record disebut
field (medan).
Record sering digunakan dalam program terutama yang berhubungan
dengan file. Misalnya, sebuah record tentang data seseorang, yang terdiri dari
nama, alamat, umur dan pekerjaan. Semua data tersebut dihimpun dalam satu
record dengan nama, alamat, umur dan pekerjaan sebagai field- fieldnya.
Bentuk umum :
TYPE nama_record = RECORD
nama_field_1 : tipe_data_1;
nama_field_2 : tipe_data_2;
..
..
nama_field_N : tipe_data_N;
END;
VAR pengenal : nama_record;
Contoh :
TYPE penanggalan = RECORD
Tanggal : 1..31;
Bulan : string[9];
Tahun : 1900..2010;
END;
Data = RECORD
NomorMhas : integer;
Nama,
Fakultas : string[20];
END;
VAR
TanggalLahir : Penanggalan;
DataMahasiswa : ARRAY [1..20] of Data
Tanggal, Bulan, Tahun, NomorMhs, Nama dan Fakultas merupakan field
(identifier field). Variabel TanggalLahir merupakan variabel bertipe record, yang
berisi tiga buah field yaitu Tanggal, Bulan dan Tahun. Sedangakan variabel
DataMahasiswa merupakan variabel array dengan tipe komponennya berupa
record yang mengandung 3 buah field (NomorMhs, Nama dan Fakultas )
Masing-masing record dapat diakses secara langsung. Bentuk
pengaksesannya adalah sebagai berikut :
Nama_Variabel_Record.Nama_Medan
Contoh pengaksesan atau pernyataan penugasan yang melibatkan variabel bertipe
record :
a) TanggalLahir.Tanggal :=1;
Artinya : field Tanggal pada variabel TanggalLahir diisi sama dengan 1.
b) DataMahasiswa[13].Nama :=’Bunga Rani’;
Artinya : field Nama dari variabel DataMahasiswa pada indeks array sama
dengan 13 diisi dengan string ‘ Bunga Rani’.
c) DataMahasiswa[i] := DataMahasiswa[i-1];
Artinya : isi seluruh field dari variabel DataMahasiswa [i] diisi dengan isi
field dari DataMahasiswa [i-1]. Pernyataan ini sama artinya dengan :
Bahasa Pemrograman Pascal
84
DataMahasiswa[i].NomorMhs := DataMahasiswa[i-1].NomorMhs;
DataMahasiswa[i].Nama := DataMahasiswa[i-1].Nama;
DataMahasiswa[i].Fakultas := DataMahasiswa[i-1].Fakultas;
d) NamaMahasiswa := DataMahasiswa[2].Nama;
Artinya : isi Nama dari DataMahasiswa[2] disalinkan ke variabel bukanrecord
NamaMahasiswa.
Contoh 1 :
Program Perkalian_Bilangan_Kompleks;
(**************************************)
(* contoh penggunaan record *)
(* untuk pengolahan bilangan kompleks *)
(**************************************)
Uses Crt;
Type
BilanganKompleks = RECORD
Re, Im : real;
END;
Var
Kompleks1, Kompleks2,
HasilKali : BilanganKompleks;
Begin
clrscr;
writeln('Bilangan Kompleks Pertama');
Write('Riil, Imajiner ? ');
Readln(Kompleks1.Re, Kompleks1.Im);
writeln;
writeln('Bilangan Kompleks Kedua');
Write('Riil, Imajiner ? ');
Readln(Kompleks2.Re, Kompleks2.Im);
writeln;
{menghitung perkalian bilangan kompleks}
HasilKali.Re := Kompleks1.Re * Kompleks2.Re
- Kompleks1.Im * Kompleks2.Im;
HasilKali.Im := Kompleks1.Re * Kompleks2.Im
+ Kompleks1.Im * Kompleks2.Re;
{cetak hasil}
writeln;
write('Hasil kali 2 bilangan kompleks diatas
adalah : ');
writeln(Hasilkali.Re:6:2, '+',HasilKali.Im:
6:2, ' i');
writeln('Bagian Riil = ',HasilKali.Re:6:2);
writeln('Bagian Imajiner = ',HasilKali.Im:6:2);
readln;
End.
Contoh 2 :
Program Rerata_Nilai;
(***************************************************)
(* program untuk membaca nomor, nama dan nilai tes *)
(* dari sejumlah siswa, dan untuk menghitung nilai *)
(* rata-ratanya serta menampilkan hasil pengolahan *)
(* ke layar penampil yang disusun berdasarkan *)
(* nilai rata-rata yang tertinggi *)
(***************************************************)
Uses crt;
const
JumlahTes = 5;
MaksSiswa = 20;
Type
RekamanSiswa = Record
Nomor : integer;
Nama : string[20];
nilai : array[1..jumlahtes] of real;
rerata: real;
End;
ArraySiswa = Array[1..MaksSiswa] of RekamanSiswa;
Var
jumlah : 1..MaksSiswa;
i,j : integer;
totalnilai : real;
siswa : ArraySiswa;
temporer : RekamanSiswa;
Begin
Clrscr;
{pemasukan data}
write('Jumlah data : ');
readln(jumlah);
writeln;
for i:=1 to jumlah do
begin
write('Nomor siswa : ');
Readln(siswa[i].nomor);
write('Nama siswa : ');
Readln(siswa[i].nama);
write('Nilai : ');
for j := 1 to JumlahTes do
begin
write(j:2,'. ');
read(siswa[i].nilai[j]);
end;
writeln; writeln;
end;
{menghitung rata-rata nilai tes masing-masing siswa}
for i:=1 to jumlah do
begin
totalnilai :=0;
for j:=1 to jumlahtes do
totalnilai := totalnilai + siswa[i].nilai[j];
siswa[i].rerata := totalnilai / jumlahtes;
end;
{mengurutkan data berdasar nilai rata-rata yang
tinggi}
for i:=i to jumlah-1 do
for j:=i+1 to jumlah do
if siswa[i].rerata < siswa[j].rerata then
begin
temporer := siswa[i];
siswa[i] := siswa[j];
siswa[j] := temporer;
end;
{mencetak hasil}
writeln;
writeln('=======================================');
writeln('Nomer Nama Nilai');
writeln('Siswa Siswa rata-rata');
writeln('=======================================');
for i:= 1 to jumlah do
writeln(siswa[i].nomor:5,siswa[i].nama:20,
siswa[i].rerata:11:1);
writeln('=======================================');
readln;
readln;
end.

Contoh 3 :
Program Rekaman;
uses crt;
type krs = record
nama_mhs : string[20];
no_mhs : integer;
kodefak : string[5];
end;
var
datakrs : array[1..100] of krs;
i,jum_mhs,norek : integer;
jawab : char;
begin
clrscr;
writeln('Isi rekaman berikut : ! ');
write('Ada berapa cacah rekaman ? ');
readln(jum_mhs); writeln;
for i:=1 to jum_mhs do
begin
write('Nama Mahasiswa : ');
readln(datakrs[i].nama_mhs);
write('Nomor Mahasiswa : ');
readln(datakrs[i].no_mhs);
write('Kode Fakultas : ');
readln(datakrs[i].kodefak);
writeln;
end;
jawab:='y';
while(jawab='Y') or (jawab='y') do
begin
write('Menampilkan rekaman ke berapa : ');
readln(norek);
writeln;
writeln('Nama Mahasiswa :
',datakrs[norek].nama_mhs);
writeln('Nomor Mahasiswa :
',datakrs[norek].no_mhs);
writeln('Kode Fakultas :
',datakrs[norek].kodefak);
writeln;
write('Menampilkan lagi ? (Y/N)'); readln(jawab);
end;
end.

2. Berilah salah satu contoh pengujian perangkat lunak !
Jawab :
PENGUJIAN DAN IMPLEMENTASI PERANGKAT LUNAK

Testing (Pengujian Perangkat Lunak)
Adalah elemen kritis dari jaminan kualitas perangkat lunak dan merepresentasikan kajian pokok dari spesifikasi, desain, dan pengkodean.
Pentingnya pengujian perangkat lunak dan implikasinya yang mengacu pada kualitas perangkat lunak tidak dapat terlalu ditekan karena melibatkan sederetan aktivitas produksi di mana peluang terjadinya kesalahan manusia sangat besar dan arena ketidakmampuan manusia untuk melakukan dan berkomunikasi dengan sempurna maka pengembangan perangkat lunak diiringi dengan aktivitas jaminan kualitas.
Meningkatnya visibilitas (kemampuan) perangkat lunak sebagai suatu elemen sistem dan “biaya” yang muncul akibat kegagalan perangkat lunak, memotivasi dilakukannya perencanaan yang baik melalui pengujian yang teliti. Pada dasarnya, pengujian merupakan satu langkah dalam proses rekayasa perangkat lunak yang dapat dianggap sebagai hal yang merusak daripada membangun.
Sejumlah aturan yang berfungsi sebagai sasaran pengujian pada perangkat lunak adalah:
1. Pengujian adalah proses eksekusi suatu program dengan maksud menemukan kesalahan
2. Test case yang baik adalah test case yang memiliki probabilitas tinggi untuk menemukan kesalahan yang belum pernah ditemukan sebelumnya
3. Pengujian yang sukses adalah pengujian yang mengungkap semua kesalahan yang belum pernah ditemukan sebelumnya
Sasaran itu berlawanan dengan pandangan yang biasanya dipegang yang menyatakan bahwa pengujian yang berhasil adalah pengujian yang tidak ada kesalahan yang ditemukan. Data yang dikumpulkan pada saat pengujian dilakukan memberikan indikasi yang baik mengenai reliabilitas perangkat lunak dan beberapa menunjukkan kualitas perangkat lunak secara keseluruhan, tetapi ada satu hal yang tidak dapat dilakukan oleh pengujian, yaitu pengujian tidak dapat memperlihatkan tidak adanya cacat, pengujian hanya dapat memperlihatkan bahwa ada kesalahan perangkat lunak.
Sebelum mengaplikasikan metode untuk mendesain test case yang efektif, perekayasa perangkat lunak harus memahami prinsip dasar yang menuntun pengujian perangkat lunak, yaitu:
Ø semua pengujian harus dapat ditelusuri sampai ke persyaratan pelanggan, maksudnya mengungkap kesalahan dari cacat yang menyebabkan program gagal.
Ø Pengujian harus direncanakan lama sebelum pengujian itu mulai, maksudnya semua pengujian dapat direncanakan dan dirancang sebelum semua kode dijalankan.
Ø Prinsip Pareto berlaku untuk pengujian perangkat lunak, maksudnya dari 80% kesalahan yang ditemukan selama pengujian dapat ditelusuri sampai 20% dari semua modul program.
Ø Pengujian harus mulai “dari yang kecil” dan berkembang ke pengujian “yang besar”, Selagi pengujian berlangsung maju, pengujian mengubah focus dalam usaha menemukan kesalahan pada cluster modul yang terintegrasi dan akhirnya pada sistem.
Ø Pengujian yang mendalam tidak mungkin karena tidak mungkin mengeksekusi setiap kombinasi jalur skema pengujian dikarenakan jumlah jalur permutasi untuk program menengah pun sangat besar.
Ø Untuk menjadi paling efektif, pengujian harus dilakukan oleh pihak ketiga yang independent
Dalam lingkungan yang ideal, perekayasa perangkat lunak mendesain suatu program computer, sebuah sistem atau produk dengan testabilitas dalam pikirannya. Hal ini memungkinkan individu yang berurusan dengan pengujian mendesain test case yang efektif secara lebih mudah. Testabilitas adalah seberapa mudah sebuah program computer dapat diuji. Karena sangat sulit, perlu diketahui apa yang dapat dilakukan untuk membuatnya menjadi lebih mudah. Procedural dan menggunakannya sebagai pedoman untuk menetapkan basis set dari jalur eksekusi.
Sasaran utama desain test case adalah untuk mendapatkan serangkaian pengujian yang memiliki kemungkinan tertinggi di dalam pengungkapan kesalahan pada perangkat lunak. Untuk mencapai sasaran tersebut, digunakan 4 kategori yang berbeda dari tehnik desain test case: Pengujian white-box, pengujian black-box, Integrasi Bottom-Up dan Integrasi Top-Down.

Pengujian white-box berfokus pada struktur control program. Test case dilakukan untuk memastikan bahwa semua statemen pada program telah dieksekusi paling tidak satu kali selama pengujian dan bahwa semua kondisi logis telah diuji. Pengujian basic path, tehnik pengujian white-box, menggunakan grafik (matriks grafiks) untuk melakukan serangkaian pengujian yang independent secara linear yang akan memastikan cakupan.
Pengujian aliran data dan kondisi lebih lanjut menggunakan logika program dan pengujian loop menyempurnakan tehnik white-box yang lain dengan memberikan sebuah prosedur untuk menguji loop dari tingkat kompleksitas yang bervariasi. Pengujian black-box didesain untuk mengungkap kesalahan pada persyaratan fungsional tanpa mengabaikan kerja internal dari suatu program.
Tehnik pengujian black-box berfokus pada domain informasi dari perangkat lunak, dengan melakukan test case dengan menpartisi domain input dari suatu program dengan cara yang memberikan cakupan pengujian yang mendalam.
Metode pengujian graph-based mengeksplorasi hubungan antara dan tingkah laku objek-objek program. Partisi ekivalensi membagi domain input ke dalam kelas data yang mungkin untuk melakukan fungsi perangkat lunak tertentu. Analisis nilai batas memeriksaa kemampuan program untuk menangani data pada batas yang dapat diterima.
Metode pengujian yang terspesialisasi meliputi sejumlah luas kemampuan perangkat lunak dan area aplikasi. GUI, arsitektur client/ server, dokumentasi dan fasilitas help dan sistem real time masing-masing membutuhkan pedoman dan tehnik khusus untuk pengujian perangkat lunak.

Integrasi Top-Down adalah pendekatan incremental dengan menggerakkan ke bawah melalui hirarki control, dimulai dengan control utama. Strategi intergrasi top-down memeriksa control mayor atau keputusan pada saat awal di dalam proses pengujian. Pada struktur program yang difaktorkan dengan baik, penarikan keputusan terjadi pada tingkat hirarki yang lebih tinggi sehingga terjadi lebih dulu.
Strategi top-down kelihatannya tidak sangat rumit, tetapi di dalam praktenya banyak menimbulkan masalah logistic. Biasanya masalah ini terjadi jika dibutuhkan pemrosesan di dalam hirarki pada tingkat rendah untuk menguji secara memadai tingkat yang lebih tinggi.

Pengujian Integrasi Bottom-up memulai konstruksi dan pengujian dengan modul atomic (modul pada tingkat paling rendah pada struktur program). Karena modul diintegrasikan dari bawah ke atas, maka pemrosesan yang diperlukan untuk modul subordinate ke suatu tuingkat yang diberikan akan selalu tersedia dan kebutuhan akan stub dapat dieliminasi. Strategi integrasi bottom-up dapat diimplementasi dengan langkah-langkah:
1. modul tingkat rendah digabung ke dalam cluster (build) yang melakukan subfungsi perangkat lunak spesifik.
2. Driver (program control untuk pengujian) ditulis untuk mengkoordinasi input dan output test case
3. cluster diuji
4. driver diganti dan cluster digabungkan dengan menggerakkannya ke atas di dalam struktur program.

IMPLEMENTASI ENTEPRISE SISTEM

Enterprise system adalah sistem berbasis software untuk membantu pengelolaan sistem informasi pada suatu organisasi dengan skala besar. Skala besar berarti volume transaksi yang besar, concern terhadap kualitas informasi yang tinggi, mengintegrasikan berbagai proses bisnis, lintas bidang (horisontal) maupun lintas strata (vertikal). Contoh dari ES adalah ERP (Enterprise Resource Planning) atau e-Business secara umum, e-Government, dan ingrated software lainnya.
Mengimplementasikan ES tidak mudah, atau setidaknya memilki strategi yang berbeda dengan sistem lain yang terbatas ruang lingkupnya, penggunanya dan tidak terpadu. Implementasi di sini bermakna bahwa software telah dapat digunakan dan bisa memberikan value bagi penggunanya sesuai tujuan pemanfaatan software tsb. Implementasi ini bisa dilakukan secara internal organisasi (oleh divisi IT/MIS) atau dengan pihak eksternal dalam kerangka proyek dan terikat legalitas berbentuk kontrak.
implementator sebagai pihak eksternal yang melakukan implementasi dan klien sebagai organisasi yang diimplementasikan softwarenya.
Implementasi ES berbeda dengan implementasi software berskala kecil atau yang penggunanya tunggal seperti MS Word, Database Rental VCD atau website, meskipun produknya sama-sama software yang berjalan di atas server dan membutuhkan konektivitas. Tentu nanti ada strategi yang berbeda, metode pemilihan bahan yang berbeda, tahapan yang berbeda, standar-standar tertentu, dst. Demikian pula dalam konteks software, bisa dipilah berdasar cakupan penggunaannya, bisa dilihat juga dari jenisnya (generik dan customized), yang masing-masing punya strategi implementasi yang berbeda. SE berkaitan dengan pengelolaan sistem informasi, yang tidak hanya bicara teknologi saja, tapi berkaitan dengan proses bisnis, struktur organisasi dan manusianya.
Pola pikir ”developer” adalah menganggap suatu problem bisa selesai dengan solusi berbasis software yang baik dan tepat. Tapi apakah cukup seperti itu? Dalam membangun solusi, ya itu cukup, tapi belum tentu menjamin kesuksesan implementasi. Pola pikir developer cenderung berfokus pada analisis dan development tidak pada implementasinya. Padahal sukses tidaknya proyek software, baik buruknya reputasi implementator, seringkali orang luar melihat pada keberhasilan implementasinya dan value yang didapatkan klien. ES untuk organisasi dengan puluhan divisi, ribuan orang, puluhan kepentingan, dan mungkin ratusan konflik. Apalagi jika software yang kita implementasikan bukan sekedar supporting tools tapi adalah core dari bisnis itu sendiri (konsep e-business). Cara implementasi dengan pola pikir seperti ini hanya akan menghasilkan solusi dan software yang bagus, tapi tidak optimal dan memberikan value untuk organisasi tsb, atau bahkan malah tidak pernah akan digunakan.
Implementator tidak bisa memposisikan diri sebagai project manager pada sebuah proyek yang berkaitan langsung dengan proses bisnis internal klien. Seorang project manager harus mampu mengelola semua resource berkaitan dengan proyek. Kadang kita tidak menyadari bahwa sebagaian besar resource dari proyek software justru berada di sisi organisasi klien. Sementara, project manager seharusnya memiliki akses ke seluruh resource tersebut, karena jika tidak, itu bukan project manager namanya.
Dalam kasus ini, maka project manager seharusnya justru berada di sisi klien, bukan implementator. Akan sia-sia jika aktivitas project planning, project controlling dsb sepenuhnya dilakukan oleh implementator, sementara klien hanya ”tahu beres” saja. Pada akhirnya aktivitas-aktivitas project management tsb hanya akan menghasilkan berkas-berkas dan dokumen administratif saja, yang pada kenyataannya tidak pernah dilaksanakan.
Peran yang paling pas untuk implementator adalah sebagai konsultan. Tugas utama dari konsultan adalah memberikan informasi, mendampingi, memfasilitasi dan menjadi motor ”behind the screen”. Tentu saja jika kontraknya melibatkan pengadaan software, konsultan juga akan melakukan development atau implementasi secara teknis, namun implementasi keseluruhannya harus dipimpin oleh klien sendiri melalui project manager. Jika klien tidak memiliki pengetahuan yang cukup untuk mengelola proyek software, itulah tugas konsultan untuk mendampinginya, sehingga proses project planning, control, evaluation, dst sepenuhnya akan berasal dari ide-ide, komitmen dan effort dari klien sendiri.
Tugas konsultan adalah memfasilitasi dan mengarahkannya. Model seperti ini yang kemudian memunculkan teknik JAD (Joint Application Design), yang intinya adalah melibatkan dan kolaborasi seluruh stakeholder proyek. salah satu fase dalam implementasi sistem adalah fase transisi, yang pasti akan menuntut perubahan baik kecil maupun besar. Adanya sistem baru, mau tidak mau akan merubah proses bisnis. Perubahan proses bisnis berarti perubahan cara kerja, alur kerja dan bahkan budaya kerja. Perubahan ini menyangkut aspek people dan proses bisnis, sehingga dikenal konsep change management.
Dalam eksekusinya, change ini harus dipimpin dan dimanage oleh leader di internal organisasi. Yang jelas seorang konsultan tidak hanya dituntut memiliki pengetahuan tentang software engineering dan hal-hal teknis, dan juga tidak cukup ditambah dengan pengalaman dan keterampilan project management, namun konsep dan bestpractice tentang change management, communication skill yang excellent sangat diperlukan.

JAD (Joint Application Development/Design) sebagai salah satu teknik manajemen dalam mengimplementasikan sebuah sistem informasi (SI) dalam konteks proyek. porsi terbesar dan terumit dari proses implementasi SI adalah justru pada proses transisinya, karena terkait banyak aspek tidak hanya di sisi teknologi tapi harus memahami sisi sosial, manajerial dan SDM.

Implementasi SI
Masalah terbesar dari implementasi SI adalah untuk mengetahui kebutuhan dari user, apalagi dengan karakter proyek :
· Sistem yang melibatkan multi-organisasi/divisi (penggunanya dari beberapa role dan divisi)
· Bisnis proses yang kompleks
· Kebutuhan yang sangat spesifik dan customized.
Dengan karakter proyek yang semacam ini, tidak cukup bagi seorang system analyst (SA) menentukan kebutuhan hanya dengan teknik wawancara, observasi ataupun kuesioner. Banyak kasus ditemui, bahwa pada akhirnya apa yang kita dapatkan dari proses analisa kebutuhan di awal proyek, tidak match dengan kebutuhan sesungguhnya dari pengguna sistem, sehingga sistem akhirnya tidak dapat digunakan dengan baik. Masalah lain adalah di sisi waktu. Teknik-teknik seperti itu seringkali sangat time consuming, sangat membutuhkan waktu yang lama. Sering juga tim developer dihadapkan situasi bahwa tidak semua stakeholder proyek memiliki kepedulian yang sama dengan yang lain. Seorang manajer tidak mengetahui kebutuhan detail dari staf-staf operasional, sementara itu staf operasional mungkin juga tidak memahami sepenuhnya spirit, goal dari SI. JAD merupakan sebuah teknik yang berfokus pada keterlibatan dan komitmen pengguna dalam menentukan kebutuhan dan merancang (desain) aplikasi. JAD biasanya dilakukan dalam bentuk tim yang merupakan gabungan dari seluruh stakeholder proyek, yang bekerja dalam bentuk workshop-workshop atau forum diskusi.
Kenapa workshop ? karena teknik JAD ini bukanlah sekedar rapat-rapat, yang biasa dilakukan dalam sebuah proyek dan melibatkan seluruh stakeholder proyek. JAD adalah tim yang nantinya akan membuat rancangan dan mengawasi, memonitor bersama jalannya proyek.

Siapa yang perlu terlibat ?
Secara garis besar yang perlu terlibat adalah :
1. Sponsor. Sponsor ini berarti project owner, memiliki kedudukan yang cukup tinggi dalam organisasi dan sebagai pengambil keputusan tertinggi dalam pengelolaan sistem informasi. Satu hal yang penting dilakukan oleh seorang project owner adalah komitmen yang kuat akan implementasi SI yang dilakukan. Without the executive sponsor's commitment, people do not show up for workshops on time or sometimes at all. Schedules change and projects are delayed. In short, without an executive sponsor, there is no project!
2. Business Users. Business User ini terdiri dari 2 jenis, yaitu real end user dan representative end user. Real end user adalah person yang melakukan pekerjaan real di lapangan. Dalam kasus, ini adalah operator-operator. Sedangkan representative end user adalah person yang mengetahui seharusnya bisnis proses itu dilakukan, memahami spirit dan goal dari sistem yang dikelolanya. Biasanya ini adalah kepala bagian, manajer, atau operator senior.
3. System Analyst (Tim Developer). Person/tim ini yang akan in-charge dari sisi teknologi dan proses engineeringnya.
4. System Experts. Tidak semua referensi mencantumkan peran ini. Perannya lebih seperti konsultan yang memahami seluk beluk bisnis proses dari sisi konseptual dan berbasis pengalaman.
5. Facilitator. Seorang fasilitator berfungsi sebagai moderator dan mengarahkan setiap aktivitas JAD yang melibatkan banyak pihak, untuk menjadi efektif. Seorang fasilitator harus memiliki kecakapan yang baik dalam berkomunikasi, memberikan stimulus-stimulus dan trik-trik agar diskusi bisa berjalan dengan baik.
Tentu saja, setelah penyusunan tim JAD, diperlukan strategi yang tepat dalam melakukan workshop-workshop, sehingga proses dilakukan lebih efektif. Yang jelas, teknik ini sudah terbuktif efektif dalam menyelesaikan masalah-masalah implementasi SI.


Kesimpulan studi kasus oleh Standish grouph report


Sukses / gagalnya proyek :






Istilah
DMV : the California department of motor vehicles
Banco itamarti : bank brazil
Confirm : American airlines utk penyewaan mobil di hotel marriott
& hilton

Rabu, 07 Juli 2010

Anggota Kelompok

Anggota 1 :



Nama : Megawati
NPM : 0857201000241
Semester : VI (Enam)
TTL : Pelangsian, 05 Agustus 1989
FIKOM UNDA SAMPIT

Anggota 2 :



Nama : Afrilia Ambar Sari
NPM : 0857201000226
Semester : VI (Enam)
TTL : Samuda Kota, 17 April 1990
FIKOM UNDA SAMPIT

Tugas 5

Tugas Penjadwalan Perangkat Lunak (Tugas 5)

Tugas 4

1. Bagan Relasi Entitas (Entity Relationship Diagram)


2. Desain Basis Data
Dari beberapa permodelan di atas, dapat dikumpulkan beberapa macam field data. Field-field tersebut dirangkum dalam Kamus Data sebagai berikut :
Kamus Data :


Dalam desain basis data (Database Design) pada sistem dan aplikasi terdiri beberapa file tabel, dimana perancangannya berdasarkan pada kamus data di atas. File-file tabel tersebut adalah sebagai berikut :
File-File Tabel


Struktur tabel dari masing-masing file tabel di atas adalah sebagai berikut :
Struktur File Tabel “tAnggota. mdf”


Struktur File Tabel “tBuku. mdf”


Struktur File Tabel “tPinjam. mdf”



Struktur File Tabel “tKembali. mdf”


Transaksi Peminjaman

UNF = NoPinjam + TglPinjam + {NoAnggota + NamaAnggota + AlmtAnggota + TglLhr + TelpAnggota} + { KdBuku + JudulBuku + NmPengarang + Penerbit + JmlBuku}
1NF = NoPinjam + TglPinjam + NoAnggota + NamaAnggota + AlmtAnggota + TglLhr + TelpAnggota + KdBuku + JudulBuku + NmPengarang + Penerbit + JmlBuku

2NF :
Pinjam = NoPinjam* + TglPinjam + NoAnggota* + KdBuku*
Buku = KdBuku* + JudulBuku + NmPengarang + Penerbit + JmlBuku
Anggota = NoAnggota* + NamaAnggota + AlmtAnggota + TglLhr + TelpAnggota


Transaksi Pengembalian

UNF = NoKembali + TglPinjam + {NoAnggota + NamaAnggota + AlmtAnggota + TglLhr + TelpAnggota} + { KdBuku + JudulBuku + NmPengarang + Penerbit + JmlBuku} + TglKembali

1NF = NoKembali + TglPinjam + NoAnggota + NamaAnggota + AlmtAnggota + TglLhr + TelpAnggota + KdBuku + JudulBuku + NmPengarang + Penerbit + JmlBuku + TglKembali

2NF :
Kembali = NoKembali* + TglPinjam + NoAnggota* + KdBuku* + TglKembali
Buku = KdBuku* + JudulBuku + NmPengarang + Penerbit + JmlBuku
Anggota = NoAnggota* + NamaAnggota + AlmtAnggota + TglLhr + TelpAnggota

Tugas 3

Analisis Sistem Informasi Perpustakaan

Deskripsi Permasalahan
Analisis sistem informasi perpustakaan untuk mendukung komputerisasi administrasi operasional perpustakaan umum yang meliputi :
1. Pengelolaan seluruh koleksi perpustakaan
2. Pengelolaan data anggota perpustakaan
3. Pengelolaan transaksi penyewaan dan pengembalian
4. Pengelolaan laporan operasional

Perpustakaan memiliki buku dan barang cetakan lainnya yang disimpan di tempat tertentu. Yang dapat menjadi anggota perpustakaan adalah masyarakat umum yang memenuhi syarat tertentu dan setiap anggota memiliki kartu anggota dengan masa keanggotaan tertentu dan dapat diperpanjang dengan memperbaharui persyaratan. Perpustakaan memiliki beberapa petugas untuk melayani :

1. Penyewaan buku
Termasuk dalam layanan ini adalah peminjaman dan pengembalian buku. Peminjam akan menyerahkan kartu anggota dan identitas buku yag akan dipinjam. Informasi identitas buku yang ada di perpustakaan dapat diperoleh dari katalog atau dari daftar koleksi perpustakaan. Petugas memasukkan data anggota ke sistem dan melakukan validasi keabsahan peminjaman tersebut. Apabila data anggota tidak ada, maka petugas akan memberikan informasi penolakan peminjaman. Data peminjaman buku disimpan di data transaksi peminjaman. Peminjaman buku maksimum 3 buah serta lama peminjaman 7 hari dan dapat diperpanjang. Pada tahap pengembalian buku, peminjam memberikan buku dan kartu anggota kepada petugas dan selanjutnya sistem akan melakukan pemeriksaan atas transaksi serta data anggota sebelumnya dan menghitung denda jika ada.

2. Registrasi anggota
Termasuk layanan ini adalah untuk registrasi anggota baru atau registrasi ulang anggota lama yang telah habis masa keanggotaannya. Pada saat registrasi baru, anggota memasukkan persyaratan keanggotaan ke petugas untuk diproses selanjutnya oleh sistem dan akan mendapatkan kartu anggota jika telah memenuhi persyaratan. Pada saat registrasi ulang, anggota lama memperpanjang masa keanggotaannya dengan membawa persyaratan keanggotaan yang telah diperbaharui. Proses selanjutnya sama dengan registrasi bagi anggota baru.

3. Pendaftaran buku
Setiap buku baru yang diperoleh dari bagian pengadaan akan diproses dan didaftarkan pada sistem, sebagai bukti penerimaan buku akan dibuat tanda terima buku. Berdasarkan data buku baru ini, anggota dapat meminjam buku tersebut dari katalog buku yang disediakan. Pada bagian ini dilakukan pula upaya pemeliharaan terhadap buku-buku yang lama yang telah dimiliki perpustakaan. Kondisi buku dicatat, termasuk jumlah total buku, jumlah buku yang baik dan jumlah buku yang rusak atau hilang.

Langkah pembuatan DFD :
Identifikasikan external entity (kesatuan luar) yang terlibat.
Identifikasi input dan output yang terlibat dengan kesatuan luar
Gambar konteks diagram
Gambar bagan berjenjang (hirarchy chart) untuk semua proses yang ada di sistem terlebih dahulu.
Gambar Overview Diagram
Apabila diperlukan gambar diagram Rinci.

Tugas 2

Tugas RPL 2
Jelaskan apa yang anda ketahui tentang kategori ukuran proyek, berikan contohnya masing2
6 Kategori ukuran proyek :
1. Trivial Proyek adalah : Proyek sederhana umumnya dikerjakan oleh satu programmer (pembuat program, pengerjaannya biasanya dalam beberapa hari atau beberapa minggu.program yang dihasilkan kurang dari 500 baris yang mungkin disusun antara 10 -20 subrutin (modul). Pada kategori ini, memerlukan sedikit analisis formal, dokumentasi perancangan yang tidak terlampau rumit, tidak terlampau luas perencanaan uji coba program.
Contohnya : keperluan pribadi seorang programmer
2. Small Proyek adalah : Biasanya dikerjakan oleh 1 – 4 programmer dan program dihasilkan terdiri dari 1000 – 2500 baris yang disusun dalam 25 – 50 subrutin ( modul) waktu pekerjaan umumnya antara 1 -6 bulan. Pada small proyek umumnya memerlukan sedikit interaksi antara programmer dengan pemakai (user)/pelanggan ( customer) . Small proyek memerlukan teknik dan notasi yang sudah standart, dokumentasi yang standart tetapi tingkatannya tidak terlalu formal, juga dibandingkan dengan large proyek.
Contohnya : penyelesaian numerik masalah sains
3. Medium Proyek adalah adalah : Dikerjakan oleh 2-5 Programmer, lama pengerjaan 1-2 tahun dan jumlah baris 5K-50K.
Contohnya : compiler berukuran tidak terlalu besar
4. Large Proyek adalah : Memerlukan 5 – 10 orang programmer dengan waktu 2 – 3 tahun dan program yang dihasilkan terdiri dari 50.000 – 100.000 baris perintah, disusun dalam beberapa sub system. Komunikasi yang terjadi antara programmer, manager dan pelanggan atau pemakai umumnya terjadi dalam team.
Contohnya : paket data base
5. Very Large Proyek adalah : Dikerjakan oleh 100-1K , lama pengerjaan 4-5 tahun, dan jumlah baris 1M
Contohnya : sistem operasi besar
6. Extremmely Large Proyek adalah : Dikerjakan oleh 2K-5K , lama pengerjaan 5-10 tahun, dan jumlah baris 1M-10M
Contohnya : sistem pertahanan balistik

Tugas 1

Soal 1 (Rekayasa Perangkat Lunak)

1. Sebutkan contoh dari perangkat lunak, fungsi dan perkembangannya dari awal sampai akhir !

Jawab :

Ø Microsoft Office

Sejarah panjang perjalanan Microsoft Office hingga saat ini, banyak perubahan dan penambahan fasilitas sejak pertama kali diluncurkan tanggal 30 Agustus 1992. Waktu itu aplikasi perkantoran ini diberi nama Microsoft Office versi 3.0. Pada versi tersebut Microsoft Office menyertakan Microsoft Word sebagai pengolah kata, Microsoft Excel sebagai pengolah angka, Microsoft PowerPoint digunakan sebagai aplikasi presentasi yang handal dan Microsoft Mail digunakan untuk menerima dan mengirim email.

Setelah populer dengan Microsoft Office 3.0, pada tahun 1995-an Microsoft kembali meluncurkan Microsoft Office 95 bersamaan waktu itu Microsoft meluncurkan sistem operasi Microsoft Windows 95. Pada sistem operasi ini Microsoft merombak total Windows versi 3.1 dan Windows 3.11 for Workgroup, perubahan yang cukup signifikan dalam sejarah sistem operais PC saat itu. Sejalan dengan pekembangan sistem operasi Microsoft Windows, Microsoft Office sendiri terus berkembang dan semakin mapan dan terus digandrungi serta digunakan oleh sebagian besar masyarakat komputer di dunia, termasuk di Indonesia.

Sampai pada tahun 2000-an Microsoft sudah meluncurkan beberapa versi Microsoft Office dan sampai saat ini masih tetap digunakan sebagai andalan aplikasi perkantoran modern. Beberapa versi dari Microsoft Office yang masih banyak digunakan saat ini antara lain Microsoft Office 2000, Microsoft Office XP (2002) dan Microsoft Office 2003.

Pada kenyataannya sampai saat ini masih banyak kemampuan Microsoft Office 2003 masih belum tersentuh oleh pemakainya. Namun sejalan dengan perkembangan teknologi dan sistem operasi yang juga terus berkembang, maka diluar dugaan Microsoft kembali akan meluncurkan Microsoft Office 2007 bersamaan dengan Windows Vista yang sebentar lagi akan hadir di tengah-tengah masyarakat komputer dunia.

Berikut perkembangan Microsoft Office :

- Microsoft Office 2003

- Microsoft Office 2007

- Microsoft Office 2010

Office 2010 belum juga resmi diperkenalkan ke pasaran. Namun kisaran harga jual dari aplikasi perkantoran teranyar Microsoft ini sudah lebih dulu beredar.

Secara umum, ada empat edisi Office 2010 yang akan ditawarkan ke pasar. Pertama, Office Home & Student standar yang dibanderol US$ 149 untuk satu paket (pakai boks) dan US$ 119 untuk yang versi unduhan dan diaktivasi dengan key card. Lalu ada edisi Home Office untuk pekerja dan UKM yang seharga US$ 279 versi boks, US$ 199 dengan key card. Versi kelas atas dari Office 2010 adalah edisi profesional yang dilengkapi dengan sejumlah tools untuk kalangan korporat dan dipatok US$ 499 boks dan US$ 349 key card. Sementara untuk versi paling hemat adalah Office Professional Academic untuk pelajar dan pengajar, yang harganya bisa sampai US$ 99. Demikian detikINET kutip dari Information Week, Senin (1/2/2010).

Office 2010 secara resmi baru akan diperkenalkan Microsoft paling cepat pertengahan tahun atau selambat-lambatnya akhir tahun nanti. Selain itu, biasanya Microsoft juga membedakan harga aplikasinya berdasarkan status negara. Artinya, harga yang dipatok di negara maju tidak sama dengan yang dibanderol di negara berkembang.

Ø Microsoft Windows

Microsoft pertama memulai pengembangan antar muka Manajer ( sesudah itu dinamai Microsoft Windows ) pada September 1981. Walaupun Multiplan prototipe yang digunakan pertama dengan Menu Word-like pada bawah layar, antar muka telah diubah pada tahun 1982 menggunakan drop-down menu dan dialog kotak, seperti yang digunakan oleh Bintang Xerox.

Versi Microsoft windows di diskusikan seperti di bawah ini:

- Windows 1.0

- Windows 2.0

- Windows/386

- Windows 3.0

- Windows 3.1

- Windows 95

- Windows 98

- Windows Me

- Windows NT

- Windows 2000

- Windows XP

- Windows Server 2003

Windows 1.0

Microsoft akhirnya mengumumkan Windows pada bulan November 1983, dengan tekanan bahwa impian harus segera diwujudkan dari dan Topview yang segera terjadi. Hal Ini terjadi setelah Apple Lisa di release ( tetapi sebelum Macintosh), dan sebelum Digital Research mengumumkan GEM, pesaing lingkungan grafis yang lain. Windows menjanjikan suatu antar muka grafis sederhana, device-independent grafik, dan dukungan multitasking. Pengembangan telah tertunda beberapa kali, bagaimanapun, dan versi yang pertama tersedia bagi pasar konsumen ( setelah 55 tahun programmer dari pengembangan) pada bulanNovember 1985. Pemilihan dari aplikasi jarang, bagaimanapun, dan Windows penjualan adalah rendah hati. Yang berikut adalah fitur yang utama dari Windows 1.0:

- Graphical user interface (GUI) dengan menu drop-down, tiled windows, dan mouse support

- Device-independent screen dan printer graphics

- Cooperative multitasking of Windows applications

Windows 2.0

Windows 2.0, diperkenalkan pada musim gugur tahun 1987, menyajikan peningkatan usabilitas yang penting terhadap Windows. Dengan penambahan icon dan overlap jendela, Windows menjadi suatu lingkungan yang baik untuk pengembangan dari aplikasi utama ( seperti Excel, Word fork Windows, Corel Draw!, Ami, Pagemaker, dan Micrografx Designer). Penjualan telah menghimbau oleh runtime ( Lingkungan Aplikasi tunggal) versi yang disediakan oleh penjual perangkat lunak yang mandiri. Ketika Windows/386 ( lihat bagian yang berikutnya) telah dilepaskan/release, Microsoft memberikan nama Windows Microsoft 2.0 menjadi Windows/286 untuk konsistensi. Berikut ini adalah perubahan yang utama dari versi yang lebih awal dari Windows:

- Overlapping windows

- PIF files for DOS applications

Windows/386

Di akhir 1987, Microsoft merelease Windows/386,yang secara fungsional setara dengan Windows/286, dapat menjalankan berbagai aplikasi DOS secara serempak di extended memori. Berbagai mesin virtual DOS dengan premptive multitasking merupakan fitur baru dalam Windows dari versi sebelumnya.

Windows 3.0

Microsoft Windows 3.0, yang direlease pada bulan Mei 1990, melengkapi memeriksa secara seksama dari lingkungan Windows. Windows 3.0 dapat mengalamati memori di atas 640KB, dan mempunyai antar muka yang jauh lebih powerful, vendor perangkat lunak yang mandiri mulai mengembang;kan aplikasi Windows dengan tenaga (vigor). Aplikasi baru yang powerful membantu Microsoft menjual lebih dari 10 juta salinan dari Windows, hal tersebut menjadikan GUI yang paling laris dalam sejarah komputasi. Berikut adalah perubahan yang utama dari versi Windows sebelumnya :

- Mode Standard ( 286), dengan dukungan memori besar

- Mode 386 Enhanced, dengan memori besar dan berbagai dukungan sesi DOS preempitve

- Tidak tersedia versi runtime

- Program Manajer dan File Manajer ditambahkan

- Dukungan jaringan

- Mendukung untuk lebih dari 16 warna

- Aplikasi Programming Interface (API) mendukung untuk combo boxes, menu hirarkis, dan private .ini file

Windows 3.1

Microsoft Windows 3.1, yang direlease pada April 1992, menyajikan peningkatan penting terhadap Windows 3.0. Dalam dua bulan pertama nya, menjual di atas tiga juta salinan, termasuk upgrade dari Windows 3.0. Berikut adalah perubahan yang utama dari Windows 3.0:

- No Real (8086) mode support

- Mendukung jenis tulisan (font) yang skalabel Truetype

- Kemampuan Multimedia

- Obyek Linking and Embedding ( OLE)

- Kemampuan mem-boot kembali aplikasi

- Mouse Trails untuk mempermudah mouse menggunakan peralatan display LCD

- Perlindungan Interapplication lebih baik dan diagnostik kesalahan yang lebih baik

- Mendukung API multimedia dan networking

- Kompabilitas API level source dengan Windows NT

Windows 95

Windows 95 direlease pada Agustus 1995. Diarahkan pada pangsa pasar desktop, hal ini sangat berbeda dengan Windows 3.1 dan tidak lagi mensyaratkan DOS yang terpisah. Di rancang untuk tetap berjalan bersama dengan Windows NT, yang menawarkan tingkat yang lebih besar dari kompabilitas mundur dengan perangkat lunak dan driver yang lebih tua (terdahulu), atas biaya stabilitas dan keamanan dari Windows NT yang lebih besar. Fitur baru adalah sebagai berikut:

- Sesuatu yang baru, lebih Object-oriented GUI

- WIN32 API yang baru

- Preemptive multitasking dari aplikasi Win32

- Model memory flat 32-bit

- Protected memory

- Mendukung Built-in networking, termasuk dukungan dial-up

- Model driver 32-bit yang baru

Windows 98

Windows 98 direlease sebagai sebuah upgrade terhadap Windows 95. Windows 98 memiliki kesamaan antar muka (interface) dan fitur dari Windows 95, tetapi juga menyertakan update berikut ini:

- 32-bit allocation system (FAT32) yang tidak hanya mengijinkan drive hard disk lebih besar dari 2GB, tetapi juga penggunaan disk space yang lebih efisien, mengijinkan file untuk di-load lebih cepat dan mengambil tempat yang lebih sedikit; FAT32 dapat membaca drive hard disk sebesar 2TB (2000GB)

- Dukungan untuk peripheral Universal Serial Bus (USB)

- Dukungan untuk WebTV (sejak saat itu berubah menjadi MSN TV)

- Dukungan untuk lebih dari satu monitor

- Microsoft Web Server

- Microsoft Task Scheduler

Beberapa fitur ini juga tersedia dalam versi Windows terbaru (dikenal dengan OSR2) yang telah didistribusikan dengan PC baru pada tahun 1998. OSR2 tidak pernah tersedia untuk penjualan ritel.

Pada 1999, Microsoft merelease Windows 98SE (Second Edition), yang meningkatkan Windows dan juga ditambahkan fitur sebagai berikut:

- Dukungan untuk DVD-ROM

- Internet Connection Sharing (ICS)

- Meningkatkan waktu startup untuk program

- Meningkatkan dukungan USB

Windows Me

Windows Me, atau Millenium Edition, di release tahun 2000 sebagai upgrade dari Windows 98SE. Sangat mirip dengan pendahulunya, Windows Me menyertakan kemampuan home networking baru, video capture dan editing, dan mekanisme baru untuk pemugaran system dalam keadaan darurat.

Windows NT

Catatan : Untuk alasan keamanan dan support, UITS merekomendasikan penggunaan Windows 2000 Profesional atau Windows XP Profesional, daripada NT Workstation 4.0 pada jaringan Universitas Indiana. Windows NT 4.0 memasuki fase daur hidup yang ditingkatkan. Hal ini mempunyai arti bahwa tidak lagi dipertimbangkan sebagai mainstream teknologi , dan support akan menjadi lebih dibatasi selama fase ini.

Windows NT adalah produk terpisah dari Windows 3.x, Windows 95, dan Windows 98. Di arahkan pada pangsa pasar perusahaan, untuk digunakan pada workstation dan server yang high-end. Versi pertama, 3.1 dan versi 3.5 dan 3.51, menggunakan antar muka yang sama dengan Windows 3.1. Versi 4.0 menggunakan antar muka yang diperkenalkan pertama kali dengan Windows 95.

Windows NT 4.0 menawarkan fitur baru sebagai berikut:

- Dukungan NTFS file system

- Model keamanan (security model)

- Remote Access Server (RAS)

- Subsystem OS/2 dan POSIX

- Kemampuan untuk berjalan pada prosesor Intel, Alpha, MIPS dan Motorola

Windows NT 4.0 terdiri dari dua versi : Advanced Server dan Workstation. Versi Advanced Server dengan software tambahan yang mengijinkannya untuk menunjukkan aturan dari server enterprise. Advanced server memiliki fitur berikut dalam tambahan yang ditemukan pada versi Workstation :

- Software untuk menkontrol dan mengatur domain

- Internet Information Server (IIS)

- Dukungan untuk produk Microsoft BackOffice

- Software server DHCP, DNS dan WINS

Windows 2000

Windows 2000 di release sebagai update atas Windows NT 4.0. Windows 2000 bukan upgrade dari Windows 98 atau 98SE.

Windows 2000 dibangun pada Windows NT dan menawarkan peningkatan sebagai berikut:

- System operasi full 32-bit

- Dukungan untuk NTFS atau FAT32, dengan dukungan untuk drive hard disk sebesar 32GB ketika menjalankan FAT32.

- Windows File Protection, yang menjaga aplikasi yang di install dari penghapusan file system yang penting.

- Mengurangi beberapa skenario reboot, termasuk instalasi program yang mensyaratkan sebuah reboot untuk perbaikan fungsi.

- Dukungan untuk sampai 4GB Random Access Memory (RAM)

- Microsoft Management Console (MMC)

- Internet integrasi yang lebih kuat dengan Internet Explorer 5.0.1

Terdapat tiga versi Windows 2000 yang berbeda : Professional, Server dan Advanced Server. Professional di rancang untuk system desktop dan laptop,baik stand-alone dan network, untuk penggunaan individual. Server di rancang untuk menjalankan file dan printer servers. Advanced server di rancang untuk menjalankan server dengan lebih powerful; Advanced server telah mendukung tambahan RAM 4GB.

Windows XP

Di release pada akhir tahun 2001, Windows XP menggantikan tempat Windows family 95/98 dan NT.

Didasarkan pada kesamaan kode yang gunakan untuk membuat Windows 2000, XP terbagi dalam dua versi workstation pada saat diluncurkan : Home dan Professional. Kedua versi menyatukan fitur Windows 2000. Sejak peluncuran asli nya, tiga edisi baru dari Windows XP telah di release. Termasuk diantaranya Media Center Edition, Tablet PC Edition, dan XP Professional x64 (64-bit) edition.

Catatan : Jika anda ingin meng-upgrade versi Windows terdahulu ke XP, UITS merekomendasikan sebuah intall bersih (clean install) daripada upgrade tradisional, dalam kaitan perbedaan yang kuat antara family sistem operasi yang terdahulu dengan Windows XP.

Windows XP Home Edition

Windows XP Home Edition telah menggantikan Windows 95, 98 dan Me. Beberapa fitur-fitur baru yang ditawarkan oleh Windows XP Home Edition diantaranya:

- Cepat, mudah berpindah antar user (pengguna) pada computer yang sama tanpa perlu menutup aplikasi

- Luna, desktop dengan rancangan terbaru, yang mana menaruh fitur-fituryang sering digunakan pada lokasi yang paling mudah ditemukan pada menu Start.

- Peningkatan Windows Media Player , yang mengintegrasikan playback DVD, organisasi musik, dan burning CD.

- Windows Messenger, yang menawarkan built-in pengiriman pesan secara cepat melalui internet.

- Windows Movie Maker, yang menawarkan built-in video capture dan editing

- Internet Explorer 6, versi dari Microsoft web browser terkini.

- Remote Assistance, yang mengijinkan tehnisi untuk mengambil kontrol komputer sementara untuk mendiagnosis dan memperbaiki masalah, atau untuk mendemonstrasikan fitur-fitur.

- System Restore, yang mengijinkan komputer untuk menyimpan kembali dirinya terhadap konfigurasi yang terkini jika terjadi sesuatu kesalahan.

- Network Setup Wizard, mengijinkan setup yang lebih mudah untuk home network untuk file, printer dan Internet connection sharing.

Windows XP Professional Edition

Windows XP Professional Edition telah menggantikan Windows NT dan 2000. Sebagai tambahan terhadap fitur-fitur dari Home edition, yaitu menambahkan fitur-fitur baru untuk meningkatkan efisiensi networking dan task:

- Remote Desktop, yang mengijinkan pembuatan virtual session pada satu computer dari computer lain melalui internet

- Encryting File System, yang menawarkan keamanan yang lebih baik dengan file key-encrypting secara transparan

- Fast resume dari Hibernation, yang mengijinkan bekerja untuk resume yang cepat dan menyimpan waktu hidup batery pada komputer laptop.

- Dukungan untuk networking 802.1x untuk networking wireless yang lebih aman.

Windows Server 2003

Windows Server 2003 di release sebagai sebuah upgrade terhadap Windows 2000 Server. Fitur-fitur tambahan pada Windows Server 2003 diantaranya:

- Meningkatkan ketergantungan

- Built-in support untuk web services

- Runtime common language mengurangi jumlah bug dan lubang keamanan yang disebabkan oleh kesalahan pemrograman yang sering terjadi

- Dukungan untuk prosesor 32-bit dan 64-bit (tergantung pada versi)

- Symmetric multi-processing support sampai dengan prosesor 64

- Dukungan sampai dengan RAM 512GB

Terdapat beberapa versi Windows 2003 Server yang berbeda yaitu: Standard Edition, Enterproses Edition, Datacenter Edition, Web Edition dan Small Business Server 2003.

Ø Borland Delphi

Delphi adalah sebuah bahasa pemrograman dan lingkungan pengembangan perangkat lunak. Produk ini dikembangkan oleh Borland (sebelumnya dikenal sebagai Inprise). Bahasa Delphi, yang sebelumnya dikenal sebagai object pascal (pascal dengan ekstensi pemrograman berorientasi objek (PBO/OOP)) pada mulanya ditujukan hanya untuk Microsoft Windows, namun saat ini telah mampu digunakan untuk mengembangkan aplikasi untuk Linux dan Microsoft .NET framework (lihat di bawah). Dengan menggunakan Free Pascal yang merupakan proyek opensource, bahasa ini dapat pula digunakan untuk membuat program yang berjalan di sistem operasi Mac OS X dan Windows CE.

Lingkungan pengembangan Delphi

Umumnya delphi lebih banyak digunakan untuk pengembangan aplikasi desktop dan enterprise berbasis database, tapi sebagai perangkat pengembangan yang bersifat general-purpose ia juga mampu dan digunakan dalam berbagai jenis proyek pengembangan software. Ia juga yang dikenal sebagai salah satu yang membawa istilah RAD tool, kepanjangan dari Rapid Application Development, saat dirilis tahun 1995 untuk windows 16-bit. Delphi 2, dirilis setahun kemudian, mendukung lingkungan windows 32-bit, dan versi c++, C++Builder, dirilis beberapa tahun kemudian. Pada tahun 2001 sebuah versi linux yang dikenal sebagai Kylix tersedia. Dengan satu rilis baru setiap tahunnya, pada tahun 2002 dukungan untuk Linux (melalui Kylix dan CLX component library) ditambahkan dan tahun 2003 .NET mulai didukung dengan munculnya Delphi.Net (Delphi 8). Kini sudah keluar juga untuk versi .NET terbaru yaitu RAD Studio 2007 dan Turbo Delphi .NET dengan versi desktopnya yaitu Delphi 2007 for win 32 dan Turbo Delphi.

Chief Architect yang membidani Delphi, dan pendahulunya Turbo Pascal, adalah Anders Hejlsberg sampai kemudian ia pindah ke Microsoft tahun 1996 di mana ia sebagai chief designer C# dan termasuk orang kunci dalam perancangan Microsoft .Net Framework. Dukungan penuh untuk .Net ditambahkan pada Delphi 8 (dirilis pada bulan Desember 2003) dengan penampilan user interface (look and feel) mirip dengan Microsoft Visual Studio .NET.

Delphi 2005 (nama lain dari Delphi 9) mendukung code generation baik untuk win32 maupun .NET, dan seperti yang telah dikenal, fitur-fitur manipulasi data secara live dari database secara design-time. Ia juga membawa banyak pembaruan pada IDE secara signifikan.

Para penganjur delphi mengklaim dengan bahasa pemrograman Delphi, IDE dan component library (VCL/CLX) yang disediakan oleh vendor tunggal memungkinkan satu paket yang lebih konsisten dan mudah dikenali. Produk delphi ini didistribusikan dalam beberapa rancangan: Personal, Professional, Enterprise (sebelumnya Client/Server) dan Architect.