Tuesday, 11 December 2012

Essay: Jenis, Fitur & Prinsip Dasar
            
   
oleh: Angela Ttomcornish 


 Pada dasarnya, esai adalah tulisan kreatif dalam prosa pada setiap masalah-masalah di mana penulis bertujuan untuk memberikan pandangan pribadinya tentang suatu subjek. esai Istilah '' berasal dari arti kata Perancis 'tindakan berat' dan berusaha menunjukkan ', usaha atau produk perusahaan. Oleh karena itu, esai adalah cobaan atau upaya penulis untuk mengekspresikan dalam bentuk tertulis setiap titik pandang yang berisi ide-ide umum seorang penulis pada masalah-subjek. Esai dianggap endevours dari penulis untuk mencerna pikiran mereka sendiri dan untuk berbagi ide-ide mereka dengan orang lain. Sejumlah besar tulisan telah diterbitkan pada setiap subyek tertentu dalam pers. Lebih dari itu, esai adalah jenis yang lebih baik untuk menulis lanjutan praktek di sekolah.  

Essays dapat bervariasi dalam ukuran. Meskipun demikian, ukuran rata-rata sebuah esai sekolah adalah sekitar lima ratus kata. Sesuai dengan cara di mana topik disajikan, esai dapat diklasifikasikan ke dalam jenis berikut: argumentatif, naratif dan deskriptif. 

Esai argumentatif merupakan bagian dari tulisan di mana penulis mengkomunikasikan pendapat atau pandangan dan berdebat untuk atau terhadap sebuah ide tertentu. 

Esai naratif adalah gambaran urutan kejadian satu sama lain. Materi yang diatur sesuai dengan urutan kejadian yang sebenarnya. 

Esai deskriptif berbeda dengan esai naratif dalam urutan fakta-fakta dan ide-ide mengikuti satu sama lain. Ia tidak tergantung pada suksesi sebenarnya peristiwa melainkan fitur pada peristiwa atau pola penulis presentasi. 

esai tersebut berisi tiga bagian utama struktur wajib: pendahuluan, tubuh utama dan kesimpulan. Perlu diingat bahwa esai yang sempurna adalah ditandai dengan koherensi, kejelasan, logika dan konsistensi. 

Berikut adalah beberapa tips tentang cara membuat sebuah esai yang jelas. Sebelum Anda mulai menulis esai, penting untuk mengumpulkan, mengamati, menganalisis dan menggabungkan fakta-fakta yang relevan dengan materi-subjek esai. Dengan kata lain, data-base dan skema yang baik dari pekerjaan masa depan adalah prasyarat dari sebuah esai yang sangat baik. 

Begitu Anda memutuskan suatu topik, mengatur agar fakta yang sesuai untuk tujuan esai Anda dan memilih metode data Anda set-up (perbandingan, kontras, analogi pada fakta, klasifikasi). Buatlah outline lengkap yang akan membantu Anda menjaga pola Anda ketika Anda menulis. Simpan ke batas yang ditentukan ruang dan belajar untuk tidak melebihi mereka. Tentukan tujuan Anda dalam bentuk tertulis dengan membuat pernyataan tesis yang akan mengungkapkan suatu topik. Tuliskan konsep awal untuk memastikan bahwa Anda telah mengorganisir esai Anda secara logis dan bahwa bagian pengantar dan kesimpulan yang jelas untuk membuat karya Anda menulis lebih efektif. Format draft akhir Anda sesuai dengan persyaratan yang ditetapkan. 

Seperti yang terlihat dari atas, untuk mengembangkan keahlian dalam menciptakan satu esai harus memiliki pengetahuan tentang elemen strukturalnya, fitur dan jenis dan terus berlatih, sebagai praktek membuat sempurna. 

Thursday, 29 November 2012

Coding Trigger Album


DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ `toko_dbc110116`.`insertAlbum`$$

CREATE TRIGGER `toko_dbc110116`.`insertAlbum` AFTER INSERT on `toko_dbc110116`.`album`
FOR EACH ROW BEGIN
insert into log values ('aryudi',now(),'INSERT');
END$$

DELIMITER ;
-------------------------------------

DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ `toko_dbc110116`.`UpdateAlbum`$$

create trigger `toko_dbc110116`.`UpdateAlbum` AFTER UPDATE on `toko_dbc110116`.`album`
for each row BEGIN
insert into log values ('aryudi',now(),'UPDATE');
END;
$$

DELIMITER ;
------------------------------------

DELIMITER $$

DROP TRIGGER /*!50032 IF EXISTS */ `toko_dbc110116`.`DeleteAlbum`$$

CREATE TRIGGER `toko_dbc110116`.`DeleteAlbum` AFTER DELETE on `toko_dbc110116`.`album`
FOR EACH ROW BEGIN
insert into log values ('aryudi',now(),'DELETE');
END$$

DELIMITER ;


Friday, 23 November 2012

Cara Menembus Media?


Menulis bukan hanya tentang idealisme, menulis juga tentang realisme. Kesempatan dimuat di media adalah kesempatan agar karya Anda dibaca dan diapresiasi oleh orang banyak. Honor adalah kompensasi paling akhir, meski tidak dapat dipungkiri bahwa bagi sebagian penulis, honor adalah motivasi paling awal. Ada sebagian penulis yang beranggapan bahwa media, dalam hal ini koran, adalah sebuah penasbihan. Jadi ketika karya Anda (cerpen atau puisi atau opini) dimuat di sebuah koran, maka penulis itu disebut sah disebut sebagai penulis. Ada juga sebagian penulis yang menganggap bahwa publisitas bukan barometer. Semuanya dikembalikan kepada Anda.

Namun ada hal-hal yang harus dicermati ketika kita akan mengirimkan karya ke sebuah media. Ibarat mencari pacar, maka kita harus tahu kesukaan kecengan kita apa, warna favoritnya, tempat nongkrongnya, dan hal-hal yang bisa kita jadikan 'bekal nembak'. Begitu juga dengan media. Jika Anda adalah penulis generalis dalam arti menulis apa saja, genre yang mana saja, tentu Anda harus menyesuaikan kebutuhan pasar, dalam hal ini kebijakan media. Nah, bagi Anda yang masih bingung akan ke mana naskah Anda dilempar, tentu mengetahui kebijakan editorial masing-masing media sangat diperlukan. Seperti strategi marketing; melempar produk yang tepat kepada audiens yang tepat.

Kenapa harus mengenali media? Karena Anda tentu tidak ingin naskah Anda sia-sia, bukan? Misalnya, mengirimkan chicklit ke majalah Bobo, sampai cacing berbulu pun, naskah Anda tidak akan dimuat. Kenapa? Karena Bobo adalah majalah anak-anak, dan cerpen Anda tidak sesuai untuk segmen pembaca mereka.

Agar Anda tidak salah kirim dan menyia-nyiakan naskah Anda, ada baiknya Anda melakukan hal-hal sebagai berikut:

1. JENIS RUBRIK
Patut diketahui bahwa tidak setiap media memuat cerpen dan atau puisi. Ada yang hanya memuat cerpen tapi tidak untuk puisi, ada yang hanya memuat puisi tapi tidak cerpen, ada yang memuat keduanya, ada juga yang tidak memuat keduanya. Misalnya, Tribun Jabar menyediakan halaman Senandika untuk cerpen, tapi di sana tidak ada puisi. Jadi, jangan kirimkan puisi ke Tribun Jabar. Majalah Kartini, Sekar, Chic, Femina adalah contoh-contoh majalah yang hanya menerima cerpen, tidak untuk puisi.

Cara untuk mengetahui itu bagaimana? Belilah media yang bersangkutan, koran biasanya setiap hari Minggu, majalah ada yang terbit mingguan, ada yang dwi mingguan, ada juga yang terbit setiap bulan. Perhatikan rubrik apa saja yang ada di sana yang menerima tulisan dari luar.

2. JENIS MEDIA
Jika diperhatikan, jenis-jenis cerpen di koran, majalah, atau tabloid berbeda-beda dari gaya penceritaan dan pemilihan tema. Koran lebih bersifat umum sedangkan majalah dan tabloid biasanya disesuaikan dengan segmen pembaca. Sesuaikan gaya bercerita Anda. Merasa terkekang dengan keinginan media? Jangan kirimkan cerpen Anda. Mudah saja, bukan?

3. VISI DAN MISI
Majalah anak-anak dengan majalah wanita dewasa tentu berbeda. Majalah wanita dewasa pun ada berbagai jenis. Chic diperuntukkan bagi para wanita karier. Femina dan Sekar berbeda lagi. Belum lagi ada berbagai jenis koran.

Visi dan misi biasanya bersangkutan dengan kebijakan editorial. Misalnya, majalah Ummi, Annida, Sabili, Tarbawi lebih ke visi dan misi islami. Jangan kirimkan cerpen-cerpen bertema rating 'S' ke sana karena akan langsung 'dibantai' :D.

