Jumat, 01 Februari 2013

penemu apple


Penemu Apple - Mungkin banyak diantara teman-teman mencoba mencari tau siapa sebenarnya penemu Apple. Penemu Apple yang dimaksudkan disini, yaitu sebuah perusahaan yang terletak di daerah Silicon Valley, Cupertino, California, yang bergerak dalam bidang teknologi komputer.

Foto Steve Jobs Penemu Apple
Penemu Apple atau yang paling tepat disebut sebagai pendiri adalah Steve Jobs dan Steve Wozniak. Saat pertama sekali mendirikan Apple Computer Co pada tahun 1976, Steb Job baru berusia 21 tahun, sementara Steve Zozniak berumur 26 tahun.

Kantor Apple Computer Co sendiri saat itu berada di garasi milik keluarga Jobs. Adapun produk yang mereka buat adalah komputer pribadi yang diberi nama Apple I.

Pada tahun berikutnya, yaitu 1977, Jobs dan Wozniak kembali memperkenalkan produk Apple terbaru, yaitu disebut sebagai Apple II. Dengan kehadiran Apple II membuat nama Jobs dan Wozniak semakin melambung didunia industri komputer pribadi, sebab produk tersebut menjadi sukses besar di pasaran rumah tangga.

Meski Steb Jobs adalah seorang penemu Apple, namun bukan tidak pernah dia keluar dari perusahaan Apple. John Sculley yang digaet oleh Jobs sendiri dari perusahaan Pepsi-Cola, untuk memimpin Apple Computer pada tahun 1983, kemudian memberhentikan Jobs di tahun 1985 dan mengusirnya dari Apple.

Setelah lebih 10 tahun hengkang dari Apple, pada tahun 1996, Jobs kembali keperusahaan yang semula dia dirikan. Pada tahun berikutnya, yaitu 1997, Jobs kembali memimpin Apple untuk mengisi kepergian Gil Amelio.

Saat ini produk Apple terkenal akan perangkat keras ciptaannya, seperti iMac, Macbook, perangkat pemutar lagu iPod, dan telepon genggam iPhone, serta yang terbaru adalah komputer tablet yang diberi nama iPad. Beberapa perangkat lunak ciptaanya pun mampu bersaing di bidang kreatif seperti penyunting video Final Cut Pro, penyunting suara Logic Pro dan pemutar lagu iTunes yang sekaligus berfungsi sebagai toko lagu online.

Linus Benedict Torvalds

Linus Benedict Torvalds (lahir di Helsinki, Finlandia, 28 Desember 1969) adalah rekayasawan perangkat lunak Finlandia yang dikenal sebagai perintis pengembangan Kernel Linux. Ia sekarang bertindak sebagai koordinator proyek tersebut.

Linux terinsipirasi oleh Minix (suatu sistem operasi yang dikembangkan oleh Andrew S. Tanenbaum) untuk mengembangkan suatu sistem operasi mirip-Unix (Unix-like) yang dapat dijalankan pada suatu PC. Linux sekarang dapat dijalankan pada berbagai arsitektur lain.

Ketika Linus Torvalds, seorang mahasiswa Finlandia pendiam membagi-bagikan kode sumber (source code) kernel Linux seukuran disket via internet di tahun 1991, ia sama sekali tidak menduga bahwa apa yang dimulainya melahirkan sebuah bisnis bernilai milyaran dolar di kemudian hari.

Ia bahkan tidak menduga Linux kemudian menjadi sistem operasi paling menjanjikan, yang bisa dibenamkan ke dalam server, komputer desktop, tablet PC, PDA, handphone, GPS, robot, mobil hingga pesawat ulang alik buatan NASA.

Tidak hanya itu, banyak maniak Linux (Linuxer) yang membeli perangkat buatan Apple dan mengganti sistem operasinya dengan Linux. Bagi saya itu sedikit gila, mengingat menghapus sistem operasi Mac & iPod berarti membuang duit dan menggantinya sistem operasinya cukup sulit dibanding desktop berbasis Windows. Saat ini 20% pangsa pasar desktop di seluruh dunia menggunakan Linux jauh di atas Machintosh dan terus mengejar desktop Windows. Dan 12,7% server di seluruh dunia menggunakan Linux, jauh di atas UNIX, BSD, Solaris, dan terus meningkat menggerus pangsa pasar server Microsoft.

Saat ini Linus meninggalkan posisi menjanjikan di perusahaan semi konduktor Transmeta dan tinggal bersama istri dan 3 anaknya di sebuah bukit di desa di Portland, Oregon, USA, berdekatan dengan markas Open Source Development Labs. Organisasi nirlaba ini diawaki oleh 20-an programmer yang punya gairah hampir sama dengan Linus. Mereka terus mengembangkan kernel Linux yang kini berukuran 290-an MegaBytes atau melebihi 9 milyar baris kode. Linux beserta timnya menerima masukan baris-baris kode dari seluruh penjuru dunia, menyortir, menetapkan skala prioritas dan memasukkan gagasan paling brilian ke dalam kernel. LSD sendiri disokong oleh puluhan raksasa IT seperti IBM, HP, Dell dan Sun, baik dari sisi materi maupun sumber daya manusia.

