Single Linked List C++


ini adalah coding c++ untuk single linkedlist

#include <iostream>
#include <cstdlib>
using namespace std;

struct TNode {
    int data;
    TNode *next;
};
TNode *head;

int isEmpty() {
    if (head == NULL)
        return 1;
    else return 0;
}

void insertDepan(int databaru) {
    TNode *baru;
    baru = new TNode;
    baru->data = databaru;
    baru->next = NULL;
    if (isEmpty() == 1) {
        head = baru;
        head->next = NULL;
    } else {
        baru->next = head;
        head = baru;
    }
    cout << "\ndata berhasil dimasukan :\n";
}

void tampil() {
    TNode *bantu;
    bantu = head;
    if (isEmpty() == 0) {
        cout << "\ndata yang ada dalam list\n";
        while (bantu != NULL) {
            cout << bantu->data << "\n";
            bantu = bantu->next;
        }
        cout << endl;
    } else cout << "Masih kosong\n";
}

void hapusDepan() {
    TNode *hapus;
    int d;
    if (isEmpty() == 0) {
        if (head->next != NULL) {
            hapus = head;
            d = hapus->data;
            head = head->next;
            delete hapus;
        } else {
            d = head->data;
            head = NULL;
        }
        cout << d << " terhapus\n";
    } else cout << "Masih kosong\n";
}
void insertBelakang (int databaru){
TNode *baru,*bantu;
baru = new TNode;
baru->data = databaru;
baru->next = NULL;
if(isEmpty()==1){
head=baru;
head->next = NULL;
}else {
bantu=head;
while(bantu->next!=NULL){
bantu=bantu->next;
}
bantu->next = baru;
}
cout<<"Data berhasil dimasukan\n";
}

int main() {
    int databaru;
    int pil;

    cout << "linked List non circular" << endl;
    cout << "1.Insert Dari Depan" << endl;
    cout << "2.Insert Dari Belakang" << endl;
    cout << "3.Tampil" << endl;
    cout << "4.Hapus Dari Depan" << endl;
    cout << "5.Exit" << endl;
    while (true) {
        cout << "pilihn anda= ";
        cin >> pil;
        if (pil == 1) {
            cout << "data :";
            cin >> databaru;
            insertDepan(databaru);
        }
          else if (pil == 2) {
   cout << "data :";
            cin >> databaru;
            insertBelakang(databaru);
        } 
 else if (pil == 3) {
            tampil();
        } 
 else if (pil == 4) {
            hapusDepan();
        }
 else if (pil == 5) {
            break;
            return EXIT_SUCCESS;
        }
    }
}

READ MORE » Single Linked List C++

Cinta Yang Tak Pernah Padam Selama 60 Tahun


Oleh: Tidak Diketahui
Kiriman: Handoko Luwanto

Ketika aku berjalan kaki pulang ke rumah di suatu hari yang dingin, kakiku tersandung sebuah dompet yang tampaknya terjatuh tanpa sepengetahuan pemiliknya. Aku memungut dan melihat isi dompet itu kalau-kalau aku bisa menghubungi pemiliknya. Tapi, dompet itu hanya berisi uang sejumlah tiga Dollar dan selembar surat kusut yang sepertinya sudah bertahun-tahun tersimpan di dalamnya. Satu-satunya yang tertera pada amplop surat itu adalah alamat si pengirim. Aku membuka isinya sambil berharap bisa menemukan petunjuk. 
Lalu aku baca tahun "1924". Ternyata surat itu ditulis lebih dari 60 tahun yang lalu. Surat itu ditulis dengan tulisan tangan yang anggun di atas kertas biru lembut yang berhiaskan bunga-bunga kecil di sudut kirinya. Tertulis di sana, "Sayangku Michael", yang menunjukkan kepada siapa surat itu ditulis yang ternyata bernama Michael. Penulis surat itu menyatakan bahwa ia tidak bisa bertemu dengannya lagi karena ibu telah melarangnya. Tapi, meski begitu ia masih tetap mencintainya. Surat itu ditandatangani oleh Hannah. Surat itu begitu indah. 
etapi tetap saja aku tidak bisa menemukan siapa nama pemilik dompet itu. Mungkin bila aku menelepon bagian penerangan mereka bisa memberitahu nomor telepon alamat yang ada pada amplop itu. "Operator," kataku pada bagian peneragan, "Saya mempunyai permintaan yang agak tidak biasa. sedang berusaha mencari tahu pemiliki dompet yang saya temukan di jalan. Barangkali anda bisa membantu saya memberikan nomor telepon atas alamat yang ada pada surat yang saya temukan dalam dompet tersebut?" 
Operator itu menyarankan agar aku berbicara dengan atasannya, yang tampaknya tidak begitu suka dengan pekerjaan tambahan ini. Kemudian ia berkata, "Kami mempunyai nomor telepon alamat tersebut, namun kami tidak bisa memberitahukannya pada anda." Demi kesopanan, katanya, ia akan menghubungi nomor tersebut, menjelaskan apa yang saya temukan dan menanyakan apakah mereka berkenan untuk berbicara denganku. Aku menunggu beberapa menit. 
Tak berapa lama ia menghubungiku, katanya, "Ada orang yang ingin berbicara dengan anda." Lalu aku tanyakan pada wanita yang ada di ujung telepon sana, apakah ia mengetahui seseorang bernama Hannah. Ia menarik nafas, "Oh, kami membeli rumah ini dari keluarga yang memiliki anak perempuan bernama Hannah. Tapi, itu 30 tahun yang lalu!" "Apakah anda tahu dimana keluarga itu berada sekarang?" tanyaku. "Yang aku ingat, Hannah telah menitipkan ibunya di sebuah panti jompo beberapa tahun lalu," kata wanita itu. "Mungkin, bila anda menghubunginya mereka bisa mencaritahu dimana anak mereka, Hannah, berada." Lalu ia memberiku nama panti jompo tersebut. Ketika aku menelepon ke sana, mereka mengatakan bahwa wanita, ibu Hannah, yang aku maksud sudah lama meninggal dunia. Tapi mereka masih menyimpan nomor telepon rumah dimana anak wanita itu tinggal. Aku mengucapkan terima kasih dan menelepon nomor yang mereka berikan. Kemudian, di ujung telepon sana, seorang wanita mengatakan bahwa Hannah sekarang tinggal di sebuah panti jompo. 
"Semua ini tampaknya konyol," kataku pada diriku sendiri. Mengapa pula aku mau repot-repot menemukan pemilik dompet yang hanya berisi tiga Dollar dan surat yang ditulis lebih dari 60 tahun yang lalu? Tapi, bagaimana pun aku menelepon panti jompo tempat Hannah sekarang berada. Seorang pria yang menerima teleponku mengatakan, "Ya, Hannah memang tinggal bersama kami." Meski waktu itu sudah menunjukkan pukul 10 malam, aku meminta agar bisa menemui Hannah. "Ok," kata pria itu agak bersungut-sungut, "bila anda mau, mungkin ia sekarang sedang menonton TV di ruang tengah." 
Aku mengucapkan terima kasih dan segera berkendara ke panti jompo tersebut. Gedung panti jompo itu sangat besar. Penjaga dan perawat yang berdinas malam menyambutku di pintu. Lalu, kami naik ke lantai tiga. Di ruang tengah, perawat itu memperkenalkan aku dengan Hannah. Ia tampak manis, rambut ubannya keperak-perakan, senyumnya hangat dan matanya bersinar-sinar. Aku menceritakan padanya mengenai dompet yang aku temukan. Aku pun menunjukkan padanya surat yang ditulisnya. Ketika ia melihat amplop surat berwarna biru lembut dengan bunga-bunga kecil di sudut kiri, ia menarik nafas dalam-dalam dan berkata, "Anak muda, surat ini adalah hubunganku yang terakhir dengan Michael." Matanya memandang jauh, merenung dalam-dalam. Katanya dengan lembut, "Aku amat-amat mencintainya. Saat itu aku baru berusia 16 tahun, dan ibuku menganggap aku masih terlalu kecil. Oh, Ia sangat tampan. Ia seperti Sean Connery, si aktor itu." "Ya," lanjutnya. Michael Goldstein adalah pria yang luar biasa. "Bila kau bertemu dengannya, katakan bahwa aku selalu memikirkannya, Dan,......." 
Ia ragu untuk melanjutkan, sambil menggigit bibir ia berkata, ......katakan, aku masih mencintainya. Tahukah kau, anak muda," katanya sambil tersenyum. Kini air matanya mengalir, "aku tidak pernah menikah selama ini. Aku pikir, tak ada seorang pun yang bisa menyamai Michael." Aku berterima kasih pada Hannah dan mengucapkan selamat tinggal. Aku menuruni tangga ke lantai bawah. Ketika melangkah keluar pintu, penjaga di sana menyapa, "Apakah wanita tua itu bisa membantu anda?" Aku sampaikan bahwa Hannah hanya memberikan sebuah petunjuk, "Aku hanya mendapatkan nama belakang pemilik dompet ini. Aku pikir, aku biarkan sajalah dompet ini untuk sejenak. Aku sudah menghabiskan hampir seluruh hariku untuk menemukan pemilik dompet ini." Aku keluarkan dompet itu, dompat kulit dengan benang merah disisi-sisinya. Ketika penjaga itu melihatnya, ia berseru, "Hei, tunggu dulu. Itu adalah dompet Pak Goldstein! Aku tahu persis dompet dengan benang merah terang itu.Ia selalu kehilangan dompet itu. Aku sendiri pernah menemukannya dompet itu tiga kali di dalam gedung ini." 
"Siapakah Pak Goldstein itu?" tanyaku. Tanganku mulai gemetar. "Ia adalah penghuni lama gedung ini. Ia tinggal di lantai delapan. Aku tahu pasti, itu adalah dompet Mike Goldstein. Ia pasti menjatuhkannya ketika sedang berjalan-jalan di luar." Aku berterima kasih pada penjaga itu dan segera lari ke kantor perawat. Aku ceritakan pada perawat di sana apa yang telah dikatakan oleh si penjaga. Lalu, kami kembali ke tangga dan bergegas ke lantai delapan. Aku berharap Pak Goldstein masih belum tertidur. Ketika sampai di lantai delapan, perawat berkata, "Aku pikir ia masih berada di ruang tengah. Ia suka membaca di malam hari. Ia adalah Pak tua yang menyenangkan." Kami menuju ke satu-satunya ruangan yang lampunya masih menyala. Di sana duduklah seorang pria membaca buku. Perawat mendekati pria itu dan menanyakan apakah ia telah kehilangan dompet. Pak Goldstein memandang dengan terkejut. Ia lalu meraba saku belakangnya dan berkata, "Oh ya, dompetku hilang!" Perawat itu berkata, "Tuan muda yang baik ini telah menemukan sebuah dompet. Mungkin dompet anda?" Aku menyerahkan dompet itu pada Pak Goldstein. Ia tersenyum gembira. Katanya, "Ya, ini dompetku! Pasti terjatuh tadi sore. Aku akan memberimu hadiah." "Ah tak usah," kataku. "Tapi aku harus menceritakan sesuatu pada anda. Aku telah membaca surat yang ada di dalam dompet itu dengan harap aku mengetahui siapakah pemilik dompet ini." 
Senyumnya langsung menghilang. "Kamu membaca surat ini?" "Bukan hanya membaca, aku kira aku tahu dimana Hannah sekarang." Wajahnya tiba-tiba pucat. "Hannah? Kau tahu dimana ia sekarang? Bagaimana kabarnya? Apakah ia masih secantik dulu? Katakan, katakan padaku," ia memohon. "Ia baik-baik saja, dan masih tetap secantik seperti saat anda mengenalnya," kataku lembut. Lelaki tua itu tersenyum dan meminta, "Maukah anda mengatakan padaku dimana ia sekarang? Aku akan meneleponnya esok." Ia menggenggam tanganku, "Tahukah kau anak muda, aku masih mencintainya. Dan saat surat itu datang hidupku terasa berhenti. Aku belum pernah menikah, aku selalu mencintainya." 
"Michael," kataku, "Ayo ikuti aku." Lalu kami menuruni tangga ke lantai tiga. Lorong-lorong gedung itu sudah gelap. Hanya satu atau dua lampu kecil menyala menerangi jalan kami menuju ruang tengah di mana Hannah masih duduk sendiri menonton TV. Perawat mendekatinya perlahan. 
"Hannah," kata perawat itu lembut. Ia menunjuk ke arah Michael yang sedang berdiri di sampingku di pintu masuk. "Apakah anda tahu pria ini?" Hannah membetulkan kacamatanya, melihat sejenak, dan terdiam tidak mengucapkan sepatah katapun. Michael berkata pelan, hampir-hampir berbisik, "Hannah, ini aku, Michael. Apakah kau masih ingat padaku?" Hannah gemetar, "Michael! Aku tak percaya. Michael! Kau! Michaelku!" Michael berjalan perlahan ke arah Hannah. Mereka lalu berpelukan. Perawat dan aku meninggalkan mereka dengan air mata menitik di wajah kami. "Lihatlah," kataku. "Lihatlah, bagaimana Tuhan berkehendak. Bila Ia berkehendak, maka jadilah." 
Sekitar tiga minggu kemudian, di kantor aku mendapat telepon dari rumah panti jompo itu. "Apakah anda berkenan untuk hadir di sebuah pesta perkawinan di hari Minggu mendatang? Michael dan Hannah akan menikah!" Dan pernikahan itu, pernikahan yang indah. Semua orang di panti jompo itu mengenakan pakaian terbaik mereka untuk ikut merayakan pesta. Hannah mengenakan pakaian abu-abu terang dan tampak cantik. Sedangkan Michael mengenakan jas hitam dan berdiri tegak. Mereka menjadikan aku sebagai wali mereka. Rumah panti jompo memberi hadiah kamar bagi mereka. 
Dan bila anda ingin melihat bagaimana sepasang pengantin berusia 76 dan 79 tahun bertingkah seperti anak remaja, anda harus melihat pernikahan pasangan ini. Akhir yang sempurna dari sebuah hubungan cinta yang tak pernah padam selama 60 tahun. 
READ MORE » Cinta Yang Tak Pernah Padam Selama 60 Tahun