Majalah Bobo dikhususkan untuk pembaca anak-anak. Majalah Story berisi cerpen-cerpen bertema remaja walau sekarang ada satu rubrik yang khusus memuat cerpen yang 'nyastra'. Republika lebih islami, berbeda dengan Kompas dan Pikiran Rakyat.

4. PANJANG NASKAH
Patokan panjang naskah di berbagai media itu berbeda-beda karena disesuaikan dengan space yang mereka sediakan. Ini penting, karena tidak semua redaktur mau bersusah payah mengirimkan cerpen yang kita kirim untuk direvisi, biasanya langsung ditolak mentah-mentah. Contoh, Tribun Jabar mematok maksimal 7 ribu karakter dengan spasi. Jawa Pos, Inilah Koran, dan Kompas sekitar 9-10 ribu karakter. Dengan spasi? Yaiyalah dengan spasi, kecuali medianya mengatakan lain.

Bagaimana mengetahui ini? Lihat informasinya di media yang bersangkutan. Majalah Story memuat detail pengiriman naskah di setiap edisinya. Atau, bisa bertanya kepada mereka yang naskahnya sudah pernah dimuat. Bisa juga tanyakan langsung kepada redaktur atau pengasuh rubrik yang bersangkutan. Masih tidak bisa? Kirimkan e-mail atau telepon. Masih tidak bisa juga? PM atau DM.

Dan tolong jangan tanya soal jenis huruf dan besar huruf. Nyaris seluruh media menggunakan standard TNR 12 dengan spasi 1.5.

5. KENALI SELERA REDAKTUR
Koran adalah media yang paling susah ditebak. Hanya Tuhan dan redaktur bersangkutan yang tahu. Hahahaha .... Believe it or not, tidak ada garis merah atau garis besar tentang ini. Untuk mengetahuinya, baca cerpen-cerpen atau puisi yang telah lebih dulu dimuat, atau baca karya-karya redakturnya. Biasanya para redaktur juga adalah para penulis. Mengenali selera redaktur memang bukan langkah yang mudah, karena walau bagaimanapun, selera itu akan dibenturkan dengan visi dan misi serta kebijakan editorial media yang bersangkutan. Menyerah? Please don't!

6. TEKNIS PENGIRIMAN
Hard copy atau soft copy. Dewasa ini banyak media yang lebih suka menerima naskah dalam bentuk e-mail daripada dalam bentuk print out. Barangkali dalam rangka save the earth dan mengurangi sampah naskah, eh sampah kertas :D

Ini keuntungan bagi kita para penulis karena mengirim naskah melalui e-mail cenderung lebih ringkas daripada harus mengirimkan naskah dalam bentuk hard copy. Eh sebentar, beberapa hari yang lalu pernah ada yang bertanya kepada saya apa itu beda hard copy dan soft copy. Oke, mari saya jelaskan di sini juga.

Hard copy ==>; Dikirim dalam bentuk print out (please, jangan tanya print out itu apa), disertai biodata, dan surat pengantar. Contoh surat pengantar bisa dilihat di sini. Foto? Sesuaikan dengan media, ada yang meminta foto ada yang tidak. Kalau media yang bersangkutan tidak meminta foto, sebaiknya jangan kirim foto Anda.

Apakah perlu dijilid? Cerpen? No! Kalau novel, iya. Masukkan semua berkas tadi ke dalam amplop cokelat tertutup. Ingat, amplop! Jangan kertas koran atau kertas kado. Anda sedang mengirim naskah, bukan mengirim ucapan selamat ulang tahun.
Dikirim melalui apa? Datang langsung ke redaksi, pos, jasa ekspedisi. Pilih saja sesuai selera Anda.

Soft copy ==>; Dikirim dalam bentuk file, disertai dengan biodata, dan surat pengantar di badan e-mail. Foto sama dengan cara pengiriman hard copy di atas. And remember this: kirim naskah di lampiran, BUKAN DI BADAN E-MAIL. Kalau mau jadi penulis sukses, jangan gaptek :D.

Untuk surat pengantar melalui e-mail, Anda bisa menggunakan pengantar yang sama seperti ketika mengirim hard copy, bisa juga dengan yang lebih ringkas.
Contoh:

Kepada redaktur koran ...

Berikut ini saya kirimkan naskah cerpen/puisi dengan judul ....
Bersama naskah ini pula saya sertakan biodata.
Terima kasih.

Hormat saya,

(Nama jelas/nama pena)

Dikirim ke mana? Tentu saja dikirim ke redaktur yang bersangkutan. Tidak tahu alamat e-mailnya? Please refer to this link.


Setelah naskah dikirim lalu apa? Ya tunggu sampai dimuat. Ditolak? Buat yang baru, kirim lagi. Masih ditolak? Buat aja terus sampai dimuat. Hehehe .... Because being a writer is a hardwork. Good luck, and keep writing.

Salam
~eS

Thursday, 8 November 2012

Koding Program Procedure untuk inputDetailPenjualan


Koding Program Procedure untuk inputDetailPenjualan pada SQL

DELIMITER $$

DROP PROCEDURE IF EXISTS `toko_dbc110071`.`inputDetailPenjualan`$$

CREATE DEFINER=`root`@`localhost` PROCEDURE `inputDetailPenjualan`(vkode_album varchar(5), vqty smallint, vharga decimal)
BEGIN
DECLARE vkode_penjualan VARCHAR(20);
declare vsubtotal decimal;
set vsubtotal = vqty*vharga;
SET vkode_penjualan = getKodePenjualan(now());
INSERT INTO detail_penjualan VALUES (vkode_penjualan, vkode_album, vqty, vharga, vsubtotal);
select vkode_penjualan, vkode_album,vqty, vharga from detail_penjualan;
    END$$

DELIMITER ;

Monday, 5 November 2012

koding program stored dan function


DELIMITER $$

DROP FUNCTION IF EXISTS `toko_dbc110091`.`getKodepenjualan`$$

CREATE FUNCTION `toko_dbc110091`.`getKodepenjualan`(vTgl_pinjam DATETIME)
RETURNS VARCHAR(10)
   DETERMINISTIC


BEGIN

DECLARE vthn CHAR(2);

DECLARE vbln CHAR(2);

DECLARE vtgl CHAR(2);

DECLARE vUrut INT;


SET vthn=SUBSTR(vTgl_pinjam,3,4);

SET vbln=SUBSTR(vTgl_pinjam,6,6);

SET vtgl=SUBSTR(vTgl_pinjam,9,9);

SELECT IFNULL (MAX(CAST(SUBSTR(Kode_Penjualan, 4, 5) AS UNSIGNED)),0)

FROM detail_penjualan

WHERE vtgl_pinjam LIKE CONCAT (vthn, vbln, vtgl, '%')INTO vUrut;


RETURN CONCAT (vthn, vbln,vtgl, vUrut+1);
   

END$$

DELIMITER ;

coding program kalkulator dalam bahasa delphi


var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.TambahClick(Sender: TObject);
var EdJumlah : integer;
begin
EdJumlah := StrToInt(Bil_1.Text)+StrToInt(Bil_2.Text);
jml.Text := IntToStr(EdJumlah);
end;

procedure TForm1.KurangClick(Sender: TObject);
var edjumlah : integer;
begin
EdJumlah := StrToInt(Bil_1.Text)-StrToInt(Bil_2.Text);
jml.Text := IntToStr(EdJumlah);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if (application.MessageBox('Anda yakin keluar dari program','Information',mb_yesno)=idyes) then
close;
end;

procedure TForm1.BagiClick(Sender: TObject);
var edjumlah : real;
bil1,bil2 : real;
begin
bil1 := StrToFloat(Bil_1.Text);
bil2 := StrToFloat(bil_2.Text);
EdJumlah := bil1/bil2;
jml.Text := FloatToStr(EdJumlah);
end;

procedure TForm1.KaliClick(Sender: TObject);
var edjumlah : integer;
begin
EdJumlah := StrToInt(Bil_1.Text)*StrToInt(Bil_2.Text);
jml.Text := IntToStr(EdJumlah);
end;

procedure TForm1.div1Click(Sender: TObject);
var edjumlah : integer;
begin
EdJumlah := StrToInt(Bil_1.Text) div StrToInt(Bil_2.Text);
jml.Text := IntToStr(EdJumlah);
end;

procedure TForm1.mod1Click(Sender: TObject);
var edjumlah : integer;
begin
EdJumlah := StrToInt(Bil_1.Text) mod StrToInt(Bil_2.Text);
jml.Text := IntToStr(EdJumlah);
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
bil_1.Clear;
bil_2.Clear;
Jml.Clear;
end;

procedure TForm1.Button3Click(Sender: TObject);
var edjumlah : integer;
begin
EdJumlah := StrToInt(Bil_1.Text) * StrToInt(Bil_1.Text);
jml.Text := IntToStr(EdJumlah);
end;

end.

Sunday, 4 November 2012

Contoh Pidato Perpisahan


Assalamualaikum Warohmatullohi Wabarokaatu

