void initGol() { go.removeAllItems(); Statement ste = null; ResultSet rse = null; try { konek k = new konek(); conn = k.login(); ste = conn.createStatement(); String sql = "SELECT jenis from golongan order by jenis ASC"; rse = ste.executeQuery(sql); while (rse.next()) { String no = rse.getString("jenis"); go.addItem(no); } gol = go.getSelectedItem().toString(); } catch (Exception e) { System.out.println(e); } finally { try { if (rse != null) { rse.close(); } } catch (SQLException e) { } try { if (ste != null) { ste.close(); } } catch (SQLException e) { } } }
Pages
S | H | A | R | E
SHintA RE - sampaikan ilmu walau satu ayat..
Dokumentasi untuk memunculkan database di combobox
Dokumentasi pencarian nama obat
private void cariobatKeyPressed(java.awt.event.KeyEvent evt) { try { String nm = cariobat.getText(); conn = (Connection) new konek().login(); statement = conn.createStatement(); MTObat.getDataVector().removeAllElements(); String sql = "select idobat, jenis, namaobat, keterangan from obat o, golongan g , satuanobat s WHERE o.idgolongan=g.idgolongan AND s.idsatuan=o.idsatuan AND namaobat like '%" + nm + "%'"; ResultSet rs = statement.executeQuery(sql); while (rs.next()) { Object[] data = {rs.getString("idobat"), rs.getString("jenis"), rs.getString("namaobat"), rs.getString("keterangan"),}; MTObat.addRow(data); } } catch (Exception e) { e.printStackTrace(); } }
Dokumentasi insert date from date.util to mysql
public String setDate(String date) { String tg = ""; String tgl[] = date.split("-"); if (tgl[1].equals("Jan")) { tg = tgl[0] + "-" + "01"+ "-" + tgl[2]; } else if (tgl[1].equals("Feb")) { tg = tgl[0] + "-" + "02"+ "-" + tgl[2]; } else if (tgl[1].equals("Mar")) { tg = tgl[0] + "-" + "03"+ "-" + tgl[2]; }else if (tgl[1].equals("Apr")) { tg = tgl[0] + "-" + "04"+ "-" + tgl[2]; }else if (tgl[1].equals("Mei")) { tg = tgl[0] + "-" + "05"+ "-" + tgl[2]; }else if (tgl[1].equals("Jun")) { tg = tgl[0] + "-" + "06"+ "-" + tgl[2]; }else if (tgl[1].equals("Jul")) { tg = tgl[0] + "-" + "07"+ "-" + tgl[2]; }else if (tgl[1].equals("Agu")) { tg = tgl[0] + "-" + "08"+ "-" + tgl[2]; }else if (tgl[1].equals("Sep")) { tg = tgl[0] + "-" + "09"+ "-" + tgl[2]; }else if (tgl[1].equals("Okt")) { tg = tgl[0] + "-" + "10"+ "-" + tgl[2]; }else if (tgl[1].equals("Nov")) { tg = tgl[0] + "-" + "11"+ "-" + tgl[2]; }else{ tg = tgl[0] + "-" + "12"+ "-" + tgl[2]; } return tg; }
Dokumentasi pembobotan fungsi
untuk menyimpan jumlah[kolom]fungsi di database
untuk pembobotan fungsi
public void simpenkolomfungsi() { konek k = new konek(); conn = (Connection) k.login(); // String a = null; //String b = null; try { statement = conn.createStatement(); String sql = "SELECT idobat, COUNT( * ) AS jumlahfungsi FROM fungsiobat GROUP BY idobat ORDER BY idfungsiobat DESC LIMIT 1"; ResultSet rs = statement.executeQuery(sql); while (rs.next()) { String a = rs.getString("idobat").toString(); String b = rs.getString("jumlahfungsi").toString(); System.out.println("idobat : " + a + " jumlah fungsi : " + b + " "); try { statement = conn.createStatement(); String sqlok = "INSERT INTO temp_fungsi (idobat,totalfungsi) values('" + a + "','" + b + "')"; System.out.println("simpan idobat : " + a + " bobot : " + b + " "); statement.executeUpdate(sqlok); } catch (Exception e) { System.err.println("gagal : " + e); } } } catch (Exception e) { System.err.println("kacau : " + e); } }
untuk pembobotan fungsi
public String FuzzyFungsi(String n) { int jumlah = Integer.parseInt(n); String nilai = null; if ((jumlah <= 10) && (jumlah >= 8)) { nilai = "5"; } else if ((jumlah < 8) && (jumlah >= 6)) { nilai = "4"; } else if ((jumlah < 6) && (jumlah >= 4)) { nilai = "3"; } else if ((jumlah < 4) && (jumlah >= 2)) { nilai = "2"; } else { nilai = "1"; } return nilai; }
untuk simpan bobot fungsi ke dalam tabel bobot_fungsi
jangan lupa letakkan method simpenDatabobot(); di aksi JButton
public void simpenDatabobot() { konek k = new konek(); conn = (Connection) k.login(); String oo = null; String c = null; try { statement = conn.createStatement(); String sql2 = "SELECT idobat, totalfungsi FROM temp_fungsi ORDER BY idtempfungsi DESC LIMIT 1"; ResultSet rsa = statement.executeQuery(sql2); while (rsa.next()) { c = rsa.getString("idobat").toString(); String d = rsa.getString("totalfungsi").toString(); oo = FuzzyFungsi(d); System.out.println("idobat : " + c + " bobot : " + oo + " "); try { statement = conn.createStatement(); String sql3 = "INSERT INTO bobot_fungsi (idobat,bobotfungsi) values('" + c + "','" + oo + "')"; System.out.println("simpan idobat : " + c + " bobot : " + oo + " "); statement.executeUpdate(sql3); } catch (Exception e) { System.err.println("gagal : " + e); } } } catch (Exception e) { System.err.println("kacau : " + e); } }
jangan lupa letakkan method simpenDatabobot(); di aksi JButton
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) { saveData(); simpenkolomfungsi(); simpenDatabobot(); int brs = TFungsi.getRowCount(); for (int i = 0; i < brs; i++) { MTFungsi.removeRow(0); } awal(); showTableDaftar(); }
Kehidupan 3tahun di Grafika
*pertama kali msuk grafika kayak msuk rumah sakit#tllau bnyak lorong
*aku ga mngerti oven di kelas sablon itu malfungsi atau multifungsi...#di pke buat ngeringin hasil sablon sekalian masak
*tiap msuk di kelas repro rasana kyak msuk rumh hantuna jatim park
*kelas setting penuh dengan kata membosankan tp jg mnyanagkan #stu2na ksmpatn bsa liat oky dr jarak deket
*kelas design selalu kompak satu genk duduk d dpan sndiri #aku sih cm pgen liatin p.cone aja
*WC segala macam kelamin
*tangga tempat maksiat
*adegan ambil kapur sambil muter2 sekolah sekalian beli bakso
*sparepart mesin cetak jadul di ambil trs di kiloin #akhrna q ngerti knpa skolah qt pndah dket pasar loak..mngatasi siswa yg lagi kanker
*shalat dhuhur di masjid skolah #mnghindari mata pelajaran prtama skalian Tepe2 di senior
*si itu lho yang bawa motor ini#cew2 lebih hapal motor daripada nama yang punya
*Razia sepatu # momen kedua q nangis di kelas
*panderman bukit cintana anak grafika
*mancing ikan di kolam depan kleas pas pelajaran repro #ikan empang aja semangat 45 bwa senar sama umpan dari rumah
*basecamp #tempat keren dan penuh kenangan harus direlakan demi broadcasting TV pendidikan
*perpus #tmpat q brnaung kl lagi bosen dan kanker
*harun yahya dan teori darwin #hubunganna sama KKPI apa pak??
*Pak apa sih gunanya pelajaran matematika yang sulit bin njlimet itu di lapangan nnti,kan qt designer pak...#pertanyaanna begoNa si candra
*ayam abu2,black market,jack daniels,sampoerna,nyolong hardisk,keyboard,speaker,headset #grafika undercover
*jari kepotong mesin, kelindes rol cetak,rambut ketarik mesin plat #kejadian mengerikan tahun2 pertama
*duduk, menyimak tapi pikiran gak di tempat #kebiasaanku di kelas matematika
*tidur di tengah2 jam repro #capek abis begadang ambil paketan di warnet
*tukeran hadiah #kebiasaan ku sama shincan
*minum air keran di sekolah #lagi kanker stadium akhir
*nagih uang LKS ala preman #sapa suruh q jadi bendhara
*INTER ARMA CARITAS #PMR,Paskibra,Pramuka, eskul males2n
*main pingpong pas pelajaran #drpda meja pingpongna nganggur
*ini jam olahraga, bukan saatnya makan bakso #kan qt g bisa maen sepak bola pak
* kelas kimia #stu2na guru pelit yg nilai
*makan gorengan di sebelah sekolah #pisang goreng di makan sma petis??zzzz
*makan nasgor di cafe sebelah sekolah #awal bulan aja. akhir bulanna brakhir di warteg sebelah kos2an
*penggemar no satu...penggemar no lima # kebiasaan burukku
*ketemu co yg gak pengen di temuin #sin, langkah cepat
*pesen kopi ya bu #traktiranna anak2 cowok di kelas
*bu, SPPna belum ada diskon ya?? #kerjaan q di bag.keuangan.kasian..ibu SPPna meninggal dunia padahal masih muda
*mutilasi sayur2an #pelajaran pertama photosop
*flashdisk pertama q 512 hargana 150 modelna sama ky sinta, isinya bukan pelajaran tp gmbar2 #komputerna Sinta 60% gambar kartun
*guru2 yg muda GRin murid #pengalaman pribadi
*kakiku kelindes ban mobilnya guru setting#jaim depan ank2 pura2 g sakit dalam hati pengen teriak
*alun alun kota #pusat hiburan murah meriah anak grafika
*pacaran sama senior #jamanna hape sm email msh ngrim surat lewat pos
*terpesona terus cinlok terus merid #guru2 di grafika banyak yg masih muda
*makan gak makan ngumpul #motonya anak pramuka
* ga bapak,g ibu,g anak,g adek,g spupu skolahna di grafika #guru2 smpe hapal smua turunanna.guruna juga anak grafika
*jam repro paling asik!! Kelasna di blkang sendiri,gurunya cm ngasih tugas terus ilang. p.har(paling cs sama murid2) malah tidur di klas. anak2 keluyuran ke kantin (yang sekarang jadi foodcourt), perpus, tiduran di masjid sekolah, mancing yang lain belajar maen skateboard di lorong skolah
*kolam depan kelas cetak sudah terkontaminasi pipisna nike x_x
*shinta jelek #tiba2 nangis d toilet cew ktana kcewa g bsa jd ------ (penting ya sin??)
*shinta dan aku, nisa selalu jadi korban setiap upacara baris di depan sendiri #soalna rajin bawa topi sekolah,kalo q cuma pengen sebelahan ma oky aja
*di meja sekolah banyak coretan no HP #maklum g laku. promosinya lewat bangku (keajaiban moving class)
*owwww bang AW!!! #nyindirrr :))
*bau asep di kelas repro #guru2 produksi ma murid2na lagi bakar ubi di belakang sekolah
*kewirausahaan #q pikir cuma teori padahal plajaranna ngitung kertas berdasarkan tebal,jenis dan ukuran untuk mesin cetak
*shinta selalu menyeretku duduk di bangku paling depan atau barisan ke dua di setiap pelajaran
*pas basket ada yang g sngaja nyenggol..... #nyindir lagi :))
*pelajaran PKS matanya selalu meleng ke lapangan basket#OMIGOD senior2 kita ganteng2
*abis ospek pasti seniornya ada yang jadian ma junior#q gak trmasuk
*status nya jomblo?? #prtanyaan q di candra pas perkenalan ospek
*pertama kali masuk grafika mukanya pada culun2 terus rajin abis PKL mendadak jadi bajingan smua
*abis PKL setaun pas ketemu udah ky orang joss semua..pakaian udah necis,hp udah punya, tambah pede, udah makin pinter (pinter ngeles sama gombal) tapi amnesia sama plajaran2
*Pas brgkt PKL semua pada sedih harus pisah setaun. pas ketemu semingguan pada crita2 sampe bosen
*pas PKL selalu ada pejuang yg kalah di medan perang dan akhrna out dari sekolah :((
*PKL di sekolah #pling apes. udah gak dapet duit...kerja rodi
*mas VIKI ketua osis pling ganteng
*bu dwi sma bu sri #srikandi grafika,kaki tangan kepsek
*pak..udah merid atau belum #perkenalan sama guru mat pa kun*m
*dicariin bu wiwik dikantin gara" kelasna kosong
*ngobrol berempat bareng shita nike setelah liburan panjang..ngobrolin first kiss
*ya ampun Okyyy...kata2 yang sering terdengar
*dimarahi bu sri gara2 sering keluar kelas ijin ke km
*makan sama2 di ruang repro satu kelas
*warung gorengan sebelah sekolah namanya markas,,,kalo gak ada duit ya cukup beli krupuk sama petis
*malem taon baru 2006 pertama kali aku keluar di malam taon baru..ujan2an...
*sinta..sinta..sinta..laguna nirina zubir yang diplesetkan #nyindir wkwkwk
*bu dian..wali kelas yang smp sekaran masih bisa dikontak
*siang2 panas disuruh push up sama senior #melepuh rekkk
*istri empat grak #pakGembuk
*angel as himawari | shinta as chibi maruko chan | nike as jayko | shita as shiro petoes
*ditembak sama temen barengan pulang #nyindir
*bawa baju ganti buat jalan2 ke Ramayana sebelum masuk sekolah
*waktu pertama kali pake catlepack berasa bangga buat anak PS sm Pd
*waktu pertama kali dapet baju olahraga berasa jijay
*suatu hari ada banyak yang kesurupan ,,ada pesta hantu di bagian belakang skola _katanya
*gak suka dipanasin waktu selese upacara sama pak gembuk
*kalo lagi olahraga lebih sering nongkrong di kantin dari pada olahraganya
*pak anam..guru yang sering ngebanyol di dpn kelas sendiri, ketawa2 sendiri,.muridna pada tidur smw
*pernah dpt teguran menohok dri guru pks [pak kubam] "tulisan merusak mata"
*suka NGETRENK
*tiap hari ke skul #eskulTime
*kalo di repro slalu duduk berempat #pampers jadi banyak ngobrolnya
*sombongnya minta ampun waktu punya flashdisk 512 mb..baru pertama keluar..disekolah dipamerin ke anak2..
by: @AngelHimawari dilengkapi oleh @Re29_
APLIKASI SIAKAD MOBILE LAPORAN HASIL BELAJAR SISWA
APLIKASI SIAKAD MOBILE LAPORAN
HASIL BELAJAR SISWA
Shinta Rahayu
E(08650153)
Jurusan Teknik
Informatika, Fakultas Sains dan Teknologi
UIN Maulana
Malik Ibrahim Malang
Abstrak, Aplikasi yang
dibuat dengan menggunakan bahasa pemrograman Java yang diimplementasikan pada
perangkat mobile yaitu Java 2 Micro edition atau J2ME, untuk membangun sebuah
aplikasi siakad yang mengakses webserver. Aplikasi ini diharapkan bermanfaat
bagi para orangtua untuk mengetahui nilai-nilai ulangan, UTS maupun UAS
sehingga orang tua lebih mudah dalam memantau perkembangan anak-anak mereka
serta bagi para guru yang menguasai perangkat mobile untuk dapat terus
mengupdate nilai-nilai dari anak didiknya.
Pembahasan dalam
paper ini dimulai dari pemahaman desain sistem, kemudian disertai dengan
alur-alur dari user-user yang terlibat. Dilengkapi pula dengan desain database
dan kebutuhan data yang diperlukan.
Kata Kunci : J2ME,
SIAKAD, RAPORSISWA
1.
PENDAHULUAN
Setiap
lembaga pendidikan selalu menginginkan kemajuan dari anak didik mereka. Misalnya dengan memprogram ulangan, UTS
maupun UAS. Hasil dari ulangan, UTS maupun UAS menjadi parameter perkembangan
kegiatan belajar mengajar tersebut. Oleh karena itu, pendidik juga perlu untuk
mengupdate data kapan saja dan dimana saja.
Lembaga pendidikan yang mengeluarkan tenaga
pendidik berkualitas ternyata tidak cukup ampuh untuk meningkatkan perkembangan
anak didik. Oleh karena itu, lembaga pendidikan memerlukan kerja sama yang baik
dengan wali murid. Wali murid atau orang tua memiliki peran penting dalam
perkembangan anak. Dengan memantau perkembangan hasil belajar anaknya, orang
tua akan mengetahui bagaimana cara memotivasi anak tersebut. Tapi seringkali,
anak tidak jujur kepada orang tuanya mengenai hasil dari ulangan, UTS maupun
UAS. Sehingga banyak info dari sekolah yang tidak sampai ke orang tua. Oleh
karena itu dibutuhkan sebuah sistem informasi akademik laporan hasil belajar
yang mampu diakses orang tua/wali murid dimana saja dan kapan saja.
Tujuan
dibentuknya sistem infomasi ini adalah orang tua dapat mengakses nilai secara real time. Selain itu, tenaga pendidik
dapat mengakses dan memanipulasi data secara real time. Sedangkan dari segi
manfaatnya banyak sekali, misalnya orang tua dapat memantau perkembangan kapan
saja dan dimana saja sehingga orang tua tahu bagaimana cara memotivasi anaknya
tersebut. Dari segi tenaga pendidik, manfaat yang diperoleh adalah kemudahan
dalam mengankses dan memanipulasi data. Selain itu aplikasi ini juga mengurangi
tindak ketidak jujuran anak.
2.
RANCANGAN SISTEM
Desain sistem
disini melibatkan dua user yaitu guru dan wali murid. User pertama yaitu
guru, ruang lingkupnya hanya sebatas
melihat laporan nilai dan input mata pelajaran. Sedangkan wali murid, ruang
lingkupnya sebatas mengakses database dan melihat laporan nilai anak mereka.
Sistem ini dirancang dengan sifat real time. Oleh karena itu, guru maupun wali
murid dapat mengaksesnya kapan saja dan dimana saja. Untuk gambaran lebih
jelasnya lihat gambar 2.1.
Ryan Cabrera - True
I won't talk
I won't breathe
I won't move till you finally see
that you belong with me
you might think
I don't look
but deep inside in the corner of my mind
I'm attatched to you
mmmm
I'm weak
it's true
cause I'm afraid to know the answer
do you want me too?
cause my heart keeps falling faster
[chorus]
I've waited all my life to cross this line
to the only thing thats true
so I will not hide
i'ts time to try anything to be with you
all my life I've waited
this is true
you don't know
what you do
everytime you walk into the room
I'm afraid to move
I'm weak
it's true
I'm just scared to know the ending
do you see me too?
do you even know you meant me!
[Chorus]
I've waited all my life to cross this line
to the only thing thats true
so I will not hide
its time to try anything to be with you
all my life I've waited
this is true
I know when I go
I'll be on my way to you
the way that's true
[chorus]
I've waited all my life to cross this line
to the only thing thats true
so I will not hide
its time to try anything to be with you
all my life I've waited
this is true
I won't breathe
I won't move till you finally see
that you belong with me
you might think
I don't look
but deep inside in the corner of my mind
I'm attatched to you
mmmm
I'm weak
it's true
cause I'm afraid to know the answer
do you want me too?
cause my heart keeps falling faster
[chorus]
I've waited all my life to cross this line
to the only thing thats true
so I will not hide
i'ts time to try anything to be with you
all my life I've waited
this is true
you don't know
what you do
everytime you walk into the room
I'm afraid to move
I'm weak
it's true
I'm just scared to know the ending
do you see me too?
do you even know you meant me!
[Chorus]
I've waited all my life to cross this line
to the only thing thats true
so I will not hide
its time to try anything to be with you
all my life I've waited
this is true
I know when I go
I'll be on my way to you
the way that's true
[chorus]
I've waited all my life to cross this line
to the only thing thats true
so I will not hide
its time to try anything to be with you
all my life I've waited
this is true
Jatuh Cinta Ala Anak TI
Jika cinta itu OOP,
Maka, cintaku padamu bagaikan sebuah kelas yang extend ke kelas hati. dimana kelas itu memiliki properties dengan atribute final dengan prefilages private, tidak akan berubah-ubah valuenya sampai akhir waktu.
Jika cinta itu adalah Tipe Data,
Maka, cintaku padamu adalah boolean yang akan selalu kupertahankan tetap true.
Jika cinta itu Method,
Maka, method itu adalah sebuah method yang bersifat rekursif, yang tidak akan pernah berhenti di eksekusi jika status hidupku belum mati.
Jika cinta itu Object,
maka, fungsi destroy(); object tidak akan pernah bisa dipakai. karena sudah di override dengan fungsi looping didalamnya.
Jika cinta itu Array,
maka, cintaku padamu tak pernah empty jika di unset().
Jika cinta itu Java,
maka, kemurnian code cinta ini melebihi kelas manapun yang pernah dibuat. kelas cintaku padamu tidak akan pernah di akses oleh kelas-kelas lain dengan cara apapun.
Jika cinta itu php,
maka, cintaku padamu tidak akan berhenti ketika seseorang asing mencoba menambahkan code die(); karena fungsi itu sudah aku hapus dari core php yang ada.
Jika cinta itu Sistem Operasi,
Maka, tak akan kubiarkan cinta ini terkena virus yang bisa mengganggu stabilitas dan eksistensinya sebagai sistem operasi yang tangguh. kalau perlu akan kugunakan sistem operasi yang kebal virus.
Jika cinta itu Algoritma,
Maka, cinta hanyalah logika.
Jika cinta itu Sequential,
Maka tidak akan ada syarat apapun didalam IF..Karena cinta itu buta..
Jika cinta itu Router,
Maka aku akan selalu masuk global conf mode untuk membuatmu tetap terconfigure.
Jika cinta itu LOOPING,
while (Love)
{
withYouForever();
protectYou();
lovingYou();
makeYouHappy();
eternalLove();
}
sumber
Maka, cintaku padamu bagaikan sebuah kelas yang extend ke kelas hati. dimana kelas itu memiliki properties dengan atribute final dengan prefilages private, tidak akan berubah-ubah valuenya sampai akhir waktu.
Jika cinta itu adalah Tipe Data,
Maka, cintaku padamu adalah boolean yang akan selalu kupertahankan tetap true.
Jika cinta itu Method,
Maka, method itu adalah sebuah method yang bersifat rekursif, yang tidak akan pernah berhenti di eksekusi jika status hidupku belum mati.
Jika cinta itu Object,
maka, fungsi destroy(); object tidak akan pernah bisa dipakai. karena sudah di override dengan fungsi looping didalamnya.
Jika cinta itu Array,
maka, cintaku padamu tak pernah empty jika di unset().
Jika cinta itu Java,
maka, kemurnian code cinta ini melebihi kelas manapun yang pernah dibuat. kelas cintaku padamu tidak akan pernah di akses oleh kelas-kelas lain dengan cara apapun.
Jika cinta itu php,
maka, cintaku padamu tidak akan berhenti ketika seseorang asing mencoba menambahkan code die(); karena fungsi itu sudah aku hapus dari core php yang ada.
Jika cinta itu Sistem Operasi,
Maka, tak akan kubiarkan cinta ini terkena virus yang bisa mengganggu stabilitas dan eksistensinya sebagai sistem operasi yang tangguh. kalau perlu akan kugunakan sistem operasi yang kebal virus.
Jika cinta itu Algoritma,
Maka, cinta hanyalah logika.
Jika cinta itu Sequential,
Maka tidak akan ada syarat apapun didalam IF..Karena cinta itu buta..
Jika cinta itu Router,
Maka aku akan selalu masuk global conf mode untuk membuatmu tetap terconfigure.
Jika cinta itu LOOPING,
while (Love)
{
withYouForever();
protectYou();
lovingYou();
makeYouHappy();
eternalLove();
}
sumber
Intelligence
INTELLIGENCE
Nursyahira Nabilla (08650122), Suci Nur Fauziah(08650146), Shinta Rahayu E(08650153)
Jurusan Teknik Informatika, Fakultas Sains dan Teknologi
UIN Maulana Malik Ibrahim Malang
Abstrack -Intelligence merupakan sebuah konsep yang rumit dimana semua orang mengetahuinya
namun dalam pemahaman yang berbeda-beda dalam beberapa dimensi. Terdapat dua belas tugas yang dapat kita lakukan dengan menerapkan AI. Desain yang berhubungan dengan AI perlu lebih spesifik, terukur, dapat dicapai, dan lebih lebih realistis pada object tersebut. Untuk merancang objek yang cocok, maka perlu mengusulkan disain object secara keseluruhan. Salah satu disain objek yang mungkin adalah meniru kecerdasan manusia. Selain kemampuan manusia untuk bercakap, manusia juga memiliki kemampuan memecahkan masalah, dimana diharapka kehidupan buatan yang kita ciptakan memiliki beberapa kemampuan manusia seperti bercakap dan memcahkan masalah. Kata Kunci : Intelligence, Artificial Intelegence
1. APA KECERDASAN ITU??
Intelligence atau kecerdasan adalah konsep yang rumit dimana semua orang mengetahuinya namun
dalam pemahaman yang berbeda-beda dalam beberapa dimensi. Demikian pula, peneliti AI dengan latar belakang pengetahuan teknik dan pendekatan simbolis menjelaskan kecerdasan AI akan menggunakan
bahan-bahan seperti berikut ini:
- kapasitas untuk memperoleh dan menerapkan pengetahuan;
- kemampuan untuk melakukan penalaran, dan
- kemampuan untuk membuat keputusan dan rencana untuk mencapai tujuan tertentu.
- kemampuan untuk melakukan tindakan yang cerdas
- kemampuan untuk menunjukkan pengetahuan tentang konsekuensi dari tindakannya, dan
- kemampuan untuk menunjukkan pengetahuan tentang bagaimana untuk mempengaruhi atau mengubah lingkungan dalam rangka untuk mengubah hasil dan mencapai tujuannya.
Jika kita berpikir dari kecerdasan menggunakan analogi pemetaan, maka kita akan mengambil kesimpulan bahwa agen cerdas adalah sebagai berikut:
- kemampuan mewujudkan suatu, mengenali lingkungannya, baik yang nyata dan abstrak (yaitu mengenali pola-pola untuk menyediakan penyederhanaan berguna dan / atau karakteristik dari lingkungan nya);
- kemampuan untuk menggunakan peta untuk navigasi sekitar lingkungan tersebut;
- kemampuan untuk memperbarui peta ketika menemukan mereka tidak cocok realitas; dan
- kemampuan untuk berkomunikasi rincian peta untuk agen lainnya.
2. KECERDASAN TANPA REPRESENTASIDAN ALASAN
Dalam kondisi apapun, agent tidak membutuhkan representasi eksplisit dari lingkungannya. Dan agen
tidak membutuhkan dasar pengetahuan eksplisit mengenai kondisi di sekitarnya karena agen mampu berinteraksi secara langsung dengan lingkungan tersebut.
Dalam merancangsistem AI, kita tidak mungkin harusmelakukan semua pekerjaansendiri. Jika kita dapat menemukancara yang tepat untukmenyiapkankondisi awaldari sistem,sistem itu sendiri akan melakukan pekerjaan untuk kita, dan melalui self-organisasi, kecerdasan akan muncul sebagai hasilnya. Sayangnya, meskipun ide ini sangat menarik, tidak ada yang belum sudah tahu cara mengatur kondisi awal yang diperlukan.
3. APA YANG DAPAT DILAKUKAN AI DAN APA YANG TIDAK DAPAT DILAKUKAN AI
Ray Kurzweil (1990) dalam The Age of Mesin Cerdas telah membuat banyak prediksi tentang teknologi komputer dan AI secara khusus, banyak yang telah terjadi, tapi beberapa yang tidak (seperti
prediksi bahwa pada tahun 2009, pengguna akan bergantung terutama pada pengenalan suara untuk
berkomunikasi dengan PC mereka daripada menggunakan keyboard). Ini akan menjadi peristiwa
mengubah dunia mengganggu yang akan selamanya mengubah arah sejarah manusia dan akan terjadi
ketika AI melampaui manusia sebagai entitas yang paling cerdas di planet ini. Sejak saat itu, pengembangan teknologi akan diambil alih oleh mesin, dan kita, sebagai manusia, tidak akan lagi
mampu bersaing. Hal ini sangat sulit untuk memprediksi masa depan, terutama ketika datang ke
kemajuan teknologi, dan apakah prediksi Kurzweil itu terwujud kita harus menunggu dan melihat.
Daripada memprediksi apa AI mungkin bisa mencapai di masa depan, kita malah dapat memeriksa
apa yang telah dicapai AI di masa lalu, dan juga kita lihat saat ini. Sebagai contoh, Berikut daftar dua
belas tugas yang kita dapat menerapkan AI.
1. Memainkan permainan tenis meja yang layak.
2. Drive di pusat Kairo.
3. Membeli belanjaan mingguan di pasar atau diWeb.
4. Memainkan permainan yang layak dari jembatan di tingkat kompetitif.
5. Menemukan dan membuktikan teorema matematika.
6. Menulis cerita lucu.
7. Memberikan nasihat hukum yang kompeten di daerah khusus hukum.
8. Menerjemahkan bahasa Inggris ke Swedia yang diucapkan berbicara secara real time.
9. Melakukan operasi bedah yang kompleks.
10. Mengenali dan menghargai estetis Mona Lisa.
11. Membuat Elvis virtual.
12. Melakukan semua di atas.
4. SASARAN DISAIN YANG BAGUS
Dalam manajemen proyek, ada akronim terkenal yang digunakan untuk memandu kegiatan untuk
memperoleh sasaran disain yang baik yaitu SMARTER. Berikut singkatannya:
HURUF Mayor Atribut Minor Atribut
S Specific Penting, sederhana
M Measurable Bermakna, motivasional, dapat diatur
A Achievable Dapat dicapai, disetujui, cocok,
R Realistic Bersangkut-paut, berorientasi pada hasil,
T Time-bound Jangka waktu, tepat waktu, dijadwalkan
E Menyenangkan, dievaluasi, etis
R Direkam, memberi manfaat
Disain yang berhubungan dengan Artificial Intelligence maka perlu yang lebih spesifik, terukur, dapat dicapai, dan lebih lebih realistis pada object tersebut.
5. BEBERAPA OBJECT DISAIN PADA ARTIFICIAL INTELLIGENCE
Untuk merancang objek yang cocok, maka perlu mengusulkan disain object secara keseluruhan. Salah
satu disain objek yang mungkin adalah meniru kecerdasan manusia. Tujuan dengan dibuatnya sistem
ini adalah dapat membangun sebuah objek yang cerdas yang mungkin membantu dalam beberapa hal.
Desain untuk sistem Artificial Intelligence antara lain:
a. Design Principle 1: Sistem AI seharusnya sistem yang berorientasi agent
b. Design Goal 1: Sistem AI seharusnya meniru kecerdasan manusia
c. Design Objective 1.1: Sistem AI seharusnya bertindak dengan cara berpengetahuan
d. Design Objective 1.2: Sistem AI seharusnya bertindak cerdas
e. Design Objective 1.3: Sistem AI seharusnya bertindak rasional.
f. Design Objective 1.4: Sistem AI seharusnya bertindak sendiri
g. Design Objective 1.5: Sistem AI seharusnya berfikir
h. Design Objective 1.6: Sistem AI seharusnya bertindak seolah-olah sadar.
Desain Object untuk Agent Dipercaya, maka harus memenuhi hal-hal berikut:
a. Design Object 2.1:Sebuah sistem AI harus lulus tes kepercayaan untuk bertindak dalam cara yang berpengetahuan: ia tidak hanya harus memiliki kemampuan untuk memperoleh pengetahuan, tetapi juga harus bertindak secara luas, dengan memamerkan pengetahuan - dari dirinya sendiri, agen lain, dan lingkungan - dan menunjukkan pemahaman pengetahuan itu.
b. Design Object 2.2: Sebuah sistem AI harus lulus tes kepercayaan untuk bertindak dalam cara yang cerdas dan penalaran. Ini harus dapat memecahkan masalah untuk dirinya sendiri, melalui pengamatan dan pembelajaran, dan melalui penalaran. Ini juga harus mampu menerapkan solusi dari satu domain masalah yang lain tanpa menunjukkan bagaimana melakukannya.
c. Design Object 2.3: Sebuah sistem AI harus lulus tes kepercayaan untuk bertindak dalam cara yang rasional: pertama, dengan memastikan kesempatan terbaik untuk bertahan hidup dari dirinya sendiri dan
keluarga sendiri atau orang lain dari jenisnya, kedua, dengan berbagi pengetahuan yang telah diperoleh dengan agen lainnya, dan ketiga, dengan memilih untuk bertindak sesuai dengan preferensi sendiri pribadi.
d. Design Object 2.4: Sebuah sistem AI harus lulus Test Cermin dan menguji kepercayaan untuk bertindak sebagai jika sadar diri.
e. Design Object 2.5: Sebuah sistem AI harus lulus tes kepercayaan untuk bertindak sebagai jika berpikir dan sadar.
f. Design Object 2.6: Sebuah sistem AI harus lulus Tes Turing untuk intelijen. Pemikiran untuk menguji rasionalitas, perhatian dan kesadaran.
6. MENUJU AGEN TERPERCAYA
Jika tujuan kita untuk menciptakan sebuah sistem yang memenuhi kriteria kepercayaan, maka dapat
dilanjutkan dengan mengikut apa yang disebut “artificial life path” untuk mencapai tujuan. Dalam
pendekatan ini, tujuannya adalah untuk menciptakan kehidupan buatan dari meningkatnya kompleksitas
dan realisme, baik nyata (misal robot) atau virtual (makhluk virtual). Joseph Weinzenbaum merancang agen percakapan pertama yang disebut Eliza pada pertengahan 1960-an, dia digambarkan sebagai sebuah tiruan dari seorang psikoterapis Rogerian. Tidak lama setelah itu, Kenneth Colby menemuka agen percakapan lain yang disebut Parry pada tahun 1972 yang disimulasikan penderita skizofrenia paranoid. Model NetLogo ChatBot menunjukkan bagaimana mudahnya untuk membuat percakapan agen sederhana seperti Eliza dan Parry.
Lihatlah aturan yang menunjukkan bagaimana ekspresi reguler didefinisikan. Aturan pertama
memiliki teks sederhana string "hello" sebagai ekspresi reguler tanpa karakter khusus dengan makna
yang spesifik (ini disebut 'karakter meta'). Dalam kasus ini, aturan tersebut hanya akan cocok ketika
pengguna memasukkan teks yang tepat string "hello". Tanggapan dari ChatBot adalah memberi
salah satu jawaban yang dipilih secara acak dari daftar berikut: "Siapa Anda?"," Mengapa Anda
berbicara kepada saya?", "Apa yang kau inginkan? "dan" Bagaimana kau tahu aku?". Para aturan kedua
juga memiliki ekspresi reguler tanpa karakter meta. Ini hanya akan cocok dengan string “Bye” dan
merespon dengan baik “bye” atau “yeah bye”. Aturan ketiga menggunakan ekspresi reguler dengan meta karakter tunggal "?" yang berarti bahwa karakter sebelumnya adalah opsional, maka baik ejaan
Amerika dan ejaan Inggris dari kata yang sama, "color" dan "colour", akan cocok. Aturan keempat
menggunakan ekspresi reguler "(\ \ w +) @ (\ \ w +\ \.) (\ \ w +) (\ \. \ \ w +) *" untuk mendeteksi ketika pengguna telah mengetik username (sesuatu dengan karakter '@', beberapa penuh berhenti '.' dan intervensi urutan yang sering digunakan di seluruh aturan. Urutan meta ini akan cocok dengan setiap urutan intervensi karakter. Oleh karena itu, aturan tertentu akan cocok dengan pernyataan “Apakah anda bot?” Dimana string “Apakah anda” cocok dengan urutan meta pertama, dan” ”?” cocok dengan urutan meta kedua cara ekspresi reguler bekerja juga akan mengartikan bahwa aturan ini juga akan cocok dengan masukan pengguna seperti “Saya seorang bot juga”, “Aku tidak suka bot”, “-bot-” dan “=bot?”. Ini menunjukkan bagaiman menggunakan ekspresi reguler dapat menjadi kutukan dan berkah. Dikatakan kutukan bila terlalu banyak string yang kita tidak ingin dicocokkan, dan dikatakan berkah karena kita dapat menentukan berbagai string tak terbatas hanya
dengan beberapa karakter meta. Kode yang mendefinisikan apa yang terjadi ketika tombol ditekan chatting di Interface tercantum dalam NetLogo Kode 10.2.
7. MENUJU KOMPUTER DENGAN KEMAMPUAN MEMECAHKAN MASALAH
Kemampuan bercakap hanya salah satu bahan dari kecerdasan manusia. Bahan lain yang penting adalah
kemampuan memecahkan masalah. Manusia memiliki kemampuan yang unik untuk memecahkan
masalah. Untuk ilustrasi, mari kita memeriksa tujuh masalah yang membutuhkan kecerdasan untuk solusi mereka:
1. Mencari solusi yang lebih baik.
2. Mewakili pengetahuan
3. Memelihara percakapan dengan manusia
4. Membuat kehidupan buatan
5. Membuat kecerdasan buatan.
6. Membuat aliran air menanjak.
7. Mencari metode umum pemecahan masalahyang dapat diterapkan untuk semua masalah ini.
8. KESIMPULAN
Bahwa sistem AI masa depan akan melakukan pekerjaan untuk kami. Atau jika kita dapat
membangun sistem AI dengan pemecahan masalah serupa kemampuan untuk manusia, sistem bisa
menemukan cara untuk memecahkan masalah bagi kami, karena akan memiliki kemampuan untuk
menghasilkan dan menguji solusi lebih cepat dari yang kita bisa. Kemungkinan baik, bagaimanapun,
membutuhkan beberapa terobosan besar sebelum mereka dapat direalisasikan. Sebuah ringkasan dari konsep-konsep penting yang harus dipelajari dari bab ini adalah sebagai berikut:
- Ada banyak cara untuk menerapkan kecerdasan yang berbeda
- Kemampuan percakapan (chatting) adalah unsur penting untuk kecerdasan.
- Kemampuan memecahkan masalah adalah unsur terpenting dalam kecerdasan
- Object SMARTER pertama kali dibutuhkan ketika mendisain system AI
- Sistem AI yang mulai menghasilkan hasil yang sangat baik di banyak bidang, tetapi untuk masih ada banyak pekerjaan yang harus dilakukan untuk mencapai hasil yang kompetitif bagi manusia.
- Kepercayaan diusulkan sebagai kriteria untuk pengujian AI dalam lingkungan virtual.
9. DAFTAR PUSTAKA
William John Teahan. “Artificial Intelligence- Agent Behaviour”. 2010. Hal 199-231
MANAGEMENT INPUT/OUTPUT DAN PENJADWALAN DISK
A. Klasifikasi Perangkat I/O
Pengolahan Perangkat Input/Output
merupakan pengolahan perangkat lunak yang mengatasi penggunaan perangkat
masukan dan keluaran. Pengelolaan perangkat I/O merupakan
aspek perancangan sistem operasi yang terluas karena beragamnya peralatan dan
begitu banyaknya aplikasi dari peralatan-peralatan itu.
Manajemen I/O mempunyai fungsi, di
antaranya:
·
Mengirim
perintah ke perangkat I/O agar menyediakan layanan.
·
Menangani
interupsi peralatan I/O
·
Menangani
kesalahan pada peralatan I/O
·
Memberi
interface ke pemakai.
Berdasarkan
sasaran komunikasi, klasifikasi perangkat I/O atau divice dibagi menjadi beberapa tipe. Tipe-tipe device
secara umum dibagi menjadi device
penyimpanan (disk, tape), transmission,
device (peralatan yang cocok untuk
komunikasi dengan peralatan-peralatan jarak jauh seperti modem) dan human-interface device (Peralatan yang terbaca oleh manusia seperti keyboard, mouse). Device- device
tersebut dikontrol oleh instruksi I/O.
Alamat-alamat yang dimiliki oleh device
akan digunakan oleh direct I/O
instruction dan memory-mapped
I/O .
Klasifikasi
lain yang dapat dilakukan terhadap peralatan I/O adalah berdasarkan unit
transfer yang dilakukan perangkat I/O, yaitu sbb:
a)
Perangkat berorientasi blok (block-oriented
devices) Peralatan mentransfer dari dan ke peralatan dengan satuan transfer adalah satu
blok (sekumpulan karakter) yant telah ditentukan.
b)
Perangkat berorientasi aliran karakter
(character-oriented devices) Peralatan mentransfer dari dan ke peralatan berupa
aliran karakter.
B. Teknik Pengoperasian Perangkat I/O
Teknik
Pengoperasian Perangkat I/O meliputi:
1)
Perangkat I/O terprogram (programmed I/O)
Merupakan perangkat I/O komputer yang dikontrol oleh
program. Contohnya, perintah mesin in, out, move. Perangkat I/O terprogram
tidak sesuai, untuk pengalihan data dengan kecepatan tinggi karena dua alasan
yaitu:
Ø Memerlukan
overhead (ongkos) yang tinggi, karena beberapa perintah program
harus dieksekusi untuk setiap kata data yang dialihkan antara peralatan eksternal dengan memori utama.
harus dieksekusi untuk setiap kata data yang dialihkan antara peralatan eksternal dengan memori utama.
Ø Banyak peralatan periferal kecepatan tinggi
memiliki mode operasi sinkron,
yaitu pengalihan data dikontrol oleh clock frekuensi tetap, tidak tergantung
CPU.
yaitu pengalihan data dikontrol oleh clock frekuensi tetap, tidak tergantung
CPU.
2)
Perangkat berkendalikan interupsi (Interrupt I/O)
Interupsi lebih dari sebuah mekanisme sederhana untuk
mengkoordinasi pengalihan I/O. Konsep interupsi berguna di dalam sistem operasi
dan pada banyak aplikasi kontrol di mana pemrosesan rutin tertentu harus diatur
dengan seksama,
a. Mekanisme Dasar Interupsi
Ketika CPU
mendeteksi bahwa sebuah controller
telah mengirimkan sebuah sinyal ke interrupt
request line (membangkitkan
sebuah interupsi), CPU kemudian menjawab interupsi tersebut (juga disebut
menangkap interupsi)dengan menyimpan beberapa informasi mengenai state terkini CPU --contohnya nilai
instruksi pointer, dan
memanggil interrupt handler agar
handler tersebut dapat melayani
controller atau alat yang
mengirim interupsi tersebut.
b. Fitur Tambahan pada Komputer Modern
Pada arsitektur komputer modern, 3 fitur disediakan oleh
CPU dan interrupt controller
(pada perangkat keras) untuk dapat menangani interrupsi dengan lebih bagus.
Fitur-fitur ini antara lain adalah kemampuan menghambat sebuah proses interrupt handling selama prosesi
berada dalam critical state,
efisiensi penanganan interupsi sehingga tidak perlu dilakukan polling untuk
mencari device yang mengirimkan
interupsi, dan fitur yang ketiga adalah adanya sebuah konsep multilevel interupsi sedemikian rupa
sehingga terdapat prioritas dalam penanganan interupsi (diimplementasikan
dengan interrupt priority level
system) .
c. Interrupt Request Line
Pada peranti keras
CPU terdapat kabel yang disebut interrupt
request line , kebanyakan CPU memiliki dua macam interrupt request line , yaitu nonmaskable interrupt dan maskable
interrupt. Maskable interrupt
dapat dimatikan / dihentikan oleh CPU sebelum pengeksekusian deretan critical instruction (critical instruction
sequence) yang tidak boleh diinterupsi. Biasanya, interrupt jenis ini
digunakan oleh device controller
untuk meminta pelayanan CPU.
d. Interrupt Vector dan Interrupt Chaining
Sebuah mekanisme
interupsi akan menerima alamat interrupt
handling routine yang spesifik dari sebuah set, pada kebanyakan
arsitektur komputer yang ada sekarang ini, alamat ini biasanya berupa
sekumpulan bilangan yang menyatakan offset
pada sebuah tabel (biasa disebut interrupt
vector ).Tabel ini menyimpan alamat- alamat interrupt handler spesifik di dalam memori. Keuntu ngan dari
pemakaian vektor adalah untuk mengura ngi kebutuhan akan sebuah interrupt handler yang harus men cari
semua kemungkinan sumber interupsi untuk menemukan pengirim interupsi.
Akan tetapi, interrupt vector memiliki hambatan
karena pada kenyataannya, komputer yang ada memiliki device (dan interrupt
handler ) yang lebih banyak dibandingkan dengan jumlah alamat pada interrupt vector. Karena itulah,
digunakanlah teknik interrupt chaining
dimana setiap elemen dari interrupt
vector menunjuk / merujuk pada elemen pertama dari sebuah daftar interrupt handler. Dengan teknik ini,
overhead yang dihasilkan oleh
besarnya ukuran tabel dan inefisiensi dari penggunaan sebuah interrupt handler (fitur pada CPU
yang telah disebutkan sebelumnya) dapat dikurangi, sehingga keduanya menjadi
kurang lebih seimbang.
e. Penyebab Interupsi
Interupsi dapat disebabkan berbagai hal,
antara lain exception,page fault ,
interupsi yang diki- rimkan oleh device
controllers , dan system call
.Exception adalah suatu kondisi dimana terjadi sesuatu / dari sebuah
operasi didapat hasil tertentu yang dianggap khusus sehingga harus mendapat
perhatian lebih, contoh nya pembagian dengan 0 (nol), pengaksesan alamat memori
yang restricted atau bahkan
tidak valid, dan lain-lain. System
call adalah sebuah fungsi pada aplikasi (perangkat lunak) yang dapat mengeksekusikan
instruksi khusus berupa software
interrupt atau trap.
3)
DMA
(Direct Memory Address)
Merupakan suatu pendekatan alternatif yang digunakan
sebagai unit pengaturan khusus yang disediakan untuk memungkinkan pengalihan
blok data secara langsung antara peralatan eksternal dan memori utama tanpa
intervensi terus menerus oleh CPU.
a. Transfer DMA
Untuk memulai sebuah transfer DMA, host akan
menuliskan sebuah DMA command block yang berisi pointer yang
menunjuk ke sumber transfer, pointer yang menunjuk ke tujuan / destinasi
transfer, dan jumlah byte yang ditransfer, ke memori. CPU kemudian
menuliskan alamat command block ini ke DMA controller, sehingga
DMA controller dapat kemudian mengoperasikan bus memori secara
langsung dengan menempatkan alamat-alamat pada bus tersebut untuk
melakukan trans fer tanpa bantuan CPU.
Tiga Langkah Dalam
Transfer DMA :
1.
Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari device , operasi yang akan ditampilkan, alamat memori yang menjadi
sumber dan tujuan data, dan banyaknya
byte yang di transfer.
2.
DMA controller memulai operasi
(menyiapkan bus, menyediakan alamat,
menulis dan membaca data), sampai
seluruh blok sudah di transfer.
3.
DMA controller meng-interupsi
prosesor, dimana selanjutnya akan
ditentukan tindakan berikutnya.
Pada dasarnya, DMA mempunyai dua metode yang berbeda
dalam mentransfer data. Metode yang pertama adalah metode yang sangat baku dan
simple disebut HALT, atau Burst Mode DMA, karena DMA controller
memegang kontrol dari sistem bus dan men-transfer semua blok data ke atau dari
memori pada single burst . Selagi transfer masih dalam progres, sistem
mikroprosessor di-set idle, tidak melakukan instruksi operasi untuk
menjaga internal register. Tipe operasi DMA seperti ini ada pada kebanyakan
komputer.
Metode yang kedua,
mengikutsertakan DMA controller untuk memegang kontrol dari sistem bus
untuk jangka waktu yang lebih pendek pada periode dimana mikroprosessor sibuk
dengan operasi internal dan tidak membutuhkan akses ke sistem bus. Metode DMA
ini disebut cycle stealing mode . Cycle stealing DMA lebih
kompleks untuk diimplementasikan dibandingkan HALT DMA, karena DMA controller
harus mempunyai kepintaran untuk merasakan waktu pada saat sistem bus terbuka.
b. Handshaking
Proses handshaking
antara DMA controller dan device controller dilakukan melalui
sepasang kabel yang disebut DMA- request dan DMA- acknowledge.
Device controller mengirimkan sinyal melalui DMA- request ketika akan
mentransfer data sebanyak satu word . Hal ini kemudian akan
mengakibatkan DMA controller memasukkan alamat- alamat yang dinginkan ke
kabel alamat memori, dan mengirimkan sinyal melalui kabel DMA- acknowledge.
Setelah sinyal melalui kabel DMA- acknowledge diterima, device
controller mengirimkan data yang dimaksud dan mematikan sinyal pada DMA-request
.
Hal ini
berlangsung berulang-ulang sehingga disebut handshaking . Pada saat DMA controller
mengambil alih memori, CPU sementara tidak dapat mengakses memori (dihalangi),
walaupun masih dapat mengaksees data pada cache primer dan sekunder. Hal ini
disebut cycle stealing, yang walaupun memperlambat komputasi CPU, tidak
menurunkan kinerja karena memindahkan pekerjaan data transfer ke DMA controller
meningkatkan performa sistem secara keseluruhan.
c. Cara-cara Implementasi DMA
Dalam
pelaksanaannya, beberapa komputer menggunakan memori fisik untuk proses DMA ,
sedangkan jenis komputer lain menggunakan alamat virtual dengan melalui tahap
"penerjemahan" dari alamat memori virtual menjadi alamat memori
fisik, hal ini disebut direct virtual-memory address atau DVMA.
Keuntungan dari DVMA adalah dapat mendukung transfer antara dua memory
mapped device tanpa intervensi CPU.
C. Penanganan Permintaan I/O
Sistem Operasi
yang modern mendapatkan fleksibilitas yang signifikan dari tahapan-tahapan
tabel lookup di jalur diantara
permintaan dan physical device
controller. Kita dapat mengenalkan devicedan driver
baru ke komputer tanpa harus meng-compile
ulang kernelnya. Sebagai fakta, ada beberapa sistem operasi yang mampu untuk
me-load device drivers yang
diinginkan. Pada waktu boot,
sistem mula-mula meminta bus piranti keras untuk menentukan device apa yang ada, kemudian sistem
me-load ke dalam driver yang sesuai; baik sesegera
mungkin, maupun ketika diperlukan oleh sebuah permintaan I/O.
Sistem V UNIX
mempunyai mekanisme yang menarik, yang disebut streams, yang membolehkan aplikasi untuk men-assemble pipeline dari kode driver secara dinamis. Sebuah stream adalah sebuah koneksi full duplex antara sebuah device driver dan sebuah proses user-level. Stream terdiri atas sebuah stream head yang merupakan antarmuka dengan user process, sebuah driver end yang mengontrol device, dan nol atau lebih stream modules diantara mereka. Modules dapat didorong ke stream
untuk menambah fungsionalitas di sebuah layered
fashion. Sebagai gambaran sederhana, sebuah proses dapat membuka sebuah
alat port serial melalui sebuah stream,
dan dapat mendorong ke sebuah modul untuk memegang edit input. Stream dapat digunakan untuk
interproses dan komunikasi jaringan. Faktanya, di Sistem V, mekanisme soket
diimplementasikan dengan stream.
Berikut
dideskripsikan sebuah lifecycle
yang tipikal dari sebuah permintaan pembacaan blok.
1.
Sebuah
proses mengeluarkan sebuah blocking
read system call ke sebuah file
deskriptor dari berkas yang telah dibuka
sebelumnya.
2.
Kode
system-call di kernel
mengecek parameter untuk kebenaran.
Dalam kasus input, jika data telah siap
di buffer cache, data akan dikembalikan ke proses dan permintaan I/O diselesaikan.
3.
Jika
data tidak berada dalam buffer
cache , sebuah physical I/O akan bekerja, sehingga proses akan
dikeluarkan dari antrian jalan (run queue) dan diletakkan di
antrian tunggu (wait queue) untuk alat, dan
permintaan I/O pun
dijadwalkan. Pada akhirnya, subsistem I/O
mengirimkan permintaan ke device
driver. Bergantung pada sistem
operasi, permintaan dikirimkan melalui call subrutin atau melalui pesan in-kernel.
4.
Device driver mengalokasikan ruang buffer pada kernel untuk
menerima data, dan menjadwalkan I/O. Pada akhirnya, driver mengirim perintah
ke device controller
dengan menulis ke register device control.
5.
Device controller mengoperasikan piranti
keras device untuk
melakukan transfer data.
6.
Driver
dapat menerima status dan data, atau
dapat menyiapkan transfer DMA ke memori kernel. Kita mengasumsikan bahwa transfer diatur oleh
sebuah DMA controller, yang meggunakan interupsi
ketika trans- fer selesai.
7.
Interrupt handler yang sesuai mene-
rima interupsi melalui tabel vektor-interupsi, menyimpan sejumlah data yang dibutuhkan, menandai device driver , dan kembali dari interupsi.
8.
Device driver menerima tanda, menganalisa
permintaan I/O mana yang telah diselesaikan, menganalisa status
permintaan, dan menandai subsistem I/O kernel yang permintaannya telah terselesaikan.
9.
Kernel
mentransfer data atau mengembalikan kode ke ruang alamat dari proses permintaan, dan memindahkan
proses dari antrian tunggu kembali ke
antrian siap.
10.
Proses
tidak diblok ketika dipindahkan ke antrian siap. Ketika penjadwal (scheduler) mengembalikan
proses ke CPU, proses meneruskan eksekusi pada penyelesaian dari system
call.
D. Struktur Disk
Disk menyediakan penyimpanan sekunder bagi sistem
komputer modern. Magnetic tape
sebelumnya digunakan sebagai media penyimpanan sekunder, tetapi waktu aksesnya
lebih lambat dari disk. Oleh karena itu, sekarang tape digunakan terutama untuk backup ,untuk penyimpanan informasi yang tidak sering, sebagai
media untuk mentransfer infromasi dari satu sistem ke sistem yang lain, dan
untuk menyimpan sejumlah data yang terlalu besar untuk sistem disk.
Disk drive modern dialamatkan sebagai
suatu array satu dimensi yang besar dari blok lojik, dimana blok lojik
merupakan unit terkecil dari transfer. Ukuran dari blok lojik biasanya adalah
512 bytes , walaupun sejumlah
disk dapat diformat di level rendah (low
level formatted) untuk memilih sebuah ukuran blok lojik yang berbeda,
misalnya 1024 bytes.
Array satu dimensi
dari blok lojik dipetakan ke bagian dari disk secara sekuensial. Sektor 0
adalah sektor pertama dari trek pertama di silinder paling luar (outermost cylinder ). Pemetaan
kemudian memproses secara berurutan trek tersebut, kemudian melalui trek
selanjutnya di silinder tersebut, dan kemudian sisa silinder dari yang paling
luar sampai yang paling dalam.
Dengan menggunakan
pemetaan, kita dapat -minimal dalam teori- mengubah sebuah nomor blok logikal
ke sebuah alamat disk yang bergaya lama (old-style
disk address) yang terdiri atas sebuah nomor silinder, sebuah nomor trek
di silinder tersebut, dan sebuah nomor sektor di trek tersebut. Dalam
prakteknya, adalah sulit untuk melakukan translasi ini, dengan 2 alasan. Pertama,
kebanyakan disk memiliki sejumlah sektor yang rusak, tetapi pemetaan
menyembunyikan hal ini dengan mensubstitusikan dengan sektor yang dibutuhkan
dari mana-mana di dalam disk. Kedua, jumlah dari sektor per trek tidaklah
konstan. Semakin jauh sebuah trek dari tengah disk, semakin besar panjangnya,
dan juga semakin banyak sektor yang dipunyainya. Oleh karena itu,disk modern
diatur menjadi zona-zona silinder. Nomor sektor per trek adalah konstan dalam
sebuah zona. Tetapi seiring kita berpindah dari zona dalam ke zona luar, nomor
sektor per trek bertambah. Trek di zona paling luar tipikalnya mempunyai 40
persen sektor lebih banyak daripada trek di zona paling dalam.
Nomor sektor per
trek telah meningkat seiring dengan peningkatan teknologi disk, dan adalah
lazim untuk mempunyai lebih dari 100 sektor per trek di zona yang lebih luar
dari disk. Dengan analogi yang sama, nomor silinder per disk telah meningkat,
dan sejumlah ribuan silinder adalah tak biasa.
E. Penjadwalan Disk
Salah satu tanggung jawab sistem operasi adalah
menggunakan hardware dengan
efisien. Khusus untuk disk drives,
efisiensi yang dimaksudkan di sini adalah dalam hal waktu akses yang cepat dan
aspek bandwidth disk. Waktu
akses memiliki dua komponen utama yaitu waktu pencarian dan waktu rotasi disk.
Waktu pencarian adalah waktu yang dibutuhkan disk arm untuk menggerakkan head ke bagian silinder disk
yang mengandung sektor yang diinginkan. Waktu rotasi disk adalah waktu tambahan yang dibutuhkan untuk menunggu rotasi
atau perputaran disk, sehingga
sektor yang diinginkan dapat dibaca oleh head.
Pengertian Bandwidth adalah
total jumlah bytes yang
ditransfer dibagi dengan total waktu antara permintaan pertama sampai seluruh
bytes selesai ditransfer. Untuk meningkatkan kecepatan akses dan bandwidth,
kita dapat melakukan penjadwalan pelayanan atas permintaan I/O dengan urutan yang tepat.
Sebagaimana kita
ketahui, jika suatu proses membutuhkan pelayanan I/O dari atau menuju disk,
maka proses tersebut akan melakukan system
call ke sistem operasi. Permintaan tersebut membawa informasi-informasi
antara lain:
1. Apakah
operasi input atau output
2. Alamat disk untuk proses tersebut
3. Alamat
memori untuk proses tersebut
4. Jumlah
bytes yang akan ditransfer
Jika disk drive beserta controller tersedia untuk proses
tersebut, maka proses akan dapat dilayani dengan segera. Jika ternyata disk drive dan controller tidak tersedia atau sedang
sibuk melayani proses lain, maka semua permintaan yang memerlukan pelayanan disk tersebut akan diletakkan pada
suatu antrian penundaan permintaan untuk disk
tersebut. Dengan demikian, jika suatu permintaan telah dilayani, maka sistem
operasi memilih permintaan tertunda dari antrian yang selanjutnya akan
dilayani.
a) Penjadwalan FCFS
Bentuk paling
sederhana dalam penjadwalan disk
adalah dengan sistem antrian (queue) atau First-come first-served (FCFS). Algoritma ini secara intrinsik
bersifat adil, tetapi secara umum algoritma ini pada kenyataannya tidak
memberikan pelayanan yang paling cepat. Sebagai contoh, antrian permintaan
pelayanan disk untuk proses I/O pada blok dalam silinder adalah
sebagai berikut: 98, 183, 37, 122, 14, 124, 65, 67. Jika head pada awalnya berada pada 53,
maka head akan bergerak dulu
dari 53 ke 98, kemudian 183, 37, 122, 14, 124, 65, dan terakhir 67, dengan
total pergerakan head sebesar
640 silinder.
Permasalahan
dengan menggunakan penjadwalan jenis ini dapat diilustrasikan dengan pergerakan
dari 122 ke 14 dan kembali lagi ke 124. Jika permintaan terhadap silinder 37
dan 14 dapat dikerjakan/dilayani secara bersamaan, baik sebelum maupun setelah
permintaan 122 dan 124, maka pergerakan total head dapat dikurangi secara signifikan, sehingga dengan demikian
pendayagunaan akan meningkat.
b. Penjadwalan SSTF
Sangat berasalasan jika kita menutup semua pelayanan pada
posisi head saat ini, sebelum menggerakkan head ke tempat lain
yang jauh untuk melayani suatu permintaan. Asumsi ini mendasari algoritma
penjadwalan kita yang kedua yaitu shortest-seek-time-first (SSTF).
Algoritma ini memilih permintaan dengan berdasarkan waktu pencarian atau seek
time paling minimum dari posisi head saat itu. Karena waktu
pencarian meningkat seiring dengan jumlah silinder yang dilewati oleh head,
maka SSTF memilih permintaan yang paling dekat posisinya di disk
terhadap posisi head saat itu.
Perhatikan contoh
antrian permintaan yang kita sajikan pada penjadwalan FCFS, permintaan paling
dekat dengan posisi head saat itu (53) adalah silinder 65. Jika kita
penuhi permintaan 65, maka yang terdekat berikutnya adalah silinder 67. Dari
67, silinder 37 letaknya lebih dekat ke 67 dibandingkan silinder 98, jadi 37
dilayani duluan. Selanjutnya, dilanjutkan ke silinder 14, 98, 122, 124, dan
terakhir adalah 183. Metode penjadwalan ini hanya menghasilkan total pergerakan
head sebesar 236 silinder -- kira-kira sepertiga dari yang dihasilkan
penjadwalan FCFS. Algoritma SSTF ini memberikan peningkatan yang cukup
signifikan dalam hal pendayagunaan atau performance sistem.
Penjadwalan SSTF
merupakan salah satu bentuk dari penjadwalan shortest-job-first (SJF),
dan karena itu maka penjadwalan SSTF juga dapat mengakibatkan starvation
pada suatu saat tertentu. Kita ketahui bahwa permintaan dapat datang kapan
saja. Anggap kita memiliki dua permintaan dalam antrian, yaitu untuk silinder
14 dan 186. Selama melayani permintaan 14, kita anggap ada permintaan baru yang
letaknya dekat dengan 14. Karena letaknya lebih dekat ke 14, maka permintaan
ini akan dilayani dulu sementara permintaan 186 menunggu gilirannya. Jika
kemudian berdatangan lagi permintaan-permintaan yang letaknya lebih dekat
dengan permintaan terakhir yang dilayani jika dibandingkan dengan 186, maka
permintaan 186 bisa saja menunggu sangat lama. Kemudian jika ada lagi
permintaan yang lebih jauh dari 186, maka juga akan menunggu sangat lama untuk
dapat dilayani.
Walaupun algoritma
SSTF secara substansial meningkat jika dibandingkan dengan FCFS, tetapi
algoritma SSTF ini tidak optimal. Seperti contoh diatas, kita dapat
menggerakkan head dari 53 ke 37, walaupun bukan yang paling dekat,
kemudian ke 14, sebelum menuju 65, 67, 98, 122, dan 183. Strategi ini dapat
mengurangi total gerakan head menjadi 208 silinder.
c. Penjadwalan SCAN
Pada algoritma
SCAN, pergerakan disk arm dimulai dari salah satu ujung disk,
kemudian bergerak menuju ujung yang lain sambil melayani permintaan setiap kali
mengunjungi masing-masing silinder. Jika telah sampai di ujung disk,
maka disk arm bergerak berlawanan arah, kemudian mulai lagi melayani
permintaan-permintaan yang muncul. Dalam hal ini disk arm bergerak
bolak-balik melalui disk.
Kita akan
menggunakan contoh yang sudah dibarikan diatas. Sebelum melakukan SCAN untuk
melayani permintaan-permintaan 98, 183, 37, 122, 14, 124, 65, dan 67, kita
harus mengetahui terlebih dahulu pergerakan head sebagai langkah awal
dari 53. Jika disk arm bergerak menuju 0, maka head akan melayani
37 dan kemudian 14. Pada silinder 0, disk arm akan bergerak berlawanan
arah dan bergerak menuju ujung lain dari disk untuk melayani permintaan
65, 67, 98, 122, 124, dan 183. Jika permintaan terletak tepat pada head
saat itu, maka akan dilayani terlebih dahulu, sedangkan permintaan yang datang
tepat dibelakang head harus menunggu dulu head mencapai ujung disk,
berbalik arah, baru kemudian dilayani.
Algoritma SCAN ini
disebut juga algoritma lift/elevator, karena kelakuan disk arm sama
seperti elevator dalam suatu gedung, melayani dulu orang-orang yang akan naik
ke atas, baru kemudian berbalik arah untuk melayani orang-orang yang ingin
turun ke bawah.
Kelemahan
algoritma ini adalah jika banyak permintaan terletak pada salah satu ujung disk,
sedangkan permintaan yang akan dilayani sesuai arah arm disk jumlahnya
sedikit atau tidak ada, maka mengapa permintaan yang banyak dan terdapat pada
ujung yang berlawanan arah dengan gerakan disk arm saat itu tidak
dilayani duluan? Ide ini akan mendasari algoritma penjadwalan berikut yang akan
kita bahas.
d. Penjadwalan C-SCAN
Circular-SCAN adalah varian dari algoritma SCAN yang sengaja didesain untuk menyediakan
waktu tunggu yang sama. Seperti halnya SCAN, C-SCAN akan menggerakkan head
dari satu ujung disk ke ujung lainnya sambil melayani permintaan yang
terdapat selama pergerakan tersebut. Tetapi pada saat head tiba pada
salah satu ujung, maka head tidak berbalik arah dan melayani
permintaan-permintaan, melainkan akan kembali ke ujung disk asal
pergerakannya. Jika head mulai dari ujung 0, maka setelah tiba di ujung
disk yang lainnya, maka head tidak akan berbalik arah menuju ujung 0,
tetapi langsung bergerak ulang dari 0 ke ujung satunya lagi.
e. Penjadwalan LOOK
Perhatikan bahwa SCAN dan C-SCAN menggerakkan disk arm
melewati lebar seluruh disk. Pada kenyataanya algoritma ini tidak
diimplementasikan demikian (pergerakan melewati lebar seluruh disk).
Pada umumnya, arm disk bergerak paling jauh hanya pada permintaan
terakhir pada masing-masin arah pergerakannya. Kemudian langsung berbalik arah
tanpa harus menuju ujung disk. Versi SCAN dan C-SCAN yang berprilaku
seperti ini disebut LOOK SCAN dan LOOK C-SCAN, karena algoritma ini melihat
dulu permintaan-permintaan sebelum melanjutkan arah pergerakannya.
f. Pemilihan Algoritma Penjadwalan Disk
Dari algoritma-algoritma diatas, bagaimanakah kita
memilih algoritma terbaik yang akan digunakan? SSTF lebih umum dan memiliki
prilaku yang lazim kita temui. SCAN dan C-SCAN memperlihatkan kemampuan yang
lebih baik bagi sistem yang menempatkan beban pekerjaan yang berat kepada disk,
karena algoritma tersebut memiliki masalah starvation yang paling
sedikit. Untuk antrian permintaan tertentu, mungkin saja kita dapat
mendefinisikan urutan akses dan pengambilan data dari disk yang optimal,
tapi proses komputasi membutuhkan penjadwalan optimal yang tidak kita dapatkan
pada SSTF atau SCAN.
Dengan algoritma
penjadwalan yang manapun, kinerja sistem sangat tergantung pada jumlah dan tipe
permintaan. Sebagai contoh, misalnya kita hanya memiliki satu permintaan, maka
semua algoritma penjadwalan akan dipaksa bertindak sama, karena
algoritma-algoritma tersebut hanya punya satu pilihan dari mana menggerakkan disk
head: semuanya berprilaku seperti algoritma penjadwalan FCFS.
Perlu diperhatikan
pula bahwa pelayanan permintaan disk dapat dipengaruhi pula oleh metode
alokasi file. Sebuah program yang membaca alokasi file secara terus menerus
mungkin akan membuat beberapa permintaan yang berdekatan pada disk,
menyebabkan pergerakan head menjadi terbatas. File yang memiliki link
atau indeks, dilain pihak, mungkin juga memasukkan blok-blok yang tersebar luas
pada disk, menyebabkan pergerakan head yang sangat besar.
Lokasi blok-blok
indeks dan directory juga tidak kalah penting. Karena file harus dibuka
sebelum digunakan, proses pembukaan file membutuhkan pencarian pada struktur directory,
dengan demikian directory akan sering diakses. Kita anggap catatan directory
berada pada awal silinder, sedangkan data file berada pada silinder terakhir.
Pada kasus ini, disk head harus bergerak melewati sepanjang lebar disk.
Membuat tempat penyimpanan sementara dari blok-blok indeks dan directory
ke dalam memori dapat membantu mengurangi pergerakan disk arm, khususnya
untuk permintaan membaca disk.
Karena kerumitan
inilah, maka algoritma penjadwalan disk harus ditulis dalam modul
terpisah dari sistem operasi, jadi dapat saling mengganti dengan algoritma lain
jika diperlukan. Baik SSTF maupun LOOK keduanya merupakan pilihan yang paling
masuk akal sebagai algoritma yang paling dasar.
Popular Posts
-
Sains bisa berarti pencarian ilmu pengetahuan dan asal-usul kehidupan. sains adalah ilmu pengetahuan yang mempelajari sisi kehidupan a...
-
BAB I PENDAHULUAN Imam Malik bin Anas lahir di Madinah pada tahun 93H/711M. Beliau dilahirkan...
-
MOBILE COMPUTING Pengertian · Mobile Computing adalah sebuah paradigma baru dalam kemajuan teknologi yang dapat melakukan...
-
Yahoo Messenger atau biasanya YM merupakan program pengirim pesan instan populer yang disediakan oleh Yahoo!. Yahoo! Messenger tersedia...
Categories
- Arsip Kuliah (5)
- cinta (4)
- Desain (6)
- Foto Reproduksi (2)
- ilmu bumi (5)
- ilmu hayat (8)
- ilmu pasti (6)
- ilmu pengetahuan (17)
- ilmu sosial (1)
- java (19)
- kehidupan (19)
- Konsep PBO (14)
- Laskar D'Carti (5)
- Tutorial Photoshop (2)
- yahoo messenger (3)