Linus bukan orang pertama yang membagi-bagikan source code karena pola ini adalah hal yang biasa di masa awal tumbuhnya industri komputer. Tapi Linus sukses menetapkan standar yang memaksa banyak pengembang ikut membebaskan kode sumber program mereka, mulai dari BSD, Solaris, Suse, Java hingga Adobe.

Meski hanya bergaji ratusan ribu dolar pertahun, Linus telah menciptakan banyak multimilyuner dalam industri komputer mulai dari RedHat, Suse, Debian, Mandriva, Ubuntu dan banyak developer software open source lainnya. Hampir tak ada yang berubah dari Linus. Ketika ia datang terlambat di suatu konferensi IT, ia bahkan tak segan-segan duduk di lantai dengan celana pendek dan sepatu-sandal kesukaannya. Ia bahkan tidak marah tatkala memberikan pidato di mimbar dan diinterupsi oleh beberapa programmer BSD yang maju ke depan panggung yang mengklaim bahwa kernel BSD jauh lebih hebat ketimbang kernel Linux. Ia bahkan tidak segan-segan memakai T-Shirt BSD yang disodorkan pemrotes dan melanjutkan pidatonya.

Menurut Linus, apa yang dilakukannya hanyalah untuk berbagi. Berbeda dengan Richard M Stallman yang fanatik dengan konsep free software, Linus hanya menekankan sisi keterbukaan (open), tak peduli apakah kemudian dalam suatu sistem operasi bercampur program free dan proprietery.

Setiap kata-kata Linus hampir menjadi sabda di kalangan Linuxer yang menciptakan standar nilai tertentu. Setiap publikasi, pidato, email dab press releasenya selalu ditunggu-tunggu jutaan orang. Di sela kesibukannya, Linus menyempatkan diri bersepeda menuruni bukit dan minum di bar desa. Bila ada nabi dalam dunia komputer, bisa dipastikan itu Linus (dan Steve Wozniak). Dan setannya tentu Bill Gates :)

Fungsi dan Manfaat Komputer

19590736kr2Pada zaman sekarang bila seseorang tidak mengerti komputer dibilang ketinggalan zaman, Kuno dan gaptek. Sementara di bidang pekerjaan semua orang di tuntut untuk mengerti menggunakan komputer, karena komputer merupakan sarana mempermudah dan mempercepat proses pekerjaan.
Setiap orang memiliki alasan yang berbeda bila mereka di tanya tentang apa fungsinya komputer, jawaban mereka antara lain :
  1. Mempermudah pekerjaan.
  2. Sebagai Alat komunikasi
  3. Sebagai alat untuk hiburan
Sebagian besar orang akan menjawab 3 alasan diatas. Juga banyak orang tua yang di lahirkan pada zaman tempo dulu tidak mengerti sama sekali manfaat komputer, sehingga mereka tidak menganggap komputer itu penting dan hasilnya pada generasi penerusnyapun mereka tidak menekankan atau mendidik anak-anak mereka untuk dan harus mengerti bidang komputer.
Di dalam dunia komputer semua hal, semua bidang mata pelajaran, perkuliahan dan usaha ada di komputer, bahkan pendidikan dan ilmu pengetahuan lebih komplit bila diperoleh dari komputer dengan media Internet dibandingkan dengan pelajaran atau Ilmu yang di dapatkan dari Sekolah.
Sekarang mari kita bahas apa fungsi dan manfaat komputer bagi kita :
1. Komputer sebagai sarana mempermudah kerja : 
Dengan komputer banyak pekerjaan yang dapat di selesaikan dengan mudah, bila dahulu orang mengetik surat harus dengan mesin tik, dan bila ada kesalahan maka kertas tersebut akan di sobek dan di ketik ulang kembali, selain itu dengan mesin tik dokumen yang telah di ketik tidak dapat di edit kembali, sementara dengan menggunakan komputer kita dapat mengetik dokumen, mengedit dan menyimpan dokumen tersebut untuk dapat di edit berulang-ulang.
2. Kompter Sebagai Sarana Komunikasi
Zaman dahulu bila berkomunikasi dengan seseorang yang berada jauh dari kita, kita dapat menggunakan fasilitas telepon, tapi itu kita hanya mendengar suara teman atau saudara kita. Dengan komputer kita dapat :
  • Berbicara dengan teman atau saudara kita
  • Sambil bicara kita bisa melihat mereka dengan menggunakan Webcam
  • Dapat menuliskan kata-kata kita kepada mereka (Chating)
  • Juga kita dapat menulis surat kepada mereka (Email)
  • Kita dapat mengirim gambar atau file kepada mereka dll
3. Komputer sebagai Alat Hiburan
Dahulu alat hiburan kita hanyalah Radio, tape, Televisi dan jalan-jalan untuk mengetahui kondisi dan situasi dari satu wilayah. Dengan komputer kita dapat mengghibur dirikita dengan berbagai fasilitas yang terdapat pada komputer antara lain :
  • Mendenar lagu-lagu atau musik melalui CD/DVD atau melalui Internet
  • Menonton Vidoe lewat kaset CD/DVD atau melalui Internet
  • Bermain Game, dengan aplikasi game yang kita Install sendiri atau Game online dengan Internet.
  • Berhubungan dengan teman melalui fasilitas Chating, atau Webcam
  • Nonton TV, dari saluran TV Reciver yang kita pasang pada komputer atau melalui TV Chanel Online dengan Internet