Puji syukur mari kita panjatkan kehadirat Allah SWT, karena kehendak-Nya lah kita semua dapat berkumpul di tempat yang berbahagia ini. Sholawat serta salam semoga senantiasa tercurah selama-lamanya kepada junjunan alam Nabi Muhammad SAW.

Bapak beserta Ibu, hadirin yang saya hormati. Waktu memang terasa berlalu begitu cepat. Rasanya baru kemarin saya dan teman-teman pertama masuk ke sekolah ini, dan sekarang harus sudah berpisah lagi. Saya dan teman-teman harus pergi meninggalkan sekolah ini untuk melanjutkan sekolah, mengejar cita-cita kami semua. Tentu saja selama tiga tahun belajar di sekolah ini, banyak yang  akan menjadi kenangan. Di sini, di sekolah yang sama-sama kita cintai ini, kami semua belajar mencari ilmu. Berkumpul di kelas ataupun di berbagai macam kegiatan, kadang-kadang bercanda bersama teman-teman. Tentu saja itu semua akan menjadi kenangan yang tak akan terlupakan.

Kebaikan Bapak dan Ibu guru semua, ilmu yang telah di berikan kepada kami tentu akan kami ingat selalu, tersimpan di hati kami menjadi cahaya yang akan menerangi jalan kami. Mudah-mudahan, ilmu yang kami terima dapat bermanfaat bagi kami semua. Amiiin..
Kami tidak bisa membalas kebaikan Bapak dan Ibu, kami hanya bisa mengucapkan terimakasih, dan memanjatkan do’a, semoga atas ilmu yang telah diberikan kepada kami, Bapak Ibu diberi pahala yang berlipat oleh Allah SWT, Amiiin…

Bapak Kepala Sekolah, Bapak Ibu Guru, serta Bapak Ibu dari staf Tata Usaha yang saya hormati. Selama kami belajar di sekolah ini, tentu banyak kesalahan, banyak prilaku yang mungkin bisa menyakiti hati semuanya. Maka dari itu, saya mewakili teman-teman semua, pada kesempatan kali ini, kami meminta maaf kepada Bapak Ibu semua, atas kesalahan dan kekhilapan kami semua. Semoga Bapak Ibu dapat memaafkannya..

Terakhir, mohon do’a dari semuanya, semoga saya dan teman-teman dapat meneruskan mencari ilmu, untuk mencapai cita-citaa kami. Semoga tidak ada halangan untuk mencapai semua itu. Amiin..
Mungkin cukup sekian yang dapat saya sampaikan, apabila ada kesalahan dan kekurangan, saya mohon maaf. . Wabillahi taufik Wal Hidayah,

Wassalamualaikum warohmatullohi Wabarokatu..

Saturday, 3 November 2012

Koding Program Exception


public class konversi
{
public static void main (String[] args)
{
       String bil = "0101001";
       int[] arr_bil= new int[1000];
       String[] st= new String[1000];
       double hasil=0,result=0;
       int a=0;
       char t;
       for(int i=0;i < bil.length();i++)
       {
       t = bil.charAt(i);
       st[i]=Character.toString(t);
       }
       for(int i=bil.length()-1; i>=0;i--)
       {
       arr_bil[a]=Integer.parseInt(st[i]);
       hasil= arr_bil[a]* (Math.pow(2,a));
       result=result+hasil;
       a++;
       }
       {
        int resultIn = (int)result;
        System.out.println("Bilangan Biner : "+bil);
        System.out.println("Bilangan Desimal : "+resultIn);
        }
    }
}

Monday, 29 October 2012

Koding Program Sorting Array dengan Urutan Ascending


Program Sorting Array dengan Urutan Ascending

program sorting;
uses crt;

const
     nmax = 50;
type
    rdata = record
         nim      : integer;
         nama     : string[30];
         alamat   : string[50];
         end;
    aData = array [1..nmax] of rdata;


var
{variabel global}
    data         : aData;
    plh, ch      : char;
    x            : integer;

{fungsi menu awal}
function menu : char;
var
   c : char;
begin
     clrscr;
     writeln('--- Program Sorting Array dengan Urutan Ascending ---');
     writeln;
     writeln('1: Insertion Sort');
     writeln('2: Selection Sort');
     writeln('3: Bubble Sort');
     writeln('4: Keluar Program');
     repeat
           writeln;
           write('Pilih >> ');
           c := readkey;
           writeln(c);
           if not (c in ['1'..'4']) then
              writeln('Pilihan salah ...');
     until(c in ['1'..'4']);
     menu := c;
end;

procedure inputData(var A : aData; var n : integer);
var
   i : integer;
begin
     repeat
           write('Berapa banyak data? ');
           readln(n);
           if n>0 then
           begin
                writeln;
                for i:=1 to n do
                begin
                     writeln('Mahasiswa ke-',i);
                     write('NIM    : '); readln(data[i].nim);
                     write('Nama   : '); readln(data[i].nama);
                     write('Alamat : '); readln(data[i].alamat);
                     writeln;
                end;
           end
           else
               writeln('Input salah...')
     until(n>0);
end;

{prosedur Insertion Sort}
procedure iS(var A : aData; var ndata : integer);
var
   temp,i,j : integer;
   temp2,temp3 : string[50];
begin
     clrscr;
     writeln('Input Data Insertion Sort');
     writeln;
     inputData(A,ndata);
     {rutin kode}
     for i:=2 to ndata do
     begin
          temp := A[i].nim;
          temp2 := A[i].nama;
          temp3 := A[i].alamat;

          j := i-1;
          while ((temp<A[j].nim) and (j>=1)) do
          begin
               A[j+1].nim := A[j].nim;
               A[j+1].nama := A[j].nama;
               A[j+1].alamat := A[j].alamat;
               j := j-1;
          end;
          A[j+1].nim := temp;
          A[j+1].nama := temp2;
          A[j+1].alamat := temp3;
     end;
end;

{prosedur untuk tukar data}
procedure tukar(i,j : integer);
var
   temp : integer;
   temp2 : string[50];
begin
     temp := data[i].nim;
     data[i].nim := data[j].nim;
     data[j].nim := temp;

     temp2 := data[i].nama;
     data[i].nama := data[j].nama;
     data[j].nama := temp2;

     temp2 := data[i].alamat;
     data[i].alamat := data[j].alamat;
     data[j].alamat := temp2;
end;

{prosedur Selection Sort}
procedure sS(var A : aData; var ndata : integer);
var
   i,j,pos : integer;
begin
     clrscr;
     writeln('Input Data Selection Sort');
     writeln;
     inputData(A,ndata);

     {rutin kode}
     for i:=1 to ndata-1 do
     begin
          pos := i;
          for j:=i+1 to ndata do
              if (A[pos].nim > A[j].nim) then
                 pos := j;
          if (pos<>i) then
             tukar(pos,i);
     end;
end;

{prosedur Bubble Sort}
procedure bS(var A : aData; var ndata : integer);
var
   i,j : integer;
begin
     clrscr;
     writeln('Input Data Bubble Sort');
     writeln;
     inputData(A,ndata);

     {rutin kode}
     for i:=1 to ndata-1 do
         for j:=ndata downto i+1 do
             if (A[j].nim < A[j-1].nim) then
                  tukar(j,(j-1));
end;

{prosedur tampil data yang terurut Ascending}
procedure showUrut(A : aData; var ndata : integer);
var
   i : integer;
begin
     clrscr;
     writeln('Tampilan Data Terurut');
     writeln;
     for i:=1 to ndata do
     begin
          writeln('NIM    : ',A[i].nim);
          writeln('Nama   : ',A[i].nama);
          writeln('Alamat : ',A[i].alamat);
          writeln;
     end;
end;

{program utama}
begin
     repeat
           plh := menu;
           case plh of
                '1' : iS(data,x);
                '2' : sS(data,x);
                '3' : bS(data,x);
                '4' : exit;
           end;

           writeln;
           writeln('Next >> Tampilan setelah data diurutkan...');
           write('Tekan sembarang karakter untuk berikutnya...') ;
           readkey;
           showUrut(data,x);
           repeat
                 writeln;
                 write('Tekan >> 1: Kembali ke Menu, 0: Keluar Program');
                 ch := readkey;
                 if not (ch in ['1','0']) then
                    writeln(' >> Pilihan salah...');
           until(ch in ['1','0']);
     until(ch = '0');
end.

Koding Program Pencarian data Nomor_induk pegwai


Pencarian data didasarkan pada Nomor_induk pegwai

program searching;
uses crt;
label h, z, g, f;
const max=100;
type pegawai=record
     nomor         : integer;
     nama          : string[30];
     bagian        :string[20];
     gaji          :integer;
end;
tabel=array[1..max] of pegawai;
tabel_1=array[1..max] of integer;
var
 a:tabel;
 b:tabel_1;
 n:integer;
 ni:integer;
 i, j, temp:integer;
 p:char;
 pilih:integer;

procedure cari(a:tabel; n:integer; x:integer; var isearch:integer);
var
 i:integer;
