Sabtu, 29 Desember 2012

Melatih Diri untuk Sabar dan Ikhlas

Dalam hidup ini sangat dibutuhkan kearifan dalam menerima semua keadaan, dan itu memang tidaklah mudah, kearifan dalam berpikir dan bertindak datangnya dari kebersihan jiwa yang bersumber dari hati. Kadang sering kita dihadapkan pada perlakuan yang tidak adil, baik itu oleh orang tua sendiri, oleh atasan atau juga teman dalam sebuah komunitas. Bahkan ketidakadilan dari penguasa yang berwenang akan lebih terasa.
Tentunya disinilah dibutuhkan sikap dan kearifan dalam menerimanya. Berpikir positif adalah salah satu cara untuk berlapang dada dalam menerima keadaan tersebut, sebaliknya keluh kesah malah akan membuat kita semakin terpuruk dalam perasaan. Bersikap optimis agar keadaan tersebut cepat terkendali, adalah juga merupakan cara untuk menjauhkan diri dari keputus asaan dan rasa frustasi.
Sebagai mahluk sosial yang berintegrasi dan berinteraksi antar sesama dalam sebuah komunitas masyarakat yang majemuk, sering kita terjebak pada ego pribadi, sehingga kita lebih ingin orang lain memahami diri kita ketimbang kita memahami orang lain, kadang juga asyik dengan diri sendiri sehingga tidak peduli dengan keadaan disekitar kita. Hal-hal seperti inilah yang sering menyebabkan kita pada akhirnya bersinggungan antara satu dengan yang lainnya.
Membangun kearifan adalah upaya untuk menumbuhkan sikap bijak dan berjiwa besar, melatih diri dalam kesabaran, juga melatih diri untuk senantiasa bersifat ikhlas dalam menerima keadaan. Tapi semua ini tentunya dibarengi dengan ketaatan dan keyakinan pada Sang Maha Penguasa dan Maha berkehendak. Penyerahan diri dengan ketaqwaan bukanlah sekedar kepasrahan.
Jiwa yang senantiasa ikhlas adalah jiwa yang penuh kekuatan dan tidak mudah rapuh karena keadaan, adalah jiwa yang penuh kearifan dan ketaqwaan. Sangat sadar akan kelemahan dan kekuatannya, selalu melihat kedalam diri dan bercermin pada kebenaran yang di digariskan-Nya.
Tulisan ini sebetulnya merupakan upaya saya untuk instropeksi diri, terhadap segala kelemahan dan kekuarangan saya selama ini, cuma saya berpikir ada juga baiknya kalau saya berbagi dengan teman-teman. Tulisan ini merupakan sebuah perenungan selama ini, yang terus menerus saya kaji, agar saya bisa mengkoreksi diri sendiri.

Belajar SABAR, SYUKUR dan IKHLAS 

 

Aku Belajar…..
Bahwa hidup itu tak selamanya indah
Kadang Engkau mengijinkan aku melalui derita
Tetapi aku tahu..bahwa Ia tidak pernah meninggalkanku...
Sebab itu aku berusaha belajar untuk menikmati hidup ini..
Dengan BERSYUKUR….

Aku Belajar…
Bahwa tidak semua yang aku harapakan akan menjadi kenyataan..
Kadang Engkau membelokkan rencanaku..
Tetapi aku tahu…
Bahwa itu lebih baik dari apa yang aku rencanakan..
Sebab itu aku berusaha belajar untuk menerima semua itu..
Dengan IKHLAS…

Aku Belajar…
Bahwa Cobaan itu pasti datang dalam hidupku..
Aku tidak mungkin berkata,”tidak…Ya ALLAH..”
Karena aku tahu…
Bahwa semua itu tidak melampaui kekuatanku..
Sebab itu aku berusaha belajar untuk mengahadapinya..
Dengan SABAR…

Aku Belajar…
Bahwa tidak ada kejadian yang harus disesali dan ditangisi..
Karena semua rancanganNYA indah bagiku…
Karena itu…
Aku berusaha belajar..SABAR..SYUKUR..dan IKHLAS dalam segala Perkara…



Ibnu Qoyyim berkata :

“ Barangsiapa yang memenuhi hatinya dengan Ridha kepada Takdirnya, maka ALLAH memenuhi dadanya dengan kecukupan, rasa aman dan qana’ah, serta mengosongkan hatinya untuk mencintai-Nya,kembali dan berTAWAKKAL kepadaNYa”
1.  Apakah Itu Algoritma
Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.

2.  Definisi Algoritma
“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita harus menunggu berjam-jam untuk mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai maka semakin buruklah algoritma tersebut. Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah algoritma yang paling efisien dan cepat.

3.  Beda Algoritma dan Program
Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa :
Program = Algoritma + Bahasa (Struktur Data)
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat program menjadi kurang baik, demikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan di antaranya :
  • Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan  algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
  • Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
  • Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma :
  • Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  • Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  • Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa pemrograman secara umum.
  • Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang menjalannya.
  • Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
  • Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :
a.  Pendeklarasian variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa pemrograman apabila    tidak semua bahasa pemrograman membutuhkannya.
b.  Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data.
c.  Pemakaian instruksi-instruksi
Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing memiliki kelebihan dan kekurangan yang berbeda.
d.  Aturan sintaksis
Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan.
e.  Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.
f.  Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter.