4. Komputer Sebagai Alat Pendidikan
Dahulu fasilitas pendidikan hanya kita peroleh melalui Sekolah, dan selain di sekolah informasi pendidikan dapat kita peroleh melalui media Radio, Televisi, Koran, dan tempat-tempat kursus. Dengan menggunakan Komputer yang terhubung dengan Internet ataupun tidak kita dapat memperoleh pendidikan dan Ilmu pengetahuan, antara lain :
  • Dari aplikasi yang kita Install. Setiap aplikasi yang kita install pasti ada menu bantuannya (Help) yaitu tutorial cara menggunakan program dan pelatihan.
  • Aplikasi yang kita Install dapat membuat kita menjadi ahli dalam beberapa bidang seperti : Adobe photoshope, dengan aplikasi ini kita bisa menjadi seorang yang mahir bidang grafis, Power Point ; dengan aplikasi ini kita menjadi seorang yang mahir di bidang persentasi, Autocad ; dengan aplikasi ini kita bisa menjadi seorang yang mahir di bidang disain arsitektur dll.
  • Selain dari aplikasi yang kita install, bila kita terhubung dengan Internet kita dapa memperoleh pendidikan atau Ilmu pengetahuan seperti : Sejarah, Kebudayaan, Matematika, Sosial, Biologi, Kedokteran atau Kesehatan, Ekonomi, Politik, Website Designe, Bahasa (segala Bahasa dapat di peroleh), pengetahuan Agama dll.
5. Komputer Sebagai Sarana Informasi
Dengan komputer kita dapat melihat atau memperoleh informasi yang kita butuhkan seperti :
  • Informasi pendidikan, Tempat-tempat Pendidikan
  • Informasi Hiburan, mencari tempat-tempat Hiburan
  • Informasi Travel, mencari dan memesan tiket transprotasi
  • Informasi Produk, mencari produk yang kita inginkan.
  • Informasi Pekerjaan, menjari lowongan kerja.
  • Informasi Berita, mencari kejadian atau berita dalam dan luar negeri
  • Informasi Cuaca, mengetahui keadaan cuaca saat ini
  • Informasi Lalulintas, mengetahui situasi lalulintas
  • Informasi Kesehatan, mencari tips kesehatan serta tempat2 untuk pengobatan.
  • Informasi Politik
  • Informasi Perdagangan
  • Informasi Usaha, mencari peluang untuk membuka usaha
  • dan masih banyak lagi informasi yang dapat kita peroleh dari Komputer yang terhubung dengan Internet.
6. Komputer Sebagai Sarana Usaha
Selain untuk komunikasi, Mempermudah pekerjaan, serta alat hiburan, komputer juga dapat dipergunakan sebagai alat untuk melakukan banyak usaha yang mendatangkan penghasilan bagi kita antara lain :
  • Membuat Rental Komputer
  • Membuat Warnet
  • Membuat Usaha percetakan
  • Membuat usaha Vidoe Editing
  • Membuat Usaha Ringtone dan Wallpaper ke Hp
  • Membuat Usaha Sablon
  • Membuat usaha Service dan Install Komputer Software
  • Membuka usaha Disain Arsitektur.
  • Membuka Usaha disain Grafis untuk periklanan
  • Membuka Usaha disain Website
  • Membuka Usaha programer akounting dan keuangan
  • Membuka Usaha Kursus Komputer
  • Membuat Jasa Website sebagai media Informasi
  • Mengarang dan membuat buku Online yang dapat di jual
  • dll
7. Komputer Sebagai Sarana Kontrol
Dibeberapa pabrik, Perhotelan, dan perusahaan banyak komputer dipergunakan sebagai sarana untuk mengontrol atau mengoperasikan system seperti :
  • Mengontrol kamera security
  • Mengontrol pengoperasian mesin Robot pabrik
  • Mengontrol Escalator
  • Pengontorlan pencahayaan untuk lampu Studio rekaman
  • Pengontrolan peralatan Editing Video
  • Pengontrolan tata lampu traffic jalan
  • Pengontrolan system jaringan Network
  • dll
Tapi dari segala hal-hal yang positip yang dapat diperoleh dari komputer, banyak sisi negatif yang di timbulkan oleh pengguna komputer antara lain :
  1. Dengan adanya fasilitas komputer sebagai alat hiburan seperti chating dan game, orang banyak yang terlena sehingga mereka lupa terhadap tugas dan tanggung jawap mereka, seperti belajar, bekerja dll.
  2. Dengan mengakses situs2 yang menampilkan gambar serta video porno dapat merusak akhlak seseorang.
  3. Banyak terjadi aksi penipuan dengan membuat Website untuk mendapatkan uang secara mudah.
  4. Programer yang terkenal dengan sebutan Hacker, yang dapat mengambil data seseorang untuk diperjual belikan, serta dapat merusak system orang.
Tapi kesemuanya itu baik dan buruknya fungsi komputer tergantung kepada si pemakainya, dan saya yakin bahwa komputer di ciptakan bukanlah untuk membuat hal yang buruk, tetapi untuk membantu manusia dalam mempermudah segala bidang pekerjaan.
Sekian dahulu paparan saya mengenai fungsi dan manfaat komputer
Semoga Bermanfaat

