Kamis, 15 Desember 2011

Contoh Create table

create table MsJenisPelanggan
(
KdJenisPelanggan char (5) primary key,
JenisPelanggan varchar (20) NOT NULL,
Discount varchar (3),
constraint kon1 check (KdJenisPelanggan like 'DL[0-9][0-9][0-9]' and len (KdJenisPelanggan) = 5)
)

create table MsPelanggan
(
KdPelanggan char (5) primary key,
NamaPelanggan varchar (20) not null,
AlamatPelanggan varchar (30) not null,
NoTelPelanggan varchar (10),
EmailPelanggan varchar (20),
KdJenisPelanggan char (5) references MsJenisPelanggan --on update cascade on delete cascade,
--foreign key (KdJenisPelanggan)references MsJenisPelanggan on update cascade on delete cascade,
--constraint kon2 check (KdPelanggan like 'KS[0-9][0-9][0-9]' and len (KdPelanggan) = 5)
)

create table MsBarang
(
KdBarang char (5) primary key,
NamaBarang varchar (50) not null,
QtyBarang int,
Edition varchar (10),
constraint kon3 check (KdBarang like 'UH[0-9][0-9][0-9]' and len (KdBarang) = 5)
)

create table MsKaryawan
(
KdKaryawan char (5) primary key,
NamaKaryawan varchar (20) not null,
AlamatKaryawan varchar (30) not null,
NoTelpKaryawan varchar (12),
EmailKaryawan varchar (30),
gaji numeric (10,2),
constraint kon4 check (KdKaryawan like 'KY[0-9][0-9][0-9]' and len (KdKaryawan) = 5)
)

create table TrPengirimanHeader
(
NoFaktur char (5) primary key,
Tanggal datetime not null,
KdKaryawan char (5),
KdPelanggan char (5),
foreign key (KdKaryawan) references MsKaryawan on update cascade on delete cascade,
foreign key (KdPelanggan) references MsPelanggan on update cascade on delete cascade,
constraint kon5 check (NoFaktur like 'UT[0-9][0-9][0-9]' and len (NoFaktur) =5)
)

create table TrPengirimanDetail
(
NoFaktur char (5),
KdBarang char (5),
Qty int,
primary key (NoFaktur, KdBarang),
foreign key (Nofaktur) references TrPengirimanHeader on update cascade on delete cascade,
foreign key (KdBarang) references MsBarang on update cascade on delete cascade,
)

sp_tables
drop table MsJenisPelanggan
drop table MsPelanggan
drop table MsBarang
drop table MsKaryawan
drop table TrPengirimanHeader
drop table TrPengirimanDetail

Fungsi Agregat

Berikut ini adalah beberapa fungsi Agregat :

1. Sum(nama_field) = menjumlahkan isi baris-baris pada field tersebut.
2. count(nama_field) = untuk mengitung banyaknya baris pencacahan data.
3. avg(nama_field)= untuk menghitung rata-rata dari isi baris- baris data.
4. max(nama_field)= untuk menghitung nilai max dari baris-baris data.
5. min(nama_field)= untuk menghitung nilai min dari baris-baris data.

catatan : untuk sum dan avg, data yang mau dihitung haruslah numeric.
untuk count baris yang berisi NULL tidak ikut dihitung.
untuk menggunakan agregat funtion dengan syarat, gunakan HAVING!!!!
(Jangan pake where).

tambahan syntax :
1. order by:
untuk sorting data. defaultnya ascending.
2. group by:
untuk mengelompokkan data yang tidak menggunakan aggregate.
(harus!!! jika data yang kita ingin tampilkan banyak. karena jika tidak, akan eror)
3. having:
untuk membuat syarat bagi fungsi aggregate yang kita pakai. Kalau syntax biasa kita bisa menggunakan where.
4. compute by:
untuk membuat subtotal (seperti Excel).
format:
compute (fungsi_agreagat) by (nama_field)
catatan :
untuk compute by. untuk mengisi (by) dari compute by, kita tinggal menggunakan (by) dari order by.

berikut ini adalah urutan penggunaan fungsi2 di atas:

select kdcontoh,nama,(fungsi_agregat) from mscontoh
where
nama like '% %'
and
nama not like '% % %'group by nama, kdcontoh
having (fungsi_agregat)> 15
order by kdcontoh
compute count(nama) by kdcontoh

Materi minggu ini adalah:
* Sub Query(In, Exists)
* Select into

Sebenarnya In dan Exist digunakan untuk menggabungkan beberapa table.
ada 4 cara untuk menggabungkan table:
- dengan cara In
- Exists
- Join

yang perlu diperhatikan dalam penggabungan table (terutama penggunaan Exists)adalah harus menggabungkan Primary key dan Foreign key dari table-table yang diquery.(Biasakan lihat ERD dalam pengerjaan)

Sebenarnya In mirip dengan Exists, hanya berbeda dalam cara penggunaan dan in hanya dapat mereturn 1 kolom saja berbeda dengan Exists yang bisa mereturn banyak kolom.
(Lihat contoh di bawah.)


Contoh penggunaan In:
select kdanggota, nama from msanggota a
where kdanggota in
(
select kdanggota from trheaderpendaftaran
)

Contoh penggunaan Exists:
select * from MsKaryawan a
where exists
(
select * from TrPengirimanHeader b
where a.KdKaryawan = b.KdKaryawan
)

Select into:
SELECT “field_name”
INTO “new_table"
FROM source

digunakan untuk mengcopy table(bisa juga untuk mengcopy kolom)


N.B:
Perhatikan urutan penggunaan fungsi2 dalam aggregate!!!
jangan sampai terbalik!!!

Tutorial Syntax SQL

Tutor sintaks2 SQL

-----------------------------------------------------------------------------------

cara masuk ke SQL di lab
start - Programs - Programming - Microsoft - Microsoft SQL Server - Query Analyzer

atau dijalankan di run ketik

isqlw

setelah itu masukkan
SQL Server 10.30.64.20
Login Name NIM
Password ddmmyy(tanggal lahir)

-----------------------------------------------------------------------------------

--membuat table
/*
create table [nama_table]
(
[column 1] [data_type_for_column_1],
[column 2] [data_type_for_column_2],
...
)
*/
create table tes
(
angka int,
nama varchar(30)
)


--mengisi record
--insert into [nama_table] ([column1],column2],...) values ([values1],values2],...)
insert into tes values(1,'alvin tanjaya')
insert into tes values(2,'rakhmat suryahadi')
insert into tes values(3,'william salim')
insert into tes values(4,null)
insert into tes values(5,'HARRY DWI SAPUTRA')


--menampilkan semua data dari dalam table
--select [column_name] from [table_name]
select * from tes


--menghapus table
--drop table [table_name]
drop table tes


/*
Jalankan secara urut dari create table,insert 5-5 nya lalu select maka akan tampil table :
angka nama
1 alvin tanjaya
2 rakhmat suryahadi
3 william salim
4 NULL
5 HARRY DWI SAPUTRA
*/