begin
 if(n=0) then isearch:=0 else
 begin
  i:=1;
  while ((a[i].nomor<x) and (i<n)) do
  i:=i+1;
  if (a[i].nomor=x) then
  begin
   writeln('Data yang dicari : ');
   writeln('Nomor pegawai : ', a[i].nomor);
   writeln('Nama pegawai : ', a[i].nama);
   writeln('Bagian : ', a[i].bagian);
   writeln('Gaji : ', a[i].gaji);
  end
  else
   writeln('Data tidak ditemukan');
 end;
end;

procedure biner(a:tabel; n:integer; x:integer; var isearch:integer);
var
 bawah, atas:integer;
 tengah:integer;
 found:boolean;
begin
  if (n=0) then isearch:=0 else
  begin
   bawah:=1;
   atas:=n;
   found:=false;
   while ((not found) and (atas>=bawah)) do
   begin
    tengah:=(bawah+atas) div 2;
    if (a[tengah].nomor=x) then
     found:=true
    else
    if (a[tengah].nomor>x) then
     atas:=tengah-1
    else
     bawah:=tengah+1;
   end;
   if found then
   begin
    isearch:=tengah;
    writeln('Data yang dicari : ');
    writeln('Nomor pegawai : ',a[i].nomor);
    writeln('Nama pegawai  : ',a[i].nama);
    writeln('Bagian        : ',a[i].bagian);
    writeln('Gaji          : ',a[i].gaji);
   end;
 end;