Pengertian Transistor

 Transistor adalah alat semikonduktor yang dipakai sebagai penguat, sebagai sirkuit pemutus dan penyambung (switching), stabilisasi tegangan, modulasi sinyal atau sebagai fungsi lainnya. Transistor dapat berfungsi semacam kran listrik, dimana berdasarkan arus inputnya (BJT) atau tegangan inputnya (FET), memungkinkan pengaliran listrik yang sangat akurat dari sirkuit sumber listriknya.

Pada umumnya, transistor memiliki 3 terminal. Tegangan atau arus yang dipasang di satu terminalnya mengatur arus yang lebih besar yang melalui 2 terminal lainnya. Transistor adalah komponen yang sangat penting dalam dunia elektronik modern. Dalam rangkaian analog, transistor digunakan dalam amplifier (penguat). Rangkaian analog melingkupi pengeras suara, sumber listrik stabil, dan penguat sinyal radio. Dalam rangkaian2 digital, transistor digunakan sebagai saklar berkecepatan tinggi. Beberapa transistor juga dapat dirangkai sedemikian rupa sehingga berfungsi sebagai logic gate, memori, dan komponen-komponen lainnya.


MENGENAL TRANSISTOR
TR

PENGERTIAN DAN FUNGSI TRANSISTOR
Transistor (TR) termasuk komponen semi konduktor (bersifat menghantar dan menahan arus listrik).
Semua Transistor mempunyai tiga kaki,yaitu Colector (C) Basis (B) Emitor (E) dan masing2 mempunyai fungsi sendiri2 dengan berbagai type.
Berikut fungsi Transistor :
1. Sebagai perata arus.
2. Menahan sebagian arus.
3. Menguatkan arus.
4. Membangkitkan frequency rendah maupun tinggi.
JENIS TRANSISTOR
1. TRANSISTOR NPN
Adalah transistor positive,dimana transistor dapat bekerja mengalirkan arus listrik apabila basis dialiri tegangan arus positive.
2. TRANSISTOR PNP
Adalah transistor negative,dapat bekerja mengalirkan arus apabila basis dialiri tegangan negative.
TR
Symbol TR NPN & PNP
 
JENIS TRANSISTOR MENURUT BAHANNYA
1. TRANSISTOR GERMANIUM
Adalah transistor yang terbuat dari bahan germanium (berbadan besi keras berwarna putih) terdiri dari jenis NPN dan PNP.
2. TRANSISTOR SILICON
Adalah transistor yang terbuat dari silikon (berbadan seperti plastik mengkilap kebanyakan berwarna hitam) juga terdiri dari jenis NPN dan PNP.

Tujuan Pokok Sistem Operasi


Sistem Operasi

Sistem operasi merupakan sebuah penghubung antara pengguna dari komputer dengan perangkat keras komputer. Sebelum ada sistem operasi, orang hanya mengunakan komputer dengan menggunakan sinyal analog dan sinyal digital. Seiring dengan berkembangnya pengetahuan dan teknologi, pada saat ini terdapat berbagai sistem operasi dengan keunggulan masing-masing. Untuk lebih memahami sistem operasi maka sebaiknya perlu diketahui terlebih dahulu beberapa konsep dasar mengenai sistem operasi itu sendiri.
Pengertian sistem operasi secara umum ialah pengelola seluruh sumber-daya yang terdapat pada sistem komputer dan menyediakan sekumpulan layanan (system calls) ke pemakai sehingga memudahkan dan menyamankan penggunaan serta pemanfaatan sumber-daya sistem komputer.

SEJARAH SISTEM OPERASI

Menurut Tanenbaum, sistem operasi mengalami perkembangan yang sangat pesat, yang dapat dibagi kedalam empat generasi: 

LAYANAN SISTEM OPERASI

Sebuah sistem operasi yang baik menurut Tanenbaum harus memiliki layanan sebagai berikut: pembuatan program, eksekusi program, pengaksesan I/O Device, pengaksesan terkendali terhadap berkas pengaksesan sistem, deteksi dan pemberian tanggapan pada kesalahan, serta akunting.
Pembuatan program yaitu sistem operasi menyediakan fasilitas dan layanan untuk membantu para pemrogram untuk menulis program; Eksekusi Program yang berarti Instruksi-instruksi dan data-data harus dimuat ke memori utama, perangkat-parangkat masukan/ keluaran dan berkas harus di-inisialisasi, serta sumber-daya yang ada harus disiapkan, semua itu harus di tangani oleh sistem operasi; Pengaksesan I/O Device, artinya Sistem Operasi harus mengambil alih sejumlah instruksi yang rumit dan sinyal kendali menjengkelkan agar pemrogram dapat berfikir sederhana dan perangkat pun dapat beroperasi; Pengaksesan terkendali terhadap berkas yang artinya disediakannya mekanisme proteksi terhadap berkas untuk mengendalikan pengaksesan terhadap berkas; Pengaksesan sistem artinya pada pengaksesan digunakan bersama (shared system); Fungsi pengaksesan harus menyediakan proteksi terhadap sejumlah sumber-daya dan data dari pemakai tak terdistorsi serta menyelesaikan konflik-konflik dalam perebutan sumber-daya; Deteksi dan Pemberian tanggapan pada kesalahan, yaitu jika muncul permasalahan muncul pada sistem komputer maka sistem operasi harus memberikan tanggapan yang menjelaskan kesalahan yang terjadi serta dampaknya terhadap aplikasi yang sedang berjalan; dan Akunting yang artinya Sistem Operasi yang bagus mengumpulkan data statistik penggunaan beragam sumber-daya dan memonitor parameter kinerja.