-----------------------------------------------------------------------------------
--1. isnull : menggantikan nilai data yang berisi null
/*ex :
dari table di atas record ke 4 dari field nama berisi NULL
waktu ditampilkan ingin diganti menjadi 'data kosong' maka menggunakan sintaks*/

-- isnull(table ato field apa yg mo diganti,'mau diganti jd apa')
select angka,isnull(nama,'data kosong') as nama from tes


--2. left : mengambil beberapa character dari kiri
/* ex :
kita ingin menampilkan nama dari field name hanya 3 huruf dari kiri maka menggunakan sintaks*/

-- left(string nya apa,berapa banyak char akan diambil)
select left(nama,3) as '3 huruf nama dari kiri' from tes


--3. right : mengambil beberapa character dari kanan
/* ex :
kita ingin menampilkan nama dari field name hanya 2 huruf dari kanan maka menggunakan sintaks*/

-- right(string nya apa,berapa banyak char akan diambil)
select right(nama,2) as '2 huruf nama dari kanan' from tes


--4. replace : menggantikan string dalam bentuk tertentu
/* ex :
kita ingin mengganti semua huruf a menjadi i maka menggunakan sintaks*/

-- replace (string nya apa,'string yg mau di cari','digantikan menjadi apa')
select replace(nama,'a','i') as 'mengganti a menjadi i' from tes


--5. reverse : membalikkan string
/* ex :
kita ingin membalikkan namanya,jadi yg tampil huruf belakang dl sampai ke depan maka menggunakan sintaks*/

-- reverse(string nya apa)
select reverse(nama) as 'nama dibalik' from tes


--6. upper : membuat string menjadi huruf kapital semua
/* ex :
kita ingin membuat namanya menjadi huruf kapital semua maka menggunakan sintaks*/

-- upper(string nya apa)
select upper(nama) as 'NAMA KAPITAL' from tes


--7. lower : membuat string menjadi huruf kecil semua
/* ex :
kita ingin membuat namanya menjadi huruf kecil semua maka menggunakan sintaks*/

-- lower(string nya apa)
select lower(nama) as 'nama kecil' from tes


--8. len : menghitung panjang suatu string
/* ex :
kita ingin menampilkan kolom yg bersi panjang nama maka menggunakan sintaks*/

-- len(string nya apa)
select len(nama) as 'panjang nama' from tes


--9. charindex : cari posisi suatu string di sebuah string
/* ex :
kita ingin mencari huruf 'a' di field nama index ke berapa
index suatu string d SQL dimulai dari angka 1
jika string yg dicari tidak ditemukan maka mengembalikan 0
sintaks yg digunakan*/

-- charindex('string yg dicari','kita mencari di string mana',cari mulai dari indeks ke berapa)
-- parameter ketiga optional,jika ga diisi maka mulai dari index ke 1
select charindex('a',nama) as 'index a pertama' from tes
--jika ingin mencari index a kedua
select charindex('a',nama,charindex('a',nama)+1)as 'index a kedua' from tes


--10. substring : mengambil string dari posisi tertentu
/* ex :
kita ingin mengambil nama hanya mulai dari kata ke 3 sebanyak 5 huruf maka menggunakan sintaks*/

-- substring(string nya apa,mulai dari index ke berapa,sebanyak berapa char)
select substring(nama,3,5) as 'nama dari index ke 3 sebanyak 5 huruf' from tes

--jika hanya ingin mengambil kata ke 2
select substring(nama,charindex(' ',nama)+1,len(nama)-charindex(' ',nama)) as 'kata ke 2 dari nama' from tes


--11. day : mengembalikan tanggal
/* ex :
dari tanggal 15 mei 2008 kita ingin ambil tanggalnya saja maka menggunakan sintaks*/

-- day(tanggalnya brapa)
select day('5/15/2008') as tanggal


--12. month : mengembalikan bulan
/* ex :
dari tanggal 15 mei 2008 kita ingin ambil bulannya saja maka menggunakan sintaks*/

-- month(tanggalnya brapa)
select month('5/15/2008') as bulan


--13. year : mengembalikan tahun
/* ex :
dari tanggal 15 mei 2008 kita ingin ambil tahunnya saja maka menggunakan sintaks*/

-- year(tanggalnya brapa)
select year('5/15/2008') as tahun


--14. getdate : balikin tanggal sekarang
/* ex :
kita ingi tahu sekarang tanggal berapa maka menggunakan sintaks*/

select getdate() as 'tanggal sekarang'


--15. datepart : dapetin tanggal, bulan, tahun dsb dari suatu tanggal (string)
/* ex :
kita ingin mengambil informasi dari suatu tanggal maka menggunakan sintaks*/

-- datepart(yg mau diambil apanya,tanggalnya)
-- ingin mengembalikan tahun sekarang
select datepart(yy,getdate()) as tahun
--or
select datepart(year,getdate()) as tahun
-- ingin mengembalikan bulan sekarang
select datepart(mm,getdate()) as bulan
--or
select datepart(month,getdate()) as bulan
--ingin mengembalikan tanggal sekarang
select datepart(dd,getdate()) as tanggal
--or
select datepart(day,getdate()) as tanggal
--ingin mengembalikan hari sekarang
select datepart(dw,getdate()) as hari
--or
select datepart(weekday,getdate()) as hari
--lainnya dapat dilihat di help


--16. datename : dapetin tanggal, bulan, tahun dsb dari suatu tanggal (string)
/* ex :
kita ingin mengambil informasi dari suatu tanggal maka menggunakan sintaks*/

-- datepart(yg mau diambil apanya,tanggalnya)
-- ingin mengembalikan tahun sekarang
select datename(yy,getdate()) as tahun
--or
select datename(year,getdate()) as tahun
-- ingin mengembalikan bulan sekarang
select datename(mm,getdate()) as bulan
--or
select datename(month,getdate()) as bulan
--ingin mengembalikan tanggal sekarang
select datename(dd,getdate()) as tanggal
--or
select datename(day,getdate()) as tanggal
--ingin mengembalikan hari sekarang
select datename(dw,getdate()) as hari
--or
select datename(weekday,getdate()) as hari
--lainnya dapat dilihat di help


--17. datediff : menghitung selisih waktu antara 2 tanggal
/* ex :
kita ingin tahu beda antara tanggal 3 maret 2008 dan 14 april 2008 berapa hari maka menggunakan sintaks*/

-- datediff(menghitung berdasarkan satuan waktu apa,tanggal mulai,tanggal berakhir)
select datediff(day,'3/3/2008','4/14/2008') as 'selisih tanggal'
--misalkan ingin tahu selisih bulan dan tanggal 14 april diisi di parameter kedua
select datediff(month,'4/14/2008','3/3/2008') as 'selisih tanggal'


--18. dateadd : menambahkan interval pada suatu tanggal
/* ex :
kita ingin tahu besok lusa tanggal berapa maka menggunakan sintaks*/