end;
  begin
   h:clrscr;
   writeln;
   writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
   writeln('------ SEARCHING DATA ------');
   writeln('~~~~~~~~~~~~~~~~~~~~~~~~~~~~');
   writeln;
   writeln;
   write('Banyaknya data pegawai : ');readln(n);
   writeln;
   for i:=1 to n do
   begin
    write('Nomor pegawai ke-',i,' : '); readln(a[i].nomor);
    write('Nama pegawai ke-',i,'  : '); readln(a[i].nama);
    write('Bagian ke-',i,'        : '); readln(a[i].bagian);
    write('Gaji ke-',i,'          : '); readln(a[i].gaji);
    writeln;
   end;
   z:
   writeln;
   writeln('*****************************');
   writeln('------- MENU SEARCHING ------');
   writeln('*****************************');
   writeln;
   writeln('1. Pencarian Sekuensial');
   writeln('2. Pencarian Biner     ');
   writeln('3. Exit');
   write('Pilihan : '); readln(pilih);
   writeln;
  case pilih of
  1:begin
    clrscr;
    g:
    writeln;
    writeln('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
    writeln('****** PENCARIAN SEKUENSIAL ******');
    writeln('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
    writeln;
    for i:=1 to n-1 do
    begin
     for i:=1 to n-i do
     begin
      if (a[j].nomor) > (a[j+i].nomor) then
      begin
       temp:=a[j].nomor;
       a[j].nomor:=a[j+1].nomor;
       a[j+1].nomor:=temp;
      end;
     end;
    end;
    writeln('Masukkan nomor pegawai yang ingin disearching : '); readln(ni);
    writeln;
    cari(a,n,ni,i);
    writeln;
    write('Ingin cari lagi ? (Y/T) : '); readln(p);
    if (p='Y') or (p='y') then goto g;
    goto z;
    writeln;
    end;
  2:begin
    clrscr;
    f:
    writeln;
    writeln('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
    writeln('****** PENCARIAN BINER ******');
    writeln('^^^^^^^^^^^^^^^^^^^^^^^^^^^^^');
    writeln;
    for i:=1 to n-1 do
    begin
     for j:=1 to n-1 do
     begin
      if (a[j].nomor) > (a[j+1].nomor) then
      begin
       temp:=a[j].nomor;
       a[j].nomor:=a[j+1].nomor;
       a[j+1].nomor:=temp;
      end;
     end;
    end;
    writeln;
    writeln('Masukkan nomor pegawai yang ingin disearching : '); readln (ni);
    writeln;
    biner(a,n,ni,i);
    writeln;
    write('Ingin cari lagi ? (Y/T) : '); readln(p);
    if (p='Y') or (p='y') then goto f;
    goto z;
    writeln;
    end;
  3:begin
    writeln('Program diakhiri');
    writeln;
    end
    else
    writeln('Pilihan Salah');
    for i:=1 to n do
    begin
     delay(5000);
    end;
    goto h;
  end;
  readkey;
end.

Bisnis proses berobat ke dokter


Bisnis proses berobat ke dokter :

  1. Pasien datang ke tempat praktek dokter.
  2. Pasien mendaftar pada staf dokter
  3. Staf dokter memninta kartu berobat
  4. Bila pasien baru pertama kali datang, pasien harus membuat kartu berobat, bila sudah pernah dan telah membuat kartu erobat pasien boleh mendaftar.
  5. Staf dokter memberikan nomor urut antrian pada pasien.
  6. Staf dokter mencatat keluhan pasien pada medical record (catatan pengobatan).
  7. Pasien menunggu di panggil
  8. Staff menyerahkan medical record pada dokter.
  9. Staff dokter memanggil nomer urut pasien
  10. Pasien masuk keruangan dokter
  11. Dokter memeriksa pasien
  12. Dokter mencatat keluhan pasien pada medical record
  13. Dokter memberikan resep
  14. Pasien selesai di periksa
  15. Pasien menyerahkan resep dokter ke apotek.
  16. Apoteker mencari obat
  17. Apoteker meracik obat sesuai dengan resep
  18. Apoteker mencata obat yang diberikan sebagai catatan stok obat.
  19. Apoteker memberikan obat pada pasien.
  20. Pasien membayar obat
  21. Pasien pulang


Thursday, 25 October 2012

Mengubungkan Database Dengan Aplikasi Sederhana

PHP  (akronim  dari  PHP  Hypertext  Preprocessor)  yang  merupakan  bahasa  pemrogramman berbasis web yang memiliki kemampuan untuk memproses data dinamis.
PHP dikatakan sebagai sebuah server-side embedded script language artinya sintaks-sintaks dan perintah  yang  kita  berikan  akan  sepenuhnya  dijalankan  oleh  server  tetapi  disertakan  pada halaman HTML biasa. Aplikasi-aplikasi yang dibangun oleh PHP pada umumnya akan memberikan hasil pada web browser, tetapi prosesnya secara keseluruhan dijalankan di server.
Pada  prinsipnya  server  akan  bekerja  apabila  ada  permintaan  dari  client.  Dalam  hal  ini  client menggunakan  kode-kode  PHP  untuk  mengirimkan  permintaan  ke  server  (dapat  dilihat  pada gambar dibawah). Ketika menggunakan PHP sebagai server-side embedded script language maka server akan melakukan hal-hal sebagai berikut :
  Membaca permintaan dari client/browser
  Mencari halaman/page di server
  Melakukan instruksi yang diberikan oleh PHP untuk melakukan modifikasi pada halaman/page.
  Mengirim kembali halaman tersebut kepada client melalui internet atau intranet.
Syntax PHP
Kode  PHP  disimpan  sebagai  plain  text  dalam  format  ASCII,  sehingga  kode  PHP  dapat  ditulis  hampir  di semua editor text seperti windows notepad, windows wordpad, dll. Kode PHP adalah kode yang disertakan di sebuah halaman HTML dan kode tersebut dijalankan oleh server sebelum dikirim ke browser. 
Contoh file PHP (contoh.php):
<html>
   <?  
Print ("Contoh text yang menggunakan kode PHP"); 
   ?>
</html>
Pada file .html, HTTP server hanya melewatkan content dari file menuju ke browser. Server tidak mencoba untuk mengerti atau memproses file, karena itu adalah tugas sebuah browser. 
Pada  file  dengan  ekstensi  .php  akan  ditangani  secara  berbeda.  Yang  memiliki  kode  PHP  akan diperiksa. Web server akan memulai bekerja apabila berada diluar lingkungan kode HTML. Oleh karena itu server akan melewati semua content yang berisi kode HTML, CSS, JavaScript, simple
text di browser tanpa diinterpretasikan di server.
Blok scripting PHP selalu diawali dengan <?php dan diakhiri dengan ?>. Blok scripting PHP dapat ditempatkan  dimana  saja  di  dalam  dokumen.  Pada  beberapa  server  yang  mendukung,  blok scripting  PHP  dapat  diawali  dengan  <?  dan  diakhiri  dengan  ?>.  Namun,  untuk  kompatibilitas maksimum, sebaiknya menggunakan bentuk yang standar (<?php ?>).
Setiap  baris  kode  PHP  harus  diakhiri  dengan  semikolon  (;).  Semikolon  ini  merupakan  separator yang digunakan untuk membedakan satu instruksi dengan instruksi lainnya.
PHP  menggunakan  //  untuk  membuat  komentar  baris  tunggal  atau  /*  dan  */  untuk  membuat suatu blok komentar
Variabel PHP
Variabel  digunakan  untuk  menyimpan  suatu  nilai,  seperti  text,  angka  atau array.  Ketika  sebuah variabel dibuat, variabel tersebut dapat dipakai berulang-ulang.
Pada  PHP  semua  variabel  harus  dimulai  dengan  karakter  '$'.  Variabel  PHP  tidak  perlu dideklarasikan  dan  ditetapkan    jenis  datanya  sebelum  kita  menggunakan  variabel  tersebut.  Hal itu  berarti  pula  bahwa  tipe  data  dari  variabel  dapat  berubah  sesuai  dengan  perubahan  konteks  yang dilakukan oleh user. Secara tipikal, variabel PHP cukup diinisialisasikan dengan memberikan nilai kepada variabel tersebut.
Contoh berikut akan mencetak "PHP" :
$text = "PHP";
print "$text";
Identifier dalam PHP adalah case-sensitive, sehingga $text dengan $Text merupakan variabel yang berbeda. Built-in  function  dan  structure  tidak  case-sensitive,  sehingga  echo  dengan  ECHO  akan  mengerjakan  perintah  yang  sama.  Identifier  dapat  berupa  sejumlah  huruf,  digit/angka,  underscore,  atau  tanda  dollar tetapi identifier tidak dapat dimulai dengan digit/angka.
Aturan Penamaan Variabel
  Nama variabel harus diawali dengan sebuah huruf atau garis bawah (underscore) “_” 
  Nama variabel hanya boleh mengandung karakter alpha-numeric dan underscore (a-Z, 0-9, dan _ ) 
  Nama variabel tidak boleh mengandung spasi

Tuesday, 23 October 2012

Bisnis proses pendaftaran program professional

Bisnis proses pendaftaran program professional

  1. Kordinator PP mengadakan briefing PP. 
  2. Mahasiswa membayar uang pendaftaran PP. 
  3. Mahasiswa membuat PP. 
  4. Mahasiswa mengumpulkan Proposal pada staf jurusan. 
  5. Staf jurusan mencatat proposal yang masuk. 
  6. Koridnator pp menyaring judul proposal dan menentukan dosen pembingbing dan menempelkan pengumuman. 
  7. Mahasiwa melihat pengumuman 
  8. Bila judul di tolak mahasiswa membuat proposal barul lalu di kumpulkan pada jurusan.
  9. Bila diterima mahasiwsa di perbolehkan memulai PP.

Saturday, 18 August 2012

Error deteksi pada data link layer


A. Hamming Code

langkah – langkah pendeteksian kesalahan dengan hamming code adalah sebagai berikut :

  • Menangani single error code
  • Cara membuat codenya :
  • Posisi parity bit ada di bit sesuai 2n (1,2,4,8,16,32….)
  • Selain posisi tersebut akan dipakai sebagai data (3,5,6,7…)
  • Untuk mencari besar parity (0 atau 1) dapat dilakukan sbb:
  • Posisi 1 : bergantian ada 1bit dan tidak ada 1bit : ada 1bit, gak ada 1 bit,ada 1bit…..
  • Posisi 2 : bergantian ada 2 bit dan tidak ada 2 bit : ada 2bit, gak ada 2 bit,ada 2bit…..
  • Posisi 4 : bergantian ada 4 bit dan tidak ada 4 bit : ada 4 bit, gak ada 4 bit,ada 4 bit…..
  • Dan seterusnya untuk 8, 16,32,64….
  • Bit Paritas ditentukan sebagai 1 bila jumlah bit 1-nya adalah ganjil. Bit Paritas ditentukan sebagai 0 bila jumlah bit 1-nya adalah genap
  • Contoh :
  • Suatu data : 1 0 0 1 1 0 1 0
  • Membuat data word –nya:
  • - – 1 – 0 0 1 – 1 0 1 0 ( – paritas 15)
  • Carilah paritas-nya :
  • Posisi 1 : ? – 1 – 0 0 1 – 1 0 1 0
  • Jumlah bit 1 genap    paritas : 0
  • Posisi 2 : 0 ? 1 – 0 0 1 – 1 0 1 0
  • Jumlah bit 1 ganjil    paritas : 1
  • Posisi 4 : 0 1 1 ? 0 0 1 – 1 0 1 0
  • Jumlah bit 1 ganjil    paritas : 1
  • Posisi 8 : 0 1 1 1 0 0 1 ? 1 0 1 0
  • Jumlah bit 1 genap    paritas : 0
  • Jadi Code-word-nya :
  •  0 1 1 1 0 0 1 0 1 0 1 0

B. Parity Checks

Bit parity merupakan bilangan biner yang ditambahkan untuk meyakinkan bahwa jumlah bit yang dikirimkan mempunyai angka satu yang selalu genap atau ganjil. Ada dua varian bit parity, yaitu even parity bit dan odd parity bit. Even parity bit diset ke 1 jika jumlah angka 1 yang dikirimkan berjumlah ganjil (berarti membuat total angka 1 berjumlah genap). Odd parity bit akan diset ke 1 jika jumlah angka 1 yang dikirimkan berjumlah genap (berarti membuat total angka 1 berjumlah ganjil). Berikut gambaran even dan odd parity bit:

Jika jumlah bit ganjil (termasuk bit parity) berubah pada waktu transmisi, maka bit parity menjadi tidak benar dan mengindikasikan adanya kesalahan pada waktu pengiriman. Oleh karena itu, bit parity merupakan kode pendeteksi kesalahan (error detecting code), dan bukan merupakan kode pengoreksi kesalahan (error correcting code) karena tidak ada cara untuk menentukan bit mana yang keliru. Data harus diabaikan seluruhnya dan mengulangi lagi transmisi dari awal. Pada media transmisi yang terganggu, transmisi yang berhasil akan membutuhkan banyak waktu atau tidak berhasil sama sekali. Parity mempunyai keuntungan, yaitu hanya menggunakan satu bit saja dan membutuhkan satu saja gerbang XOR untuk men-generate-nya. Bit parity checking sering digunakan untuk transmisi karakter ASCII, karena karakter ini hanya mempunyai 7 bit dan bit ke-8 dapat digunakan untuk bit parity. Sebagai contoh, diasumsikan pengiriman 4 bit dengan nilai 1001, dengan bit parity terletak di sebelah paling kanan. Penjelasan transmisi menggunakan even parity, sebagai berikut:

A akan mengirim : 1001
A menghitung nilai bit parity : 1^0^0^1 = 0 (tanda ^ artinya xor)
A menambahkan bit parity dan kirim : 10010
B menerima : 10010
B menghitung keseluruhan parity : 1^0^0^1^0 = 0
B melaporkan bahwa transmisi berhasil dengan parity yang benar (genap).

Jika transmisi menggunakan odd parity, maka penjelasannya sebagai berikut:

A akan mengirim : 1001
A menghitung nilai bit parity : ~(1^0^0^1) = 1
A menambahkan bit parity dan kirim : 10011
B menerima : 10011
B menghitung keseluruhan parity : 1^0^0^1^1 = 1
B melaporkan bahwa transmisi berhasil dengan parity yang benar (ganjil).

A akan mengirim : 1001
A menghitung nilai bit parity : 1^0^0^1 = 0
A menambahkan bit parity dan kirim : 10010 *TRANSMISSION ERROR*
B menerima : 11010
B menghitung keseluruhan parity : 1^1^0^1^0 = 1
B melaporkan terjadi transmisi yang tidak benar, karena nilai parity tidak sama.

Pada kasus di atas, B menghitung nilai parity (0) tidak sama dengan bit parity (1) pada nilai yang diterima. Hal ini mengindikasikan terjadi kesalahan. Di bawah ini contoh yang sama tetapi dengan kesalahan pada bit parity-nya sendiri.

A akan mengirim : 1001
A menghitung nilai bit parity : 1^0^0^1 = 0
A menambahkan bit parity dan kirim : 10010 *TRANSMISSION ERROR*
B menerima : 10011
B menghitung keseluruhan parity : 1^0^0^1^1 = 1
B melaporkan terjadi transmisi yang tidak benar, karena nilai parity tidak sama.

Sekali lagi, B menghitung keseluruhan odd parity, dan mengindikasikan kesalahan bit. Ada keterbatasan pada skema parity ini, yaitu ketika ada kesalahan pada pengiriman data dengan bit yang salah berjumlah genap seperti pada contoh di bawah ini:

A akan mengirim : 1001
A menghitung nilai bit parity : 1^0^0^1 = 0
A menambahkan bit parity dan kirim : 10010 *TRANSMISSION ERROR*
B menerima : 11011
B menghitung keseluruhan parity : 1^1^0^1^1 = 0
B melaporkan transmisi berhasil dengan parity yang benar walaupun sebenarnya data sudah tidak benar.

C. Cyclic Redundancy Check (CRC)


  • Cyclic redundancy check (CRC) adalah method yang umum digunakan untuk mendeteksi error
  • CRC beroperasi pada sebuah frame/block. Setiap block data (berukuran m bit à m=M(x)+R(x)) yang akan dikirim akan terlebih dahulu dihitung CRC checksumnya (berukuran R bit dari standart).
  • M(x) = pesan yang dikirim. G(x) = generator polynomial. R=jumlah bit CRC yang   digunakan (mengikuti standart)
  • Kalikan D dengan 2R
  • Lakukan pembagian modulo 2 dengan G(x) untuk mendapatkan sisa R(x)
  • Kemudian M(x)+R(x) sumnya akan dikirim sebagai frame (dengan ukuran m bit).
  • Pada sisi penerima, CRC checksum akan dihitung kembali berdasarkan pada frame yang diterima, dan dibandingkan dengan checksum yang dikirimkan.  Jika hasil baginya tidak 0, berarti frame telah rusak.
  • CRC menggunakan prinsip modulo bilangan 2.
  • Contoh:
  • Akan mengirim karakter “W”
  • Dalam desimal 8710
  • Biner : M(x) = x6 + x4 + x2 + x + 1 = 1010111
  • Generator menggunakan standart CRC-8-ATM (HEC) polynomial x8 + x2 + x + 1

Maka G(x) = 9-bit string “100000111″.

  • R=8 (CRC 8bit)
  • Kalikan M(x) dengan 2R
  • M(x) * 28 = 101011100000000

Menentukan checksum :

  • Bagi M(x) dengan generator G(x)
  • Sisanya adalah checksum (10100010)
  • Tambahkan checksum ke data asal:
  • 10100010 ke M(x)
  • Menjadi : 101011110100010
  • Data dan checksum dikirimkan.
  • Pada sisi penerima, data dan checksum yang diterima dibagi dengan generator.

Jika sisanya 0, berarti tidak terjadi kesalahan

  • Jika sisanya bukan 0, berarti terjadi kesalahan
  • M(x) yang diterima : 101011110100010
  • Sisa yang dihasilkan : 00000000
  • Pesan yang diterima benar

Saturday, 4 August 2012

Kelemahan Utama dari Komputer Generasi Pertama (1942-1955)


Komputer generasi pertama terbuat dari tabung hampa udara. Tabung hampa udara sebagai penguat sinyal. Pada awalnya, tabung hampa udara (vacum-tube) digunakan sebagai komponen penguat sinyal. Bahan bakunya terdiri dari kaca, sehingga banyak memiliki kelemahan.


Kelemahan utama dari komputer generasi pertama :

Ukuran sangat besar.
  • Kecepatan penyelesaian instruksi sangat lambat.
  • Komputer cepat panas saat digunakan.
  • Switching melalui tabung hampa udara tidak dapat diandalkan
  • Penyejuk udara sulit bila diperlukan.
  • Hanya ilmuwan dan insinyur yang mampu menggunakan komputer dan itu juga di daerah yang terbatas karena biaya tinggi.
  • Mereka membutuhkan pemeliharaan yang konstan, yang sangat mahal.
  • Menggunakan tingkat mesin bahasa rendah yaitu bahasa program ditulis langsung dalam digit biner, yang sangat rumit.

Beberapa komputer generasi pertama adalah ENIAC, EDSAC dan UNIVAC I dll

Sumber : http://blog.student.uny.ac.id/anis/2011/10/09/generasi-komputer/

Monday, 30 July 2012

TCP/IP (Transmission Control Protocol/Internet Protocol)


TCP/IP (Transmission Control Protocol/Internet Protocol) adalah standar komunikasi data yang digunakan oleh komunitas internet dalam proses tukar-menukar data dari satu komputer ke komputer lain di dalam jaringan Internet. Protokol ini tidaklah dapat berdiri sendiri, karena memang protokol ini berupa kumpulan protokol (protocol suite). Setiap layer menyediakan servis-servis yang akan digunakan oleh layer diatasnya, ada 2 buah fungsi yang berbeda : same-layer interaction dan adjacent-layer interaction

same-layer interaction : dua buah komputer menggunakan protokol untuk saling berkomunikasi dengan layer yang sama pada komputer lainnya.
adjacent-layer interaction : pada satu komputer, sebuah layer menyediakan servis-servis yang akan digunakan oleh layer yang berada diatasnya.
1. Application Layer
• Protokol-protokol pada layer aplikasi TCP/IP menyediakan servis-servis bagi software-software yang berjalan pada komputer. Layer aplikasi tidak menyediakan software itu sendiri tapi hanya menyediakan servis-servis yang bisa dimanfaatkan oleh software yang berjalan pada komputer kita, misalnya Mozilla Firefox yang berjalan pada komputer kita memanfaatkan protokol HTTP untuk mengakses suatu halaman web.
• Beberapa protokol yang beroperasi pada layer ini antara lain : HTTP, FTP, POP3, SMTP, dsb.

2. Transport Layer
• Terdiri dari 2 buah protokol utama : Transmission Control Protocol (TCP) dan User Datagram Protocol (UDP).
• Menyediakan servis yang akan digunakan oleh Application Layer, misalnya: HTTP software meminta TCP untuk menjamin sampainya data pada tujuan, jika terjadi gangguan pada saat transmisi maka HTTP tidak akan melakukan apa-apa, tapi TCP akan mengirim ulang data yang hilang dan memastikan sampainya data pada tujuan.

3. Internet Layer
• Menyediakan fungsi IP addressing, routing dan penentuan path terbaik
• Protokol yang paling terkenal adalah protokol IP (satu2nya protokol pada layer ini di TCP/IP)

4. Network Access Layer
• Mendefinisikan protokol-protokol dan juga hardware yang digunakan untuk pengiriman data misalnya cabling, pemberian header dan trailer sehingga data bisa melewati tipe-tipe network yang berbeda topologi, mentransmisi data yang berupa bits ke jaringan, dsb.
• Protokol pada layer ini antara lain Ethernet pada jaringan LAN atau PPP pada WAN, juga termasuk Frame Relay.

Saturday, 28 July 2012

Prinsip Kerja OSI Layer vs TCP/IP serta Perbedaan dan Persamaannya


Persamaan Model OSI dan TCP/IP : 
1) Keduanya memiliki layer (lapisan).
2) Sama - sama memiliki Application layer meskipun memiliki layanan yang berbeda.
3) Memiliki transport dan network layer yang sama.
4) Asumsi dasar keduanya adalah menggunakan teknologi packet switching.
5) Dua-duanya punya transport dan network layer yang bisa diperbandingkan.
6) Dua-duanya menggunakan teknologi packet-switching, bukan circuit-switching ( Teknologi Circuit-Switching digunakan pada analog telephone). 