Pengertian WWW

Pengertian Www Atau Web – Setelah pada artikel sebelumnya kita membahas mengenai Sejarah Internet, dan jugaCara Kerja Internet, maka kali ini kita akan membahas mengenai pengertian WWW atau World Wide Web, atau yang paling umum disebut adalah Web. 
Www atau World Wide Web maupun Web saja adalah sebuah sistem yang saling terkait dalam sebuah dokumen berformat hypertext yang berisi beragam informasi, baik tulisan, gambar, suara, video, dan informasi multimedia lainnya dan dapat diakses melalui sebuah perangkat yang disebut web browser.
Untuk menterjemahkan dokumen hypertext kedalam bentuk dokumen yang dapat dipahami oleh Manusia, maka web browser melalui web client akan membaca halaman web yang tersimpan di sebuah webserver melalui protokol yang sering disebut HTTP atau Hypertext Transfer Protocol.
Sedangkan software atau perangkat lunak web browser saat ini tersedia dalam berbagai produk dengan kelebihan dan kekurangannya masing-masing. Beberapa web browser yang paling terkenal saat ini adalah Mozilla Firefox, Internet Explorer, Opera, Safari dan lain sebagainya.
Dokumen hypertext yang tersimpan didalam sebuah webserver memiliki banyak link atau sambungan antara satu dokumen hypertext dengan dokumen hypertext lainnya. Dengan adanya link antar dokumen hypertext, maka hal tersebut dapat memudahkan pengakses untuk mengunjungi atau mendapatkan dokumen-dokumen terkait yang diinginkannya.
Selebihnya dengan semakin banyaknya situs internet yang dapat diakses melalui browser dengan format http dan di ikuti dengan www , dan alamat url web yang hendak diakses, maka muncullah sebuah situs pencari atau search engine, seperti halnya google.com dan yahoo.com sebagai sarana memudahkan pengguna internet untuk mencari berbagai dokumen yang tersedia melalui jutaan web di sebuah jaringan internet global.

Pengertian HTML