Tentang Cinta


Oleh: Tidak Diketahui
Kiriman: Itayanti

Cinta tak pernah akan begitu indah, jika tanpa persahabatan.. yang satu selalu menjadi penyebab yang lain dan prosesnya.. adalah irreversible... 
Seorang pecinta yang terbaik adalah sahabat yang terhebat. 
Jika kamu mencintai seseorang, jangan berharap bahwa seseorang itu akan mencintai kamu persis sebaliknya dalam kapasitas yang sama. Satu di antara kalian akan memberikan lebih, yang lain akan dirasa kurang... 
Begitu juga dalam kasus, kamu yang mencari, dan yang lain akan menanti... 
Jangan pernah takut untuk jatuh cinta.. mungkin akan begitu menyakitkan, dan mungkin akan menyebabkan kamu sakit dan menderita.. tapi jika kamu tidak mengikuti kata hati, pada akhirnya kamu akan menangis.. jauh lebih pedih.. karena saat itu menyadari bahwa kamu tidak pernah memberi... 
Cinta itu sebuah jalan. Cinta bukan sekedar perasaan, tapi sebuah komitmen... Perasaan bisa datang dan pergi begitu saja... 
Cinta tak harus berakhir bahagia.. karena cinta tidak harus berakhir... 
Cinta sejati mendengar apa yang tidak dikatakan... dan mengerti apa yang tidak dijelaskan, sebab cinta tidak datang dari bibir dan lidah atau pikiran.. melainkan dari HATI. 
Ketika kamu mencintai, jangan mengharapkan apapun sebagai imbalan, karena jika kamu demikian, kamu bukan mencintai, melainkan.. investasi. 
Jika kamu mencintai, kamu harus siap untuk menerima penderitaan. Karena jika kamu mengharap kebahagiaan, kamu bukan mencintai.. melainkan memanfaatkan. 
Lebih baik kehilangan harga diri dan egomu bersama seseorang yang kamu cintai dari pada kehilangan seseorang yang kamu cintai, karena egomu yang tak berguna itu... 
Bagaimana aku akan berkata "SELAMAT TINGGAL".. kepada seseorang yang tidak pernah aku miliki? 
Kenapa tetes air mata jatuh demi seseorang yang tidak pernah menjadi kepunyaanku? Kenapa aku merindukan seseorang yang tidak pernah bersamaku dan kubertanya, Kenapa aku mencintai seseorang yang cintanya tidak pernah untukku? 
Sangat sulit bagi dua orang yang mencintai satu sama lain ketika mereka tinggal dalam dua dunia yang berbeda... Tapi ketika kedua dunia ini melebur dan menjadi satu, itulah yang disebut KEAJAIBAN! 
Jangan mencintai seseorang seperti bunga, karena bunga mati kala mengalir selamanya... 
Cinta mungkin akan meninggalkan hatimu bagaikan kepingan-kepingan kaca, tapi tancapkan dalam pikiranmu, bahwa ada seseorang yang akan bersedia untuk menambal lukamu dengan mengumpulkan kembali pecahan-pecahan kaca itu... Sehingga kamu akan menjadi utuh kembali... 

READ MORE » Tentang Cinta

G++ : MenCompile dan menjalankan program c++

Assalamualaikum wr wb, sobat blogger
sore yang mendung di kota Malang, dimana saya mengabdikan diri saya untuk menuntut ilmu. dan ini adalah minggu-minggu dimana syndrome UAS mulai bermunculan :D
oke, salah satu tugas ahir dari UAS saya adalah membuat beberapa coding dengan menggunakan c++, dan harus saya presentasikan minggu depan. Banyak yang bingung nih di kelas saya, compiler buat c++ itu apa? saya pakek ini kok ga bisa? saya pake itu kok ga bisa? 
Ada nih applikasi di linux namanya g+ + , aplikasi ini adalah GNU C++ Compiler yang berjalan di linux terminal, kalo di windows sih namanya command prompt.
oke berikut ini tutorial instalasinya
- pertama silahkan teman-teman buka ubuntu software center
- kalo sudah silahkan ketik "g++" di kolom pencarian ubuntu software center
- terus kalo sudah ketemu silahkan install aplikasinya dengan menklik tombol install, kemudian tunggu proses instalasinya hingga selesai
nah, compiler c++ sudah terpasang di komputer anda sekarang.
untuk menjalankannya silah kan buka terminal linux anda, kemudian masuk ke directory dimana file c++ anda disimpan. kemudian ketikan perintah berikut ini
g++ [namafile.cpp] -o namafile
perintah diatas adalah perintah untuk mencompile file .cpp yang baru anda buat, kemudian ketikan perintah berikut ini untuk menjalankan file hasil compilenya
./namafile
ini contohnya,
untuk codingnya bisa dibuat pake text editor biasa di linux, nanti filenya disimpan dengan format namafile.cpp

sekian tutorial yang bisa saya bagikan, semoga bisa bermanfaat

READ MORE » G++ : MenCompile dan menjalankan program c++

Aku dan yang tak Terungkap

Meski aku sangat menyukai mu,
aku sangat menyayangimu,
dan terlebih aku sangat-sangat mengaggumimu dalam setiap diamku,
aku masih takut untuk mendekatimu,
masih takut untuk memeilikimu walau hanya sementara,

aku memeberimu teka-teki, misteri
yang harus engkau temukan , dan sudah pasti aku membawa jawabnya
aku ingin mengikatmu dengan sesuatu, sesuatu yang sulit ku ungkapkan,
hingga suatu kelak akan ku berikan semua jawab yang kusimpan,
dan melepasmu dari ikatan itu,

aku masih belum bisa bertanggung jawab atas apa yang aku perbuat sekarang,
aku masih seumur jagung, jika aku harus serius dengan ini
namun bukan berarti aku bermain-main denganmu, tidak
aku sangat seris denganmu,
bahkan aku sering mengimajinasikan masa depan,
ya.. masa depan kita

aku akan sabar, menanti dalam penantianku dan ku harap engkaupun sabar dalam penantianmu :')












Pembuka malam, berselimut sunyi   , Akulah senja yang kau indahkan :P
READ MORE » Aku dan yang tak Terungkap

Colombus dan telur