-- dateadd(menghitung berdasarkan satuan waktu apa,berapa banyak yg mau ditambahkan,tanggal yang mau ditambahkan)
select dateadd(day,2,getdate()) as 'tanggal lusa'
--jika ingin menghitung tanggal 3 minggu yg lalu
select dateadd(week,-2,getdate()) as 'tanggal 3 minggu lalu'


--19. cast : mengubah suatu tipe data menjadi tipe data lain
/* ex :
misalkan di table angka mau kita tambahkan 'no.' maka kita harus ubah dulu tipe datanya menjadi charnya
maka menggunakan sintaks*/

-- cast( [yg mo di ubah apa] as [tipe datanya jd apa])
select 'no. ' + cast(angka as varchar) as Nomer from tes


--20. convert : jika parameter ketiga tidak diisi fungsinya sama seperti cast,jika parameter ketiga diisi lebih maka gunanya untuk konversi tanggal
/* ex :
misalkan di table angka mau kita tambahkan 'no.' maka kita harus ubah dulu tipe datanya menjadi charnya
maka menggunakan sintaks*/
-- convert(tipe datanya jd apa,yg mau dibuah apa)
select 'no. ' + convert(varchar,angka) as Nomer from tes
--jika ingin mengubah format tanggal sekarang menjadi dd mm yy maka menggunakan sintaks
-- convert (biasanya digunakan varchar,tanggalnya,tipenya)
select convert(varchar,getdate(),106) as tanggal
--untuk keterangan tipe dapat dilihat di help


--21. top : balikin sejumlah baris awal
/* ex :
kita hanya ingin menampilkan 3 baris teratas dari table tes maka menggunakan sintaks*/

select top 3 * from tes


--22. like : keyword untuk pencarian pola
/* ex :
kita mau mencari nama yg mengandung huruf 'y' maka menggunakan sintaks*/

select nama from tes where nama like '%y%'

/*
jika kita menggunakan operator '=' maka yg ketika kita tulis where nama ='%y%'
dia tidak mencari yg berformat '%y%' melainkan benar2 mencari string yg bertuliskan '%y%'
% mewakili banyak character
_ mewakili 1 character
maka jika ingin mencari huruf ke 2nya adalah a*/
select nama from tes
where nama like '_a%'


--23. distinct : keyword agar hasilnya tidak berulang jika ada record yg isinya sama persis

/* ex :
misalakan kita tambahkan insert yg terakhir lagi pada table tes maka data terakhir akan ada sebanyak 2*/

insert into tes values(5,'HARRY DWI SAPUTRA')

--jika dicetak tanpa distinct

select * from tes

/*maka hasilnya
angka nama
1 alvin tanjaya
2 rakhmat suryahadi
3 william salim
4 NULL
5 HARRY DWI SAPUTRA
5 HARRY DWI SAPUTRA
*/

--jika menggunakan distinct
select distinct * from tes
/*maka hasilnya

angka nama
1 alvin tanjaya
2 rakhmat suryahadi
3 william salim
4 NULL
5 HARRY DWI SAPUTRA
*/

Latihan SBD

create table MsBarang
(
KdBarang char(5) primary key,
NamaBarang varchar(20),
Jumlah numeric
)

create table MsJenisBarang
(
KdJenisBarang char(5) primary key,
JenisBarang varchar(20)
)
/*
1. Tambahkan column KdJenisBarang sebagai foreign key di table MsBarang
*/
alter table MsBarang
add KdJenisBarang char(5) references MsJenisBarang

/*
2. Insert table MsJenisBarang seperti pada tampilan berikut :
*/
insert into MsJenisBarang values ('JB001','CDMusik')
insert into MsJenisBarang values ('JB002','CDFilm')

/*
3. Insert table MsBarang seperti pada tampilan berikut :
*/
insert into MsBarang values ('BR001',null,20,'JB001')
insert into MsBarang values ('BR002','Narnia',20,'JB002')
insert into MsBarang values ('BR003','Gita Gutawa-Bukan Permainan','JB001')

/*
4. Update NamaBarang menjadi 'Wang Lee Hom - Only One' pada table MsJenisBarang dimana NamaBarang adalah null
*/
update MsBarang set NamaBarang = 'Wang Lee Hom - Only one'
where
NamaBarang is null

/*
5. Hapus data pada tabel MsBarang yang jenisBarangnya adalah 'CDFilm'
*/
delete MsBarang from MsBarang b, MsJenisBarang jb
where
b.kdJenisBarang = jb.KdJenisBarang
and JenisBarang = 'CDFilm'

/*
6. Buatlah sebuah view dengan nama viewJenisBarang yang menampilkan semua data dari table MsJenisBarang
*/
create view viewJenisBarang
as
select * from MsJenisBarang

sp_tables

/*
7. Tampilkan KdPenjualan, NamaMember, NamaPegawai, TanggalPenjualan dimana NamaMember terdiri dari 1 kata dan
NamaPegawai terdiri dari 2 kata
*/

select KdPenjualan, NamaMember, NamaPegawai, convert(varchar,TglPenjualan,103) as TanggalPenjualan
from
TrHeaderPenjualan th join MsMember m on m.KdMember = th.KdMember
join MsPegawai p on th.KdPegawai = p.KdPegawai
where
NamaMember not like '% %'
and NamaPegawai like '% %'

/*
8. Tampilkan semua Nama di dalam database, baik NamaPegawai yang terdiri dari 2 kata, NamaMember yang terdiri dari 2 kata ataupun NamaBoneka yang terdiri dari 3 kata ke dalam 1 column.
Perhatikan hasil query, urutan harus sama seperti tampilan berikut :
*/
select NamaPegawai as Nama from MsPegawai
where
NamaPegawai like '% %'

union

select NamaMember from MsMember
where
NamaMember like '% %'
union all
select NamaBoneka from MsBoneka
where NamaBoneka like '% % %'

/*
9. Tampilkan KdBoneka, NamaBoneka, JumlahJual didapat dari jumlah qty dimana tanggal penjualan lebih besar dari 20,
NamaBoneka tidak mengandung kata 'teddy' digabungkan dengan KdBoneka, NamaBoneka dan Stok dari MsBoneka dimana 2 digit
terakhir kdBoneka lebih kecil dari 5
*/

select b.KdBoneka, NamaBoneka, sum(Qty) as JumlahJual
from TrDetailPenjualan dp join MsBoneka b on dp.kdBoneka = b.kdBoneka
join TrHeaderPenjualan hp on hp.KdPenjualan = dp.KdPenjualan
where
day(TglPenjualan) > 20
and NamaBoneka not like '%teddy%'
group by b.KdBoneka, NamaBoneka
union
select KdBoneka, NamaBoneka, Stok
from MsBoneka
where right(KdBoneka,2) < 5

Contoh Penggunaan Syntax SQL

distinct

Untuk menampilkan tanpa ada data yang berulang.

select distinct [NamaField]

from [NamaTable]