4.  Algoritma Merupakan Jantung Ilmu Informatika
Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari-hari pun banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara-cara membuat kue atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. Pada setiap resep selalu ada urutan langkah-langkah membuat masakan. Bila langkah-langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu-ibu yang mencoba suatu resep masakan akan membaca satu per satu langkah-langkah pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak (benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat berupa manusia, komputer, robot atau alat-alat elektronik lainnya. Pemroses melakukan suatu proses dengan melaksanakan atau “mengeksekusi” algoritma yang menjabarkan proses tersebut.
Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara primitif yaitu aksi-aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan sebelumnya bahwa aksi-aksi tersebut dapat kerjakan sehingga dapat menyebabkan kejadian.
Melaksanakan algoritma berarti mengerjakan langkah-langkah di dalam algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan kepadanya. Juru masak membuat kue berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan not balok. Karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat dimengerti oleh pemroses. Jadi suatu pemroses harus:
  • Mengerti setiap langkah dalam algoritma.
  • Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
5.  Mekanisme Pelaksanaan Algoritma oleh Pemroses
Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer.
Kata “algoritma” dan “program” seringkali dipertukarkan dalam penggunaannya. Misalnya ada orang yang berkata seperti ini: “program pengurutan data menggunakan algoritma selection sort”. Atau pertanyaan seperti ini: “bagaimana algoritma dan program menggambarkan grafik tersebut?”. Jika Anda sudah memahami pengertian algoritma yang sudah disebutkan sebelum ini, Anda dapat membedakan arti kata algoritma dan program. Algoritma adalah langkah-langkah penyelesaikan masalah, sedangkan program adalah realisasi algoritma dalam bahasa pemrograman. Program ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat program disebut pemrograman (programming). Orang yang menulis program disebut pemrogram (programmer). Tiap-tiap langkah di dalam program disebut pernyataan atau instruksi. Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi dilaksanakan, maka operasi-operasi yang bersesuaian dengan instruksi tersebut dikerjakan komputer.
Secara garis besar komputer tersusun atas empat komponen utama yaitu, piranti masukan, piranti keluaran, unit pemroses utama, dan memori. Unit pemroses utama (Central Processing Unit – CPU) adalah “otak” komputer, yang berfungsi mengerjakan operasi-operasi dasar seperti operasi perbandingan, operasi perhitungan, operasi membaca, dan operasi menulis. Memori adalah komponen yang berfungsi menyimpan atau mengingatingat.
Yang disimpan di dalam memori adalah program (berisi operasi-operasi yang akan dikerjakan oleh CPU) dan data atau informasi (sesuatu yang diolah oleh operasi-operasi). Piranti masukan dan keluaran (I/O devices) adalah alat yang memasukkan data atau program ke dalam memori, dan alat yang digunakan komputer untuk mengkomunikasikan hasil-hasil aktivitasnya. Contoh piranti masukan antara lain, papan kunci (keyboard), pemindai (scanner), dan cakram (disk). Contoh piranti keluaran adalah, layar peraga (monitor), pencetak (printer), dan cakram.
Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mula-mula program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan (execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU mengerjakan operasioperasi yang bersesuaian dengan instruksi tersebut. Bila suatu operasi memerlukan data, data dibaca dari piranti masukan, disimpan di dalam memori lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses menghasilkan keluaran atau informasi, keluaran disimpan ke dalam memori, lalu memori menuliskan keluaran tadi ke piranti keluaran (misalnya dengan menampilkannya di layar monitor).
6.  Belajar Memprogram dan Belajar Bahasa Pemrograman
Belajar memprogram tidak sama dengan belajar bahasa pemrograman. Belajar memprogram adalah belajar tentang metodologi pemecahan masalah, kemudian menuangkannya dalam suatu notasi tertentu yang mudah dibaca dan dipahami. Sedangkan belajar bahasa pemrograman berarti belajar memakai suatu bahasa aturan-aturan tata bahasanya, pernyataan-pernyataannya, tata cara pengoperasian compiler-nya, dan memanfaatkan pernyataan-pernyataan tersebut untuk membuat program yang ditulis hanya dalam bahasa itu saja. Sampai saat ini terdapat puluhan bahasa pemrogram, antara lain bahasa rakitan (assembly), Fortran, Cobol, Ada, PL/I, Algol, Pascal, C, C++, Basic, Prolog, LISP, PRG, bahasabahasa simulasi seperti CSMP, Simscript, GPSS, Dinamo. Berdasarkan terapannya, bahasa pemrograman dapat digolongkan atas dua kelompok besar :
  • Bahasa pemrograman bertujuan khusus. Yang termasuk kelompok ini adalah Cobol (untuk terapan bisnis dan administrasi). Fortran (terapan komputasi ilmiah), bahasa rakitan (terapan pemrograman mesin), Prolog (terapan kecerdasan buatan), bahasa-bahasa simulasi, dan sebagainya.
  • Bahasa perograman bertujuan umum, yang dapat digunakan untuk berbagai aplikasi. Yang termasuk kelompok ini adalah bahasa Pascal, Basic dan C. Tentu saja pembagian ini tidak kaku. Bahasabahasabertujuan khusus tidak berarti tidak bisa digunakan untuk aplikasi lain. Cobol misalnya, dapat juga digunakan untuk terapan ilmiah, hanya saja kemampuannya terbatas. Yang jelas, bahasabahasa pemrograman yang berbeda dikembangkan untuk bermacam-macam terapan yang berbeda pula.
Berdasarkan pada apakah notasi bahasa pemrograman lebih “dekat” ke mesin atau ke bahasa manusia, maka bahasa pemrograman dikelompokkan atas dua macam :
  • Bahasa tingkat rendah. Bahasa jenis ini dirancang agar setiap instruksinya langsung dikerjakan oleh komputer, tanpa harus melalui penerjemah (translator). Contohnya adalah bahasa mesin. CPU mengambil instruksi dari memori, langsung mengerti dan langsung mengerjakan operasinya. Bahasa tingkat rendah bersifat primitif, sangat sederhana, orientasinya lebih dekat ke mesin, dan sulit dipahami manusia. Sedangkan bahasa rakitan dimasukkan ke dalam kelompok ini karena alasan notasi yang dipakai dalam bahasa ini lebih dekat ke mesin, meskipun untuk melaksanakan instruksinya masih perlu penerjemahan ke dalam bahasa mesin.
  • Bahasa tingkat tinggi, yang membuat pemrograman lebih mudah dipahami, lebih “manusiawi”, dan berorientasi ke bahasa manusia (bahasa Inggris). Hanya saja, program dalam bahasa tingkat tinggi tidak dapat langsung dilaksanakan oleh komputer. Ia perlu diterjemahkan terlebih dahulu oleh sebuah translator bahasa (yang disebut kompilator atau compiler) ke dalam bahasa mesin sebelum akhirnya dieksekusi oleh CPU. Contoh bahasa tingkat tinggi adalah Pascal, PL/I, Ada, Cobol, Basic, Fortran, C, C++, dan sebagainya.
Bahasa pemrograman bisa juga dikelompokkan berdasarkan pada tujuan dan fungsinya. Di antaranya adalah :
7.  Menilai Sebuah Algoritma
Ketika manusia berusaha memecahkan masalah, metode atau teknik yang digunakan untuk memecahkan masalah itu ada kemungkinan bisa banyak (tidak hanya satu). Dan kita memilih mana yang terbaik di antara teknikteknik itu. Hal ini sama juga dengan algoritma, yang memungkinkan suatu permasalahan dipecahkan dengan metode dan logika yang berlainan. Yang menjadi pertanyaan adalah bagaimana mengukur mana algoritma yang terbaik?. Beberapa persyaratan untuk menjadi algoritma yang baik adalah :
  • Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus berakurasi tinggi dan benar.
  • Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin dan frekuensi kalkulasi yang sependek mungkin.
  • Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja, tapi juga untuk kasus lain yang lebih general.
  • Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan lebih jauh berdasarkan perubahan requirement yang ada.
  • Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma Anda. Susah dimengertinya suatu program akan membuat susah di-maintenance (kelola).
  • Portabilitas yang tinggi (portability). Bisa dengan mudah diimplementasikan di berbagai platform komputer.
  • Precise (tepat, betul, teliti). Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan, dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap langkah harus jelas dan pasti.
Contoh :   Tambahkan 1 atau 2 pada x.
Instruksi di atas terdapat keraguan.
  • Jumlah langkah atau instruksi berhingga dan tertentu. Artinya, untuk kasus yang sama banyaknya, langkah harus tetap dan tertentu meskipun datanya berbeda.
  • Efektif. Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang akan menjalankannya.
Contoh :   Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah.
Misal : Hitung akar 2 sampai lima digit di belakang koma.
  • Harus terminate. Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah bila jumlah instruksinya berhingga maka pasti terminate?
  • Output yang dihasilkan tepat. Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka dihasilkan output yang diinginkan.
Sedangkan kriteria Algoritma menurut Donald E. Knuth adalah :
  1. Input: algoritma dapat memiliki nol atau lebih inputan dari luar.
  2. Output: algoritma harus memiliki minimal satu buah output keluaran.
  3. Definiteness (pasti): algoritma memiliki instruksi-instruksi yang jelas dan tidak ambigu.
  4. Finiteness (ada batas): algoritma harus memiliki titik berhenti (stopping role).
  5. Effectiveness (tepat dan efisien): algoritma sebisa mungkin harus dapat dilaksanakan dan efektif. Contoh instruksi yang tidak efektif adalah: A = A + 0 atau A = A * 1
Namun ada beberapa program yang memang dirancang untuk unterminatable : contoh Sistem Operasi.
8.  Penyajian Algoritma
Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu tulisan dan gambar. Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu (misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah kode yang mirip dengan kode pemrograman yang sebenarnya seperti Pascal, atau C, sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan kepada pemrogram. Sedangkan algoritma disajikan dengan gambar, misalnya dengan flowchart. Secara umum, pseudocode mengekspresikan ide-ide secara informal dalam proses penyusunan algoritma. Salah satu cara untuk menghasilkan kode pseudo adalah dengan meregangkan aturan-aturan bahasa formal yang dengannya versi akhir dari algoritma akan diekspresikan. Pendekatan ini umumnya digunakan ketika bahasa pemrograman yang akan digunakan telah diketahui sejak awal.
Flowchart merupakan gambar atau bagan yang memperlihatkan urutan dan hubungan antar proses beserta pernyataannya. Gambaran ini dinyatakan dengan simbol. Dengan demikian setiap simbol menggambarkan proses tertentu. Sedangkan antara proses digambarkan dengan garis penghubung. Dengan menggunakan flowchart akan memudahkan kita untuk melakukan pengecekan bagian-bagian yang terlupakan dalam analisis masalah. Di
samping itu flowchart juga berguna sebagai fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu proyek.
Ada dua macam flowchart yang menggambarkan proses dengan komputer, yaitu :
  • Flowchart sistem yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan prosedur dan proses suatu file dalam suatu media menjadi file di dalam media lain, dalam suatu sistem pengolahan data. Beberapa contoh Flowchart sistem:
  • Flowchart program yaitu bagan dengan simbol-simbol tertentu yang menggambarkan urutan proses dan hubungan antar proses secara mendetail di dalam suatu program.
Kaidah-Kaidah Umum Pembuatan Flowchart Program
Dalam pembuatan flowchart Program tidak ada rumus atau patokan yang bersifat mutlak. Karena flowchart merupakan gambaran hasil pemikiran dalam menganalisis suatu masalah dengan komputer. Sehingga flowchart yang dihasilkan dapat bervariasi antara satu pemrogram dengan yang lainnya. Namun secara garis besar setiap pengolahan selalu terdiri atas 3 bagian utama, yaitu :
  1. Input,
  2. Proses pengolahan dan
  3. Output
Untuk pengolahan data dengan komputer, urutan dasar pemecahan suatu masalah:
  1. START, berisi pernyataan untuk persiapan peralatan yang diperlukan sebelum menangani pemecahan persoalan.
  2. READ, berisi pernyataan kegiatan untuk membaca data dari suatu peralatan input.
  3. PROSES, berisi kegiatan yang berkaitan dengan pemecahan persoalan sesuai dengan data yang dibaca.
  4. WRITE, berisi pernyataan untuk merekam hasil kegiatan ke peralatan output.
  5. END, mengakhiri kegiatan pengolahan.
Walaupun tidak ada kaidah-kaidah yang baku dalam penyusunan flowchart, namun ada beberapa anjuran :
  1. Hindari pengulangan proses yang tidak perlu dan logika yang berbelit sehingga jalannya proses menjadi singkat.
  2. Jalannya proses digambarkan dari atas ke bawah dan diberikan tanda panah untuk memperjelas.
  3. Sebuah flowchart diawali dari satu titik START dan diakhiri dengan END.
Berikut merupakan beberapa contoh simbol flowchart yang disepakati oleh dunia pemrograman :
Untuk memahami lebih dalam mengenai flowchart ini, akan diambil sebuah kasus sederhana.
Kasus : Buatlah sebuah rancangan program dengan menggunakan flowchart, mencari luas persegi panjang.
Solusi : Perumusan untuk mencari luas persegi panjang adalah :
L = p . l
di mana, L adalah Luas persegi panjang, p adalah panjang persegi, dan l adalah lebar persegi.
Keterangan :
  1. Simbol pertama menunjukkan dimulainya sebuah program.
  2. Simbol kedua menunjukkan bahwa input data dari p dan l.
  3. Data dari p dan l akan diproses pada simbol ketiga dengan menggunakan perumusan L = p. l.
  4. Simbol keempat menunjukkan hasil output dari proses dari simbol ketiga.
  5. Simbol kelima atau terakhir menunjukkan berakhirnya program dengan tanda End.
9.  Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada tiga, yaitu:
  1. Struktur Runtunan
  2. Digunakan untuk program yang pernyataannya sequential atau urutan.
  3. Struktur Pemilihan
  4. Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi.
  5. Struktur Perulangan
  6. Digunakan untuk program yang pernyataannya akan dieksekusi berulang-ulang.
Dalam Algoritma, tidak dipakai simbol-simbol / sintaks dari suatu bahasa pemrograman tertentu, melainkan bersifat umum dan tidak tergantung pada suatu bahasa pemrograman apapun juga. Notasi-notasi algoritma dapat digunakan untuk seluruh bahasa pemrograman manapun.
Definisi Pseudo-code
Kode atau tanda yang menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma.
Contoh kasus : mencari bilangan terbesar dari dua bilangan yang diinputkan
Solusi Pseudo-code :
  1. Masukkan bilangan pertama
  2. Masukkan bilangan kedua
  3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.
  4. Tampilkan bilangan pertama
  5. Tampilkan bilangan kedua
Solusi Algoritma :
  1. Masukkan bilangan pertama (a)
  2. Masukkan bilangan kedua (b)
  3. if a > b then kerjakan langkah 4
  4. print a
  5. print b
Contoh Lain Algortima dan Pseudo-code :
10.  Tahapan dalam Pemrograman
Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam pemrograman dengan komputer adalah :
  • Definisikan Masalah
  • Buat Algoritma dan Struktur Cara Penyelesaian
  • Menulis Program
  • Mencari Kesalahan
  • Uji dan Verifikasi Program
  • Dokumentasi Program
  • Pemeliharaan Program
Sumber :
Sistem operasi Komputer adalah perangkat lunak komputer atau software yang bertugas untuk melakukan kontrol dan manajemen perangkat keras dan juga operasi-operasi dasar sistem, termasuk menjalankan software aplikasi seperti program-program pengolah data yang bisa digunakan untuk mempermudah kegiatan manusia. Sistem Operasi dalam bahasa Inggrisnya disebut Operating System, atau biasa di singkat dengan OS mempunyai beberapa Fungsi utama antara lain:
  1. Mengelola sumber daya terkait dengan pengendalian perangkat lunak sistem/perangkat lunak aplikasi yang sedang dijalankan. Sebagai contoh komponen perangkat keras pada komputer yaitu CPU, memori utama, alat input/output.
  2. Mempersiapkan agar program aplikasi dapat berinteraksi dengan perangkat keras secara konsisten dan stabil tanpa harus mengetahui secara detil perangkat keras.
  3. melakukan pengelolaan proses mencakup penyiapan, penjadwalan, dan pemantauan proses program yang sedang dijalankan.
  4. melakukan pengelolaan data pengendalian terhadap data masukan/keluaran.
Sistem Operasi komputer merupakan software pada lapisan pertama yang diletakkan pada memori komputer, (memori komputer dalam hal ini ada Hardisk, bukan memory ram) pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi Komputer berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masingsoftware tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan kernel suatu Sistem Operasi.
Sistem Operasi berfungsi sebagai penghubung antara lapisan hardware dan lapisan software. selain itu, Sistem Operasi komputer juga melakukan semua perintah perintah penting dalam komputer, serta menjamin aplikasi-aplikasi yang berbeda fungsinya dapat berjalan lancar secara bersamaan tanpa hambatan. Sistem Operasi Komputer menjamin aplikasi perangkat lunak lainnya bisa memakai memori, melakukan input serta output terhadap peralatan lain, dan mempunya akses kepada sistem file. Jika beberapa aplikasi berjalan secara bersamaan, maka Sistem Operasi Komputer akan mengatur jadwal yang tepat, sehingga sebisa mungkin semua proses pada komputer yang berjalan mendapatkan waktu yang cukup untuk menggunakan CPU dan tidak saling mengganggu dengan perangkat yang lain.
Sistem operasi komputer secara umum terdiri atas beberapa bagian:
  1. Mekanisme Boot, yaitu meletakkan kernel ke dalam memory
  2. Kernel, yaitu inti dari sebuah Sistem Operasi
  3. Command Interpreter atau shell  yaitu bagian yang bertugas membaca input dari pengguna
  4. Pustaka-pustaka (library), yaitu bagian yang berfungsi menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
  5. Driver yaitu komponen yang berfungsi untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrolnya.
Jenis Sistem Operasi
Sistem operasi personal komputer terbagi menjadi 3 kelompok  seperti di bawah ini.
  • Keluarga Microsoft, antara lain terdiri atas Windows Desktop Environment (versi 1.x hingga versi 3.x),Windows 9x (Windows 95, 98, dan Windows ME), dan Windows NT (Windows NT 3.x, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, dan Windows Vista yang dirilis pada tahun 2007)).
  • Keluarga Unix, menggunakan antarmuka sistem operasi POSIX, antara lain SCO UNIX, keluarga BSD (Berkeley Software Distribution), GNU/Linux, MacOS/X (berbasis kernel BSD yang dimodifikasi, dan dikenal dengan nama Darwin) dan GNU/Hurd.
  • Keluarga Mac OS adalah sistem operasi komputer keluaran Apple yang biasa disebut Mac atau Macintosh. Sistem operasi yang terbaru adalah Mac OS X versi 10.4 (Tiger). Awal tahun 2007 direncanakan peluncuran versi 10.5 (Leopard).
  • Keluarga komputer Mainframe, dan Super komputer menggunakan sistem operasi yang berbeda-beda, umumnya merupakan turunan dari sistem operasi UNIX yang dikembangkan oleh vendor seperti IBM AIX, HP/UX, dan lain-lain.
Walau kita mengenal berbagai jenis sistem operasi di atas,  secara garis besar semua sistem operasi yang ada berdasarkan jenis komputer yang dikendalikan maupun bentuk aplikasi yang didukung dapat dibagi menjadi empat golongan :
1. Real-time operating system (RTOS)
Sistem operasi golongan ini dipakai untuk mengendalikan perangkat keras  untuk tugas spesifik, seperti instrumen ilmiah dan mesin-mesin industri. RTOS memiliki kemampuan antarmuka yang terbatas dan tidak mendukung aplikasi level end-user. Bagian terpenting RTOS adalah mengatur penggunaan sumber daya komputer untuk menjalankan serangkaian operasi secara berulang-ulang dalam periode tertentu.
2. Single-user, single task
Sesuai dengan namanya, tipe sistem operasi ini dirancang untuk memudahkan menangani pengoperasian komputer sehingga pengguna dapat menjalankan satu pekerjaan pada saat yang bersamaan. Sistem operasi DOS adalah contoh klasik dari jenis ini. Sistem operasi yang lain dari keluarga ini adalah Palm OS, yaitu untuk komputer genggam (handheld) Palm.
3. Single-user, multi tasking
Sistem operasi ini memungkinkan seorang pengguna dapat menjalankan beberapa aplikasi terpisah secara bersamaan. Inilah tipe sistem operasi yang paling umum digunakan sekarang. Sistem operasi ini (Windows, Linux, dsb.) sangat populer  digunakan untuk komputer pribadi.
4. Multi-user
Sistem operasi multi-user memungkinkan lebih dari satu pengguna bersama-sama menggunakan sumber daya komputer secara simultan. Sistem operasi dapat menjamin masing-masing pengguna yang memiliki kebutuhan (requirement) yang berimbang. Setiap program yang dijalankan oleh para pengguna menggunakan sumber daya yang cukup dan terpisah sehingga masalah pada satu pengguna tidak berimbas pada pengguna yang lain. Contoh sistem  multi-user adalah operasi Unix, VMS, dan MVS untuk mainframe.
Generasi – Generasi Sistem Operasi
Sistem operasi telah berevolusi sejak komputer diciptakan. Perkembangan sistem komputer dibagi empat kurun waktu (generasi). Perkembangan sistem komputer melibatkan sistem perangkat keras dan sistem perangkat lunak.
  1. Generasi Pertama (1945-1955)
    Pada generasi ini, sistem komputer belum dilengkapi sistem operasi, tapi beberapa fungsi dasar sistem operasi telah ada, misalnya FMS (Fortran Monitoring System) dan IBSYS, keduanya merupakan bagian yang fungsinya merupakan komponen sistem operasi.
  2. Generasi Kedua (1955-1965)
    Pada tahun 1964, IBM mengeluarkan keluarga komputer dengan system/360, beberapa kelas komputer S/360 dirancang agar kompatibel secara perangkat keras. System/360 atau dikenal dengan S/360 menggunakan sistem operasi OS/360. system 360 berevolusi menjadi System 370.
  3. Generasi Ketiga (1965-1980)
    Perkembangan sistem operasi berlanjut, dikembangkan untuk melayani banyak pemakai interaktif sekaligus. Pemakai-pemakai interaktif berkomunikasi komputer lewat terminal secara online (secara langsung dihubungkan) ke komputer. Sistem komputer menjadi :
    • Multiuser, yaitu digunakan banyak orang sekaligus
    • Multiprogramming
      Metode yang memungkinkan dua buah program/lebih dijalankan secara serentak pada sebuah komputer dan berbagai sumber daya dalam waktu yang berlainan. Konsep multiprogramming bias diibaratkan sebagai pekerja yang tak hanya menangani satu pekerjaan sehingga tak ada waktu yang terbuang.
    • Time Sharing
      Metode yang dipakai dalam sistem operasi yang memungkinkan sejumlah pemakai dapat berinteraksi dengan proses yang dibuatnya secara bergantian dengan jumlah waktu yang sama. Time sharing merupakan pengembangan lebih lanjut dari multiprogramming.
    • Penyimpanan Virtual
      Metode yang menangani sejumlah program dengan membagi program-program tersebut ke dalam bagian yang kecil dengan ukuran sama. Metode seperti ini diterapkan antara lain pada Windows.
    • Multitasking
      Metode yang memungkinkan seorang pemakai menjalankan sejumlah program dalam waktu yang sama. Cara ini sangat umum dalam sistem PC. Dengan menggunakan sistem operasi Windows, seseorang dapat menjalankan program Word untuk membuat dokumen dan sekaligus menjalankan program Excel untuk membuat perhitungan-perhitungan dalam table. Pemakai dapat berpindah dari satu program aplikasi yang satu dengan program aplikasi yang lain dengan mudah
    • Multiprocessing
      Metode dengan kemampuan sistem operasi yang menjalankan dua atau lebih intruksi secara serentak dengan menggunakan sejumlah CPU dalam sebuah komputer. Melalui sistem tersebut kita dapat mengatur sejumlah CPU untuk menjalankan instruksi yang berbeda dalam sebuah program.
  4. Generasi Keempat (1980-199x)
    Sistem operasi tidak lagi hanya untuk satu mode, tapi banyak mode yang mendukung batch processing, timesharing, dan (soft) real-time applications.
    Generasi ini ditandai dengan berkembang dan meningkatnya komputer desktop (komputer pribadi) dan teknologi jaringan. Sistem operasi ini telah sanggup memberi antarmuka grafis yang nyaman.
    Network Operating SystemSistem operasi diperuntukan jaringan komputer dimana pemakai mnyadari keberadaan komputer yang terhubung
Berikut ini penguraian sejarah sistem operasi dari DOS, Mac, Windows, BSD, sampai Linux.
1980
  • QDOS  : Tim Paterson dari Seattle Computer menulis QDOS yang dibuat dari OS terkenal pada masa itu, CP/M. QDOS (Quick and Dirty Operating System) dipasarkan oleh Seatle Computer dengan nama 86-DOS karena dirancang untuk prosesor Intel 8086.
  • Microsoft : Bill Gates dari Microsoft membeli lisensi QDOS dan menjualnya ke berbagai perusahaan komputer.
1981
  • PC­ DOS : IBM meluncurkan PC­ DOS yang dibeli dari Microsoft untuk komputernya yang berbasis prosesor Intel 8086.
  • MS­ DOS : Microsoft menggunakan nama MS­ DOS untuk OS ini jika dijual oleh perusahaan diluar IBM.
1983
  • MS­ DOS 2.0 : Versi 2.0 dari MS­ DOS diluncurkan pada komputer PC XT.
1984
  • System 1.0 : Apple meluncurkan Macintosh dengan OS yang diturunkan dari BSD UNIX. System 1.0 merupakan sistem operasi pertama yang telah berbasis grafis dan menggunakan mouse.
  • MS ­DOS 3.0 : Microsoft meluncurkan MS DOS 3.0 untuk PC AT yang menggunakan chip Intel 80286 dan yang mulai mendukung penggunaan hard disk lebih dari 10 MB.
  • MS ­DOS 3.1 : Microsoft meluncurkan MS­DOS 3.1 yang memberikan dukungan untuk jaringan.
1985
  • MS ­Windows 1.0 : Microsoft memperkenalkan MS­Windows, sistem operasi yang telah menyediakan  lingkungan berbasis grafis (GUI) dan kemampuan multitasking. Sayangnya sistem operasi ini sangat buruk performanya dan tidak mampu menyamai kesuksesan Apple.
  • Novell Netware : Novell meluncurkan sistem operasi berbasis jaringan Netware 86 yang dibuat untuk prosesor Intel 8086.
1986
  • MS­ DOS 3.2 : Microsoft meluncurkan MS­ DOS 3.2 yang menambahkan dukungan untuk floppy  3.5 inch 720 KB.
1987
  • OS/2 : IBM memperkenalkan OS/2 yang telah berbasis grafis, sebagai calon pengganti IBM PC DOS.
  • MS­ DOS 3.3 : Microsoft meluncurkan MS­ DOS 3.3 yang merupakan versi paling populer dari MS DOS.
  • Windows 2.0 : Windows versi 2.0 diperkenalkan.
  • MINIX : Andrew S. Tanenbaum mengembangkan Minix, sistem operasi berbasis Unix yang ditujukan  untuk pendidikan. MINIX nantinya menginspirasi pembuatan Linux.
1988
  • MS­ DOS 4.0 : Microsoft mengeluarkan MS­DOS 4.0 dengan suasana grafis.
  • WWW : Proposal World Wide Web (WWW) oleh Tim Berners­Lee.
1989
  • NetWare/386 (juga dikenal sebagai versi 3) diluncurkan oleh Novell untuk prosesor Intel 80386.
1990
  • Perpisahan : Dua perusahaan raksasa berpisah, IBM berjalan dengan OS/2 dan Microsoft berkonsentrasi pada Windows.
  • Windows 3.0 : Microsoft meluncurkan Windows versi 3.0 yang mendapat sambutan cukup baik.
  • MS­Office : Microsoft membundel Word, Excel, dan PowerPoint untuk menyingkirkan saingannya seperti Lotus 1­2­3, Wordstar, Word Perfect dan Quattro.
  • DR DOS : Digital Research memperkenalkan DR DOS 5.0.
1991
  • Linux 0.01 : Mahasiswa Helsinki bernama Linus Torvalds mengembangkan OS berbasis Unix dari sistem operasi Minix yang diberi nama Linux.
  • MS DOS 5.0 : Microsoft meluncurkan MS­DOS 5.0 dengan penambahan fasilitas full­-screen editor,  undelete, unformat dan Qbasic.
1992
  • Windows 3.1 : Microsoft meluncurkan Windows 3.1 dan kemudian Windows for Workgroups 3.11 di tahun berikutnya.
  • 386 BSD : OS berbasis Open Source turunan dari BSD Unix didistribusikan oleh Bill Jolitz setelah meninggalkan Berkeley Software Design, Inc (BSDI). 386 BSD nantinya menjadi induk dari proyek Open Source BSD lainnya, seperti NetBSD, FreeBSD, dan OpenBSD.
  • Distro Linux : Linux didistribusikan dalam format distro yang merupakan gabungan dari OS plus program aplikasi. Distro pertama Linux dikenal sebagai SLS (Softlanding Linux System).
1993
  • Windows NT : Microsoft meluncurkan Windows NT, OS pertama berbasis grafis tanpa DOS  didalamnya yang direncanakan untuk server jaringan.
  • Web Browser : NCSA memperkenalkan rilis pertama Mosaic, browser web untuk Internet.
  • MS­ DOS 6.0 : Microsoft memperkenalkan MS­DOS 6.0 Upgrade, yang mencakup program kompresi  harddisk DoubleSpace.
  • Slackware : Patrick Volkerding mendistribusikan Slackware Linux yang menjadi distro populer pertama di kalangan pengguna Linux.
  • Debian : Ian Murdock dari Free Software Foundation (FSF) membuat OS berbasis Linux dengan nama Debian.
  • MS­ DOS 6.2 : Microsoft meluncurkan MS­DOS 6.2.
  • NetBSD : Proyek baru OS berbasis Open Source yang dikembangkan dari 386BSD dibuat dengan menggunakan nama NetBSD.
  • FreeBSD : Menyusul NetBSD, satu lagi proyek yang juga dikembangkan dari 386BSD dibuat dengan  nama FreeBSD.
1994
  • Netscape : Internet meraih popularitas besar saat Netscape memperkenalkan Navigator sebagai browser Internet.
  • MS­DOS 6.22 : Microsoft meluncurkan MS­DOS 6.22 dengan program kompresi bernama DriveSpace. Ini merupakan versi terakhir dari MS DOS.
  • FreeDOS : Jim Hall, mahasiswa dari Universitas Wisconsin­River Falls Development mengembangkan FreeDOS. FreeDOS dibuat setelah Microsoft berniat menghentikan dukungannya untuk DOS dan menggantikannya dengan Windows 95.
  • SuSE : OS Linux versi Jerman dikembangkan oleh Software und System Entwicklung GmbH (SuSE) dan dibuat dari distro Linux pertama, SLS.
  • Red Hat : Marc Ewing memulai pembuatan distro Red Hat Linux.
1995
  • Windows 95 : Microsoft meluncurkan Windows 95 dengan lagu Start Me Up dari Rolling Stones dan terjual lebih dari 1 juta salinan dalam waktu 4 hari.
  • PC DOS 7 : IBM memperkenalkan PC DOS 7 yang terintegrasi dengan program populer pengkompres data Stacker dari Stac Electronics. Ini merupakan versi terakhir dari IBM PC DOS.
  • Windows CE : Versi pertama Windows CE diperkenalkan ke publik.
  • PalmOS : Palm menjadi populer dengan PalmOS untuk PDA.
  • OpenBSD : Theo de Raadt pencetus NetBSD mengembangkan OpenBSD.
1996
  • Windows NT 4.0 : Microsoft meluncurkan Windows NT versi 4.0
1997
  • Mac OS : Untuk pertama kalinya Apple memperkenalkan penggunaan nama Mac OS pada Mac OS 7.6.
1998
  • Windows 98  : Web browser Internet Explorer menjadi bagian penting dari Windows 98 dan berhasil  menumbangkan dominasi Netscape Navigator.
  • Server Linux : Linux mendapat dukungan dari banyak perusahaan besar, seperti IBM, Sun Microsystem dan Hewlet Packard. Server berbasis Linux mulai banyak dipergunakan menggantikan  server berbasis Windows NT.
  • Google : Search Engine terbaik hadir di Internet dan diketahui menggunakan Linux sebagai  servernya.
  • Japan Goes Linux : TurboLinux diluncurkan di Jepang dan segera menjadi OS favorit di Asia, khususnya di Jepang, China dan Korea.
  • Mandrake : Gael Duval dari Brazil mengembangkan distro Mandrake yang diturunkan dari Red Hat.
1999
  • Support : Hewlett Packard mengumumkan  layanan 24/7 untuk distro Caldera, Turbo Linux, Red Hat dan SuSE.
  • Corel Linux : Corel pembuat program Corel Draw, yang sebelumnya telah menyediakan Word Perfect versi Linux, ikut membuat OS berbasis Linux dengan nama Corel Linux dan yang  nantinya beralih nama menjadi Xandros.
2000
  • Mac OS/X : Mac OS diganti dengan mesin berbasis BSD Unix dengan kernel yang disebut sebagai Mac OS/X.
  • Windows 2000: Microsoft meluncurkan Windows 2000 sebagai penerus Windows NT.
  • Windows Me : Microsoft meluncurkan Windows Me, versi terakhir dari Windows 95.
  • China Goes Linux : Red Flag Linux diluncurkan dari Republik Rakyat China.
  • Microsoft vs IBM : CEO Microsoft Steve Ballmer menyebut Linux sebagai kanker dalam sebuah  interview dengan Chicago Sun­Times. Di lain pihak, CEO IBM Louis Gartsner menyatakan dukungan  pada Linux dengan menginvestasikan $ 1 milyar untuk pengembangan Linux.
2001
  • Windows XP : Microsoft memperkenalkan Windows XP.
  • Lindows: Michael Robertson, pendiri MP3.com, memulai pengembangan Lindows yang diturunkan dari Debian. Nantinya Lindows berganti nama menjadi Linspire karena adanya tuntutan  perubahan nama oleh Microsoft.
2002
  • Open Office : Program perkantoran berbasis Open Source diluncurkan oleh Sun Microsystem.
  • OS Lokal : OS buatan anak negeri berbasis Linux mulai bermunculan, diantaranya Trustix Merdeka,  WinBI, RimbaLinux, Komura.
2003
  • Windows 2003 : Microsoft meluncurkan Windows Server 2003.
  • Fedora : Redhat mengumumkan distro Fedora Core sebagai penggantinya. Nantinya ada beberapa distro lokal yang dibuat berbasiskan Fedora, seperti BlankOn 1.0 dan IGOS Nusantara.
  • Novell : Ximian, perusahaan pengembang software berbasis Linux dibeli oleh Novell, begitu juga halnya dengan SuSE yang diakuisisi oleh Novell.
  • LiveCD : Knoppix merupakan distro pertama Linux yang dikembangkan dengan konsep LiveCD  yang bisa dipergunakan tanpa harus diinstal  terlebih dahulu. Distro lokal yang dibuat dari Knoppix  adalah Linux Sehat dan Waroeng IGOS.
2004
  • Ubuntu : Versi pertama Ubuntu diluncurkan dan didistribusikan ke seluruh dunia. Ada beberapa  versi distro yang dikeluarkan, yaitu Ubuntu (berbasis Gnome), Kubuntu (berbasis KDE), Xubuntu (berbasis XFCE), dan Edubuntu (untuk pendidikan).
2005
  • Mandriva : Mandrake bergabung dengan Conectiva dan berganti nama menjadi Mandriva.
2006
  • Unbreakable Linux : Oracle ikut membuat distro berbasis Linux yang diturunkan dari Red Hat Enterprise.
  • CHIPLux : Distro lokal terus bermunculan di tahun ini, bahkan Majalah CHIP yang lebih banyak memberikan pembahasan tentang Windows juga tidak ketinggalan membuat distro Linux dengan nama CHIPLux, yang diturunkan dari distro lokal PC LINUX dari keluarga PCLinuxOS (varian Mandriva). CHIPLux merupakan distro lokal pertama yang didistribusikan dalam format DVD.
2007
  • Vista : Setelah tertunda untuk beberapa lama, Microsoft akhirnya meluncurkan Windows Vista. Windows Vista memperkenalkan fitur 3D Desktop dengan Aero Glass, SideBar, dan Flip 3D. Sayangnya semua keindahan ini harus dibayar mahal dengan kebutuhan spesifikasi komputer yang sangat tinggi.
2008
  • 3D OS : Tidak seperti halnya Vista yang membutuhkan spesifikasi tinggi, 3D Desktop di Linux muncul dengan spesifikasi komputer yang sangat ringan. Era hadirnya teknologi 3D Desktop di Indonesia ditandai dengan hadirnya sistem operasi 3D OS yang dikembangkan oleh PC LINUX. Ada beberapa versi yang disediakan, yaitu versi 3D OS untuk pengguna umum serta versi distro warnet Linux dan game center Linux.
Versi yang akan datang
2010 – 2012
  • Windows Blackcomb.

PENGERTIAN SISTEM OPERASI 

Istilah Sistem Operasi sering ditujukan kepada semua software yang masuk dalam satu paket dengan sistem komputer sebelum aplikasi-aplikasi software terinstall. Dalam Ilmu komputer, Sistem operasio (perating system atau OS) adalah perangkat lunak sistem yang bertugas untuk melakukan kontrol dan manajemen perangkat keras serta operasi-operasi dasar system, termasuk menjalankan software aplikasi seperti program-program pengolah kata dan browser web.

Secara umum, Sistem Operasi adalah software pada lapisan pertama yang ditempatkan pada memori komputer pada saat komputer dinyalakan. Sedangkan software-software lainnya dijalankan setelah Sistem Operasi berjalan, dan Sistem Operasi akan melakukan layanan inti umum untuk software-software itu. Layanan inti umum tersebut seperti akses ke disk, manajemen memori, skeduling task, dan antar-muka user. Sehingga masing-masing software tidak perlu lagi melakukan tugas-tugas inti umum tersebut, karena dapat dilayani dan dilakukan oleh Sistem Operasi. Bagian kode yang melakukan tugas-tugas inti dan umum tersebut dinamakan dengan “kernel” suatu Sistem Operasi.

Sistem Operasi secara umum terdiri dari beberapa bagian:
1. Mekanisme Boot, yaitu meletakkan kernel ke dalam memory
2. Kernel, yaitu inti dari sebuah Sistem Operasi
3. Command Interpreter atau shell, yang bertugas membaca input dari pengguna
4. Pustaka-pustaka, yaitu yang menyediakan kumpulan fungsi dasar dan standar yang dapat dipanggil oleh aplikasi lain
5. Driver untuk berinteraksi dengan hardware eksternal, sekaligus untuk mengontrol mereka.

Sebagian Sistem Operasi hanya mengizinkan satu aplikasi saja yang berjalan pada satu waktu (misalnya DOS), tetapi sebagian besar Sistem Operasi baru mengizinkan beberapa aplikasi berjalan secara simultan pada waktu yang bersamaan. Sistem Operasi seperti ini disebut sebagai Multi-tasking Operating System (misalnya keluarga sistem operasi UNIX). Beberapa Sistem Operasi berukuran sangat besar dan kompleks, serta inputnya tergantung kepada input pengguna, sedangkan Sistem Operasi lainnya sangat kecil dan dibuat dengan asumsi bekerja tanpa intervensi manusia sama sekali. Tipe yang pertama sering disebut sebagai Desktop OS, sedangkan tipe kedua adalah Real-Time. Contoh, sistem operasi yaitu Windows, Linux, Free BSD, Solaris, palm, symbian, dan sebagainya..

MACAM-MACAM SISTEM INFORMASI

Macam-macam Sistem operasi utama yang digunakan komputer sistem umum (termasuk PC, komputer personal) terbagi menjadi 3 kelompok besar:

1. Keluarga Microsoft Windows – yang antara lain terdiri dari Windows Desktop Environment (versi 1.x hingga versi 3.x), Windows 9x (Windows 95, 98, dan Windows ME), dan Windows NT (Windows NT 3.x, Windows NT 4.0, Windows 2000, Windows XP, Windows Server 2003, Windows Vista, Windows 7 (Seven) yang akan dirilis pada tahun 2009, dan Windows Orient yang akan dirilis pada tahun 2014)).

2. Keluarga Unix yang menggunakan antarmuka sistem operasi POSIX, seperti SCO UNIX, keluarga BSD (Berkeley Software Distribution), GNU/Linux, MacOS/X (berbasis kernel BSD yang dimodifikasi, dan dikenal dengan nama Darwin) dan GNU/Hurd.

3. Mac OS, adalah sistem operasi untuk komputer keluaran Apple yang biasa disebut Mac atau Macintosh. Sistem operasi yang terbaru adalah Mac OS X versi 10.4 (Tiger). Awal tahun 2007 direncanakan peluncuran versi 10.5 (Leopard).

Sedangkan komputer Mainframe, dan Super komputer menggunakan banyak sekali sistem operasi yang berbeda-beda, umumnya merupakan turunan dari sistem operasi UNIX yang dikembangkan oleh vendor seperti IBM AIX, HP/UX, dll.

SUMBER

PENDIDIKAN KARAKTER: Peran Sekolah dan Keluarga

Pendidikan karakter kembali menemukan momentumnya belakangan ini; bahkan menjadi salah satu program prioritas Kementerian Pendidikan Nasional (kini Kemendikbudnas). Meski sebenarnya dalam beberapa tahun terakhir, telah banyak perbincangan baik melalui konperensi, seminar dan pembicaraan publik lainnya, belum banyak terobosan kongkrit dalam memajukan pendidikan karakter. Dengan kebijakan Kemendikbudnas, pendidikan karakter sudah saatnya dapat terlaksana secara kongkrit melalui lembaga-lembaga pendidikan dan masyarakat luas.
Segera jelas, pendidikan karakter terkait dengan bidang-bidang lain, khususnya budaya, pendidikan, dan agama. Ketiga-tiga bidang kehidupan terakhir ini berhubungan erat dengan nilai-nilai yang sangat penting bagi manusia dalam berbagai aspek kehidupannya. Budaya atau kebudayaan umumnya mencakup nilai-nilai luhur yang secara tradisional menjadi panutan bagi masyarakat. Pendidikan—selain mencakup proses transfer dan transmissi ilmu pengetahuan—juga merupakan proses sangat strategis dalam menanamkan nilai dalam rangka pembudayaan anak manusia. Sementara itu, agama juga mengandung ajaran tentang berbagai nilai luhur dan mulia bagi manusia untuk mencapai harkat kemanusiaan dan kebudayaannya.
Tetapi, ketiga sumber nilai yang penting bagi kehidupan itu dalam waktu-waktu tertentu dapat tidak fungsional sepenuhnya dalam terbentuknya individu dan masyarakat yang berkarakter, berkeadaban, dan berharkat. Budaya, pendidikan dan bahkan agama boleh jadi mengalami disorientasi karena terjadinya perubahan-perubahan cepat berdampak luas, misalnya, industrialisasi, urbanisasi, modernisasi dan terakhir sekali globalisasi.

Krisis Karakter Bangsa
Pembicaran tentang membangun kembali watak dan karakter guna revitalisasi kebangggaan dan kehormatan bangsa telah memenuhi ruang publik sejak jatuhnya Presiden Soeharto dari kekuasaannya pada 1998 hingga sekarang ini—telah lebih daripada satu dasawarsa. Perubahan-perubahan dramatis, cepat dan berjangka panjang dalam kehidupan politik yang pada gilirannya juga menimbulkan disorientasi sosial dan kultural memunculkan wacana dan harapan tentang perlunya pembentukan kembali watak bangsa; ungkapan Presiden pertama RI, Soekarno tentang ‘nation and character building’ kembali menemukan relevansinya.
Berakhirnya kekuasaan Orde Baru, berbarengan dengan munculnya krisis dalam berbagai aspek kehidupan bangsa telah menimbulkan krisis pula dalam watak dan ketahanan bangsa. Semakin derasnya arus globalisasi yang membawa berbagai bentuk dan ekspresi budaya global merupakan faktor tambahan penting yang mengakibatkan pengikisan watak bangsa berlangsung semakin lebih cepat dan luas. Akibat lebih lanjut, krisis watak bangsa menimbulkan disrupsi dan dislokasi dalam kehidupan sosial dan kultural bangsa, sehingga dapat mengancam integritas dan ketahanan bangsa secara keseluruhan.
Masa sejak masa pasca-Soeharto sampai sekarang ini yang sering disebut sebagai “masa reformasi” kita agaknya hanya mampu mewujudkan sebagian dari cita-cita pembentukan masyarakat Indonesia yang berkarakter; tetapi masih banyak lagi agenda yang harus dilakukan. Untuk menyebut satu bidang kehidupan saja, Indonesia memang menjadi lebih demokratis, bahkan kini mungkin “terlalu demokratis”. Jika pada masa Soeharto kita memiliki “too little too late democracy”, kini kita agaknya mempunyai “too much democracy”, yang secara salah masih saja diekspresikan dalam bentuk demonstrasi yang berkepanjangan. Dengan demikian, konsolidasi demokrasi belum sepenuhnya terwujud, meski Indonesia sukses melaksanakan Pemilu legislatif  dan Presiden 2004; Pemilu Legislatif  9 April 2009, dan Pilpres 8 Juni 2009, yang juga berjalan relatif aman, dan damai. Namun pada pihak lain, Pemilukada yang berlangsung seolah-olah tidak pernah putus di berbagai daerah sering berujung konflik horizontal; keadaban nyaris lenyap dalam aksi-aksi massa yang terlibat dalam pertikaian politik.
Dengan begitu terlihat bahwa masyarakat kita mengalami berbagai disorientasi. Karena itulah harapan dan seruan dari berbagai kalangan masyarakat kita dalam beberapa tahun terakhir untuk pembangunan kembali watak atau karakter kemanusiaan melalui pendidikan karakter menjadi semakin meningkat dan nyaring. Kebijakan Kemendikbudnas  mengutamakan pendidikan karakter dapat menjadi momentum penting dalam konteks ini di tanah air kita.
Jika dilacak lebih jauh, krisis dalam watak dan karakter bangsa itu terkait banyak dengan semakin tiadanya harmoni dalam keluarga (Cf. International Education Foundation 2000). Banyak keluarga mengalami disorientasi bukan hanya karena menghadapi krisis ekonomi, tetapi juga karena serbuan globalisasi nilai-nilai dan gaya hidup yang tidak selalu kompatibel dengan nilai-nilai dan norma-norma agama, sosial-budaya nasional dan lokal Indonesia. Sebagai contoh saja, gaya hidup hedonistik dan materialistik; dan permissif sebagaimana banyak ditayangkan dalam telenovela dan sinetron pada berbagai saluran TV Indonesia, hanya mempercepat disorientasi dan dislokasi keluarga dan rumahtangga.
Akibatnya, tidak heran kalau banyak anak-anak yang keluar dari keluarga dan rumahtangga hampir tidak memiliki watak dan karakter. Banyak di antara anak-anak yang alim dan bajik di rumah, tetapi nakal di sekolah, terlibat dalam tawuran, penggunaan obat-obat terlarang, dan bentuk-bentuk tindakan kriminal lainnya, seperti perampokan bis kota dan sebagainya. Inilah anak-anak yang bukan hanya tidak memiliki kebajikan (righteousness) dan inner beauty dalam karakternya, tetapi malah mengalami kepribadian terbelah (split personality).
Sekolah menjadi seolah tidak berdaya menghadapi kenyataan ini. Dan sekolah selalu menjadi kambing hitam dari merosotnya watak dan karakter bangsa. Padahal, sekolah sendiri menghadapi berbagai masalah berat menyangkut kurikulum yang overload, fasilitas yang tidak memadai, kesejahteraan guru dan tenaga kependidikan yang rendah. Menghadapi beragam masalah ini sekolah seolah kehilangan relevansinya dengan pembentukan karakter. Sekolah, sebagai konsekuensinya, lebih merupakan sekadar tempat bagi transfer of knowledge daripada character building, tempat pengajaran daripada pendidikan.
Keragaman Budaya dan Multikulturalisme
Padahal dengan membangun karakter kita dapat memperkokoh jati diri dan ketahanan masyarakat Indonesia multi-kultural, yang memiliki berbagai ragam budaya. Keragaman budaya merupakan salah satu kekayaan bangsa ini, yang tidak dimiliki bangsa-bangsa lain. Bahkan secara konstitusional, baik dalam UUD 1945, Pancasila  maupun dalam prinsip negara bhinneka tunggal ika, keragaman budaya itu sudah mendapatkan landasannya yang kuat.
Pengakuan terhadap keragaman budaya itu hampir sama sebangun dengan prinsip multikulturalisme, yang berdasarkan pada ‘politik pengakuan’ (politics of recognition), mengakui setiap warga memiliki posisi yang setara satu sama lain. Tak kurang pentingnya, pengakuan terhadap keragaman itu didasarkan pada prinsip saling menghormati dan menghargai di tengah berbagai perbedaan yang ada.
Keragaman budaya dan multi-kulturalisme di tanahair kita dapat terancam jika masing-masing entitas dan kelompok budaya hanya mengunggulkan budaya masing-masing, dan pada saat yang sama kurang atau tidak menghargai budaya lainnya. Karena itu, penghargaan pada keragaman budaya mesti tidak dipandang telah selesai atau dibiarkan berkembang dengan sendirinya; sebaliknya justru harus diperkuat terus menerus melalui berbagai jalur interaksi sosial dan pendidikan pada berbagai levelnya.
Dalam konteks itu kita juga mesti memperkuat bangsa Indonesia yang memiliki jati diri dan ketahanan; berkepribadian dan berkarakter yang tangguh; berpegang teguh pada nilai-nilai demokratis dan keadaban; menghargai tinggi law and order; berkeadilan sosial, politik, dan ekonomi; memiliki kesalehan individual formal dan kesalehan komunal-sosial sekaligus; berkeadaban (civility) dalam lingkup civil society; menghargai keragaman dan kehidupan multikultural; dan memiliki perspektif lokal, nasional dan global sekaligus. Daftar ciri-ciri ideal ini tentu saja masih bisa ditambah lagi.
Keadaban (civility) ini penting ditekankan. Karena dalam beberapa tahun terakhir masyarakat kita cenderung semakin kehilangan “keadaban” (civility). Kita menyaksikan amuk massa; tawuran kini tidak lagi hanya terjadi di lingkungan pelajar dan kampung, tetapi juga antar mahasiswa—bahkan di lingkungan satu perguruan tinggi. Merosotnya keadaban ini juga bisa disaksikan pada berbagai kalangan masyarakat lainnya; sejak semakin meluasnya KKN melalui “desentralisasi” korupsi yang menumpang desentralisasi dan otonomi daerah. Banyak anak bangsa telah kehilangan “rasa malu”, sehingga keadabannya hampir tidak terlihat sama sekali. Bisa dipastikan, kenyataan ini merupakan gejala terjelas dari krisis sosial yang semakin parah dalam masyarakat kita. Karena itulah kita perlu kembali berbicara tentang pendidikan karakter.

Peran Keluarga

Berbicara tentang pendidikan karakter, baik kita mulai dengan ungkapan indah Phillips dalam The Great Learning(2000:11): “If there is righteousness in the heart, there will be beauty in the character; if there is beauty in the character, there will be harmony in the home; if there is harmony in the home, there will be order in the nation; if there is order in the nation, there will be peace in the world”.
Mempertimbangkan berbagai kenyataan pahit yang kita hadapi seperti dikemukakan di atas, hemat saya, pendidikan karakter merupakan langkah sangat penting dan strategis dalam membangun kembali jati diri bangsa dan menggalang pembentukan masyarakat Indonesia baru. Tetapi penting untuk segara dikemukakan—sebagaimana terlihat dalam pernyataan Phillips tadi—bahwa  pendidikan karakter haruslah melibatkan semua pihak; rumahtangga dan keluarga; sekolah; dan lingkungan sekolah lebih luas (masyarakat). Karena itu, langkah pertama yang harus dilakukan adalah menyambung kembali hubungan dan educational networks yang nyaris terputus antara ketiga lingkungan pendidikan ini. Pembentukan watak dan pendidikan karakter tidak akan berhasil selama antara ketiga lingkungan pendidikan tidak ada kesinambungan dan harmonisasi.
Dengan demikian, rumahtangga dan keluarga sebagai lingkungan pembentukan watak dan pendidikan karakter pertama dan utama mestilah diberdayakan kembali. Sebagaimana disarankan Phillips, keluarga hendaklah kembali menjadi “school of love”, sekolah untuk kasih sayang (Phillips 2000). Dalam perspektif Islam, keluarga sebagai “school of love” dapat disebut sebagai “madrasah mawaddah wa rahmah, tempat belajar yang penuh cinta sejati dan kasih sayang.
Islam memberikan perhatian yang sangat besar kepada pembinaan keluarga (usrah). Keluarga merupakan basis dari ummah (bangsa); dan karena itu keadaan keluarga sangat menentukan keadaan ummah itu sendiri. Bangsa terbaik (khayr ummah) yang merupakan  ummah wahidah (bangsa yang satu) dan ummah wasath (bangsa yang moderat), sebagaimana dicita-citakan Islam hanya dapat terbentuk melalui keluarga yang dibangun dan dikembangkan atas dasar mawaddah wa rahmah.
Berdasarkan sebuah hadits yang diriwayatkan Anas r.a, keluarga yang baik memiliki empat ciri. Pertama; keluarga yang memiliki semangat (ghirah) dan kecintaan untuk mempelajari dan menghayati ajaran-ajaran agama dengan sebaik-baiknya untuk kemudian mengamalkan dan mengaktualisasikannya dalam kehidupan sehari-hari. Kedua, keluarga di mana setiap anggotanya saling menghormati dan menyayangi; saling asah dan asuh. Ketiga, keluarga yang dari segi nafkah (konsumsi) tidak berlebih-lebihan; tidak ngoyo atau tidak serakah dalam usaha mendapatkan nafkah; sederhana atau tidak konsumtif dalam pembelanjaan. Keempat, keluarga yang sadar akan kelemahan dan kekurangannya; dan karena itu selalu berusaha meningkatkan ilmu dan pengetahuan setiap anggota keluarganya melalui proses belajar dan pendidikan seumur hidup (life long learning), min al-mahdi ila al-lahdi.
Datang dari keluarga mawaddah wa rahmah dengan ciri-ciri seperti di atas, maka anak-anak telah memiliki potensi dan bekal yang memadai untuk mengikuti proses pembelajaran di sekolah. Dan, sekali lagi, sekolah—seperti sudah sering dikemukakan banyak orang--seyogyanya tidak hanya menjadi tempat belajar, namun sekaligus juga tempat memperoleh pendidikan, termasuk pendidikan watak dan pendidikan nilai.
Sekolah, pada hakikatnya bukanlah sekedar tempat “transfer of knowledge” belaka. Seperti dikemukakan Fraenkel (1977:1-2), sekolah tidaklah semata-mata tempat di mana guru menyampaikan pengetahuan melalui berbagai mata pelajaran. Sekolah juga adalah lembaga yang mengusahakan usaha dan proses pembelajaran yang berorientasi pada nilai (value-oriented enterprise). Lebih lanjut, Fraenkel mengutip John Childs yang menyatakan, bahwa organisasi sebuah sistem sekolah dalam dirinya sendiri merupakan sebuah usaha moral (moral enterprise), karena ia merupakan usaha sengaja masyarakat manusia untuk mengontrol pola perkembangannya.
Pembentukan watak dan pendidikan karakter melalui sekolah, dengan demikian, tidak bisa dilakukan semata-mata melalui pembelajaran pengetahuan, tetapi adalah melalui penanaman atau pendidikan nilai-nilai. Apakah nilai-nilai tersebut? Secara umum, kajian-kajian tentang nilai biasanya mencakup dua bidang pokok, estetika, dan etika (atau akhlak, moral, budi pekerti). Estetika mengacu kepada hal-hal tentang dan justifikasi terhadap apa yang dipandang manusia sebagai “indah”, apa yang mereka senangi. Sedangkan etika mengacu kepada hal-hal tentang dan justifikasi terhadap tingkah laku yang pantas berdasarkan standar-standar yang berlaku dalam masyarakat, baik yang bersumber dari agama, adat istiadat, konvensi, dan sebagainya. Dan standar-standar itu adalah nilai-nilai moral atau akhlak tentang tindakan mana yang baik dan mana yang buruk.
Lingkungan masyarakat luas jelas memiliki pengaruh besar terhadap keberhasilan penanaman nilai-nilai estetika dan etika untuk pembentukan karakter. Dari perspektif Islam, menurut Quraish Shihab (1996:321), situasi kemasyarakatan dengan sistem nilai yang dianutnya, mempengaruhi sikap dan cara pandang masyarakat secara keseluruhan. Jika sistem nilai dan pandangan mereka terbatas pada “kini dan di sini”, maka upaya dan ambisinya terbatas pada kini dan di sini pula.
Dalam konteks itu, al-Qur’an dalam banyak ayatnya menekankan tentang kebersamaan anggota masyarakat menyangkut pengalaman sejarah yang sama, tujuan bersama, gerak langkah yang sama, solidaritas yang sama. Di sinilah, tulis Quraish Shihab, muncul gagasan dan ajaran tentang amar ma`ruf dan nahy munkar; dan tentang fardhu kifayah, tanggung jawab bersama dalam menegakkan nilai-nilai yang baik dan mencegah nilai-nilai yang buruk.

Pendidikan Nilai

Pembentukan karakter merupakan bagian dari pendidikan nilai (values education) melalui sekolah merupakan usaha mulia yang mendesak untuk dilakukan. Bahkan, kalau kita berbicara tentang masa depan, sekolah bertanggungjawab bukan hanya dalam mencetak peserta didik yang unggul dalam ilmu pengetahuan dan teknologi, tetapi juga dalam jati diri, karakter dan kepribadian. Dan hal ini relevan dan kontekstual bukan hanya di negara-negara yang tengah mengalami krisis watak seperti Indonesia, tetapi juga bagi negara-negara maju sekalipun (cf. Fraenkel 1977: Kirschenbaum & Simon 1974).
Usaha pembentukan watak melalui sekolah, hemat saya, selain dengan pendidikan karakter di atas, secara berbarengan dapat pula dilakukan melalui pendidikan nilai dengan langkah-langkah sebagai berikut:
Pertama, menerapkan pendekatan “modelling” atau “exemplary” atau “uswah hasanah”. Yakni mensosialisasikan dan membiasakan lingkungan sekolah untuk menghidupkan dan menegakkan nilai-nilai akhlak dan moral yang benar melalui model atau teladan. Setiap guru dan tenaga kependidikan lain di lingkungan sekolah hendaklah mampu menjadi “uswah hasanah” yang hidup (living exemplary) bagi setiap peserta didik. Mereka juga harus terbuka dan siap untuk mendiskusikan dengan peserta didik tentang berbagai nilai-nilai yang baik tersebut.
Kedua, menjelaskan atau mengklarifikasikan kepada peserta didik secara terus menerus tentang berbagai nilai yang baik dan yang buruk. Usaha ini bisa dibarengi pula dengan langkah-langkah; memberi penghargaan (prizing) dan menumbuhsuburkan (cherising) nilai-nilai yang baik dan sebaliknya mengecam dan mencegah (discouraging) berlakunya nilai-nilai yang buruk; menegaskan nilai-nilai yang baik dan buruk secara terbuka dan kontinu; memberikan kesempatan kepada peserta didik untuk memilih berbagai alternatif sikap dan tindakan berdasarkan nilai; melakukan pilihan secara bebas setelah menimbang dalam-dalam berbagai konsekuensi dari setiap pilihan dan tindakan; membiasakan bersikap dan bertindak atas niat dan prasangka baik (husn al-zhan) dan tujuan-tujuan ideal; membiasakan bersikap dan bertindak dengan pola-pola yang baik yang diulangi secara terus menerus dan konsisten.
Ketiga, menerapkan pendidikan berdasarkan karakter (character-based education). Hal ini bisa dilakukan dengan menerapkan character-based approach ke dalam setiap mata pelajaran nilai yang ada di samping matapelajaran-mata pelajaran khusus untuk pendidikan karakter, seperti pelajaran agama, pendidikan kewarganegaraan (PKn), sejarah, Pancasila dan sebagainya. Memandang kritik terhadap matapelajaran-matapelajaran terakhir ini, perlu dilakukan reorientasi baik dari segi isi/muatan dan pendekatan, sehingga mereka tidak hanya menjadi verbalisme dan sekedar hapalan, tetapi betul-betul berhasil membantu pembentukan kembali karakter dan jatidiri bangsa.
Wallahu a`lam bish-shawab.