Ini sebuah cerita kecil di balik kesuksesan Columbus yang menemukan Benua Amerika. Setelah penemuan yang fenomenal itu, Columbus menjadi sangat terkenal dan diagung-agungkan oleh Raja dan seluruh rakyat. Columbus pun diangkat menjadi bangsaan kehormatan kerajaan. Kepopuleran Columbus itu membuat beberapa orang menjadi iri kepadanya. Pada suatu hari, Columbus mengadakan perjamuan makan. Dalam perjamuan makan itu. Dia menceritakan semua kisah yang dihadapi dalam pencarian Benua baru tersebut. Semua tamu undangan terpukau dan mengakui kehebatan Sang Penemu Benua Baru tersebut, namun beberapa orang yang iri  dengan sinis berkata," "Apa hebatnya dia ?? Dia cuma berlayar dan kebetulan saja menemukan benua baru. Siapa saja juga bisa melakukan itu".
Mendengar hal tersebut, Columbus kemudian menantang para orang yang iri tersebut. "Marilah kita bertanding untuk membuktikan siapa yang lebih baik. Barangsiapa yang bisa membuat telur-telur rebus itu berdiri di atas meja makan ini, maka ialah orang yang terbaik dan semua gelar-kekayaanku akan kuserahkan padanya"
Orang-orang yang iri tersebut menerima tantangan Columbus. Kemudian mereka mulai berusaha untuk membuat telur-telur rebus itu berdiri di atas meja makan. Namun karena telur adalah benda yang ellips/hampir bundar, maka cukup mustahil untuk bisa berdiri di atas meja. Setiap dicoba didirikan, telur-telur itu langsung saja menggelinding jatuh. Akhirnya mereka pun menyerah. Kini tiba giliran Columbus. Columbus memegang telur rebus itu di atas meja dengan posisi berdiri sambil dipegangi, kemudian dengan tangan yang satunya Columbus menekan ujung atas telur rebus itu ke meja sehingga ujung bawah telur menjadi remuk dan memipih (tidak lonjong lagi) sehingga telur tersebut bisa berdiri tegak di atas meja. Melihat hal tersebut, orang-orang yang iri dengan sinis berkata "Ah... kalo caranya seperti itu, kami juga bisa membuat telur rebus itu berdiri" Dengan bijak dan sambil tersenyum, Columbus berkata "KALO BEGITU, MENGAPA TIDAK KAMU MELAKUKANNYA ?"
Cerita di atas hendak memberitahukan kita bahwa KESUKSESAN DAN KEBERHASILAN BERASAL DARI SUATU TINDAKAN NYATA ATAS GAGASAN.

READ MORE » Colombus dan telur

Cintalah yang mesti bicara


Oleh: Tidak Diketahui

Suatu Ketika, seorang wanita tampak sedih. Wajahnya kusut masai. Air mukanya letih menahan tangis. Rupanya, ia baru saja kehilangan anak tercintanya untuk selama- lamanya. 
Atas petunjuk orang didesa, ia menemui seorang tua bijak dipinggir hutan. Mereka berkata, siapa tahu orang bijak itu dapat membantu menyelesaikan permasalahan-permasalahannya. Karena rasa cinta kepada sang anak, ia berharap agar segera dapat bertemu dengan orang bijak itu. Ditempuhlah perjalanan yang jauh dengan bergegas. Sesampainya disana, ia bertanya, "Guru, apakah Anda memiliki ramuan ajaib untuk mengembalikan anakku?" 
Sang bijak tidak berusaha berargumentasi atau mengusir wanita itu karena permintaan yang tidak masuk akal. Dia cuma bilang, "Carilah bunga merah dari rumah yang tidak mengenal "kesedihan". Setelah menemukan benda itu, kita sama-sama membuat ramuan ajaib untuk menghidupkan putramu." Selesai mendengan itu, wanita tersebut segera berangkat mencari. 
Dalam perjalanan, ia tampak bingung. Tak ada satu petunjukpun tentang dimana dan bagaimana bentuk rumah itu. Hingga, ia tiba didepan rumah mewah. "Mungkin, penghuni rumah itu tak pernah mengenal kesedihan,"ucap wanita itu dalam hati. Setelah mengetuk pintu, ia berkata, "saya mencari rumah yang tidak pernah mengalami kesedihan. Inikah tempatnya ?" Wajah sang wanita masih memperlihatkan raut merana. 
Dari dalam wajah, terlihat wajah yang tak kalah sedih. Pemilik rumah itu menjawab, "Kamu datang kerumah yang salah." Pemilik rumah itu bercerita tentang tragedi yang dialami keluarganya . Ia tak hanya kehilangan seorang anak, tapi juga suami dan kedua orangtuanya karena kecelakaan. Sang wanita kecewa. 
Namun, ia menjadi larut dengan cerita tuan rumah. Ia berfikir, "Siapa yang bisa membantu orang yang nasibnya lebih malang dari saya ini?" Dia memutuskan untuk tinggal disana dan menghibur pemilik rumah itu. Bberapa hari lamanya, ia bersama wanita pemilik rumah itu, membantu menjalani hidup. 
Beberapa minggu berlalu, wanita itupun merasa situan rumah sudah terlihat lebih baik. Lalu, ia berangkat lagi mencari rumah berikutnya. Tetapi, kemanapun dia pergi, selalu menemukan kesedihan. Akhirnya, ia lagi-lagi terlibat upaya menghibur semua orang yang dikunjunginya. Hingga, ia pun melupakan misinya. 

Kita belajar makna cinta dari seorang ibu yang menyusui anaknya dalam gendongan. Kedua belah tanggannya sibuk menisik selimut sang bayi. Dalam dadanya tiada sesuatu selain ketulusan memberi atas nama cinta.  Kita belajar makna cinta dari seorang ayah yang membawa pulang sejumput padi dan setuang air setelah seharian berterik-terik diladang. Dalam dadanya, tiada sesuatuselain kegembiraan memberi atas nama cinta.  Karena cinta bukan hanya sekedar pelukan hangat, belaian lembut, atau kata-kata penuh dayu. Kita belajar apa itu cinta dari apapun yang ada dimuka bumi. Dari cahaya matahari. Dari sepasang merpati. Dari sujud dan tengadah doa. Dari apapun! 
Pada semua kelahiran yang tersambut dengan cinta, hingga kematian yang terlarung dalam cinta, kita dalam hidup ini, tiada lain selain mewujudkan cinta. Karena itu, tiada yang pantas kita lakukan selain atas nama cinta kita yang teragung: cinta buat Yang Maha Agung, Allah SWT. Apapun keputusan-NYA buat kita. cintalah yang mesti bicara.... 
READ MORE » Cintalah yang mesti bicara

Linux From Scratch (LFS)