where [Syarat]

ascii

Untuk menampilkan nilai ascii dari suatu karakter.

select ascii(NamaKaryawan)

from MsKaryawan

charindex

Untuk menampilkan index dari karakter tertentu dari sebuah string.

select charindex(‘ ‘, NamaKaryawan ) from MsKaryawan

stuff

Untuk menggantikan sebagian dari isi sebuah string.

Formatnya:

Stuff(NamaField, start, panjang, KarakterPengganti)

Select stuff(NamaKaryawan, 2, 3, ‘ha’)

From MsKaryawan

left

Untuk mengambil n karakter paling kiri dari sebuah string.

Select left(NamaKaryawan, 2)

From MsKaryawan

len

Unutk mengetahui panjang dari sebuah string.

Select len(NamaKaryawan)

From MsKaryawan

lower

Untuk mengubah karakter yang ada menjadi huruf kecil.

Select lower(namaKaryawan)

From MsKaryawan

ltrim

Untuk menghilangkan spasi yang ada diawal string.

Select ltrim(NamaKaryawan)

From MsKaryawan

rtrim

Untuk menghilangkan spasi yang ada diakhir string.

Select rtrim(NamaKaryawan)

From MsKaryawan

replace

Untuk mengganti isi dari sebuah string.

select replace('abcdefghicde','cde','xxx')

reverse

Untuk membalik string.

Select reverse(NamaKaryawan) from MsKaryawan

right

Untuk mengambil n karakter paling kanan dari sebuah string.

Select right(NamaKaryawan, 2)

From MsKaryawan

substring

Untuk mengambil bagian dari string.

Select substring(NamaKaryawan, 2, 1)

From MsKaryawan

upper

Untuk mengubah karakter yang ada menjadi huruf besar.

Select upper(namaKaryawan)

From MsKaryawan

dateadd

Untuk menambah tanggal, bulan, atau tahun.

Select tanggal, dateadd(day, 2, Tanggal)

From TrPengiriman header

Atau

Select tanggal, dateadd(month, 2, Tanggal)

From TrPengiriman header

Atau

Select tanggal, dateadd(year, 2, Tanggal)

From TrPengiriman header

day

Untuk menampilkan hari.

Select day(Tanggal) from TrPengirimanHeader

month

Untuk menampilkan bulan.

Select month(Tanggal) from TrPengirimanHeader

year

Untuk menampilkan tahun.

Select year(Tanggal) from TrPengirimanHeader

like

Untuk mencocokan pola dari string yang diminta.

Select * from MsKaryawan where amaKaryawan like ‘%a%’

between

Untuk manampilkan nilai antara.

Select * from MsKaryawan

Where gaji betweer 1000000 and 3000000

power

Untuk menghitung pangkat.

Select power(Qty, 2)

From TrPengirimanHeader

sqrt

Untuk menghitung akar pangkat2.

Select sqrt(Qty) from TrPengirimanHeader

convert

Untuk mengubah format tanggal.

Select convert(varchar, Tanggal, 105)

cast

Untuk mengganti tipe data.

Select ‘Rp. ’ + cast(gaji) from MsKaryawan

sum

Menampilkan nilai total.

Select sum(Gaji) from MsKaryawan

max

Menampilkan nilai maksimum.

Select max(Gaji) from MsKaryawan

min

Menampilkan nilai minimum.

Select min(Gaji) from MsKaryawan

count

Menampilkan jumlah keseluruhan.

Select count(Kdkaryawan) from MsKaryawan

avg

Menampilkan nilai rata - rata

Select avg(Gaji) from MsKaryawan

in

Berfungsi untuk menggabungkan 2 buah table

select Tanggal

from TrPengirimanHeader

where KdKaryawan in

(

Select KdKaryawan from MsKaryawan

Where len(NamaKaryawan) % 2 = 0

)

exists

Berfungsi untuk menggabungkan 2 buah table

select Tanggal

from TrPengirimanHeader h

where exists

(

Select * from MsKaryawan k

Where h.KdKaryawan = k.KdKaryawan

And len(NamaKaryawan) % 2 = 0

)

Soal Jaringan Komputer 5

1. Jelaskan apa yang dimaksud dengan access list!
2. Fungsi dari Access-List!
3. Jelaskan 2 tipe access-list!
4. Bagaimana cara melihat semua accesss list yang sudah dibuat?
5. Bagaimana cara menghapus semua access list yang sudah dibuat?
6. Berapakah range antara standart access-list dan extended access-list?

Berdasarkan gambar diatas :

7. Bagian research tidak dapat mengakses Printer1dan Printer2.
8. Pada Bagian Research Hanya BR yang dapat mengakses Printer1.
9. MQ ( Bagian Marketing ) hanya dapat berhubungan dengan MF ( Bagian Research ) dengan menggunakan protocol TCP dengan port yang lebih kecil dari 80.
10. Bagian Marketing tidak dapat mengambil data dari server hanya dapat mengirim data ke server.


Jawab :
1. hak ases pada jaringan yang mengatur transfer data pada jaringan.
2. - Mengatur permit dari alur data (input output data pada jaringan).
- meningkatkan security pada jaringan.
3. standart dan extended.
4. show access-list
5. no access-list
6. standart : 0 -99
extended : 100 - 199

7. access-list 100 deny ip 192.168.1.33 0.0.0.31 host 192.168.1.98
access-list 100 deny ip 192.168.1.33 0.0.0.31 host 192.168.1.102
access-list 100 permit ip host 192.168.1.35 host 192.168.1.98
access-list 100 permit ip any any
interface fastethernet 2/0
ip access-group 100 out

8. access-list 101 deny ip 192.168.1.33 0.0.0.31 host 192.168.1.98
access-list 101 deny ip 192.168.1.33 0.0.0.31 host 192.168.1.102
access-list 101 permit ip any any
interface fastethernet 2/0
ip access-group 101 out

9. access-list 102 permit tcp host 192.168.1.100 host 192.168.1.36 eq 80
interface fastethernet 4/0
ip access-group 102 in

10. access-list 103 deny ip host 192.168.1.69 192.168.1.97 0.0.0.31
access-list 103 permit ip any any
interface fastethernet 1/0
ip access-group 103 in
exit

Soal Jaringan Komputer 4

1. 2 Tingkat akses pada router? Jelaskan!
2. Cara melihat semua syntax yang bisa digunakan!
3. Sebutkan komponen router!
4. Konfigurasi yang bisa dilakukan pada router?
5. Tuliskan langkah-langkah konfigurasi interface fastethernet 0 pada router supaya interface tersebut bisa terhubung dengan jaringan 192.168.2.0/24!
6. Tuliskan langkah-langkah konfigurasi serial 0 pada router supaya interface tersebut bisa terhubung dengan jaringan 172.16.0.0/16! (interface serial ini merupakan DCE)
7. Set routing protocol dengan menggunakan RIP versi 2!
8. Set password untuk user mode!
9. Gimana cara men-set router A dan router B agar kedua jaringan diatas saling berhubungan!
10. Apakah maksud dari gambar jam pada router B?