Perbedaan Model OSI dan TCP/IP :
1) TCP/IP menggabungkan presentation dan session layers kedalam application layers.
2) TCP/IP menggabungkan OSI-data link dan physical layers kedalam network access layer.
3) TCP/IP Protocol adalah standar dalam pengembangan internet. 

Prinsip Kerja OSI Layer :
Ketika data ditransfer melalui jaringan, sebelumnya data tersebut harus melewati ke-tujuh layer dari satu terminal, mulai dari layer aplikasi sampai physical layer, kemudian di sisi penerima, data tersebut melewati layer physical sampai aplikasi. Dari masing-masing layer mempunyai tugas tersendiri demi kelancaran data yang akan dikirimkan. Berikut adalah deskripsi singkat beberapa tugas dari masing-masing layer dari layer application sampai physical.

Prinsip Kerja TCP/IP : 
Untuk memindahkan data antara dua komputer yang berbeda dalam suatu jaringan yang terdiri dari banyak komputer, dibutuhkan alamat tujuan dan perantara untukmemindahkan sinyal elektronik pembentuk data secara aman dan langsung.
Internet menggunakan protokol untuk menjamin sampainya data secara aman di tempat tujuan.
Saat seorang pengguna Internet mengirim sekelompok teks ke mesin lain, TCP/IP mulai bekerja. TCP membagi teks tersebut menjadi paket-paket data kecil, menambahkan beberapa informasi (dapat dianggap sebagai pengiriman barang), sehingga computer penerima memastikan bahwa paket yang diterimanya tidak mengalami kerusakan sepanjang pengiriman. IP menambahkan label yang berisikan informasi alamat pada paket tersebut.
Deretan paket-paket TCP/IP berjalan menuju tujuan yang sama dengan menggunakan berbagai jalur yang berbeda. Sebuah perangkat khusus yang disebut router dipasang di titik persimpangan antar jaringan dan memutuskan jalur mana yang paling efisien yang menjadi langkah berikut dari sebuah paket. Router membantu mengatur arus lalu lintas di Internet dengan membagi beban, sehingga menghindari kelebihan beban pada suatu bagian dari sistem yang ada.
Saat paket-paket TCP/IP tiba di tempat tujuannya, komputer akan membuka label alamat IP lalu menggunakan daftar pengiriman yang ada pada paket TCP untuk memeriksa apakah ada kerusakan paket yang terjadi selama pengiriman, dan menyusun kembali paket-paket tsb menjadi susunan teks seperti aslinya. Saat komputer penerima menemukan paket yang rusak, komputer tsb akan meminta komputer pengirim untuk mengirim salinan baru dari paket yang rusak.
Sebuah perangkat khusus yang disebut gateway memungkinkan beragam tipe jaringan yang ada di horison elektronik untuk berkomunikasi dengan Internet menggunakan TCP/IP. Gateway menerjemahkan protokol asli jaringan komputer tersebut menjadi TCP/IP dan sebaliknya.
Bagi seorang pemakai, Internet hadir seperti jaringan global raksasa yang tidak terbatas, yang langsung merespon jika diminta. Komputer, gateway, router, dan protokol yang membuat ilusi ini bekerja.