Linux From Scratch (lLFS) merupakan sebuah istilah utntuk membangun sebuah sistem
operasi linux dari nole (awal), dengan melakukan pengumpulan kernel, library, utilitas dll, baru
kemudian dilakukan kompilasi dan dikonfigurasi hingga menjadi sebuah sistem operasi linux.
Artinya dengan menggunakan LFS kita akan memahamikarakteristik dan cara kerja dari sebuah
sistem operasi linux itu sendiri. Keuntungan menggunakan LFS ini, kita bisa membangun sistem
operasi linux sesuai dengan keinginan kita, karena membangun sebuah LFS akan memberikan
sebuah fleksibilitas yang sangant inggi, dan sangat membantu dalam pembelajaran sebuah sistem
operasi linux.
Paket2 yang dibutuhkan dalam LFS
Membangun LFS bukan berarti kita membangun linux minimalis, tetapi membuat
sebuah system linux dari nol, menjadi sebuah system standart yang berguna bagi kita.
Paket2 dalam LFS kurang lebih adalah :
• Autoconf
Paket ini berisi program untuk menghasilkan shell script yang mana dapat dengan
otomatis mengkonfigurasikan source code dari template2 pengembangan.
Biasanya digunakan untuk me rebuild paket2 setelah di update.
• Automake
Paket ini berisi program untuk menggenerate Makefiles dari template.
Paket ini sering digunakan untuk proses rebuild paket setelah update, atau generate skrip
kompilasi.
• Bash
Paket ini adalah termasuk paket utama yang menyediakan fasilitas Shell pada sistem
linux.
• Binutils
Paket ini berisi linker, assembler, dan tools2 lain untuk menangani file object. Paket2
binutils ini di butuhkan untuk melakukan kompilasi pada hampir semua paket dalam
LFS.
• Bison
Paket ini berisi yacc (Yet Another Compiler Compiler), digunakan untuk building dari
beberapa paket LFS.
• Bzip2
Paket ini berisi program untuk melakukan kompresi dan dekompresi file, yang mana
dibutuhkan di beberapa paket LFS.
• Coreutils
Paket ini berisi beberapa esensi program untuk melakukan viewing dan manipulasi
file/direktori.
dll
• DejaGNU
Paket ini berisi framework untuk melakukan testing program. Ini hanya di install di
temporary toolchain.
• Diffutils
Paket ini berisi program untuk melihat perbedaan antar filie/direktori.
Program ini digunakan untuk membuat patch, juga digunakan di beberapa prosedur
building paket.
Expect
Paket ini berisi program untuk membuat skrip dialog antar program secara interaktif.
Biasanya digunakan untuk testing paket, paket ini hanya diinstall di temporary
toolchain.
• E2fsprogs
Paket ini berisi utilitas untuk menangani filesystem ext2, ext3, ext4.
• File
Berisi paket yang berguna untuk melihat jenis/tipe file.
Beberapa paket membutuhkan utilitas ini untuk proses building.
• Findutils
Paket ini berisi program untuk melakukan pencarian file dalam filesystem. Paket ini berguna untuk
proses building dari beberapa paket.
• Flex
paket ini berisi utilitas untuk generate program untuk mengenali pola2 tertentu dalam
teks.
Berguna untuk building beberapa paket LFS.
• Gawk
Paket ini berisi program untuk melakukan manipulasi file teks. Ini adalah versi GNU
dari awk.
Paket ini digunakan untuk melakukan proses building pada beberapa paket dalam LFS.
• Gcc
Paket ini berisi GNU Compiler Collection. Didalamnya berisi Kompiler C dan C++
Paket ini digunakan untuk melakukan kompilasi pada hampir semua paket2 dalam LFS
yang di tulis dalam bahasa C.
• GDBM
Paket ini berisi Library Manager Database.
Digunakan oleh paket lain dalam LFS, yaitu Man-DB
• Gettext
Paket ini berisi librari dan utility untuk internasionalisasi dan lokalisasi dari beberapa
paket di LFS.
• Glibc
Berisi Library utama program2 yang dihasilkan dari bahasa C. Linux tidak akan jalan
tanpa lib ini.
• GMP
Paket ini berisi library matematika yang berguna untuk menghasilkan fungsi2 untuk
operasi aritmatika dengan ketepatan tinggi.
Paket ini digunakan untuk building Gcc.
• Grep
Paket ini berisi program untuk mencari pola2 teks tertentu dalam file,
Paket ini digunakan hampir pada semua building script.
• Groff
Paket ini berisi program untuk melakukan prosesing dan formating teks.
Fungsi penting dari program ini adalah untuk melakukan formatting pada man pages.
• GRUB
Ini adalah Boot Loader yang paling fleksibel diantara boot loader2 lain yang ada.
• Gzip
Paket ini berisi program untuk melakukan kompresi dan dekompresi file.
Paket ini di butuhkan untuk melakukan dekompresipada banyak paket2 di LFS.
• Iana-etc
Paket ini menyediakan data untuk network services dan protokol.
Berguna untuk membuat aplikasi network dengan kapabilitas tinggi.
• Inetutils
This package contains programs for basic network administration.
Paket ini berisi program untuk dasar administrasi network.
• IProute2 .
Paket ini berisi program untuk administrasi networking dari yang bersifat dasar sampai
advance pada Ipv4 dan Ipv6.
Iproute2 hampir digunakan pada kebanyakan paket network-tools.
• Kbd
Paket ini berisi utilitas untuk keyboard, yang berisi tabel key pada jenis2 keyboard
tertentu, juga beberapa jenis font console.
• Kmod
Paket ini berisi program yang dibutuhkan untuk administrasi/pengaturan pada modul2
kernel.
• Less
Paket ini berisi tool untuk melihat isi file teks, dan memungkinkan kita untuk scrolling
up dan down dalam melihat isinya.
Paket ini digunakan oleh Man-DB dalam menampilkan manpages.
• Libtool
Paket ini berisi skrip2 pendukung pada Librari umum, juga untuk mengkonfigurasikan
kompleksitas dari penggunaan shared library.
Paket ini dibutuhkan oleh keperluan test dari paket2 other dari LFS.
• Linux Kernel
Ini adalah Operating system yang sebenarnya. Sebenarnya linux adalah kernel ini yang
di bangun atas GNU/Linux environment
• M4
Paket ini berisi prosesor dari script makro2 umum, paket ini berguna untuk proses
building dari program.
• Make
Paket ini berisi program yang berguna untuk melakukan direct building dari paket2
tertentu. Hampir semua paket membutuhkan utilitas ini untuk melakukan proses
kompilasi dan building.
• Man-DB
Paket ini berisi Program yang berfungsi untuk melakukan proses pencarian dan
menampilkan man pages. Paket ini adalah paket pendukung dari man-pages.
• Man-pages
Paket ini berisi isi yang sebenarnya dari basic halaman manual linux.
• MPC
Paket ini berisi fungsi2 yang berguna untuk melakukan perhitungan aritmatika dari
bilangan2 yang kompleks, paket ini di butuhkan oleh GCC.
• MPFR
Paket ini berisi fungsi2 dari perhitungan aritmatika multi presisi.
Paket ini digunakan oleh GCC.
• Ncurses
Paket ini berisi library untuk penanganan karakter2 layar pada terminal. Lib ini juga
sering digunakan untuk kontrol kursor pada systeem menu.
Ncurses dibutuhkan oleh banyak paket dalam LFS.
• Patch
Paket ini berisi program untuk melakukan modifikasi atau menciptakan files dengan
cara memasangkan sisipan/patch tertentu yang biasanya di hasilkan oleh program diff,
Paket ini digunakan untuk membangun prosedur2 untuk beberapa paket dalam LFS.
• Perl
Paket ini berisi interpreter untuk bahasa pemrograman PERL. Dalam LFS paket ini
dibutuhkan untuk proses installasi dan test dari beberapa paket.
• Procps
Paket ini berisi program untuk melakukan monitoring proses. Program ini berguna untuk
melakukan system administrasi dan dibutuhkan juga pada LFS Bootscripts.
• Psmisc
Paket ini berisi program untuk melakukan display informasi tentang proses yang sedang
berjalan,
paket ini berguna untuk melakukan administrasi system.
• Readline
Paket ini berisi satu set library yang memberikan fasilitas manajemen dan editing
command-line, dan history
Paket ini digunakan oleh bash.
• Sed
Paket ini digunakan untuk melakukan editing teks secara command line, tanpa harus
membuka program editor.
Paket ini digunakan oleh hampir semua dari script configure.
• Shadow
This package contains programs for handling passwords in a secure way.
Paket ini berisi program untuk melakukan shadowing password, yang berguna untuk
meningkatkan keamanan di system linux kita.
• Sysklogd
Paket ini berisi program untuk melakukan pencatatan/logging terhadap proses2 dalam
system, seperti yang di berikan oleh kernel, atau daemon2/proses tertentu (biasanya
dicatat apabila ada sesuatu kejadian tertentu yang bersifat tidak biasa terjadi)
• Sysvinit
Paket ini berisi program inisialisasi, yang mana ini merupakan induk dari proses2 lain
dalam system linux.
• Tar
Paket ini berfungsi untuk melakukan pengarsipan (membentuk file .tar) dan ekstrak dari
file .tar Digunakan hampir pada semua paket LFS.
• Tcl
Paket ini berisi Tool Command Language yang berguna pada pengetestan dalam paket2
LFS. TCL hanya di install pada temporary toolchain.
• Texinfo
Paket ini berisi program untuk melakukan pembacaan, penulisan dan konversi ke dalam
suatu halaman,
Paket ini digunakan pada prosedur installasi pada banyak paket LFS
• Udev
of static devices in the /dev directory.
Paket ini berisi program untuk membuat file devices dengan nomor node2 tertentu pada
direktori /dev.
• Util-linux
Paket ini berisi program utility, biasanya untuk menangani system console, partisi, dan
massages.
• Vim
Paket ini berisi editor, yang kompatibel dengan editor classic vi, tetapi dengan
penambahan fitur2 yang sangat powerfull dalam melakukan editing teks.
• XZ Utils
Paket ini berisi program untuk melakukan kompresi dan dekompresi files. XZ utils ini
memberikan kompresi yang sangat tinggi. File2 kompresinya berformat .xz atau .lzma.
• Zlib
Paket ini berisi library rutin2 tertentu untuk melakukan kompresi dan dekompresi, zlib
di butuhkan oleh beberapa program lain.
READ MORE » Linux From Scratch (LFS)

Bubble Sort c++

ini coding c++ sebenarnya adalah tugas dari rekam jejak mata kuliah Struktur Data di kampus saya.
namun tidak ada salahnya saya bagi ke temen-temen semua.
dibawah ini adalah coding untuk bubble sort menggunakan c++, sebenarnya lokianya saya ambil dari tugas java saya dulu, hampir mirip lah cuma ada beberapa bagian yang diubah.
oia, coding ini berhasil saya run di ubuntu 12.04 saya, kalau pake windows beda lagi codingnya ..


#include <iostream>
#include <cstdio>
using namespace std;
int array [] = {1,2,4,5,2};
int i,j, temp;

int main()
{
for(i=0;i<5;i++){
for(j=i+1;j<5;j++){
if(array[i]>array[j]){
temp=array[i];
array[i]=array[j];
array[j]=temp;
}
}
}
for (i=0;i<5;i++){
cout<<array[i]<<" ";
}
return 0;
}

READ MORE » Bubble Sort c++

JANGAN BENCI AKU, MAMA


Dua puluh tahun yang lalu saya melahirkan seorang anak laki-laki, wajahnya

lumayan tampan namun terlihat agak
bodoh. Sam, suamiku, memberinya nama Eric. Semakin lama semakin nampak

jelas bahwa anak ini memang agak
terbelakang. Saya berniat memberikannya kepada orang lain saja untuk

dijadikan budak atau pelayan. Namun Sam
mencegah niat buruk itu. Akhirnya terpaksa saya membesarkannya juga. Di

tahun kedua setelah Eric dilahirkan
saya pun melahirkan kembali seorang anak perempuan yang cantik mungil.

Saya menamainya Angelica. Saya
sangat menyayangi Angelica, demikian juga Sam. Seringkali kami mengajaknya

pergi ke taman hiburan dan
membelikannya pakaian anak-anak yang indah-indah. Namun tidak demikian

halnya dengan Eric. Ia hanya
memiliki beberapa stel pakaian butut. Sam berniat membelikannya, namun

saya selalu melarangnya dengan dalih
penghematan uang keluarga. Sam selalu menuruti perkataan saya.
Saat usia Angelica 2 tahun Sam meninggal dunia. Eric sudah berumur 4 tahun

kala itu. Keluarga kami menjadi
semakin miskin dengan hutang yang semakin menumpuk. Akhirnya saya

mengambil tindakan yang akan membuat
saya menyesal seumur hidup. Saya pergi meninggalkan kampung kelahiran saya

beserta Angelica. Eric yang
sedang tertidur lelap saya tinggalkan begitu saja. Kemudian saya tinggal

di sebuah gubuk setelah rumah kami laku
terjual untuk membayar hutang. Setahun, 2 tahun, 5 tahun, 10 tahun.. telah

berlalu sejak kejadian itu.
Saya telah menikah kembali dengan Brad, seorang pria dewasa. Usia

Pernikahan kami telah menginjak tahun
kelima. Berkat Brad, sifat-sifat buruk saya yang semula pemarah, egois,

dan tinggi hati, berubah sedikit demi
sedikit menjadi lebih sabar dan penyayang. Angelica telah berumur 12 tahun

dan kami menyekolahkan dia di
asrama putri sekolah perawatan. Tidak ada lagi yang ingat tentang Eric dan

tidak ada lagi yang mengingatnya.
Sampai suatu malam. Malam di mana saya bermimpi tentang seorang anak.

Wajahnya agak tampan namun tampak
pucat sekali. Ia melihat ke arah saya. Sambil tersenyum ia berkata,

"Tante, Tante kenal mama saya? Saya lindu
cekali pada Mommy!" Setelah berkata demikian ia mulai beranjak pergi,

namun saya menahannya, "Tunggu...,
sepertinya saya mengenalmu.
Siapa namamu anak manis?"
"Nama saya Elic, Tante."
"Eric? Eric... Ya Tuhan! Kau benar-benar Eric?"
Saya langsung tersentak dan bangun. Rasa bersalah, sesal dan berbagai

perasaan aneh lainnya menerpa diri saya
saat itu juga. Tiba-tiba terlintas kembali kisah ironis yang terjadi dulu

seperti sebuah film yang diputar dikepala
saya. Baru sekarang saya menyadari betapa jahatnya perbuatan saya

dulu.Rasanya seperti mau mati saja saat itu.
Ya, saya harus mati..., mati..., mati... Ketika tinggal seinchi jarak

pisau yang akan saya goreskan ke pergelangan
tangan, tiba-tiba bayangan Eric melintas kembali di pikiran saya. Ya Eric,

Mommy akan menjemputmu Eric...
Sore itu saya memarkir mobil biru saya di samping sebuah gubuk, dan Brad