Jawab

1. User mode : dapat memeriksa status router, pada mode ini perubahan konfigurasi tidak diperbolehkan. ( ditandai dengan prompt ">" )
Privileged mode : dapat melakukan perubahan pada konfigurasi router. ( ditandai dengan prompt "#" )

2. dapat digunakkan dengan mengetikan tanda tanya ( ? ). Tanda tanya juga bisa digunakan untuk memeriksa syntax yang tidak lengkap atau parameter yang harus dimasukkan ( mis : "int ?" )

3. 5 Komponen router menurut arsitektur Router Cisco :
a. RAM/DRAM
b. NVRAM
c. Flash
d. ROM
e. Interface

4. a. Interface
b. Subinterface
c. Controller
d. Map-list
e. Map-class
f. Line
g. Router
h. IPX-router
i. Route-map

5. a. configure terminal
b. interface fastethernet 0/0
c. ip address 192.168.2.1 255.255.255.0
d. no shutdown
e. exit

6. a. configure terminal
b. interface serial 0/0
c. ip address 172.16.1.1 255.255.0.0
d. clock rate 56000
e. no shutdown
f. exit

7. a. router rip
b. version 2
c. network 192.168.2.0
d. network 172.16.0.0
e. exit

8. line console 0
login
password PasswordAnda

9.
Setting di RouterA :
RouterA(config)#ip route 198.110.3.0 255.255.255.0 198.110.5.2
RouterA(config)#ip route 198.110.4.0 255.255.255.0 198.110.5.2

Setting di RouterB :
RouterB(config)#ip route 198.110.1.0 255.255.255.0 198.110.5.1
RouterB(config)#ip route 198.110.2.0 255.255.255.0 198.110.5.1
RouterB(config-if)#clock rate 9600

10. clock - menentukan rate transfer data yang dapat melalui router tersebut.

Soal Jaringan Komputer 3

1. Sebutkan yang anda ketahui tentang Internet Protocol ( IP )!
2. Apakah yang dimaksud dengan IP Subneting?
3. Sebutkan langkah-langkah untuk menentukan Subnet Mask untuk suatu alamat IP!
4. Apa fungsi gateway dalam suatu jaringan?
5. Apa kegunaan DHCP?
6. Apa tujuan dari subnetting ?
7. Bagaimana cara menentukan banyaknya host dari suatu jaringan? hitung juga banyak host dari jaringan
diatas!
8 Jika menggunakan rumus 2^n – 2 , berapa host maksimum yang dapat ditampung oleh MARKETING?
9. Pada Network address diatas, apakah yang dimaksud dengan angka 24?
10. Tentukan subnet mask baru dari jaringan diatas!

Jawab

1. Internet Protocol ( IP ) adalah protokol jaringan yang digunakan di internet. Ketika sebuah informasi mengalir ke bawah pada layer model OSI, data di enkapsulasi pada setiap layer. Pada layer network, data dienkapsulasi dalam paket-paket, IP menentukan bentuk dari header paket tetapi tidak peduli mengenai data yang sebenarnya, dia menerima apapun yang diberikan oleh layer diatasnya.

2. Pembagian IP menjadi jaringan-jaringan lebih kecil untuk menyediakan fleksibilitas pengalamatan.

3. a. tampilkan alamat IP dalam format biner,
b. ganti semua bit bagian network dengan 1,
c. ganti semua bit bagian host dengan 0,
d. ubah kembali semua ke bentuk Dotted Decimal.

4. IP yang berfungsi sebagai pintu gerbang untuk dapat berhubungan jaringan lain.

5. untuk mendapatkan IP dinamis.

6. - untuk membagi jaringan.
- untuk effisiensi pemberian IP

7. 2^n ( n merupakan banyaknya angka 0 yang ada pada subnet mask )
banyak host untuk jaringan diatas : 2^5 = 32 ( ada 32 host )

8. 32, 1 untuk broadcast dan 1 lagi untuk Network Address.

9. itu merupakan subnet mask yang berarti subnet mask nya : 255.255.255.0
subnet mask tersebut didapat dengan cara :
24 ( 1 byte = 8 bit )
berarti banyaknya angka 1 : 11111111.11111111.11111111.00000000
convert ke decimal : 255.255.255.0

10. Subnet mask lama : 255.255.255.0
Rumus : 2^n - 2 >= Jumlah jaringan yang diminta
2^n - 2 >= 3
n = 3 ( jumlah angka 1 yang ditambahkan ke subnet mask lama )

Subnet mask lama : 11111111.11111111.11111111.00000000
Subnet mask baru : 11111111.11111111.11111111.11100000
Subnet mask baru dalam decimal : 255.255.255.224

Soal Jaringan Komputer 2

1. Sebutkan 4 Layer Pada TCP/IP!
2. Apakah yang dimaksud dengan paket switching?
3. Sebutkan tujuan dari layer internet!
4. Sebutkan persamaan dan perbedaan antara Model OSI dengan Model TCP/IP!
5. Apakah yang anda ketahui tentang NIC?
6. Sebutkan 3 hal yang harus diperhatikan ketika memilih Network Card!
7. Sebutkan yang anda ketahui tentang MAC Address!
8. Sebutkan yang anda ketahui tentang HUB, Switch, dan Router!
9. Sebutkan yang anda ketahui tentang Physical Topology dan jenis-jenisnya!
10. Sebutkan yang anda ketahui tentang Logical Topology dan jenis-jenisnya!

Jawab
1. a. Layer Aplikasi
b. Layer Transport
c. Internet Layer
d. Layer Network Access

2. Proses dimana segment layer berjalan bolak-balik diantara kedua host untuk mengetahui apakah ada terdapat koneksi secara logika untuk beberapa waktu.

3. Tujuan dari layer internet adalah untuk mengirimkan packet dari sumber menuju jaringan manapun pada internetwork dan menibakannya di tujuan dengan tidak tergantung pada path dan jaringan yang merka ambil untuk sampai di sana.

4. Persamaan :
- terdiri dari layer-layer
- memiliki layer application meskipun keduanya memiliki layanan yang berbeda
- memiliki layer transport dan layer network yang hampir mirip
- menggunakan teknologi packet-switched
- profesional jaringan harus mengetahui keduanya

Perbedaan :
- TCP/IP memasukkan layer presentation dan session menjadi satu dengan layer application
- TCP/IP memasukkan layer data link dan physical menjadi satu layer Network Access.
- TCP/IP tampak lebih sederhana karena memiliki lebih sedikit layer.
- Protocol TCP/IP adalah standard dimana internet dikembangkan. jadi TCP/IP mendapat kredibilitas hanya karena protokolnya. Sebaliknya, jaringan tidak dibuat berdasarkan protokol OSI, meskipun OSI digunakan sebagai panduan.