HTML (Hyper Text Markup Language) adalah sebuah bahasa markup yang digunakan untuk membuat sebuah halaman web dan menampilkan berbagai informasi di dalam sebuah browser Internet. Bermula dari sebuah bahasa yang sebelumnya banyak digunakan di dunia penerbitan dan percetakan yang disebut dengan SGML (Standard Generalized Markup Language), HTML adalah sebuah standar yang digunakan secara luas untuk menampilkan halaman web. HTML saat ini merupakan standar Internet yang didefinisikan dan dikendalikan penggunaannya oleh World Wide Web Consortium (W3C). 
HTML berupa kode-kode tag yang menginstruksikan browser untuk menghasilkan tampilan sesuai dengan yang diinginkan. Sebuah file yang merupakan file HTML dapat dibuka dengan menggunakan browser web seperti Mozilla Firefox atau Microsoft Internet Explorer. HTML juga dapat dikenali oleh aplikasi pembuka email ataupun dari PDA dan program lain yang memiliki kemampuan browser.
HTML dokumen tersebut mirip dengan dokumen teks biasa, hanya dalam dokumen ini sebuah teks bisa memuat instruksi yang ditandai dengan kode atau lebih dikenal dengan TAG tertentu. Sebagai contoh jika ingin membuat teks ditampilkan menjadi tebal seperti: TAMPIL TEBAL, maka penulisannya dilakukan dengan cara: <b>TAMPIL TEBAL</b>. Tanda <b> digunakan untuk mengaktifkan instruksi cetak tebal, diikuti oleh teks yang ingin ditebalkan, dan diakhiri dengan tanda </b> untuk menonaktifkan cetak tebal tersebut.
Secara garis besar, terdapat 4 jenis elemen dari HTML:

  • structural. tanda yang menentukan level atau tingkatan dari sebuah teks (contoh, <h1>Golf</h1> akan memerintahkan browser untuk menampilkan “Golf” sebagai teks tebal besar yang menunjukkan sebagai Heading 1
  • presentational. tanda yang menentukan tampilan dari sebuah teks tidak peduli dengan level dari teks tersebut (contoh, <b>boldface</b> akan menampilkan bold. Tanda presentational saat ini sudah mulai digantikan oleh CSS dan tidak direkomendasikan untuk mengatur tampilan teks,
  • hypertext. tanda yang menunjukkan pranala ke bagian dari dokumen tersebut atau pranala ke dokumen lain (contoh, <a href="http://www.ilmukita.com/">IlmuKita</a> akan menampilkan IlmuKita sebagai sebuah hyperlink ke URL tertentu),
  • Elemen widget yang membuat objek-objek lain seperti tombol (<button>), list (<li>), dan garis horizontal (<hr>).
Selain markup presentational , markup yang lin tidak menentukan bagaimana tampilan dari sebuah teks. Namun untuk saat ini, penggunaan tag HTML untuk menentukan tampilan telah dianjurkan untuk mulai ditinggalkan dan sebagai gantinya digunakan Cascading Style Sheets.

Tutorial Membangun Sistem Database

 Operasi database adalah salah satu fasilitas yang mutlak harus ada dalam sebuah framework MVC. Pada tulisan kali saya akan mengulas bagaimana membuat class Model dan fungsi-fungsi untuk operasi database.

Dalam pemrograman PHP terdapat beberapa cara untuk mengoperasikan database khususnya mysql, antara lain menggunakan metode klasik yaitu dengan memanfaatkan fungsi bawaan (mysql_connect, mysql_select_db, mysql_query). Codeigniter merupakan salah satu contoh framework MVC yang memanfaatkan operasi klasik ini(http://www.codeigniter.com).

Selain operasi database klasik diatas, saat ini sudah tersedia modul PHP Data Object (PDO). PDO didesain mampu men-support banyak engine database misalnya MySql, Oracle, PostgresSQL, Ms Sql server dsb. PDO mendukung pemrograman berorientasi object (OOP), sehingga syntax pemrogramannya lebih sistematis dan mudah digunakan. Sayangnya tidak semua web hosting telah mengaktifkan modul PDO, bahkan ada juga web hosting yang tidak menyediakan modul PDO ini. Salah satu framework yang memanfaatkan operasi database PDO adalah Obullo (http://www.obullo.com).

Memang operasi database klasik maupun PDO mempunyai kelebihan dan kelemahan. Oleh karena itu pada framework ini sengaja saya sediakan dua-duanya. Jadi nantinya programmer bisa memilih, bisa menggunakan operasi database klasik atau PDO.

Tole : "Pakdhe..pakdhe, kalau framework sampean ini mendukung  dua operasi database apa tidak semakin berat kerja server-nya Pakdhe?"
Pakdhe : "Ya tidaklah Tole, kan nantinya programmer milih salah satu, dan ketika salah satu operasi tadi dipilih operasi yang lain tidak di-load, jadi tidak berat kerja server-nya"
Tole :"O..gitu to Pakdhe,ya sudah Pakdhe, tak simaknya dulu ntar nanti kita buktikan ya Pakdhe...kerja servernya berat apa tidak"
Pada implementasinya, sengaja saya gunakan design pattern factory, adapter dan driver. Hal ini bertujuan agar framework ini fleksibel dan mudah untuk digunakan oleh programmer yang lain. Untuk lebih memudahkan dalam pembuatan program, sengaja operasi database ini saya letakkan pada folder system/database. Adapun susunan direktori operasi database ini, terlihat seperti gambar disamping ini.

Driver database yang saya sediakan hanya mysql. Dilain waktu saya akan menambahkan driver untuk database lain misalnya Oracle, MS SQL Server, Postgres SQL dan sebagainya. Tentunya masing-masing driver tersebut mendukung operasi klasik dan PDO.

1. Factory
Jika kita baca di bukunya Gang of Four "Design Patterns: Elements of Reusable Object-Oriented Software", factory ini tergolong dalam kreasional desain. Factory tersebut perlu kita buat ketika kita perlu mendefinisikan sebuah tipe data/class (kita sebut kreator)  yang berfungsi untuk membuat objek dari tipe data/class yang berbeda (kita sebut produk).  Tujuannya adalah agar pengguna tidak perlu capek-capek mempelajari class produk tadi. Pada framework ini yang disebut factory adalah class db_factory sedangkan yang disebut class produk adalah db_adapter. Dalam literatur lain, saya menemukan ada sistem dependency injection. Sistem dependency injection ini lebih sederhana dibandingkan dengan factory. Oleh karena itu dalam pembuatan program kali ini saya memanfaatkan dependency injection dalam membangun class database factory. Dibawah ini contoh source code class db_factory

  1. <?php defined('SYS'or exit('Access Denied!');  
  2. /*  
  3. * Becak MVC Framework version 1.0  
  4. * 
  5. * File      : db_factory.php 
  6. * Directory : system/database 
  7. * Author    : Eko Heri Susanto 
  8. * Description   : penyedia koneksi ke bermacam-macam database 
  9. */  
  10. class db_factory {  
  11.     public static function callDB($db_name){  
  12.         include APP.'config'.DS.'database'.PHP_EXT;  
  13.         if(!is_array($config[$db_name]))   
  14.             throw new Exception("Please set a valid database driver from config database file");  
  15.         $driver_class = strtolower($config[$db_name]['type']);  
  16.         include SYS.'database'.DS.'driver'.DS.$driver_class.PHP_EXT;  
  17.         include SYS.'database'.DS.'db_adapter'.PHP_EXT;  
  18.             $driver = new $driver_class($config[$db_name]);   
  19.         $adapter = new db_adapter($driver);  
  20.         return $adapter;  
  21.     }//end callDB  
  22. }//end class  
  23. ?>  
2. Adapter
Telah saya sebutkan diatas, operasi database dalam framework ini mendukung banyak driver database. (mysql, oracle ms-sql server dsb). Sebenarnya masing-masing driver tersebut cara penggunaannya tentu berbeda antara satu dengan yang lain. Oleh karena itu kita perlu design pattern adapter agar pengguna tidak perlu memikirkan bagaimana cara mengoperasikan masing-masing driver tersebut.
Gambar disamping menunjukkan desain sistem db_factory dan db_adapter yang sudah saya jelaskan sebelumnya.

Fungsi/method callDB pada class db_factory ini nantinya akan dipanggil pada fungsi database yang ada di class loader. Untuk lebih jelasnya silakan anda lihat contoh source code yang saya sertakan. Ingat class loader ini terdapat pada folder core.

Coba anda perhatikan method yang terdapat pada db_adapter, disitu terdapat metode-metode untuk mengoparesikan database seperti pencarian (select), penambahan (insert), perubahan (update) dan penghapusan (delete) data. Saya temukan dibeberapa contoh framework, method-method ini ada yang menyebutnya dengan istilah active record. Dibeberapa buku design pattern active record ini sudah diakui sebagai salah satu pola dalam design pattern. Dibawah ini contoh source code class db_adapter

  1. <?php defined('SYS'or exit('Access Denied!');  
  2. /*  
  3. * Becak MVC Framework version 1.0  
  4. * 
  5. * File      : db_adapter.php 
  6. * Directory : system/database 
  7. * Author    : Eko Heri Susanto 
  8. * Description   : fungsi common (CRUD) untuk database 
  9. */  
  10. class db_adapter {  
  11.     private $driver = null;  
  12.     private $sql = '';  
  13.     public function __construct($driver){  
  14.         $this->driver = $driver;  
  15.         $this->driver->connect();  
  16.     }  
  17.     public function __destruct(){  
  18.         $this->driver->disconnect();  
  19.     }  
  20.     public function select($sql){  
  21.         $this->sql = $sql;  
  22.     }  
  23.     public function fetch_array(){  
  24.         return $this->driver->results($this->sql, 'array');  
  25.     }  
  26.     public function fetch_object(){  
  27.         return $this->driver->results($this->sql, 'object');  
  28.     }  
  29.     public function query($sql){  
  30.         return $this->driver->query($sql);  
  31.     }  
  32.     public function insert($table$data){  
  33.         $sql = "INSERT INTO ".$table;  
  34.         $multi_rows = FALSE;  
  35.         foreach($data as $key => $val){  
  36.             if(!is_array($val) ) {  
  37.                 $fields[$key] = $key;  
  38.                 $rows[$key] = $this->escape($val);  
  39.             }else {  
  40.                 $multi_rows = TRUE;  
  41.                 foreach($val as $skey => $sval){  
  42.                     $fields[$skey] = $skey;  
  43.                     $row[$skey] = $this->escape($sval);  
  44.                 }  
  45.                 $rows[$key] = "(".implode(', '$row).")";  
  46.             }  
  47.         }  
  48.         $sql .= " (". implode(', '$fields).") VALUES ";  
  49.         if(!$multi_rows$sql .= "(". implode(', '$rows).");";  
  50.         else $sql .= implode(', '$rows).";";  
  51.         return $this->driver->query($sql);  
  52.         }  
  53.     public function update($table$data$where=NULL){  
  54.         $sql = "UPDATE ".$table." SET ";  
  55.         $values = array();  
  56.         foreach($data as $key => $val){  
  57.             $values[$key] = $key." = ".$this->escape($val);  
  58.         }  
  59.         $sql .= implode(", "$values);  
  60.         if(is_array($where)){  
  61.             $filter = array();  
  62.             foreach($where as $key => $val){  
  63.                 $filter[$key] = "(".$key." = ".$this->escape($val).")";  
  64.             }  
  65.             $sql .= " WHERE ".implode(" AND "$filter);  
  66.         }  
  67.         return $this->driver->query($sql);  
  68.     }  
  69.     public function delete($table$where=NULL){  
  70.         $sql = "DELETE FROM ".$table;  
  71.         if(is_array($where)){  
  72.             $filter = array();  
  73.             foreach($where as $key => $val){  
  74.                 $filter[$key] = "(".$key." = ".$this->escape($val).")";  
  75.             }  
  76.             $sql .= " WHERE ".implode(" AND "$filter);  
  77.         }  
  78.         return $this->driver->query($sql);  
  79.     }  
  80.       
  81.     private function escape($str)  
  82.         {  
  83.         if(is_string($str)){  
  84.             return "'".str_replace("'""''",$str)."'";  
  85.         }  
  86.   
  87.         if(is_integer($str))  
  88.         return (int)$str;  
  89.   
  90.         if(is_double($str))  
  91.         return (double)$str;  
  92.   
  93.         if(is_float($str))  
  94.         return (float)$str;  
  95.   
  96.         if(is_bool($str))  
  97.         return ($str === FALSE) ? 0 : 1;  
  98.   
  99.         if(is_null($str))  
  100.         return 'NULL';  
  101.         }  
  102. }//end class  
  103. ?>  
3. Driver
OK, selanjutnya mari kita lanjutkan untuk membahas class driver. Ingat class driver ini merupakan tata cara pengoperasian database yang sesungguhnya. Gambar dibawah ini menjelaskan struktur desain sistem driver database.

Berikut ini contoh source code class mysql (operasi database klasik)

  1. <?php defined('SYS'or exit('Access Denied!');  
  2. /*  
  3. * Becak MVC Framework version 1.0  
  4. * 
  5. * File      : mysql.php 
  6. * Directory : system/database/driver 
  7. * Author    : Eko Heri Susanto 
  8. * Description   : driver mysql 
  9. */  
  10. class mysql {  
  11.     private $conn;  
  12.     private $config;  
  13.     public function __construct($config){  
  14.         $this->config    = $config;  
  15.     }  
  16.     public function connect() {  
  17.         extract($this->config);  
  18.         if(isset($this->conn)) return $this->conn;  
  19.         $this->conn = @mysql_connect($server,$user,$password, true) or show_error("Unable connect to mysql server.Please make sure the server, username or password specified in your Database.php file is valid.");   
  20.         @mysql_select_db($database$this->conn) or show_error("Unable to select your default database name.Please make sure the database name specified in your Database.php file is valid.");  
  21.     }  
  22.     public function disconnect(){  
  23.         if(isset($this->conn)) {  
  24.             @mysql_close($this->conn);  
  25.         }  
  26.     }  
  27.     public function query($sql){  
  28.         $result = @mysql_query($sql$this->conn);  
  29.         if (!$result) {  
  30.                 show_error(mysql_error());  
  31.         }  
  32.         return $result;  
  33.     }  
  34.     public function results($query$type = 'object'){  
  35.         $result = $this->query($query);  
  36.         $return = array();  
  37.         while ($row = @mysql_fetch_object($result)) {  
  38.             if($type == 'array')  
  39.                 $return[] = (array$row;  
  40.             else  
  41.                 $return[] = $row;  
  42.         }  
  43.         @mysql_free_result($result);  
  44.         return @$return;  
  45.     }  
  46. }//end class  
  47. ?>  
Berikut ini contoh source code class mysql_pdo (operasi database PDO)

  1. <?php defined('SYS'or exit('Access Denied!');  
  2. /*  
  3. * Becak MVC Framework version 1.0  
  4. * 
  5. * File      : pdo_mysql.php 
  6. * Directory : system/database/driver 
  7. * Author    : Eko Heri Susanto 
  8. * Description   : driver PDO mysql 
  9. */  
  10. class mysql_pdo {  
  11.     private $conn;  
  12.     private $config;  
  13.     public function __construct($config){  
  14.         $this->config    = $config;  
  15.     }  
  16.     public function connect() {  
  17.         extract($this->config);  
  18.         if(isset($this->conn)) return $this->conn;  
  19.         try{  
  20.             $this->conn = new PDO ("mysql:host=$server;dbname=$database",$user,$password);  
  21.         }catch(PDOException $e){  
  22.             echo __LINE__.$e->getMessage();  
  23.         }  
  24.     }  
  25.     public function disconnect(){  
  26.         if(isset($this->conn)) {  
  27.             $this->conn = null;  
  28.         }  
  29.     }  
  30.     public function query($sql){  
  31.         $result = null;       
  32.         try{  
  33.             $result = $this->conn->exec($sqlor print_r($this->conn->errorInfo());  
  34.         }catch(PDOException $e){  
  35.             echo __LINE__.$e->getMessage();  
  36.         }  
  37.         return $result;  
  38.     }  
  39.     public function results($query$type = 'object'){  
  40.         $result = $this->conn->query($queryor print_r($this->conn->errorInfo());  
  41.         $result->setFetchMode(PDO::FETCH_ASSOC);  
  42.         return $result;  
  43.     }  
  44. }//end class  
  45. ?>  
Sampai disini pembahasan mengenai operasi database sudah selesai. Selanjutnya coba saya jelaskan bagaimana cara menjalankan contoh program yang saya sertakan.
Pertama-tama anda siapkan dulu database-nya. Caranya buka phpmyadmin, kemudian buat database baru dengan nama blogkomputer. Setelah itu silakan anda buat table content seperti contoh dibawah ini.

  1. CREATE TABLE `blogkomputer`.`content` (  
  2. `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,  
  3. `judul` VARCHAR( 100 ) NOT NULL ,  
  4. `kategori` VARCHAR( 100 ) NOT NULL ,  
  5. `isi` TEXT NOT NULL  
  6. ) ENGINE = MYISAM ;  
Setelah table-nya selesai anda buat, jangan lupa isikan contoh datanya. Ini saya sertakan query untuk mengisi data table content tersebut

  1. INSERT INTO `blogkomputer`.`content` (`id`, `judul`, `kategori`, `isi`) VALUES (NULL'Ini adalah judul 1''pemrograman''isi sembarang data disini'), (NULL'ini adalah judul 2''becak framework''becak framework adalah framework MVC yang mendukung PHP 5');  
Langkah kedua coba anda buka file database.php, yang terdapat pada folder application/config, kemudian lakukan pengaturan (setting) konfigurasi database. Lihat contoh dibawah ini

  1. $config = array();  
  2.   
  3. // jika ingin menggunakan PDO ubah mejadi 'mysql_pdo'  
  4. $config['db']['type']       = 'mysql';   
  5.   
  6. // jika anda menggunakan PDO, ubah menjadi '127.0.0.01'  
  7. $config['db']['server']     = 'localhost';   
  8.   
  9. //sesuaikan dengan user yang ada di database mysql anda  
  10. $config['db']['user']       = 'root';  
  11.   
  12. //sesuaikan dengan password mysql anda  
  13. $config['db']['password']   = '';  
  14.   
  15. //sesuaikan dengan nama database yang anda buat  
  16. $config['db']['database']   = 'blogkomputer';  
Cukup sampai disini, kedepan akan saya bahas bagaimana membuat library, helper serta menambah error handling.
Selamat mencoba, semoga ada guna dan manfaatnya...