dengan pandangan heran menatap saya
dari samping.
"Mary, apa yang sebenarnya terjadi?"
"Oh, Brad, kau pasti akan membenciku setelah saya menceritakan hal yang

telah saya lakukan dulu." tTpi aku
menceritakannya juga dengan terisak-isak. ..
Ternyata Tuhan sungguh baik kepada saya. Ia telah memberikan suami yang

begitu baik dan penuh pengertian.
Setelah tangissaya reda, saya keluar dari mobil diikuti oleh Brad dari

belakang. Mata saya menatap lekat pada
gubuk yang terbentang dua meter dari hadapan saya. Saya mulai teringat

betapa gubuk itu pernah saya tinggali
beberapa bulan lamanya dan Eric.. Eric... Saya meninggalkan Eric di sana

10 tahun yang lalu. Dengan perasaan
sedih saya berlari menghampiri gubuk tersebut dan membuka pintu yang

terbuat dari bambu itu. Gelap sekali...
Tidak terlihat sesuatu apa pun! Perlahan mata saya mulai terbiasa dengan

kegelapan dalam ruangan kecil itu.
Namun saya tidak menemukan siapapun juga di dalamnya. Hanya ada sepotong

kain butut tergeletak di lantai
tanah.
Saya mengambil seraya mengamatinya dengan seksama... Mata mulai berkaca-

kaca, saya mengenali potongan kain
tersebut sebagai bekas baju butut yang dulu dikenakan Eric sehari-harinya.

.. Beberapa saat kemudian, dengan
perasaan yang sulit dilukiskan, saya pun keluar dari ruangan itu... Air

mata saya mengalir
dengan deras. Saat itu saya hanya diam saja. Sesaat kemudian saya dan Brad

mulai menaiki mobil untuk
meninggalkan tempat tersebut. Namun, saya melihat seseorang di belakang

mobil kami. Saya sempat kaget sebab
suasana saat itu gelap sekali. Kemudian terlihatlah wajah orang itu yang

demikian kotor. Ternyata ia seorang
wanita tua. Kembali saya tersentak kaget manakala ia tiba-tiba menegur

saya dengan suaranya yang parau.
"Heii...! Siapa kamu?! Mau apa kau kemari?!"
Dengan memberanikan diri, saya pun bertanya, "Ibu, apa ibu kenal dengan

seorang anak bernama Eric yang dulu
tinggal di sini?" Ia menjawab, "Kalau kamu ibunya, kamu sungguh perempuan

terkutuk! Tahukah kamu, 10 tahun
yang lalu sejak kamu meninggalkannya di sini, Eric terus menunggu ibunya

dan memanggil, 'Mommy..., mommy!'
Karena tidak tega, saya terkadang memberinya makan dan mengajaknya tinggal

Bersama saya. Walaupun saya
orang miskin dan hanya bekerja sebagai pemulung sampah, namun saya tidak

akan meninggalkan anak saya seperti
itu! Tiga bulan yang lalu Eric meninggalkan secarik kertas ini. Ia belajar

menulis setiap hari selama bertahun-tahun
hanya untuk menulis ini untukmu..."
Saya pun membaca tulisan di kertas itu...
"Mommy, mengapa Mommy tidak pernah kembali lagi...?
Mommy marah sama Eric, ya? Mom, biarlah Eric yang pergi saja, tapi Mommy

harus berjanji kalau Mommy tidak
akan marah lagi sama Eric. Bye, Mom..." Saya menjerit histeris membaca

surat itu.
"Bu, tolong katakan... katakan di mana ia sekarang? Saya berjanji akan

meyayanginya sekarang! Saya tidak akan
meninggalkannya lagi, Bu! Tolong katakan..!!"
Brad memeluk tubuh saya yang bergetar keras.
"Nyonya, semua sudah terlambat. Sehari sebelum nyonya datang, Eric telah

meninggal dunia. Ia meninggal di
belakang gubuk ini. Tubuhnya sangat kurus, ia sangat lemah. Hanya demi

menunggumu ia rela bertahan di
belakang gubuk ini tanpa ia berani masuk ke dalamnya. Ia takut apabila

Mommy-nya datang, Mommy-nya akan
pergi lagi bila melihatnya ada di dalam sana ... Ia hanya berharap dapat

melihat Mommy-nya dari belakang gubuk
ini... Meskipun hujan deras, dengan kondisinya yang lemah ia terus

bersikeras menunggu Nyonya di sana .
Nyonya,dosa anda tidak terampuni!"
Saya kemudian pingsan dan tidak ingat apa-apa lagi. (kisah nyata di

irlandia utara)
READ MORE » JANGAN BENCI AKU, MAMA

Membuka Situs yang di Blok Dengan Hotspot Shield

Bagi yang suka internetan pake wifi di tempat-tempat umum kayak wifi kampus, biasanya kita enak-enak browsing pas tiba-tiba situs yang biasanya bisa kita buka eh ternyata situsnya diblokir sama miminnya hostspot.
Ada nih aplikasi yang bisa buat nembus proteksinya namanya Hotspot Shield.

aplikasi ini sebenernya buat ngelindungin wifi kita dari para mata-mata alias miminya , aplikasi ini mengenkripsi paket data atau trafik yang digunakan saat kita browsing.

Browser yang telah terpasang software ini akan melakukan koneksi yang terenskripsi ke server HotSpot Shield, merubah semua trafik http menjadi https yang lebih aman. Dengan melaukan reroute trafik web dan memberikan ip address baru (proxy*) yang dihost oleh AnchorFree, Perusahaan ini memastikan bahwa trafik data anda aman dan tidak dapat dihack dengan serangan MITM (Man In The Middle) maupun network spoofing.

nah yang saya bagi ini adalah versi halalnya alias yang gak berbayar, kan cuma buat nembus situs aja, jadi ga perlulah merogoh kocek yang terlalu dalam buat yang kayak beginian. nah ada nih yang kadang bikin risih dari versi gratis ini, yaitu pas kita browsing kadang-kdang muncul iklan nya. ya kadang cukup mengganggu sih, tapi its ok lah .
bagi yang punya kocek cukup dalam, bisa tuh beli yang versi full tanpa iklan seperti aplikasi yang free, dengan harga $0.5/hari atau $5/bulan atau $45/tahun kita sudah bisa menikmati layanan elite dari HotSpot Shield.

yang berminat sama aplikasinya silahkan download disini
kalo sudah tinggal diaktifin hotspot shieldnya

 klik connect terus tunggu sampe yang warna merah jadi warna ijo dan ada tulisannya protected

READ MORE » Membuka Situs yang di Blok Dengan Hotspot Shield

Virtual Memory


            Memori virtual adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik  ini  menyembunyikan  aspek-aspek  fisik  memori  dari  pengguna  dengan  menjadikan  memori  sebagai  lokasi  alamat  virtual  berupa  byte  yang  tidak  terbatas  dan  menaruh  beberapa  bagian  dari  memori  virtual yang berada di memori logis.
Konsep memori virtual dikemukakan pertama kali oleh John Fotheringham  pada  tahun 1961 dengan menggunakan  dynamic  storage  allocation  pada  sistem komputer  atlas  di  Universitas  Manchester. Sedangkan  istilah  memori  virtual  dipopulerkan  oleh Peter  J.  Denning  yang  mengambil  istilah  'virtual' dari dunia optik. 
Setiap  program  yang  dijalankan  harus  berada  di  memori.  Memori  merupakan  suatu  tempat penyimpanan  utama  (primary  storage)  yang  bersifat  sementara  (volatile).  Ukuran  memori  yang terbatas  menimbulkan  masalah  bagaimana  menempatkan program  yang  berukuran  lebih  besar  dari ukuran  memori  fisik  dan  masalah  penerapan  multiprogramming  yang  membutuhkan  tempat  lebih besar  di  memori.  Dengan  pengaturan  oleh  sistem  operasi  dan  didukung  perangkat  keras,  memori virtual dapat mengatasi masalah kebutuhan memori tersebut.
Memori  virtual  melakukan  pemisahan  dengan  menaruh  memori  logis  ke  disk  sekunder  dan  hanya membawa  halaman  yang  diperlukan  ke  memori  utama.  Teknik  ini  menjadikan  seolah-olah  ukuran memori  fisik  yang  dimiliki  lebih  besar  dari  yang  sebenarnya  dengan  menempatkan  keseluruhan program di disk sekunder dan membawa halaman-halaman yang diperlukan ke memori fisik. Jadi jika proses  yang  sedang  berjalan  membutuhkan  instruksi  atau  data  yang  terdapat  pada  suatu  halaman tertentu maka halaman tersebut akan dicari di memori utama. Jika halaman yang diinginkan tidak ada maka akan dicari di disk. Ide ini seperti menjadikan memori sebagai cache untuk disk.

Beberapa keuntungan penggunaan memori virtual adalah sebagai berikut:
·         Berkurangnya  proses  I/O  yang  dibutuhkan  (lalu  lintas  I/O  menjadi  rendah).  Misalnya  untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.
·         Ruang  menjadi  lebih  leluasa  karena  berkurangnya  memori  fisik  yang  digunakan.  Contoh,  untuk  program  10  MB  tidak  seluruh  bagian  dimasukkan  dalam  memori  fisik.  Pesan-pesan  error  hanya dimasukkan jika terjadi error.
·         Meningkatkan respon, karena menurunya beban I/O dan Memori
·         Bertambahnya  jumlah  pengguna  yang  dapat  dilayani. Ruang  memori  yang  masih  tersedia  luas memungkinkan komputer untuk menerima lebih banyak permintaan dari pengguna.
Gagasan  utama  dari  memori  virtual  adalah  ukuran  gabungan  program,  data  dan  stack  melampaui jumlah  memori  fisik  yang  tersedia.  Sistem  operasi  menyimpan  bagian-bagian  proses  yang  sedang digunakan di memori fisik (memori utama) dan sisanya diletakkan di disk. Begitu bagian yang berada di  disk  diperlukan,  maka  bagian  di  memori  yang  tidak  diperlukan  akan  dikeluarkan  dari  memori  fisik (swap-out) dan diganti (swap-in) oleh bagian disk yang diperlukan itu.
Memori  virtual  diimplementasikan  dalam  sistem  multiprogramming.  Misalnya:  10  program  dengan ukuran 2 Mb dapat berjalan di memori berkapasitas 4 Mb. Tiap program dialokasikan 256 Kbyte dan bagian-bagian proses swap in) masuk ke dalam memori fisik begitu diperlukan dan akan keluar (swap out) jika sedang tidak diperlukan. Dengan demikian, sistem multiprogramming menjadi lebih efisien.
Prinsip dari memori virtual yang perlu diingat adalah bahwa "Kecepatan maksimum eksekusi proses di memori virtual dapat sama, tetapi tidak pernah melampaui  kecepatan eksekusi proses  yang sama di sistem yang tidak menggunakan memori virtual".