5. NIC ( Network Interface Card ) adalah PCP ( Printed Circuit Board ) yang menyediakan kemampuan komunikasi jaringan dari dan ke PC, disebut juga sebagai LAN Adapter.

6. a. Tipe Network ( Etherned, Tooken Ring, FDDI)
b. Tipe Media ( Twisted pair, coaxialm or fiber-optic )
c. Tipe sistem bus ( PCI/ISA )

7. Media Access Control ( MAC ) merupakan pengalamatan yang terdapat pada peralatan secara fisik yang langsung diberikan pada saat peralatan tersebut dibuat dan tidak dapat diubah.

8. HUB : Merupakan peralatan yang dapat menghubungkan beberapa komputer menjadi satu jaringan. Biasanya dikelompokkan berdasarkan jumlah port yang dimiliki.

Switch : Sekilas switch sangat mirip dengan hub, tetapi keduanya berbeda. pada switch paket diteruskan berdasarkan MAC address yang disimpan dalam table MAC address yang dimiliki switch.

Router : Merupakan peralatan jaringan yang beroperaso pada layer OSI 3 ( Network layer ). Beberapa router bergabung, menghubungkan beberapa segment jaringan atau bahkan seluruh jaringan. Router mengirimkan data berdasarkan informasi pada layer 3.

9. Physical Topology merupakan kondisi dimana sebenarnya jaringan dihubungkan secara langsung.
- Bus Topology : menggunakan "single backbone segment" sebagai penghubung semua komputer yang ada pada jaringan. Semua komputer terhubung secara langsung ke kabel tersebut.
- Ring Topology : menghubungkan satu komputer dengan komputer berikut, dan seterusnya sehingga komputer paling akhir akan terhubung ke komputer yang pertama.
- Star Topolgy : menghubungkan semua kabel ke satu buah titik pusat. Titik pusat ini biasanya berupa hub atau switch sehingga seolah-olah komputer yang terhubung berbentuk seperti bintang.
- Extended Star Topology : menggabungkan beberapa topologi star menjadi satu.
- Hierarchical Topology : dibuat mirip dengan topologi extended star tetapi system jaringan yang dihubungkan dapat mengontrol arus data pada topologi.

10. Logical Topology didefinisikan sebagai suatu cara bagaimana media jaringan dapat diakses oleh komputer.
- Topologi Broadcast : berarti setiap host dapat mengirim paket dan akan mengirimkan paket ke semua host pada media komunikasi jaringan. tidak ada aturan rumit siapa yang akan menggunakan jaringan berikutnya.
- Token-passing mengendalikan akses pada jaringan dengan mempass-kan sebuah token elektronik yang secara sekuensial akan melakukan masing-masing anggota dari jaringan tersebut. Ketika sebuah komputer mendapatkan token tersebut berarti komputer tersebut diperbolehkan mengirimkan data pada jaringan. Jika komputer tersebut tidak memiliki data yang akan dikirim, makan token akan dilewatkan kekomputer berikutnya, Kejadian akan berulang-ulang terus.

Soal Jaringan Komputer 1

1. Apakah jaringan/network itu?
2. Sebutkan 3 macam jenis jaringan dan jelaskan perbedaanya secara singkat!
3. Sistem jaringan seperti apa yang dipakai pada Software Laboratory Center ini?
4. Sebutkan 7 layer pada Model Referensi OSI!
5. Apakah fungsi pada layer ke-5?
5. Sebutkan urutan warna untuk kabel Straight dan Cross!
6. Sebutkan 2 dampak jika terjadi salah penyusunan urutan warna pada kabel Straight maupun Cross!
7. Apakah perbedaan fungsi antara kabel Straight dan Kabel Cross?
8. Ketika OSI layer 2 terhambat, apakah yang akan terjadi?
9. Apakah yang dimaksud dengan enkapsulasi data?
10. Sebutkan 5 langkah konversi yang dilakukan jaringan pada proses Enkapsulasi data!

Jawab

1. Jaringan/Network adalah situasi dimana 2 komputer atau lebih saling berhubungan satu sama lain, saling berkomunikasi secara elektronik, saling membagi sumber daya ( mis : cd-rom, printer, file sharing, internet, dll ) dan juga dapat mempergunakan sumber daya yang sama.

2. a. LAN ( Local Area Network ) - sebuah jaringan komputer yang dibatasi oleh area geografis yang relatif kecil dan umumnya dibatasi oleh area lingkungan seperti perkantoran ( ruang lingkup tidak lebih dari 2 km/segi )
b. MAN ( Metropolitan Area Network ) - biasanya mencakup area yang lebih besar dari LAN, misalnya antar wilayah dalam satu propinsi. MAN juga dapat menghubungkan beberapa LAN menjadi suatu bagian jaringan yang lebih besar lagi.
c. WAN ( Wide Area Network ) - jaringan yang ruang lingkupnya sudah terpisahkan oleh batas geografis dan biasanya sebagai penghubungnya sudah menggunakan media satelit ataupun kabel bawah laut.

3. LAN

4. Layer 1 : Layer Physical
Layer 2 : Layer Data Link
Layer 3 : Layer Network
Layer 4 : Layer Transport
Layer 5 : Layer Session
Layer 6 : Layer Presentation
Layer 7 : Layer Application

5. Layer Session : Layer ini berfungsi untuk menyelenggarakan, mengatur dan memutuskan sesi komunikasi. Session Layer menyediakan servis kepada layer Presentation. Layer ini juga mensikornisasi dialog diantara 2 host layer presentation dan mengatur pertukaran data.

6. Urutan warna kabel Straight : PO, O, PH, B, PB, H, PC, C
Urutan warna kabel Cross : PH, H, PO, B, PB, O, PC, C

7. Agar mengikuti standart yang telah di tentukan, sehingga dapat mempermudah orang lain yang mengurusnya.
Warna tidak harus mengikuti kaidah urutan pada nomor 6.

8. Kabel Straight : untuk menghubungkan 2 atau beberapa peralatan komputer yang berbeda jenisnya.
Kabel Cross : untuk menghubungkan 2 atau beberapa peralatan komputer yang sama jenisnya.


9. Enkapsulasi data adalah proses dimana ketika suatu data akan dikirim antar komputer maka awalnya data tersebut akan dikemas melalui suatu proses yang disebut 'encapsulation'. pada proses ini akan mengemas data dengan informasi protokol yang diperlukan sebelum dilakukan pengiriman ke dalam jaringan. Oleh karena itu, sewaktu paket data bergerak masuk melalui OSI layer, data tersebut akan menerima Header, Trailer dan informasi laiinya.

10. a. Menyiapkan data
b. Mengemas suatu data untuk pengiriman
c. Menambahkan alamat jaringan kedalam header
d. Menambahkan alamat lokal pada 'Data Link Header'
e. Konversi ke dalam bits

Cara menjaga keamanan web

Cara-cara apa saja yang dilakukan dalam upaya menjaga keamanan situs web dari ancaman atau serangan? Jelaskan.