Friday, 22 June 2012

Kelebihan dan Kekurangan dari Sebuah OS Linux


Linux merupakan salah satu contoh hasil pengembangan perangkat lunak bebas dan sumber terbuka utama. Seperti perangkat lunak bebas dan sumber terbuka lainnya pada umumnya, kode sumber Linux dapat dimodifikasi, digunakan dan didistribusikan kembali secara bebas oleh siapa saja.


Kelebihan Linux :
  • Linux adalah Operating System yang open source, bebas dan terbuka. Sehingga tidak perlu biaya untuk mendapatkannya, lisensinya FREE! boleh di utek-utek sepuasnya :-)
  • Linux gampang dioperasikan sekarang. Tidak seperti dulu yang masih identik dengan para hacker, tampilannya pun telah mengikuti perkembangan, bahkan lebih baik daripada windows 7.
  • Hampir semua aplikasi yang bisa dijalankan di Windows, telah ada aplikasinya di Linux yang dikembangkan oleh komunitas Linux atau bisa menggunakan bantuan software emulator seperti wine untuk menjalankan file .exe dan .msi yang biasanya jalan di windows.
  • Memiliki keamanan yang unggul karena di desain multiuser sehingga bila virus menjangkiti user tertentu, akan sangat sangat sulit menjangkiti dan menyebar ke user yang lain. Berbeda dengan Windows yang pasti pernah terkena virus, spyware, trojan, adware, dan sebagainya. Hal ini hampir tidak terjadi pada Linux. Ada pendapat bahwa Linux lebih aman karena jumlah penggunanya lebih sedikit dibanding Windows, namun anggapan itu kurang pas.
  • Cocok untuk komputer dengan spesifikasi minimal karena Linux membutuhkan resource yang lebih kecil dari Windows. Selain itu hampir semua distro populer menyediakan versi 32 bit maupun 64 bit.
  • Linux dapat berjalan dalam dua mode, modus teks dan modus GUI namun pada umumnya modus teks (terminal) ini lah yang menjadi kekuatan Linux. Modus GUI sendiri memiliki banyak pilhan desktop environment-nya seperti KDE, Gnome, BlackBox, XFCE.
  • Jarang sekali komputer tiba-tiba ngadat, hang dan harus restart dengan menekan tombol ctrl+alt+del untuk mengakhiri kejadian tersebut karena Linux lebih stabil. Komputer yang dijalankan di atas sistem operasi UNIX sangat dikenal stabil berjalan tanpa henti seperti halnya linux.
  • Linux memiliki kompatibilitas ke belakang yang lebih baik (better backward-compatibilty). Perangkat keras yang telah berusia lama, masih sangat berguna dan dapat dijalankan dengan baik di atas Linux. Termasuk dukungan pada softwarenya.
  • Memiliki komunitas yang besar dan beragam di seluruh dunia
  • Beragam pilihan ada Ubuntu, Debian, RedHat, openSuSe, Fedora, Mandriva (Mandrake), dsb. Keanekaragaman ini memberi kita banyak pilihan sesuai dengan kebutuhan masing-masing. 
Kekurangan Linux :
  • Banyak pengguna yang belum terbiasa dengan Linux dan masih ‘Windows minded’, takut untuk beralih dari Windows.
  • Dukungan perangkat keras dari vendor-vendor tertentu yang tidak terlalu baik pada Linux. Untuk mencari daftar perangkat keras yang didukung pada Linux, kita dapat melihatnya di Linux-Drivers.org atau LinuxHardware.org.
  • Proses instalasi software / aplikasi yang tidak semudah di Windows. Instalasi software di Linux, akan menjadi lebih mudah bila terkoneksi ke internet atau bila mempunyai CD / DVD repository-nya. Bila tidak, maka kita harus men-download satu per satu package yang dibutuhkan beserta dependencies-nya.
  • Bagi administrator sistem yang belum terbiasa dengan Unix-like (seperti Linux), maka mau tidak mau harus mempelajari hal ini. Sehingga syarat untuk menjadi administrator adalah manusia yang suka belajar hal-hal baru dan terus-menerus belajar.
  • Aplikasi-aplikasi di Linux belum seampuh aplikasi di Windows.
  • Struktur direktori dan hak-akses yang membingungkan bagi yang sudah terbiasa dengan Windows dan belum mengenal UNIX/Linux sama sekali.
Sumber : unikom.ac.id / tips-komputer.com

Monday, 11 June 2012

Pemanfaatan Share Printer dan NetMeeting


Share/Sharing/Berbagi Printer adalah hal yang krusial jika memang aktivitas dari mencetak suatu laporan maupun dokumen-dokumen perkantoran, pribadi maupun yang lainya, sangat banyak dan dengan intensitas yang sangat tinggi.


Tujuan daripada berbagi printer adalah untuk memanfaatkan printer agar dapat di gunakan oleh banyak klient/workstation (baca:minimal 2 klient/workstation). dengan berbagi printer kita tidak perlu lagi mengcopy kan document kita kedalam flahsdisk atau storage lainnya untuk di pindahkan kepada printer yang terinstall pada komputer lain untuk dicetak, hal ini sungguh merepotkan dan membuang banyak waktu, terlebih lagi jika flashdisk yang kita gunakan terkena virus (baca:filenya ataupun virus berbentuk auto run), maka akan sangat merugikan.

Untuk menggunakan fasilitas printer bersama, yang pertama harus dilakukan adalah :
  • Kita sudah terhubung dengan jaringan/satu jaringan
  • Terdapat minimal satu printer yang akan digunakan bersama
  • Klient/workstation/komputer minimal 2 (dua)


Pemanfaatan Netmeeting dalam koneksi Jaringan

Konsep jaringan memungkinkan kita untuk dapat dengan mudah melakukan sejumlah kegiatan semisal berbagi file ataupun media perangkat lainnya. Secara garis besar manfaat teknologi jaringan adalah :
  1. Resource sharing, kemampuan untuk dapat berbagi sumber daya baik berupa file, perangkat semisal printer dan lain sebagainya.
  2. High Reliability, konsep yang memungkinkan kita untuk dapat menyimpan data pada sejumlah komputer yang terkoneksi dalam jaringan. Sehingga misalnya komputer yang kita gunakan sedang dalam keadaan rusak/perbaikan, kita masih dapat melakukan rutinitas kerja kita dalam mengolah/manipulasi data-data yang ada melalui komputer lain.
  3. Cost Efficiency, atau efesiensi biaya. Semisal untuk sejumlah komputer yang terkoneksi dalam jaringan bisa berbagi pakai sebuah printer saja.
  4. Optimalisasi Teknologi, seperti halnya pemanfatan teknologi program Netmeeting yang memungkinkan kita untuk bisa melakukan komunikasi, ataupun berbagi file, terhadap semua unit komputer yang terkoneksi dalam satu jaringan.


Saturday, 19 May 2012

Jawaban SO Sistem I/O


Perangkat Keras I/O

1. Gambarkan diagram dari Interrupt Driven I/O Cycle.



2. Sebutkan langkah-langkah dari transfer DMA!
  1. Prosesor menyiapkan DMA transfer dengan menyedia kan data-data dari perangkat, operasi yang akan ditampilkan, alamat memori yang menjadi sumber dan tujuan data, dan banyaknya byte yang ditransfer.
  2. Pengendali DMA memulai operasi (menyiapkan bus, menyediakan alamat, menulis dan membaca data), sampai seluruh blok sudah di transfer.
  3. Pengendali DMA meng-interupsi prosesor, dimana selanjutnya akan ditentukan tindakan berikutnya.

3. Apakah perbedaan dari polling dan interupsi?

Polling adalah prosesor tidak terus menerus menanyakan status dari peripheral tapi peripheral yang akan memberitahukan statusnya sekarang (menginterupsi prosesor). Bedanya engan metode interrupt, sementara menunggu peripheral menyelesaikan tugasnya, prosesor dapat melakukan instruksi-instruksi lain. Jika peripheral memberikan sinyal interupsi pada prosesor , maka prosesor akan menyelesaikan instruksi yang sedang dikerjakannya sekarang, kemudian menyimpan semua state pada instruksi yang sedang dikerjakannya saat ini, kemudian mengekskusi suatu rutin yang dinamakan interrupt service routine (ISR) atau interrupt handler, anda sebagai programmer embedded system yang akan membuat ISR ini. Saat ISR selesai, maka prosesor kembali ke state sebelum interupsi. Kelebihan interrupt adalah interrupt lebih menghemat resource dibandingkan polling, tapi kekurangannya adalah interrupt memiliki jeda waktu (overhead) yang lebih lama dibanding polling.