Memori virtual dapat diimplementasikan dengan dua cara:
1.  Demand paging. Menerapkan konsep pemberian halaman pada proses.
2.  Demand  segmentation.  Lebih  kompleks  diterapkan  karena  ukuran  segmen  yang  bervariasi. Demand segmentation tidak akan dijelaskan pada pembahasan ini.

Segmentation (Segmentasi)

            Segmentasi adalah sebuah bagian dari managemen memori yang mengatur pengalamatan dari memori yang terdiri dari segmen-segmen. logical address space adalah kumpulan dari segmen-segmen yang mana tiap-tiap segmen mempunyai nama dan panjang. alamat tersebut menunjuk kan alamat dari segmen tersebut dan offset-nya didalam segmen-segmen tersebut. pengguna kemudian menentukan pengalamatan dari setiap segmen menjadi dua bentuk, nama segmen  dan offset dari segmen tersebut (Hal ini berbeda dengan pemberian halaman, dimana pengguna hanya menentukan satu buah alamat, dimana pembagian alamat menjadi dua dilakukan oleh perangkat keras, semua ini tidak dapat  dilihat oleh user).
            Ketika kita menulis suatu program,  kita akan menganggapnya sebagai sebuah  program dengan sekumpulan dari subrutin, prosedur, fungsi, atau variabel. mungkin juga  terdapat berbagai macam stru ktur data seperti: tabel,  array,  stack, variabel, dsb. Tiap-tiap modul atau elemen-elemen dari data ini dapat di-referensikan dengan suatu nama,  tanpa perlu mengetahui dimana alamat sebenar nya elemen-elemen tersebut disimpan di memori. dan kita juga tidak perlu mengetahui apakah terdapat urutan penempatan dari program yang kita buat. Pada kenyataannya,  elemen-elemen yang terdapat pada sebuah segmen dapat ditentukan lokasinya dengan menambahkan  offset  dari awal alamat segmen tersebut.
            Untuk kemudahan pengimplementasian, segmen-segmen diberi nomor dan direferensikan dengan menggunakan penomoran tersebut, daripada dengan menggunakan nama. maka,  logical address space  terdiri dari dua  tuple  yaitu: (nomor-segmen, offset) Pada umumnya, program dari pengguna akan dikompilasi, dan kompilator tersebut akan membuat segmen -segmen tersebut secara otomatis. Jika mengambil contoh kompilator dari Pascal, maka kemungkinan kompilator tersebut akan membuat beberapa segmen yang terpisah untuk
1.      Variabel Global
2.      Prosedur dari pemanggilan stack, untuk menyimpan parameter dan pengembalian alamat
3.      Porsi dari kode untuk setiap prosedur atau fungsi, dan
4.      Variabel lokal dari setiap prosedur dan fungsi.

Paging

            Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia.  Memori fisik dibagi ke dalam blok-blok ukuran tetap yang disebut  frame .  Memori logika juga dibagi ke dalam blok-blok dg ukuran yang sama yang disebut  page .  Semua daftar  frame  yang bebas disimpan.  Untuk menjalankan program dengan ukuran  n page , perlu menemukan  n frame  bebas dan meletakkan program pada  frame  tersebut.  Tabel  page ( page table) digunakan untuk menterjemahkan alamat logika ke alamat fisik.  
            Setiap alamat dibangkitkan oleh CPU dengan membagi ke dalam 2 bagian  yaitu  :
·         Page number( p) digunakan sebagai indeks ke dalam table page( page table). Page table berisi alamat basis dari setiap page pada memori fisik. 
·         Page offset   (d) mengkombinasikan alamat basis dengan  page offset  untuk mendefinisikan alamat memori fisik yang dikirim ke unit memori.

            Pada skema paging, tidak terjadi fragmentasi eksternal, karena “sembarang” frame  dapat dialokasikan ke proses yang memerlukannya.  Tetapi beberapa fragmentasi internal masih mungkin terjadi.  Hal ini dikarenakan  frame  dialokasikan sebagai unit dan jika kebutuhan memori dari proses tidak menemukan page , maka frame  terakhir mungkin tidak dialokasikan penuh.
            Bila suatu proses datang untuk dieksekusi, maka ukurannya diekspresikan dengan page. Setiap  page  membutuhkan satu  frame. Bila proses membutuhkan n page , maka proses tersebut juga membutuhkan n frame. Jika tersedia  n frame, maka memori dialokasikan untuk proses tersebut.
            Pada paging , user memandang memori sebagai bagian terpisah dari memori fisik aktual.  Program user memandang memori sebagai satu ruang berurutan yang hanya berisi program user tersebut.  Faktanya, program user terpecah pada memori fisik, yang juga terdapat program lain.  Karena sistem operasi mengatur memori fisik, perlu diwaspadai lokasi detail dari memori fisik, yaitu frame  mana yang dialokasikan, frame mana yang tersedia, berapa jumlah  frame  dan lain-lain.  Informasi tersebut disimpan sebagai struktur data yang disebut “frame table ”.

            Setiap sistem operasi mempunyai metode sendiri untuk menyimpan tabel page. Beberapa sistem operasi mengalokasikan sebuah tabel  page  untuk setiap proses.  Pointer ke tabel page  disimpan dengan nilai register lainnya dari PCB.  

            Pada dasarnya terdapat 3 metode yang berbeda untuk implementasi tabel page  :
·         Tabel  page  diimplementasikan sebagai kumpulan dari “dedicated ” register. Register berupa rangkaian logika berkecepatan sangat tinggi untuk efisiensi translasi alamat paging.  Contoh : DEC PDP-11.  Alamat terdiri dari 16 bit dan ukuran page 8K.  Sehingga tabel  page  berisi 8 entri yang disimpan pada register.  Penggunaan register memenuhi jika tabel  page  kecil (tidak lebih dari 256 entry).
·         Tabel page  disimpan pada main memori dan menggunakan  page table base registe” (PTBR) untuk menunjuk ke tabel  page  yang disimpan di main memori. Penggunakan memori untuk mengimplementasikan tabel page  akan memungkinkan tabel  page  sangat besar (sekitar 1 juta entry).  Perubahan tabel page  hanya mengubah PTBR dan menurunkan waktu context-switch .  Akan tetapi penggunaan metode ini memperlambat akses memori dengan faktor 2.  Hal ini dikarenakan untuk mengakses memori perlu dua langkah : pertama untuk lokasi tabel page  dan kedua untuk lokasi alamat fisik yang diperlukan.
·         Menggunakan perangkat keras  cache yang khusus, kecil dan cepat yang disebut associative register  atau  translation look-aside buffers (TLBs).  Merupakan solusi standar untuk permasalahan penggunaan memori untuk implementasi tabel  page. Sekumpulan associative register  berupa memori kecepatan tinggi.  Setiap register terdiri dari 2 bagian yaitu  key  dan  value.  Jika  associative register memberikan item, akan dibandingkan dengan semua key secara  simultan. Jika item ditemukan nilai yang berhubungan diberikan.  Model ini menawarkan pencarian cepat tetapi perangkat keras masih mahal.  Jumlah entry pada TLB bervariasi antara 8 s/d 2048.



Swap (Penukaran)

            Sebuah proses membutuhkan memori untuk dieksekusi. Sebuah proses dapat ditukar sementara keluar memori ke backing store (disk), dan kemudian dibawa masuk lagi ke memori untuk dieksekusi. Sebagai contoh, asumsi multiprogramming, dengan penjadualan algoritma CPU Round-Robin. Ketika kuantum habis, manager memori akan mulai menukar keluar proses yang selesai, dan memasukkan ke memori proses yang bebas. Sementara penjadualan CPU akan mangalokasikan waktu untuk proses lain di memori. Ketika tiap proses menghabiskan waktu kuantumnya, proses akan ditukar dengan proses lain.
            Idealnya memori manager, dapat menukar proses-proses cukup cepat, sehingga selalu ada proses dimemori, siap dieksekusi, ketika penjadual CPU ingin menjadual ulang CPU. Besar kuantum juga harus cukup  besar, sehingga jumlah perhitungan yang dilakukan antar pertukaran masuk akal. Variasi dari kebijakan  swapping  ini, digunakan untuk algoritma penjadualan berdasarkan priorita s. Jika proses yang lebih tinggi tiba, dan minta dilayani, memori manager dapat menukar keluar proses dengan prioritas yang lebih rendah, sehingga dapat memasukkan dan mengeksekusi proses dengan prioritas yang lebih tinggi. Ketika proses dengan prioritas lebih tinggi selesai, proses dengan prioritas yang lebih rendah, dapat ditukar masuk kembali, dan melanjutkan. Macam-macam pertukaran ini kadang disebut roll out, dan roll in.
            Normalnya, sebuah proses yang ditukar keluar, akan dimasukkan kembali ke tempat memori yang sama dengan yang digunakan sebelumnya. Batasan ini dibuat oleh method pengikat alamat. Jika pengikatan dilakukan saat assemble atau load time, maka proses tidak bisa dipindahkan ke lokasi yang berbeda. Jika menggunakan pengikatan waktu eksekusi, maka akan mungkin menukar proses kedalam tempat memori yang berbeda. Karena alamat fisik dihitung selama proses eksekusi.
            Pertukaran membutuhkan sebuah backing st ore. Backing store biasanya adalah sebuah disk yang cepat. Cukup besar untuk mengakomodasi semua kopi tampilan memori. Sistem memelihara ready queue terdiri dari semua proses yang mempunyai tampilan memori yang ada di backing store, atau di memori dan siap dijalankan. Ketika penjadual CPU memutuskan untuk mengeksekusi sebuah proses, dia akan memanggil dispatcher, yang mengecek dan melihat apakah proses berikutnya ada diantrian memori. Jika proses tidak ada, dan tidak ada ruang memori yang kosong,  dispatcher  menukar keluar sebuah proses dan memaasukan proses yang diinginkan. Kemudian memasukkan ulang register dengan normal, dan mentransfer pengendali ke proses yang diinginkan.
            Konteks waktu pergantian pada  sistem swapping, lumayan tinggi. Untuk efisiensi kegunaan CPU, kita ingin waktu eksekusi untuk tiap proses lebih lama dari waktu pertukaran. Karenanya digunakan CPU penj adualan roun-robin, dimana kuantumnya harus lebih besar dari waktu pertukaran. Perhatikan bahwa bagian terbesar dari waktu pertukaran, adalah waktu pengiriman. Total waktu pengiriman langsung didapat dari jumlah pertukaran memori. Proses dengan kebutuhan memori dinamis, akan membutuhkan  system call (meminta dan melepaskan memori), untuk memberi tahu sistem operasi tentang perubahan kebutuhan memori. Ada beberapa keterbatasan  swapping. Jika kita ingin menukar sebuah proses kita harus yakin bahwa proses sepenuhnya diam. Konsentrasi lebih jauh, jika ada penundaan I/O. Sebuah proses mungkin menunggu I/O, ketika kita ingin menukar proses itu untuk mengosongkan memori. Jika I/O secara asinkronus, mengakses memori dari I/O buffer, maka proses tidak bisa ditukar. Misalkan I/O operation berada di antrian, karena device sedang sibuk. Maka bila kita menukar keluar proses P1 dan memasukkan P2, mungkin saja operasi I/O akan berusaha masuk ke memori yang sekarang milik P2.

            Dua solusi utama masalah ini adalah :