Jawab :
Sebenarnya keamanan dalam teknologi informasi atau secara lebih spesifik lagi web di internet yang menjadi penyebab ancman dan serangan adalah :
1) Hacking
2) Cyber Theft
3) Unauthorized Use at work
4) Computer Viruses
5) Piracy

Di bawah ini berbagai kasus keamanan situs web yang saya ambil dari beberapa pengalaman dan informasi serta referensi :

1) Celah-celah keamanan pada apliaksi web seperti SQL Injection, XSS, RFI, LFI, Arbitary File Upload/Download, masih saja saya jumpai hingga kini. Diantaranya ada yang hingga kini masih dijadikan newbie sebagai bahan latihan. Kesalahan dalam scripting pembuatan web adalah hal terbanyak yang dimanfaatkan oleh para attacker, sehingga rata-rata web yang berhasil diserang melalui lubang ini. Kelemahan-kelemahan scripting yang ditemukan pada proses vulnerabilities scanning misalnya, XSS, SQL Injection, PHP Injection, HTML Injection, dan lain sebagainya. Begitu pula pada CMS semisal Mambo, Joomla, WordPress, dan lainnya. Dan ini memungkinkan tindakan hacking terjadi.

2) Password Salah satu hal yang sepertinya paling tidak dipedulikan keamanannya. hampir pada semua situs pemerintah masih terdapat account dengan password-password yang tidak secure: 123456, admin, administrator, depkominfo, password menggunakan kode SKPD, dan masih banyak lagi. Sepertinya kesadaran tentang keamanan masih perlu ditingkatkan. kalau tidak, maka jangan protes jika ada script kiddie yang bermain-main di area Admin dan berbuat kekacauan Banyak sekali account dengan password yang sangat tidak secure

3) Banyak developer yang lalai meninggalkan Sql Dump di directory terbuka yang mudah di crawling oleh mesin pencari sehingga Attacker dengan mudah memanfaatkan Google untuk menemukan file-file yang berisi info sensitif tersebut (username, password, etc..). Sudah semestinya file-file yang tidak dibutuhkan dihapus dari server sebelum web dipublikasikan.

Dalam upaya menjaga keamanan situs web di internet kita hendaknya melakukan hal sebagai berikut :
1) Manajemen Keamanan Situs Web

Melakukan manajemen keamanan situs web adalah serangkaian tindakan pengamanan tidak terbatas pada pembuatan atau penetapan prosedur-prosedur penggunaan/akses bagi staf atau kontraktor dalam rangka meminimalkan resiko keamanan, antara lain:

· Menjamin keutuhan dan ketersediaan konten dan infrastruktur

· Menjamin pengoperasian yang benar dan aman atas Situs Web, seperti kendali/kontrol atas server dan tidak meninggalkan sistem manajemen konten dalam keadaan tidak terjaga;

· Menjamin perlindungan keutuhan informasi elektronik dan program komputer yang digunakan;

· Mencegah kerusakan aset dan terhentinya aktifitas bisnis dan manajemen organisasi;

· Melindungi keutuhan dan kerahasiaan data/informasi baik yang dikirimkan via situs maupun yang tersimpan dalam infrastruktur Situs Web.

2) Standar Sistem Keamanan

a. Keberadaan sistem keamanan setidaknya memperhatikan beberapa aspek antara lain sebagai berikut;

a) Aspek Fisik dan Lingkungan Keamanan, yang mencakup proteksi perangkat dan informasi dari kerusakan fisik dengan cara mengontrol akses terhadap informasi dan perangkat, termasuk penentuan lokasi dan pengenalan siapa saja yang terkoneksi kedalam sistem.
b) Aspek Manajemen Operasi dan Komunikasi serta Manajemen Keberlanjutan Bisnis yang meliputi antara lain:

· manajemen/tata kelola yang semestinya dan pengoperasian yang aman terhadap fasilitas pengolahan informasi selama dilakukannya kegiatan harian dan menjaga sedapat mungkin agar aktivitas bisnis atau penyelenggaraan layanan publik tidak terhenti sekiranya terjadinya gangguan atau kerusakan terhadap sistem.

· Pembagian dan/atau pemisahan tugas dan kewenangan, dan

· Pemantau ketersediaan baik performa maupun kapasitasnya, serta keakuratan dan kemutakhiran data, dan kerahasiaannya.

c) Aspek Teknis: Standar teknis keamanan paling tidak memperhatikan 3 tingkatan pertahanan yakni:

· Tingkatan Sistem Operasi (OS Level);

· Tingkatan Web Server,

· Tingkatan Aplikasi Web (Web Aplication Level).

d) Aspek Legal: Desain dan Penyelenggaraan Situs Web serta pengadaan komponen-komponen dari Situs Web harus diperoleh dan diselenggarakan secara sah.. Para Administrator atau Penyelenggara Situs Web diharapkan berkonsultasi dan/atau berkoordinasi dengan ahli hukum baik inhouse ataupun professional untuk meminta opini hukum agar penyimpanan informasi yang sensitif dan data personal milik seseorang tidak salah secara hukum. Pada prinsipnya hukum melindungi kerahasiaan informasi yang sensitif dan informasi individual, yang mencakup tidak hanya tindakan perolehan dan penggunaan saja melainkan juga bagaimana kewajiban standar penyimpanan ataupun pengumuman informasi kepada pihak ketiga. Pada intinya, hukum akan melihat apakah perolehan informasi telah dilakukan secara sah (lawful obtained) dan penanganannya sebagaimana-mestinya (treated fairly). Terhadap perolehan dan penggunaan data personal yang tidak sebagaimana mestinya akan menuai gugatan si pemilik
informasi dan kemungkinan ancaman pidana.

b. Akses Kontrol: Mengendalikan akses kedalam informasi dan sistem informasi berdasarkan kebutuhan aktifitas bisnis dan keamanan, menentukan siapa-siapa saja yang berhak mengakses (3rd party, sys admin, content author), dan Proses Pemantauan dan Pengkajian Kembali terhadap Akses secara berkala.

c. Keamanan situs ditentukan oleh konfigurasi yang benar dan aman, antara lain sebagai berikut:

· Penentuan Aplikasi web server yang sesuai dengan interoprabilitas atau kompatibilitas sistem yang telah ada

· Penentuan Sistem operasi komputer dari web server;

· Penataan Jaringan Komputer Lokal dari web server;

· Sistem aplikasi pendukung yang berada di dalam web server

· Otorisasi nama domain dari jaringan web server;

· Kendali akses jarak jauh terhadap web-server (Remote web server) seperti penggunaan FTP dan server extensions lainnya;

· Keamanan fisik dan personel;

· Verifikasi regular terhadap kehandalan sistem.

3) Beberapa Langkah-Langkah Umum Yang Dapat Direkomendasikan dalam menjaga dan berupaya memberikan pengamanan pada web di internet

· Buat dan tetapkan kebijakan pengamanan dengan jelas (SOP)