4. Apa hubungan arsitektur kernel yang di-thread dengan implemen tasi interupsi?

Perangkat dapat menghasilkan interrupt signal. Setiap signal interrupt mempunyai hubungan dengan program kernel yang disebut dengan interrupt handler

Interface Aplikasi I/O

1. Kenapa dibutuhkan interface pada aplikasi I/O?

Ketika suatu aplikasi ingin membuka data yang ada dalam suatu disk, sebenarnya aplikasi tersebut harus dapat membedakan jenis disk apa yang akan diaksesnya. Untuk mempermudah pengaksesan, sistem operasi melakukan standarisasi cara pengaksesan pada peralatan I/O. Pendekatan inilah yang dinamakan interface aplikasi I/O.Interface aplikasi I/O melibatkan abstraksi, enkapsulasi, dan software layering. Abstraksi dilakukan dengan membagi-bagi detail peralatan-peralatan I/O ke dalam kelas-kelas yang lebih umum.

2. Apa tujuan adanya device driver? Berikan contoh keuntungan yang kita dapatkan dengan adanya hal ini!

Tujuan dari adanya lapisan device driver ini adalah untuk menyembunyikan perbedaan-perbedaan yang ada pada device controller dari subsistem I/O pada kernel. Karena hal ini, subsistem I/O dapat bersifat independen dari hardware.

Kernel I/O Subsystem

1. Apakah yang dimaksud dengan proses pooling? (jelaskan dengan jelas)

Busy-waiting/ polling adalah ketika host mengalami looping yaitu membaca status register secara terus-menerus sampai status busy di-clear. Pada dasarnya polling dapat dikatakan efisien. Akan tetapi polling menjadi tidak efisien ketika setelah berulang-ulang melakukan looping, hanya menemukan sedikit device yang siap untuk men-service, karena CPU processing yang tersisa belum selesai.

2. Mengapa diperlukan proses pooling?

Untuk mengatasi device yang tidak dapat me-multiplex permintaan I/O dari beberapa aplikasi.

3. Apakah yang dimaksud dengan buffer?

Buffer adalah area memori yang menyimpan data ketika mereka sedang dipindahkan antara dua device atau antara device dan aplikasi.

4. Jelaskan dengan singkat mengenai I/O Scheduling!

Untuk menjadualkan sebuah set permintaan I/O, kita harus menetukan urutan yang bagus untuk mengeksekusi permintaan tersebut. Scheduling dapat meningkatkan kemampuan sistem secara keseluruhan, dapat membagi device secara rata di antara proses-proses, dan dapat mengurangi waktu tunggu rata-rata untuk menyelesaikan I/O. Ini adalah contoh sederhana untuk menggambarkan definisi di atas. Jika sebuah arm disk terletak di dekat permulaan disk, dan ada tiga aplikasi yang memblokir panggilan untuk membaca untuk disk tersebut. Aplikasi 1 meminta sebuah blok dekat akhir disk, aplikasi 2 meminta blok yang dekat dengan awal, dan aplikasi 3 meminta bagian tengah dari disk. Sistem operasi dapat mengurangi jarak yang harus ditempuh oleh arm disk dengan melayani aplikasi tersebut dengan urutan 2, 3, 1. Pengaturan urutan pekerjaan kembali dengan cara ini merupakan inti dari I/O scheduling. Sistem operasi mengembangkan implementasi scheduling dengan menetapkan antrian permintaan untuk tiap device. Ketika sebuah aplikasi meminta sebuah blocking sistem I/O, permintaan tersebut dimasukkan ke dalam antrian untuk device tersebut. Scheduler I/O mengatur urutan antrian untuk meningkatkan efisiensi dari sistem dan waktu respon rata-rata yang harus dialami oleh aplikasi. Sistem operasi juga mencoba untuk bertindak secara adil, seperti tidak ada aplikasi yang menerima service yang buruk, atau dapat seperti memberi prioritas service untuk permintaan penting yang ditunda. Contohnya, pemintaan dari subsistem mungkin akan mendapatkan prioritas lebih tinggi daripada permintaan dari aplikasi. Beberapa algoritma scheduling untuk disk I/O akan dijelaskan ada bagian Disk Scheduling.

Penanganan Permintaan I/O

1. Apakah kegunaan dari Streams pada Sistem V UNIX?

Stream dapat digunakan untuk interproses dan komunikasi jaringan. Faktanya, di Sistem V, mekanisme soket diimplementasikan dengan stream.

2. Jelaskan lifecycle dari 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 transfer selesai.
  7. Interrupt handler yang sesuai menerima 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.

Performa I/O

1. Gambarkan bagan mengenai komunikasi antar komputer


2. Bagaimana cara meningkatkan efisiensi performa I/O

  1. Menurunkan jumlah alih konteks.
  2. Mengurangi jumlah pengkopian data ke memori ketika sedang dikirimkan antara device dan aplikasi.
  3. Mengurangi frekuensi interupsi, dengan menggunakan ukuran transfer yang besar, smart controller, dan polling.
  4. Meningkatkan concurrency dengan controller atau channel yang mendukung DMA.
  5. Memindahkan kegiatan processing ke perangkat keras, sehingga operasi kepada device controller dapat berlangsung bersamaan dengan CPU.
  6. Menyeimbangkan antara kinerja CPU, memory subsystem, bus, dan I/O.

3. Jelaskan mengenai implementasi dari fungsi I/O

Pada dasarnya kita mengimplementasikan algoritma I/O pada level aplikasi. Hal ini dikarenakan kode aplikasi sangat fleksible, dan bugs aplikasi tidak mudah menyebabkan sebuah sistem crash. Lebih lanjut, dengan mengembangkan kode pada level aplikasi, kita akan menghindari kebutuhan untuk reboot atau reload device driver setiap kali kita mengubah kode. Implementasi pada level aplikasi juga bisa sangat tidak efisien. Tetapi, karena overhead dari alih konteks dan karena aplikasi tidak bisa mengambil keuntungan dari struktur data kernel internal dan fungsionalitas dari kernel (misalnya, efisiensi dari kernel messaging, threading dan locking.Pada saat algoritma pada level aplikasi telah membuktikan keuntungannya, kita mungkin akan mengimplementasikannya di kernel. Langkah ini bisa meningkatkan kinerja tetapi perkembangannya dari kerja jadi lebih menantang, karena besarnya kernel dari sistem operasi, dan kompleksnya sistem sebuah perangkat lunak. Lebih lanjut , kita harus men-debug keseluruhan dari implementasi in-kernel untuk menghindari korupsi sebuah data dan sistem crash.

Kita mungkin akan mendapatkan kinerja yang optimal dengan menggunakan implementasi yang special pada perangkat keras, selain dari device atau controller. Kerugian dari implementasi perangkat keras termasuk kesukaran dan biaya yang ditanggung dalam membuat kemajuan yang lebih baik dalam mengurangi bugs, perkembangan waktu yang maju dan fleksibilitas yang meningkat. Contohnya, RAID controller pada perangkat keras mungkin tidak akan menyediakan sebuah efek pada kernel untuk mempengaruhi urutan atau lokasi dari individual block reads dan write, meski pun kernel tersebut mempunyai informasi yang spesial mengenai workload yang dapat mengaktifkan kernel untuk meningkatkan kinerja dari I/O.

Struktur Disk

1. Sebutkan bagian-bagian dari 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, walau pun 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).

2. Apa keuntungan penggunaan pemetaan pada disk?

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.

Penjadualan Disk

1. Buatlah dengan pemikiran Anda sendiri, strategi penjadualan disk yang tepat dan efisien menurut Anda

Teknik penjadwalan merupakan teknik yang memiliki tujuan memaksimalkan penggunaan disk

2. Menurut Anda, diantara algoritma-algoritma penjadualan disk diatas manakah yang paling cepat, manakah yang paling efisien (hemat/tidak mahal), dan manakah yang paling lambat dan tidak efisien? Jelaskan!

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 penjadualan optimal yang tidak kita dapatkan pada SSTF atau SCAN.Dengan algoritma penjadualan yang mana pun, kinerja sistem sangat tergantung pada jumlah dan tipe permintaan. Sebagai contoh, misalnya kita hanya memiliki satu permintaan, maka semua algoritma penjadualan akan dipaksa bertindak sama, karena algoritma-algoritma tersebut hanya punya satu pilihan dari mana menggerakkan disk head: semuanya berprilaku seperti algoritma penjadualan 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 penjadualan disk harus ditulis dalam modul terpisah dari sistem operasi, jadi dapat saling mengganti dengan algoritma lain jika diperlukan. Baik SSTF mau pun LOOK keduanya merupakan pilihan yang paling masuk akal sebagai algoritma yang paling dasar.