1.      Jangan pernah menukar proses yang sedang menunggu I/O
2.      Untuk mengeksekusi operasi I/O hanya pada buffer  sistem operasi.

            Secara umum, ruang pertukaran dialokasikan sebagai potongan disk, terpisah dari sistem berkas, sehingga bisa digunakan secepat mungkin. Belakangan pertukaran standar pertukaran digunakan dibeberapa sistem. Ini membutuhkan terlalu banyak waktu untuk menukar dari pada untuk mengeksekusi untuk solusi managemen memori yang masuk akal. Modifikasi  swapping  digunakan dibanyak versi di UNIX. Pertukaran awalnya tidak bisa, tapi akan mulai bila banyak proses yang jalan dan menggunakan batas jumlah memori.

READ MORE » Virtual Memory

Kisah Lelaki Sejati


Aku bertanya pada Bunda, bagaimana memilih lelaki sejati?
Bunda menjawab, Nak...
Laki-laki Sejati bukanlah dilihat dari bahunya yang
kekar, tetapi dari kasih sayangnya pada orang
disekitarnya....
Laki-laki sejati bukanlah dilihat dari suaranya yang
lantang, tetapi dari kelembutannya mengatakan
kebenaran.....
Laki-laki sejati bukanlah dilihat dari jumlah sahabat
di sekitarnya, tetapi dari sikap bersahabatnya pada
generasi muda bangsa ...
Laki-laki sejati bukanlah dilihat dari bagaimana dia
di hormati ditempat bekerja, tetapi bagaimana dia
dihormati didalam rumah...
Laki-laki sejati bukanlah dilihat dari kerasnya
pukulan, tetapi dari sikap bijaknya memahami
persoalan...
Laki-laki sejati bukanlah dilihat dari dadanya yang
bidang, tetapi dari hati yang ada dibalik itu...
Laki-laki sejati bukanlah dilihat dari banyaknya
wanita yang memuja, tetapi komitmennya terhadap wanita
yang dicintainya...
Laki-laki sejati bukanlah dilihat dari jumlah barbel
yang dibebankan, tetapi dari tabahnya dia menghadapi
lika-liku kehidupan...
Laki-laki Sejati bukanlah dilihat dari kerasnya
membaca kitab suci, tetapi dari konsistennya dia
menjalankan apa yang ia baca...
READ MORE » Kisah Lelaki Sejati

Download Billboard Top 20 Songs


Bagi yang mau download lagu-lagu yang lagi nangkring di billboard nih ada link nya. ini situs favorit ku dah buat update lagu-lagu internasional, oke silahkan klik linknya disini. disana juga ada Uk-Top-40-Chart
oia, situs ini adalah situs HP, makanya ukuran lagu-lagunya juga ukuran HP, soal kualitas suaranya gak kalah dah sama yang ditempat-tempat lain. bagi yang belum tau gimana buka situs HP menggunakan Google Chrome bisa ikuti tutorial saya sebelumnya disini
READ MORE » Download Billboard Top 20 Songs

Kernel


         Dalam dunia komputer, kerenel merupakan sebuah intisari dari sebuah sistem informasi
yang mengatur penggunaan memory, I/O device, proses-proses manajemen sistem file dan lain-lain.
Kernel juga menyediakan sekumpulan layanan yang dapat digunakan untuk mengakses sebuah
kernel yang disebut system call. System call ini dapat digunakan untuk mengimplementasikan
berbagai macam layanan yang diberikan oleh sebuah sistem operasi.program sistem dan program
lainya yangdijalankan diatas sebuah kernel disebut user mode. Kernel di sistem operasi linux terdiri
atas beberapa bagian yang penting, seperti manager proses, manager memory, device booster,
system file bosster, network manager , dan lain-lain. Namun dari semua itu yang terpenting adalah
managemen proses dan management memory. Managemen memory meliputi penggunaan memory
kawasan pertukaran , bagian-bagian kernel, dan buffer chace . Managemen proses menangani
penggunaan proses-proses dan schedule proses.
Untuk menjalankan sebuah komputer kita tidak harus menggunakan kernel sistem operasi. Sebuah
program dapat saja langsung di-load dan dijalankan diatas mesin sebuah komputer, yaitu ketika
pembuat program ingin melakukan pekerjaan tanpabantuan abstrak perangkat keras atau bantuan
sistem operasi. Teknik ini digunakan oleh komputer generasi awal, sehingga bila kita ingin
berpindah dari satu program ke program yang lain, kita harus mereset dan meload kembali
program-program tersebut.1
Ada 4 kategori kernel:
a. Monolithic kernel
Merupakan kernel yang menyediakan abstraksi perangkat keras yang kaya dan tangguh.
Pendekatan kernel monolitik didefinisikan sebagai sebuah antarmuka virtual yang berada pada
tingkat   tinggi   di   atas   perangkat   keras,   dengan   sekumpulan   primitif   atau   system   call   untuk
mengimplementasikan   layanan-layanan   sistem   operasi,   seperti   halnya   manajemen   proses,
konkurensi (concurrency), dan manajemen memori pada modul-modul kernel yang berjalan di
dalam mode supervisor. Meskipun jika setiap modul memiliki layanan operasi-operasi tersebut
terpisah dari modul utama, integrasi kode yang terjadi di dalam monolithic kernel sangatlah kuat,
dan karena semua modul berjalan di dalam address space yang sama, sebuah bug dalam salah satu
modul dapat merusak keseluruhan sistem. Akan tetapi, ketika implementasi dilakukan dengan
benar, integrasi komponen internal yang sangat kuat tersebut justru akan mengizinkan fitur-fitur
yang dimiliki oleh sistem yang berada di bawahnya dieksploitasi secara efektif, sehingga membuat
sistem   operasi   dengan   monolithic   kernel   sangatlah   efisien—meskipun   sangat   sulit   dalam
pembuatannya. Pada sistem operasi modern yang menggunakan monolithic kernel, seperti halnya
Linux,   FreeBSD,   Solaris,   dan   Microsoft  Windows,   dapat   memuat   modul-modul   yang   dapat
dieksekusi   pada   saat   kernel   tersebut   dijalankan   sehingga   mengizinkan   ekstensi   terhadap
kemampuan kernel sesuai kebutuhan, dan tentu saja dapat membantu menjaga agar kode yang
berjalan di dalam ruangan kernel (kernel- space) seminim mungkin.
Di bawah ini ada beberapa sistem operasi yang menggunakan Monolithic kernel:
• Kernel sistem operasi UNIX tradisional, seperti halnya kernel dari sistem operasi UNIX keluarga
BSD (NetBSD, BSD/I, FreeBSD, dan lainnya).
• Kernel sistem operasi GNU/Linux, Linux.
• Kernel sistem operasi Windows (versi 1.x hingga 4.x; kecuali Windows NT).
b. Microkernel
merupakan kernel yang menyediakan hanya sekumpulan kecil abstrak hardware secara
sederhana dan menggunakan beberapa aplikasi yang disebut dengan server untuk menyediakan
1 herysmkintegralhidayatullah.blogspot.com/2012/03/apa-itu-kernel.html
fungsi-fungsi yang lainya. Pendekatan mikrokernel berisi sebuah abstraksi yang lebih sederhana
terhadap sebuah hardware dengan sekumpulan system call yang dapat digunakan untuk membuat
sebuah sistemoperasi agar dapat berjalan, dengan layanan-layanan seperti manajemen trhead,
komunikasi   antar   address   space   dan   komunikasi   antar   proses.layanan   lainya   yang   biasanya
disediakan   oleh   kernel,   seperti   halnya   dukungan   jaringan,   pada   pendekatan   ini   justru
diimplementasikan di dalam sebuah ruangan pengguna (user-space), yang disebut dengan server.
Seperti halnya program lainya, server dapat memberikan sebuah izin kepada sebuah sistem operasi
agar dapat dimodifikasi hanya dengan menjalankan program atau menghentikanya. Pada sistem
operasi yang masih tradisional dan masih menggunakan monolithic kernel, dapat mengakibatkan
pengguna harus melakukan rekompilasi terhadap kernel, yang tentu saja akan terasa sulit bagi user
awam yang masih belum terbiasa. Beberapa sistem operasi yang menggunakan microkernel:
• IBM AIX, sebuah versi UNIX dari IBM
• Amoeba, sebuah kernel yang dikembangkan untuk tujuan edukasi
• Kernel Mach, yang digunakan di dalam sistem operasi GNU/Hurd, NexTSTEP, OPENSTEP, dan
Mac OS/X
• Minix, kernel yang dikembangkan oleh Andrew Tanenbaum untuk tujuan edukasi
• Symbian OS, sebuah sistem operasi yang populer digunakan pada hand phone, handheld device,
embedded device, dan PDA Phone.
c. Hybrid (Modifikasi dari Microkernel)
Kernel yang mempunyai dengan microkernel, tetapi ia juga memasukkan beberapa kode
tambahan di dalam kernel agar ia menjadi lebih cepat. Beberapa orang banyak yang bingung dalam
membedakan antara kernel hibrida dan kernel monolitik yang dapat memuat modul kernel setelah
proses booting, dan cenderung menyamakannya. Antara kernel hibrida dan kernel monolitik jelas
berbeda. Kernel hibrida berarti bahwa konsep yang digunakannya diturunkan dari konsep desain
kernel monolitik dan mikrokernel. Kernel hibrida juga memiliki secara spesifik memiliki teknologi
pertukaran   pesan   (message   passing)   yang   digunakan   dalam   mikrokernel,   dan   juga   dapat
memindahkan beberapa kode yang seharusnya bukan kode kernel ke dalam ruangan kode kernel
karena alasan kinerja. Di bawah ini adalah beberapa sistem operasi yang menggunakan kernel
hibrida:
• BeOS, sebuah sistem operasi yang memiliki kinerja tinggi untuk aplikasi multimedia.
• Novell NetWare, sebuah sistem operasi yang pernah populer sebagai sistem operasi jaringan
berbasis IBM PC dan kompatibelnya.
• Microsoft Windows NT (dan semua keturunannya).
d. Exokernel
adalah   kernel   yang   tidak   menyediakan   sedikitpun   mengenai   hardware,   namun   ia
menyediakan sekumpulan library yang menyediakan fungsi-fingsi akses kepada sebuah perangkat
keras secara langsung. Kernel ini biasanya menggunakan library tersebut dengan libOS untuk
melakukan sebuah abstraksi. Hal ini memungkinkan aplikasi untuk menulis abstraksi yang berada
pada   level   yang   lebih   tinggi,   seperti   halnya   abstraksi   yang   dilakukan   pada   sistem   operasi
tradisional, dengan menggunakan cara – cara yang lebih fleksibel, karena aplikasi mungkin
memiliki abstraksinya masing-masing. Secara teori, sebuah sistem operasi berbasis Exokernel dapat
membuat sistem operasi yang berbeda seperti halnya Linux, UNIX, dan Windows dapat berjalan di
atas sistem operasi tersebut.   Salah satu contoh implementasi kernel ialah pada system operasi
windows.   Pada   sistem   operasi  Windows,   kernel   ditangani   oleh   file   kernel32.dll.   Kernel   ini
menangani manajemen memori, operasi masukan / keluaran dan interrupt. Ketika boot Windows,
kernel32.dll di-load ke dalam spasi protected memory sehingga spasi memorinya tidak digunakan
oleh aplikasi lain. Apabila ada aplikasi yang mencoba mengambil spasi memori kernel32.dll, akan
muncul pesan kesalahan “invalid page fault”.
READ MORE » Kernel