· Sebaiknya gunakan satu komputer khusus untuk setiap fungsi server secara spesifik dan dedicated (contoh: account server, web-server, database-server, email server, dll.) dan tempatkan pada wilayah yang aman (contoh: Demilitered Zone/DMZ ).

· Lakukan konfigurasi sistem jaringan dengan benar dan aman.

· Mutakhirkan sistem operasi dan komponen-komponennya secara berkala sesuai jaminan dukungan produk (support product) dari vendor dan senantiasa melakukan instalasi program pelengkap terakhir

· Membersihkan informasi-informasi yang merupakan sampah dan/atau informasi yang sudah melampaui masa retensi

· Membuat sistem pengaman (firewall) untuk jaringan komputer, dan Intrusion Prevention Sistem (IPS), Web Application Firewall.

· Pembatasan script yang dapat ditampilkan pada program penelusur (browser)

· Lakukan pendidikan dan pelatihan kepada staf yang ditugaskan dan bertanggung jawab

· Membagi tugas-tugas pekerjaan dari beberapa server

· Membuat sistem pencatatan pengaman (log files) agar dapat mendeteksi penyusupan

· Menjaga keotentikan data

· Menjaga asset dan manajemen

· Menjaga kelancaran aktifitas layanan publik meskipun sistem tidak berfungsi (down)

· Mengingatkan pengguna untuk minimum menggunakan 6 alphanumeric sebagai password dan diubah secara berkala

· Pastikan hanya orang-orang tertentu sesuai dengan kewenangannya yang dapat mengakses server dan mereka memiliki privilege yang penting untuk menjalankan tugas-tugas mereka

· Tempatkan pengaman (firewall) diantara web server dengan Internet untuk memblokade traffic yang tidak diharapkan

· Pantau terus security bulletins yang terkait dengan Sistem Operasi yang anda gunakan

· Pastikan anda telah mengklasifikasi informasi yang sensitif untuk organisasi anda dan buatlah bahwa informasi tersebut tetap tidak akan tertampil meskipun ada kesalahan ataupun kegagalan sistem.

· Kunci nama domain untuk mencegah pembajakan nama domain oleh pihak ketiga

· Gunakan server yang terpisah dalam menjalankan HTTPS protokol dimana informasi personal ditransmisikan dan yakinkan bahwa nama server sesuai dengan sertifika SSL yang digunakan

· Implementasikan sistem pendeteksi penyusupan (intrusion detection sistem) yang secara aktif memonitor setiap tindakan penggunaan dan mengidentifikasi upaya-upaya penerobosan sistem keamanan.

· Lindungi semua potensi atau celah kelemahan sistem dengan cara meng-update paket antivirus yang anda gunakan secara berkala.

· Gunakan fitur image confirmation untuk melengkapi kode akses guna menghindari upaya penelusuran password.

4) Beberapa Langkah-langkah Pelengkap Keamanan Yang Direkomendasikan

· Pada dasarnya setiap program komputer menyimpan potensi kesalahan pemrograman (bug) yang baru akan diketahui dibelakang hari. Umumnya setiap vendor akan selalu memperbaiki sistemnya berdasarkan komentar dan/atau temuan permasalahan dari penggunanya dan mereka telah mempersiapkan paket-paket program yang menyempurnakan kelemahan tersebut (patches). Upayakan untuk selalu mengupdate paket-paket perbaikan tersebut secara berkala, ikuti cara instalasinya dan perhatikan baik-baik kelemahan apa yang telah ditutup dengan keberadaan paket tersebut dengan patch-patch.

· Pada saat melakukan konfigurasi pada web server, yakinkan bahwa pengaturan terhadap kendali akses (akses kontrols) telah disiapkan secara baik untuk semua direktori termasuk root direktori dari web, antara lain Pastikan bahwa struktur direktori web hanya dapat dimodifikasi oleh web-server administrator Akses kepada halaman web hanya diperkenankan untuk membaca informasi sebagaimana adanya, meskipun pengguna web mungkin akan meminta izin untuk memasukkan scripts atau program agar informasi yang dimintanya menjadi lebih dinamis

· Pengguna Web tidak dapat melihat daftar direktori dalam web-server

· Jangan berikan akses bagi pengguna untuk melihat konfigurasi file dalam web-server

· Tidak ada level yang lebih tinggi dari administrator dan tidak ada struktur direktori diatas root dalam struktur direktori dari web-server

· Hindarkan semua konten yang tidak perlu, dan jangan aktifkan program atau mekanisme yang tidak diperlukan

· Hapus semua halaman yang salah karena akan menampilkan informasi yang tidak patut

· Terkait dengan akses kontrol dan privilege, jangan buat akses kontrol melebihi kewenangan atau hak privilege kepada pengguna web karena akan dapat disalahgunakan.

· Terkait dengan sistem pencatatan akses (Logging), perlu diperhatikan sebagai berikut:

Aktifkan sistem pencatatan kegiatan akses (log) pada web-server yang dapat melihat aktivitas-aktivitas yang dilakukan pengguna dan melihat upaya-upaya untuk menjalan suatu script yang tidak ada pada web-server. Log harus dapat menampilkan informasi tentang koneksi yang dilakukan kepada web-server, kewenangan pengguna, tampilan pesan kesalahan, dan informasi yang lain yang dapat dipergunakan untuk melakukan penelusuran sekiranya terjadi akses illegal.

Logs harus secara otomatis menyimpan dan mengupdate datanya dan mengirimkan data tersebut kepada central management server. Hal ini dapat membuat tambahan pekerjaan bagi para penyelusup untuk menghilangkan data tersebut pada lokal log files.

Sistem pencatatan akses akan lebih baik jika dilengkapi sistem pendeteksi gangguan penyusupan (Intrusion Detection Sistem).

· Intrusion Prevention Sistem Untuk mencegah gangguan terhadap web server, dapat digunakan perangkat tambahan antara lain sebagai berikut :

a) Firewall

b) IPS (Intrusion Prevention System)

c) Web aplication firewall

d) Digital Certificate

f. Terkait dengan Scripts and fungsi ekstensi Server, perlu diperhatikan beberapa langkah berikut:

· Hapus semua contoh scripts yang terpasang pada server;

· Non-aktifkan semua fitur tambahan yang mengakibatkan suatu script dapat dijalankan kecuali apabila hal tersebut memang dibutuhkan

· Jangan menggunakan perintah level sistem operasi pada webserver ;

· Periksa semua script yang digunakan pada web-server, pastikan bahwa input hanya untuk tipe yang diharapkan dan panjang data yang sesuai, selain itu hanya menampilkan pesan error. Harus juga diperhatikan bahwa spesial karakter dan nilai kosong diperlakukan secara layak. Jangan dimungkinkan pengguna dapat keluar dari perintah dalam level sistem operasi shell.

· Sebaiknya simpan semua scripts dalam direktori yang sama dan jangan diperkenankan untuk menjalankan script yang berada di luar direktori ini.