RAID (Redundant Array Of Independent/ Inexpensive Disks)


            Adalah sebuah kumpulan disk drive yang biasanya dikenal sebagai array disk, yang bekerja sebagai satu penyimpanan yang menjadi satu. Secara umum, bias drive system penyimpanan dengan akses data acak, seperti hard drive magnetic, penyimpanan optic dll. Bila biasanya membuat beberapa buah partisi dalam satu hardisk, maka dengan menggunakan RAID kita bisa membuat satu partisi dari beberapa hardisk atau menyimpan data dalam beberapa hardisk. Dengan kata lain RAID merupakan sebuah cara untuk merangkai beberapa hardisk untuk meningkatkan kinerjanya, baik dalam kecepatan mengakses data, kecepatan penulisan data dan kecepatan dalam pembacaan data. RAID biasanya digunakan pada sever karena digunakan untuk menangani data dalam jumlah yang cukup besar dan cepat.
            Pada saat konfigurasi RAID digunakan maka sebuah system operasi akan membacanya sebagai satu hardisk, meskipun pada kenyataanya hardisk yang dimiliki lebih dari itu. Sebagai perbandingan, bila system operasi yang digunakan adalah windows, maka drive yang muncul hanyalah C saja, berberda halnya dengan jika kita tidak menggunakan konfigurasi RAID maka drive yang muncul adalah C, D dan E atau bahkan lebih, tergantung pada banyaknya hardisk yang digunakan.
Didalam konfigurasi RAID dikenal dua buah system utama yang biasanya digunakan, yaitu stripping dan mirroring. Pada sisemStripping pecahan paket data akan disimpan secara bergantian antara rangkaian hardisk (array) yang satu dengan yang lainya. Sedangkan pada system mirroring akan menyimpan data yang sama pada masing-masing rangkaian hardisk.
System stripping lebih efektif digunakan untuk meningkatkan kecepatan akses data dan juga menulis data sedangkan system mirroring lebih cocok untuk membackup data.

            RAID memiliki beberapa level yang dimulai dari RAID0 hingga RAID7 dan tiap-tiap level RAID ini memiliki fungsi tersendiri, adapula RAID yang merupakan gabungan atau kombinasi dari level-level RAID. Kombinasi-kombinasi ini mengawinkan fungsi atau kegunaan dari masing-masing level RAID.

RAID0
            RAID pada level ini menerapkan system stripping, namun tidak untuk membackup data. Dengan demikian kinerja dari sebuah PC mampu meningkat, naum tidak ada yang dicadangkan. Pada level ini membutuhkan minimal dua buah hardisk. Dimana sistemdari RAID0 adalah dengan menggabungkan kapasitas dari beberapa hardisk. Sehingga secara logical hanya Nampak sebuah hardisk dengan jumlah kapasitas yang sangat besar.
Pada awalnya, RAID 0, digunakan untuk membentuk sebuah partisi yang sangat besar dari beberapa harddisk dengan biaya yang efisien. Data yang ditulis pada harddisk-harddisk tersebut terbagi-bagi menjadi fragmen-fragmen. Dimana fragmen-fragmen tersebut disebar di seluruh harddisk. Sehingga, jika salah satu harddisk mengalami kerusakan fisik, maka data tidak dapat dibaca sama sekali.
Namun ada keuntungan dengan adanya fragmen-fragmen ini: kecepatan. Data bisa diakses lebih cepat dengan RAID 0, karena saat komputer membaca sebuah fragmen di satu harddisk, komputer juga dapat membaca fragmen lain di harddisk lainnya.
RAID1
            Level ini biasanya lebih dikenal sebagai mirroring. Dari namanya tentu sudah dapatditebak fungsi dari level ini. RAID1 akan membuat salinan/copy dari data yang ada di hardisk lain sebagai sebuah backup. Hal ini tentusangat menguntungkan ketika pada sebuah hardisk terdapat data-data yang penting dan tidak boleh rusak. Namun jika salah satu pada hardisk rusak maka data masih bisa diakses dari hardisk yang lainya. Level ini tidak menawarkan peningkatan performa seperti level sebelumnya, kinerja PC pada level ini tetap seperti biasa. Sebagai ilustrasi :
Sebuah server memiliki 2 unit harddisk yang berkapasitas masing-masing 80GB dan dikonfigurasi RAID 1. Setelah beberapa tahun, salah satu harddisknya mengalami kerusakan fisik. Namun data pada harddisk lainnya masih dapat dibaca, sehingga data masih dapat diselamatkan selama bukan semua harddisk yang mengalami kerusakan fisik secara bersamaan.
RAID2
            Pada level ini menggunakan stripping antara hardisk yang digunakan. Namun, beberapa hardisk digunakan untuk menyimpan informasi mengenai pemeriksaan error dan koreksi, Error Checking And Correcting (Ecc).
Contoh :
Kita memiliki 5 harddisk (sebut saja harddisk A,B,C, D, dan E) dengan ukuran yang sama, masing-masing 40GB. Jika kita mengkonfigurasi keempat harddisk tersebut dengan RAID 2, maka kapasitas yang didapat adalah: 2 x 40GB = 80GB (dari harddisk A dan B). Sedangkan harddisk C, D, dan E tidak digunakan untuk penyimpanan data, melainkan hanya untuk menyimpan informasi pariti hamming dari dua harddisk lainnya: A, dan B. Ketika terjadi kerusakan fisik pada salah satu harddisk utama (A atau B), maka data tetap dapat dibaca dengan memperhitungkan pariti kode hamming yang ada di harddisk C, D, dan E.
RAID3
            RAID pada level ini juga menggunakn system stripping, dan juga menggunakan hardisk tambahan untuk reliability, tetapi hanya ditambhakan sebuah hardisk lagi untuk parity. Pada level ini hardisk minimal yang digunakan adalah 3, hardisk terahir digunakan untuk menyimpan parity dari hasil perhitungan tiap-tiap bit yang ada di dalam hardisk yang lainya.
Contoh :
Kita memiliki 4 harddisk (sebut saja harddisk A,B,C, dan D) dengan ukuran yang sama, masing-masing 40GB. Jika kita mengkonfigurasi keempat harddisk tersebut dengan RAID 3, maka kapasitas yang didapat adalah: 3 x 40GB = 120GB. Sedangkan harddisk D tidak digunakan untuk penyimpanan data, melainkan hanya untuk menyimpan informasi parity dari ketiga harddisk lainnya: A, B, dan C. Ketika terjadi kerusakan fisik pada salah satu harddisk utama (A, B, atau C), maka data tetap dapat dibaca dengan memperhitungkan parity yang ada di harddisk D. Namun, jika harddisk D yang mengalami kerusakan, maka data tetap dapat dibaca dari ketiga harddisk lainnya.
RAID4
            Level ini menggunakan system stripe yang sangat besar. Pada dasarnya hamper sama dengan RAID sebelumnya. Dengan demikian system pada RAID ini mampu membaca data dari 1 drive, system pada level ini mengambil sebuah keuntungan dari adanya pembacaan data secara bersamaan.
RAID5
            Pada dasarnya sama dengan RAID 4, namun dengan pariti yang terdistribusi. Yakni, tidak menggunakan harddisk khusus untuk menyimpan paritinya, namun paritinya tersebut disebar ke seluruh harddisk. Kebutuhan harddisk minimalnya juga sama, 3 . Hal ini dilakukan untuk mempercepat akses dan menghindari bottleneck yang terjadi karena akses harddisk tidak terfokus kepada kumpulan harddisk yang berisi data saja.
RAID6
            Secara umum adalah peningkatan dari RAID 5, yakni dengan penambahan parity menjadi 2 Sehingga jumlah harddisk minimalnya adalah 4. Dengan adanya penambahan pariti sekunder ini, maka kerusakan dua buah harddisk pada saat yang bersamaan masih dapat ditoleransi. Misalnya jika sebuah harddisk mengalami kerusakan, saat proses pertukaran harddisk tersebut terjadi kerusakan lagi di salah satu harddisk yang lain, maka hal ini masih dapat ditoleransi dan tidak mengakibatkan kerusakan data di harddisk bersistem RAID 6.
RAID7
            Pada level ini RAID akan membuat system perasi menjadi sebagai controller, caching menggunakan jalur cepat.
READ MORE » RAID (Redundant Array Of Independent/ Inexpensive Disks)
 
© 2012 A-corner | Blogger.com