Selasa, 20 Oktober 2015

ERD (Entity Relationship Diagram)

0 komentar

ERD (Entity Relationship Diagram) 

 ERD merupakan suatu model untuk menjelaskan hubungan antar data dalam basis data berdasarkan objek-objek dasar data yang mempunyai hubungan antar relasi. ERD untuk memodelkan struktur data dan hubungan antar data, untuk menggambarkannya digunakan beberapa notasi dan simbol.         

        Menurut salah satu para ahli, Brady dan Loonam (2010), Entity Relationship diagram (ERD) merupakan teknik yang digunakan untuk memodelkan kebutuhan data dari suatu organisasi, biasanya oleh System Analys dalam tahap analisis persyaratan proyek pengembangan system. Sementara seolah-olah teknik diagram atau alat peraga memberikan dasar untuk desain database relasional yang mendasari sistem informasi yang dikembangkan. ERD bersama-sama dengan detail pendukung merupakan model data yang pada gilirannya digunakan sebagai spesifikasi untuk database.
         Komponen penyusun ERD adalah sebagai berikut :
    Entitas adalah objek dalam dunia nyata yang dapat dibedakan dengan objek lain, sebagai contoh mahasiswa,dosen,departemen. Entitias terdiri atas beberapa atribut sebagai contoh atribut dari entitas mahasiswa adalah nim,nama,alamat,email, dll. Atribut nim merupakan unik untuk mengidentifikasikan / membedakan mahasiswa yg satu dengan yg lainnya. Pada setiap entitas harus memiliki 1 atribut unik atau yang disebut dengan primary key.

       Atribut adalah Setiap entitas pasti mempunyai elemen yang disebut atribut yang berfungsi untuk mendeskripsikan karakteristik dari entitas tersebut. Isi dari atribut mempunyai sesuatu yang dapat mengidentifikasikan isi elemen satu dengan yang lain. Gambar atribut diwakili oleh simbol elips. 

        Ada dua jenis Atribut :
  1) Identifier (key) digunakan untuk menentukan suatuentity  secara unik (primary key).
  2) Descriptor (nonkey attribute) digunakan untuk menspesifikasikan karakteristik dari suatu entity yang tidak unik.
         Relasi adalah hubungan antara beberapa entitas. sebagai contoh relasi antar mahaiswa dengan mata kuliah dimana setiap mahasiswa bisa mengambil beberapa mata kuliah dan setiap mata kuliah bisa diambil oleh lebih dari 1 mahasiswa. relasi tersebut memiliki hubungan banyak ke banyak. Berikut adalah contoh ERD.

Kardinalitas menyatakan jumlah himpunan relasi antar entitias. pemetaan kardiniliat terdiri dari :

·         one-to-one :sebuah entitas pada A berhubungan dengan entitas B paling banyak 1contoh diatas relasi pegawai dan departemen dimana setiap pegawai hanya bekerja pada 1 departemen

·         one-to-many : sebuah entitas pada A berhubungan dengan entitas B lebih dari satu contoh diatas adalah 1 depertemen memiliki banyak pegawai

·         many-to-many : sebuah entitas pada A berhubungan dengan entitas B lebih dari satu dan B berhubungan dengan A lebih dari satu jugan contoh diatas adalah relasi mahasiswa dengan mata kuliah.
Berikut adalah metode/tahap untuk membuat ERD :
  • ·         Menentukan Entitas
  • ·         Menentukan Relasi
  • ·         Menggambar ERD sementara
  • ·         Mengisi Kardinalitas
  • ·         Menentukan Kunci Utama
  • ·         Menggambar ERD berdasar Key
  • ·         Menentukan Atribut
  • ·         Memetakan Atribut
  • ·         Menggambar ERD dengan Atribut

 

Senin, 19 Oktober 2015

Rancangan Database

0 komentar

RANCANGAN DATABASE DAN STRATEGI PENYELESAIANNYA UNTUK SINKRONISASI DATA

Aktifitas perancangan database bukanlah perkara yang mudah dilakukan karena harus mempertimbangkan banyak aspek terkait. Pengembang sistem biasanya merancang dan menggunakan kode-kode data dalam rancangan database-nya. Penggunaan kode data tersebut memiliki beberapa alasan, antara lain untuk:
  1. Efisiensi memori
  2. Memudahkan pertukaran data antar unit
  3. Mengurangi jumlah redundansi data
  4. Meningkatkan akurasi data
  5. Fleksibilitas data
  6. Konsistensi item data
Di samping perbedaan yang disebabkan oleh perbedaan penggunaan DBMS, perbedaan kode data dalam rancangan database pada umumnya terjadi dalam tiga hal, yaitu:
  1. Tipe data.
  2. ukuran data.
  3. Domain data.
Menurut James Martin (1975),aktivitas perancangan database sebagai salah satu tahapan dalam proyek pengembangan sistem informasi diharapkan mampu menghasilkan sebuah rancangan struktur database terbaik, yaitu memenuhi enam kriteria database processing berikut:
  1. Bersifat data oriented dan bukan program oriented.
  2. Dapat digunakan oleh pemakai yang berbeda-beda atau beberapa program aplikasi tanpa perlu mengubah database.
  3. Data dalam database dapat berkembang dengan mudah, baik volume maupun strukturnya.
  4. Data yang ada dapat memenuhi kebutuhan sistem-sistem baru secara mudah.
  5. Data dapat digunakan dengan cara yang berbeda-beda.
  6. Data redundancy minimal.
Pendekatan pengembangan database secara klasik dapat dilakukan dengan
menggunakan DFD dan ER_D.Hasil rancangan database dapat dikatakan mencapai hasil yang optimal jika mampu memenuhi lima kriteria, yaitu:
  1. Memiliki struktur record yang konsisten secara logik.
  2. Memiliki struktur record yang mudah untuk dimengerti.
  3. Memiliki struktur record yang sederhana dalam pemeliharaan
  4. Memiliki struktur record yang mudah untuk ditampilkan kembali untuk memenuhi kebutuhan pengguna.
  5. Kerangkapan data minimal.
Beberapa kesalahan umum yang sering dilakukan oleh pengembang saat
melakukan perancangan database adalah:
  1. Tidak mempersiapkan rancangan yang dapat digunakan pada perkembangan sistem di masa mendatang.
  2. Pembuatan relasi yang salah.
  3. Pembuatan relasi yang redundansi.
  4. Adanya redundansi data.
  5. Kesalahan pemilihan primary key untuk suatu tabel.
  6. Kesalahan pemilihan tipe data.
Salah satu permasalahan rancangan database yang dihadapi oleh berbagai instansi pemerintah daerah saat ini adalah terkait dengan aspek interoperabilitas data dalam database. Permasalahan muncul karena database dikembangkan dalam format dan lokasi yang terpisah, dikembangkan oleh pengembang yang berbeda, pada waktu yang berbeda, untuk sistem yang berbeda, sehingga hasil rancangan database menjadi bervariasi dan tidak terintegras.Pada sisi yang lain, perkembangan kebutuhan data atau informasi yang bersifat multisektoral saat ini semakin dibutuhkan, karena memang banyak urusan yang bersifat multisektoral. Kebutuhan tersebut tidak bisa dipenuhi oleh satu sumber informasi saja, sehingga diperlukan komposisi dari banyak sumber data. Pemenuhan kebutuhan data dan informasi multisektor perlu ditangani secara komprehensif, baik pada aspek teknis maupun tataran kebijakan.
Dalam konteks implementasi e-Gov di Indonesia, pengaturan aspek teknis memiliki tujuan agar mekanisme pertukaran data mencapai tingkat interoperabilitas yang tinggi, sehingga transfer data dari sumber ke tujuan dapat dilakukan tanpa mempedulikan heterogenitas platform perangkat keras dan perangkat lunak yang digunakan. Pada tataran kebijakan, protokol pertukaran data perlu disusun untuk menjamin tingkat interoperabilitas yang tinggi.Secara teknis, persoalan interoperabilitas di atas heterogenitas aplikasi telah dapat diselesaikan menggunakan teknologi XML (eXtensible Markup Language). XML adalah sebuah format dokumen yang mampu menjelaskan struktur dan semantik (makna) dari data yang dikandung oleh dokumen tersebut.
XML digunakan oleh web services sebagai format dokumen dalam pertukaran data antar aplikasi. Karena XML merupakan suatu format dokumen yang berbasis teks, maka web services memungkinkan berlangsungnya komunikasi antar aplikasi yang berbeda dengan platform yang berbeda pula. Web services dapat diimplementasikan dalam berbagai jenis platform dengan menggunakan bahasa pemrograman apa pun.XML telah menjadi standar de-facto pertukaran data antar aplikasi. Spesifikasi format XML telah distandarkan menjadi referensi yang sama bagi setiap aplikasi yang memerlukan. Kebijakan penyeragaman format dan mekanisme pertukaran data antar instansi juga diperlukan untuk mengatasi isu-isu terkait dengan interoperabilitas antar sistem, seperti keamanan dan integritas data, pembagian kewenangan, dan masalah legaL.
Penggunaan kode data merupakan bagian dari upaya optimalisasi rancangan
database. Alasan utama penggunaan kode data dalam rancangan database adalah untuk efisiensi memori, mencirikan nilai item data tertentu, dan memudahkan pengelolaan data. Kode data perlu dirancang sekaligus pada saat perancangan database dan didokumentasikan dengan jelas. Dengan menggunakan kode data, maka proses validasi dan kontrol terhadap nilai-nilai item data dapat dilakukan secara terprogram. Dalam beberapa kasus, kode data hanya digunakan dalam internal sistem, tidak perlu ditampilkan kepada para pengguna database. Kode dapat berupa kumpulan angka, huruf dan karakter khusus.
Penggunaan kode data bertujuan untuk :
  1. Mewakili sejumlah informasi yang  kompleks.
  2. Mengidentifikasi data secara unik.
  3. Meringkas atau menyederhanakan data.
  4. Melakukan klasifikasi data.
  5. Menyampaikan makna tertentu untuk pemrosesan berikutnya.
Jenis kode data dapat dikelompokan sebagai (Ladjamudin, 2005):
  1. Kode sekuensial, yaitu kode yang dirancang dengan mengasosiasikan data dengan kode terurut (biasanya berupa bilangan asli atau abjad). Keunggulan pengkodean sekuensial adalah memudahkan pengecekan apabila terjadi kesalahan pengkodean karena pengecekan terjadinya kesalahan bisa dilakukan secara terprogram, selain itu juga memudahkan proses pengurutan data. Kelemahan pengkodean sekuensial adalah kode yang diberikan sebenarnya tidak membawa kandungan informasi di dalamnya dan tidak menjelaskan apa-apa tentang atributnya. Penyisipan item data baru pada titik tengah juga memerlukan penomoran kembali item-item data.
  2. Kode blok, yaitu kode yang dirancang dengan cara menyatakannya dalam format tertentu. Keunggulan penggunaan kode blok adalah memungkinkan penyisipan kode baru dalam satu blok tanpa harus mengorganisasikan kembali seluruh struktur kode. Semakin banyak digit dalam range kode, semakin banyak pula item data yang dapat ditempatkan dalam kode blok. Kelemahan penggunaan kode blok seperti halnya dengan kode sekuensial, kandungan informasi dari kode blok blok tidak langsung diketahui sebelum dicocokkan dengan daftar arti dari kode blok.
  3. Kode mnemonik, yaitu kode yang dirancang berdasarkan akronim atau singkatan dari data yang ingin dikodekan. Keunggulan penggunaan kode mnemonik adalah memiliki informasi tingkat tinggi tentang item data yang diwakilinya, sehingga mudah untuk diingat. Kelemahan dari kode mnemonik biasanya adalah memiliki range yang terbatas dalam mewakili item-item data pada kelompoknya.
Kode data berdasarkan pembentukannya dibedakan sebagai (Ladjamudin, 2005):
  1. Kode eksternal (user defined code), adalah kode yang disusun oleh pemakai awam (end user) untuk mewakili kode-kode yang telah lazim digunakan secara terbuka dan telah dikenal baik oleh para pengguna. Kode eksternal umumnya telah digunakan dalam catatan manual sehari-hari dan dapat diadobsi secara langsung dalam rancangan database, misal NIM, NIK, NIP, dan lainnya.
  2. Kode internal (system coding), merupakan kode-kode baru yang disusun oleh perancang database, dan umumnya digunakan sebagai kode untuk kunci relasi. Rancangan kode internal harus diupayakan agar mudah dipahami oleh para pengguna. Contoh kode internal adalah kode_propinsi, kode_kabupaten, kode_kecamatan, di mana dalam kehidupan sehari-hari jarang digunakan kode untuk ketiganya.
Contoh Penggunaan Kode dan Data
Untuk menggambarkan beberapa permasalahan yang menjadi alasan pentingnya standarisasi kode data dalam rancangan database, uraian berikut menunjukkan beberapa contoh kasus terkait dengan penggunaan kode data dalam rancangan database.
  • Kode dan data jenis kelamin
Jenis kelamin merupakan item data terkait dengan identitas yang dapat dipastikan selalu digunakan dalam identitas seseorang, seperti data siswa, mahasiswa, dosen, pegawai, karyawan, anggota, pasien, dan lainnya. Jenis kelamin sering dikodekan sebagai “P” dan “W” untuk menyatakan pria dan wanita, atau “L” dan “P” untuk mengkodekan laki-laki dan perempuan, ada juga yang menggunakan kode “1” dan “0”, atau bahkan sekalipun tidak lazim ada juga yang menggunakan “True” dan “False” dengan default “True” yang diartikan sebagai jenis kelamin laki-laki, atau “1” untuk menyatakan laki-laki dan “2” untuk kode perempuan. Dengan demikian, jika ada kode data “P” maknanya bisa jadi akan berbeda jika berada dalam sistem yang berbeda.
  • Kode dan data jenjang pendidikan
Hampir sama dengan data jenis kelamin, kode dan data jenjang pendidikan banyak digunakan dalam identitas seseorang, seperti identitas siswa, mahasiswa, guru, dosen, karyawan, pegawai, dan lainnya. Mengacu pada Dokumen Kamus Data Pendidikan Pangkalan Data Pendidikan Tinggi (PDPT) Dirjen Dikti Kemdiknas (2011), kode dan data jenjang pendidikan adalah sebagai berikut:
Jenjang_pendidikan Numeric[Auto Increment]
Keterangan:
1 = S3            4 = D4           7 = D1
2 = S2           5 = D3           11 = non akademik
3 = S1           6 = D2
Mengacu pada Kepmenkes No. 844 Tahun 2006), kode dan data jenjang pendidikan adalah sebagai berikut:
Jenjang_pendidikan Numeric [Auto Increment]
Keterangan:
01 = SD                06 = D3                                11 = D3/A3                       16 = S2
02 = SMP            07 = Sarjana Muda         12 = D4                               17 =S3
03 = SMA            08 = D3/A2                       13 = S1
04 = D1                 09 = Akademi                  14 = A4
05 = D1/A1         10 = D3                               15 = Spesialis 1/2/AV
Mengacu pada Keputusan Gubernur DIY No. 3 Tahun 2005, kode dan data jenjang pendidikan adalah sebagai berikut:
Jenjang_pendidikan Char[1]
Keterangan:
1 = Tidak sekolah         4 = SLTA/sederajat                    7 = Pascasarjana
2 = SD/sederajat          5 = Akademi/PT
3 = SLTP/sederajat     6 = Universitas
Dengan demikian, jika ada kode data jenjang pendidikan “1” maknanya akan
berbeda jika berada dalam sistem yang berbeda, bisa berarti “S3”, “SD”, atau “tidak sekolah”.
  • Kode dan data wilayah
Mirip dengan data jenis kelamin, kode dan data wilayah juga merupakan item data yang penting dan digunakan dalam identitas seseorang, bahkan lebih luas karena juga digunakan untuk identitas perusahaan, lembaga, dan lainnya. Mengacu pada Permendagri No. 66 Tahun 2011, kode dan data wilayah dalam dalam Sistem Informasi Administrasi Kependudukan (SIAK) yang dikembangkan oleh Kemendagri dikodekan sebagai berikut:
Kode propinsi Char[2]
Kode Kabupaten/Kota Char[2]
Kode Kecamatan Char[2]
Contoh penggunaan kode wilayah dalam SIAK adalah sebagai berikut:
34 = kode wilayah Propinsi DIY
01 = kode wilayah Kabupaten Kulon Progo
01 = kode wilayah Kecamatan Temon
Untuk mengkodekan wilayah Kecamatan Temon, Kabupaten Kulon Progo, Propinsi DIY dinyatakan sebagai “340101”. Mengacu pada UU No. 52 Tahun 2009, Nomor Induk Kependudukan (NIK) penduduk dikodekan 16 digit dengan format berikut:
AABBCCDDEEFFGGGG
Keterangan:
AA (1‐2): kode propinsi NIK diterbitkan
BB (3‐4): kode kabupaten/kota NIK diterbitkan.Angka 70 menandakan nama “kota”
CC (5‐6): kode kecamatan NIK diterbitkan
DD (7‐8): tanggal lahir. Jika perempuan, tanggalnya ditambah 40.
EE (9‐10): bulan lahir
FF( 11‐12): dua angka terakhir tahun lahir.
GGGG (13‐16):nomor urut 0001‐9999, berurutan sesuai dengan12 angka sebelumnya.
Sementara itu, jika mengacu pada Kepmenkes No. 844 Tahun 2006, kode wilayah adalah sebagai berikut:
Kode propinsi Char[2]
Kode Kabupaten/Kota Char[2]
Kode Kecamatan Char[2]
Kode Desa Char[3]
Dibandingkan dengan kode dan data wilayah dalam SIAK dan e-KTP, perbedaan
kode wilayah terjadi pada penetapan kode desa. Mengacu pada Dokumen Kamus Data Pendidikan Pangkalan Data Pendidikan Tinggi (PDPT) Dirjen Dikti Kemdiknas (2011), kode dan data wilayah adalah sebagai berikut:
Kode propinsi Numeric[Autoincrement]
Kode Kabupaten/Kota Numeric[Autoincrement]
Perbedaan kode dan data wilayah terjadi pada tipe dan ukuran data.Penggunaan tipe data numerik untuk kode propinsi dan kode kabupaten tidak lazim digunakan untuk item data yang tidak akan dioperasikan secara aritmatika, di samping itu penggunaan autoincrement menunjukkan indikasi hanya untuk memudahkan proses pemrograman saja. Mengacu pada Keputusan Gubernur DIY No. 3 Tahun 2005, kode dan data wilayah adalah sebagai berikut:
Kode propinsi Char[2]
Kode Kabupaten/Kota Char[2]
Kode Kecamatan Char[2]
Dibandingkan dengan kode dan data wilayah dalam SIAK dan e-KTP, perbedaan
kode wilayah terjadi pada penetapan kode wilayah, yaitu:
12 = kode wilayah Propinsi DIY
04 = kode wilayah Kabupaten Kulon Progo
02 = kode wilayah Kecamatan Temon
Sehingga untuk mengkodekan wilayah Kecamatan Temon, Kabupaten Kulon Progo, Propinsi DIY dinyatakan sebagai “120402000” dimana 3 digit terakhir menyatakan urutan desa dalam masing-masing kecamatan.
  • Kode dan data lainnya
Di samping perbedaan penggunaan kode dan data dalam contoh-contoh di atas, ada beberapa contoh lain perbedaan kode dan data yang berpotensi menimbulkan problem, di antaranya terjadi dalam penggunaan kode dan data pada Nomor Induk Dosen Nasional (NIDN) dengan format NIDN Char[10], Nomor Pokok Sekolah Nasional (NPSN) dikodekan dengan format NPSN Char[10], Nomor Indukn Siswa Nasional (NPSN) dikodekan dengan format NISN Char[10], Nomor Unik Pendidik dan Tenaga Kependidikan (NUPTK) dikodekan dengan format NUPTK Char[9].

 

Cara Merancang Web

0 komentar
Bagaimana Cara Merancang Sebuah Website ?

               
Banyak sekali cara-cara yang digunakan oleh beberapa orang untuk membuat website. Dan kali  ini Anda akan diberitahu hal-hal yang penting dalam Pembuatan Website agar terlihat menarik dan hanya membutuhkan bentuk yang sederhana. Apa saja yang diperhatikan sebelum membuat website?, perhatikanlah hal-hal berikut ini :

1.Tentukan Sasaran Pembaca Web Page Anda, apabila sasaran pembaca WebPage Anda adalah orang lokal, lebih baik Anda menggunakan Bahasa Indonesia pada dokumen web Anda. Agar lebih dapat dipahami dan lebih cepat memberikan reaksi atas WebPage Anda.
Sedangkan, bila sasaran pembaca WebPage Anda adalah orang diseluruh dunia, gunakanlah bahasa Inggris yang merupakan bahasa International pada dokumen web Anda. Dan tidak ada salahnya apabila dokumen web Anda dibuat dalam tiga atau empat bahasa, yang dipergunakan oleh orang diseluruh dunia.

2.Tentukan Tujuan dari WebSite Anda, didalam pembuatan Website, sebelumnya Anda harus menentukan tujuan dari Website yang Anda bikin atau Anda buat. Apakah website tersebut untuk mempublikasikan diri Anda sendiri atau Anda ingin mempublikasikan Perusahaan Anda dan barang-barang produksi Perusahaan Anda, dll. Bagaimanapun bentuk tujuan dari Website atau dokumen Website yang Anda buat, harus jelas agar pembaca Website Anda dapat lebih mengerti dan memahami tujuan dari Website Anda.

3.Buat Struktur WebPage Anda, sebelum Anda membuat dokumen Web Anda, alangkah lebih baik apabila Anda pertimbangkan dulu bagaimana cara mengelola dokumen Web Anda. Buatlah struktur dari dokumen yang Anda buat dengan jelas dan teliti agar tidak menyimpang dari tujuan pembuatan WebSite Anda.


Mungkin Anda Sering Mendengar WWW. Namun apakah kalian mengetahui arti dari WWW ?

WWW (World Wide Web) atau yang biasa disebut Web, adalah suatu kumpulan informasi pada beberapa server komputer yang terhubung antara satu dengan yang lain dalam jaringan Internet. Informasi dalam web mempunyai link yang menghubungkan informasi ke informasi lain didalam Internet. Link memiliki tanda khusus, baik berupa teks bergaris bawah dan berwarna, ikon atau bisa juga berupa gambar. Bila anda ingin mengetahui apakah teks atau gambar merupakan link dari suatu informasi lihatlah perubahan pada penunjuk mouse. Jika berubah menjadi gambar tangan, maka tulisan/teks dan gambar tersebut merupakan link dari suatu informasi yang terdapat di Internet.

World Wide Web
Dalam bekerja dengan Web terdapat dua hal yang penting yaitu Web Browser atau yang lebih dikenal Browser dan Software Web Server. Kedua software seperti sebuah sistem Client-Server. Web browser bertindak sebagai client dan Web server sebagai server. Client memungkinkan Anda untuk mengiterprestasikan dan melihat informasi pada Web sedangkan server memungkinkan Anda untuk menerima informasi yang diminta oleh browser.

Sekarang anda sudah mengetahui tentang WWW. Selain WWW Anda juga sering mendengar tentang HTML ? Apakah Anda mengetahui apa itu HTML ?

HTML (Hypertext Markup Language)

HTML adalah suatu format data yang digunakan untuk membuat dokumen Hypertext yang dapat dibaca dari satu Platform komputer ke Platform komputer lain tanpa perlu melakukan perubahan apapun.Dokumen HTML dapat disebut juga Markup Language karena mengandung tanda-tanda tertentu yang digunakan untuk menentukan tampilan suatu teks dan tingkat kepentingan dari teks tersebut dalam suatu dokumen.Sistem yang digunakan dalam menghubungkan satu informasi dengan informasi yang lainnya melalui Link yaitu hypertext yang kemudian berubah menjadi hypermedia yang dimana link-link penghubung bukan lagi berbentuk teks tetapi dapat juga berbentuk gambar, suara atau juga video.

Nah sekarang kita Mulai berlatih membuat satu dokumen HTML, Pertama yang kita lakukan buka Program notepad yang sudah tersedia pada windows. Sebetulnya kita juga bisa memakai Program Microsoft Front page atau Macromedia Dream Weaver, Tapi untuk saat ini lebih mudah dan rapih memakai notepad. Kedua ketik dan simpan kedalam HardDisk atau disket dengan nama file latih.html ( jangan lupa setiap kita ingin menyimpan file html sertakan pula ekstensi html dibelakang nama file ) .

Rancangan dan langkah Membuat Situs WEB

0 komentar

Dalam membuat sebuah website ada beberapa hal yang perlu Anda persiapkan sebelum Anda memulainya.

Ajukan sebuah pertanyaan kepada diri Anda sendiri yaitu “Apa tujuan Saya membuat website?” dengan menjawab pertanyaan tersebut dapat mengarahkan pikiran Anda untuk menentukan dan menjawab pertanyaan selanjutnya yaitu, “Website seperti apa yang akan saya buat untuk mencapai tujuan tersebut dan bagaimana cara membuat websitenya.”

Mengapa dimulai dengan mengajukan pertanyaan tersebut? Karena diharapkan nantinya website yang kita buat sesuai dengan yang kita inginkan dan bisa membawa kita mencapai tujuan yang kita inginkan dalam membuat website. Jangan sampai website sudah selesai Anda buat tetapi website yang Anda buat tidak sesuai dan tidak bisa menjadi media atau sarana untuk mencapai tujuan Anda.

Perlu Anda ketahui, jenis website itu bermacam-macam, ada yang hanya satu halaman sederhana saja seperti website ini, ada yang memuat beberapa halaman seperti website perusahaan, ada yang menggunakan sistem blog dan sering disebut juga blog atau weblog (website blog), ada yang menggunakan sistem CMS (Content Management System) seperti joomla, ada yang berupa forum diskusi, ada yang berupa website iklan baris, ada yang berupa website toko online dan ada yang lebih kompleks lagi seperti website komunitas friendster.

Anda perlu memulainya dengan menjawab pertanyaan-pertanyaan tersebut sebelum Anda membuat website. Sehingga nanti Anda bisa memutuskan website seperti apa yang paling cocok dan sesuai untuk mencapai tujuan Anda. Karena masing-masing jenis website yang saya sampaikan diatas memiliki fungsi yang berbeda-beda.

Contoh bila Anda ingin menjual berbagai macam produk, Anda membuat website toko online; bila Anda ingin menjual satu jenis produk saja bisa dengan satu halaman sederhana saja atau lengkap dengan menggunakan sistem pemesanannya; bila Anda ingin membuat website portal Anda bisa menggunakan Joomla; bila Anda ingin membangun branding dan mempublikasikan artikel bisa menggunakan blog; dan lain-lainnya.

Langkah-langkah yang perlu anda lakukan untuk memiliki situs web sebagai berikut :

1. Buat file web menggunakan Frontpage atau web editor lainnya. Simpan file halaman depan atau halaman utama dengan nama "index.htm" atau "index.html". Hubungkan file-file web, file gambar, dll. dengan menggunakan fasilitas hyperlink di web editor yang anda gunakan.

2. Pilih domain gratis di www.co.cc lalu setup maksimal dalam 48 jam dengan mengubah name server sesuai web hosting yang anda gunakan. Untuk freehostia, gunakan name server : dns1.freehostia.com dan dns2.freehostia.com. Jika menggunakan AwardSpace, kode name server akan anda dapatkan melalui email, misalnya ns5.awardspace.com dan ns6.awardspace.com
Biasanya domain premium akan dikenakan harga $3. Domain premium biasanya domain yang berbahasa Inggris dan terdiri dari 1 suku kata saja. Kalo mau yang gratis, sebaiknya pilih domain berbahasa Indonesia dan terdiri dari 2 atau 3 suku kata seperti website saya ini bikin-web-gratis (3 suku kata).
Anda juga bisa menggunakan domain gratis lainnya dengan ekstensi co.tv. Silahkan cek domain co.tv yang masih tersedia gratis dan segera klaim sebelum didahului orang lain melalui fasilitas pencarian berikut ini :

3. Buat account di webhosting gratisan di www.freehostia.com atau AwardSpace lalu add-on domain yang sudah dipilih tersebut.

4. Upload file web dan file pendukung ke server freehostia/awardspace.

5. Jika semuanya berjalan dengan baik maka seharusnya anda sudah bisa melihat website anda setelah melalui proses di atas.

Dasar ALGORITMA

1 komentar
PENGERTIAN DASAR

Algoritma :

  • Rangkaian langkah langkah/alur pikiran untuk menyelesaikan suatu masalah yang sifatnya logis dan sistimatis.
Sifat - sifat Algoritma :
  • Mudah dibaca/jelas maksudnya (tiap langkah jelas uraiannya)
  • Berawal dan berakhir
  • Tidak harus ada data masukan yang dimasukkan dari luar
  • Paling tidak ada satu keluaran
  • Tiap instruksi harus efektif
Bahasa pemrograman :
  • Bahasa komputer yang digunakan dalam penulisan program
Pemrogram/Programmer :
  • Orang yang membuat program komputer
Pemrograman :
  • Kegiatan merancang atau menulis program komputer
Perangkat Utama Komputer
Gambar 1: Perangkat Utama Komputer


tahap Pelaksanaan Program
Gambar 2: tahap Pelaksanaan Program Oleh Komputer

STRUKTUR DASAR ALGORITMA

Algoritma berupa langkah-langkah penyelesaian suatu masalah. Langkah-langkah tersebut dapat berupa :

1. Runtunan (sequence)
2. Pimilihan (Selection)
3. Pengulangan (repetition)

NOTASI ALGORITMIK

Notasi Algoritmik bukan notasi bahasa pemrograman sehingga siapapun dapat membuat notasi algoritmik yang berbeda. Namun demikian ketaatan atas notasi perlu diperhatikan untuk menghindari kekeliruan.


Beberapa notasi yang digunakan untuk menulis algoritma :
  • Untaian kalimat
    Setiap langkah dinyatakan dengan bahasa yang gamblang/
  • Menggunakan diagram alir (flow chart)
  • Menggunakan pseuo-code
    Pseudo : semu, tidak sebenarnya, pura-pura; adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi

simbol-simbol diagram alir
Gambar 3 : Simbol - Simbol diagram Alir

pseudo code
Gambar 4 : Pseudo-Code

Teks algoritma (pseudo-code) terdiri dari :
  • Head(Judul) : memberikan nama pada algoritma; umumnya nama sudah dapat memberi gambaran pada prosedur penyelesaian masalah atau masalah yang akan diselesaikan
  • Deklarasi : menyatakan jenis dari setiap elemen data (variabel) yang akan digunakan dalam algoritma.
  • Deskripsi : merupakan inti prosedur penyelesaian masalah; meliputi pernyataan/operasi, fungsi, penjelasan, dll.

CONTOH ALGORITMA
I. Untaian kalimat deskriftif

ALGORITMA Euclidean
Diberikan dua buah bilangan bulat positif m dan n (m ≥ n). Algoritma Euclidean mencari pembagi bersama terbesar dari kedua bilangan tersebut, yaitu bilangan positip terbesar yang habis membagi m dan n

DESKRIPSI :
1. Jika n = 0 maka
           m adalah jawabannya;
           Stop.
Tetapi jika n ≠0,
           Lanjutkan ke langkah 2.
2. Bagilah m dengan n dan misalkan r adalah sisanya
3. Ganti nilai m dengan nilai n, nilai n dengan nilai r, lalu ulang kembali ke langkah 1.


II. Flow Chart
Gambar 5: Flow Chart

III. Pseudo-Code

ALGORITMA Eucledian
Program mencari pbt, m dan n bil bulat positif

DEKLARASI :
           m, n : integer {bil yg akan dicari pbt-nya}
           r       : integer {sisa hasil bagi}

DESKRIPSI :
           read(m,n) {m ≥n}
           while n ≠0 do
                     r <~ m MOD n "hitung sisa hasil bagi"
                     m <~ n
                     n <~ r
           endwhile
          {kondisi selesai pengulangan: n=0, maka pbt=m}
           write(m)


STRUKTUR BAHASA C++

Struktur Bahasa C++ terdiri dari :
1. Compiler directive (preprocessor)
2. Deklarasi (variabel, fungsi)
3. Tubuh
4. Baris komentar
Struktur Bahasa C++
Gambar 6: Struktur Bahasa C++

ELEMEN-ELEMEN DASAR C++

Identifier/pengenal : suatu nama yang dipakai dalam pemrograman, umumnya diberikan kepada nama :
* Variabel : suatu lokasi dalam memori komputer yang digunakan untuk menyimpan nilai
         * Konstanta
         * Tipe
         * Fungsi
         * Obyek
* Tipe data dasar
* Data Obyek
* Ekspresi aritmetika
* Statemen kontrol
* Fungsi

Ketentuan pemberian nama : 
* Terdiri dari huruf A sampai Z, atau a sampai z, atau underscore ( _ ), atau 0 sampai 9
* Karakter pertama suatu identifier harus huruf atau underscore
* Tidak boleh sama dengan kata kunci (keyword) dalam bahasa C++
* Tidak boleh ada spasi
* Case sensitive : hurup kapital dan hurup kecil diperlakukan beda

Karakter :
   Elemen terkecil pada pemrograman C++ adalah karakter. Karakter dapat berupa :
* Huruf (A sampai Z, a sampai z)
* Angka ( 0 sampai 9)
* Simbol (*, !, dll)
* Kode kontrol (misal newline)

Keywords :
asm, auto, break, case, char, class, const, continue, default, delete, do, double, else, enum, extern, float, for, friends, goto, if, inline, int, long, new, operator, private, protected, public, register, return, short, signed, sizeof, static, struct, switch, template, this, typedef, union, unsigned, virtual, void, volatile, while.

Kode escape :
     kode karakter yang penulisannya diawali dengan simbol \.
Kode escape
Gambar 7: kode karakter yang penulisannya diawali dengan simbol \.
tipe data
Gambar 8: Tipe Data
Tipe data dasar
Gambar 9 Tipe data dasar

Literal Karakter
Literal Karakter digunakan untuk menyatakan sebuah karakter. Karakter ditulis dalam tanda petik tunggal.
Contoh :
‘a’ : karakter huruf a
‘#’ : karakter simbol #
‘8’ : karakter angka 8
‘\n’ : karakter newline

Literal String
String berarti deretan atau kombinasi sejumlah karakter. Literal String ditulis dalam tanda petik ganda.
Contoh :

"Rudy Hartono"
Literal Karakter
“4 x 4 = 16”
"" : string kosong
"abc\ndef" : antara abc dan def terdapat newline
"abc\tdef" : antara abc dan def terdapat tab

Konstanta Bernama 
Contoh : const double PI=3.14; menyatakan bahwa PI adalah literal bertipe double dengan nilai 3,14. kata kunci const menyatakan bahwa PI tak dapat diubah setelah didefinisikan. 

Variabel 
Menyatakan suatu lokasi dalam memori komputer yang digunakan untuk menyimpan suatu nilai dan nilai yang ada didalamnya bisa diubah. 
       Deklarasi variabel : 
             int a; 
             int a, b; 
             int a=30; 
             cin>>usia; 

Pernyataan
Pernyataan adalah suatu instruksi lengkap yang berdiri sendiri dan ditunjukan untuk melaksanakan suatu tugas tertentu. Sebuah pernyataan selalu diakhiri oleh tanda titik koma.
Contoh :
       luas=panjang*lebar;
       const double PI=3.14;

TIPE DATA dan MEMBACA-MENCETAK NILAI KONSTANTA

I. Instruksi Baca – Tulis dalam bahasa C/C++
intruksi Baca

II.Mencetak sebuah kalimat (literal String) pada program C.
literal string
III. Mencetak sebuah karakter pada program C.
       Sebuah karakter disimpan dalam satu BYTE (8 bit)
       printf(“%c”,data);
Catatan :
           Yang dimaksud dengan karakter diatas adalah karakter ASCII (American Standard Code for
           Information Interchange)

Perhatikan program berikut :

IV.Mencetak karakter escape pada program C.
V. Mencetak konstanta numerik pada program C.

    Printf(“format”,var);
    Format yang dapat digunakan :

VI. Menginput data melalui keyboard pada program C


MASALAH TIPE DATA

1. Char


2. Unsigned Char


3. Short


4. Unsigned Short

5. int


6. unsigned int


Dasar Algoritma dan Pemograman

0 komentar
Dasar - Dasar Algoritma dan Bahasa Pemrograman

Sebelum belajar algoritma pemrograman, akan lebih baik kita pahami terlebih dahulu langkah-langkah pembuatan suatu program. Terdapat beberapa langkah umum dalam pembuatan suatu program yaitu:
  1. Mendefinisikan masalah
  2. Mencari solusinya
  3. Menentukan algoritma
  4. Menulis program
  5. Menguji program
  6. Mendokumentasikan program
  7. Merawat program
Mendefinisikan masalah
Langkah yang pertama dilakukan adalah mendefinisikan permasalahan. langkah ini harus dilakukan untuk menentukan masalah yang ada serta ditentukan pula input dan output program.
Mencari solusi
Kemudian ditentukan solusi dari permasalahan yang dihadapi. Bila untuk mendapatkan solusi harus melalui langkah yang terlalu rumit dapat dilakukan pembagian masalah dalam beberapa modul-modul kecil agar mudah untuk dikerjakan. Lalu modul-modul kecil tersebut digabungkan menjadi satu untuk dapat menentukan solusi.
Menentukan algoritma
Dalam pemilihan algoritma, pemrogram atau analis harus menggunakan algoritma yang sesuai dan efisien untuk masalah yang dihadapi.
Menulis program
Penulisan program bisa dilakukan dengan menggunakan bahasa pemrograman yang dikuasai dan memiliki kompabilitas dengan perangkat keras yang akan menggunakan program tersebut.
Menguji program
Bila program sudah selesai dibuat, pengujian diperlukan untuk mengetahui apakah program yang dibuat sudah layak untuk digunakan.
Mendokumentasikan program
Penulisan dokumentasi yang biasanya dilupakan oleh pemrogram menjadi sangat penting saat akan dilakukan perubahan pada program yang dibuat. penulisan program ini dapat dilakukan dengan menulis komentar pada source code tentang kegunaannya (variabel, parameter, procedur, fungsi).
Merawat program
Program yang sudah selesai dibuat juga perlu dirawat dengan pendeteksian bug yang belum diketahui sebelumnya juga penambahan fasilitas baru yang mempermudah pengguna program.
Dari penjelasan diatas, dapat kita peroleh kesimpulan bahwa pembelajaran algoritma pemrograman adalah bagian dari langkah-langkah pembuatan program. Untuk lebih jelasnya tentang algoritma pemrograman akan diulas sebagai berikut :
Algoritma
Definisi dari algoritma antara lain :
–  Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis.
– Algoritma adalah urutan logis pengambilan keputusan untuk pemecahan masalah.
– Algoritma adalah urutan langkah-langkah berhingga untuk memecahkan masalah logika atau matematika.
– Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan  untuk memecahkan suatu permasalahan.
Menurut Donald E. Knuth dalam bukunya yang berjudul The Art of Computer Programming, algoritma harus mempunyai lima ciri penting :
1. Algoritma harus berhenti setelah mengerjakan sejumlah langkah terbatas (berhingga)
2. Setiap langkah harus didefinisikan dengan tepat dan tidak berarti-dua (ambiguous)
3. Algoritma memiliki nol atau lebih masukan (input)
4. Algoritma mempunya nol atau lebih keluaran (output)
5. Algoritma harus efektif dan efisien.
 PROGRAM
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 kata program seringkali dipertukarkan dalam penggunaannya.  Algoritma adalah urutan langkah-langkah penyelesaian 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 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 oleh komputer. Secara garis besar komputer tersusun atas empat komponen utama, yakni:
1. piranti masukan berfungsi untuk memasukkan data atau program ke dalam memori komputer
2. piranti keluaran berfungsi untuk menampilkan hasil dari eksekusi program komputer
3. unit pemroses utama berfungsi mengerjakan operasi-operasi dasar
4. memori berfungsi untuk menyimpan program dan data atau informasi.
Proses Eksekusi Program
Mekanisme eksekusi sebuah program adalah sebagai berikut:
1. Program disimpan di dalam memori melalui piranti masukan.
2. Ketika sebuah program dieksekusi maka setiap instruksi  program akan dikirim dari memori ke unit pemroses utama. Unit pemroses utama kemudian akan menjalankan operasi sesuai instruksi-instruksi yang dibaca.
3. Apabila sebuah instruksi membutuhkan data masukan, maka piranti masukan akan membaca data masukan, mengirimkan ke memori kemudian mengirimkan ke unit pemroses utama untuk diproses.
4. Apabila eksekusi program menghasilkan data keluaran, maka data keluaran akan disimpan di dalam memori, kemudian dikirim ke piranti keluaran.
Perbedaan interpreter dan compiler
Interpreter
1. Menerjemahkan instruksi per instruksi.
2. Source program tidak harus ditulis lengkap.
3. Bila terjadi kesalahan instruksi, dapat langsung diperbaiki secara interaktif.
4. Tidak menghasilkan objek program
5. Pemrosesan program lebih lambat, karena setiap instruksi yang dikerjakan harus diinterpretasi ulang.
6. Source code program terus dipergunakan.
Compiler
1. Menerjemahkan secara keseluruhan.
2. Source program harus ditulis lengkap.
3. Bila terjadi kesalahan dalam kompilasi, source program harus dibenarkan dan proses kompilasi diulang kembali.
4. Menghasilkan objek program.
5. Pemrosesan program lebih cepat, karena program sudah dalam bahasa mesin.
6. Source code program dipergunakan satu kali pada saat kompilasi program.
PENULISAN ALGORITMA
Pada umumnya terdapat tiga jenis cara penulisan algoritma, yakni :
1.  Cara deskriptif
Dengan notasi ini, deskripsi setiap langkah dijelaskan dengan bahasa yang jelas. Contohnya : Algoritma 
Bilangan_Maksimum
Diberikan tiga buah bilangan bulat. Carilah bilangan bulat maksimum di antara ketiga bilangan tersebut.
Deskripsi :
(1) baca bilangan 1.
(2) baca bilangan 2.
(3) bandingkan bilangan 1 dan bilangan 2, kita ambil yang lebih besar, jika kedua bilangan tersebut sama besar, dapat kita ambil bilangan 1, dan sebut bilangan tersebut MAX.
(4) baca bilangan 3.
(5) bandingkan MAX dengan bilangan 3, dan pilih yang lebih besar, jika keduanya sama besar, pilih MAX dan sebut bilangan tersebut MAX.
(6) keluarkan sebagai output MAX.
2. Pseudocode
Pseudocode  adalah notasi yang menyerupai bahasa pemrograman tingkat tinggi. Keuntungan menggunakan notasi  pseudocode  adalah  memberikan kemudahan bagi  programmer  untuk menerjemahkan  ke  notasi bahasa pemrograman, karena terdapat korespondensi antara  setiap pseudocode dengan notasi bahasa pemrograman.
Contoh : Algoritma Bilangan_Maksimum
{ Dibaca tiga buah bilangan dari piranti masukan. Carilah bilangan bulat maksimum di antara ketiga bilangan tersebut }
Deklarasi :
Bil1,Bil2,Bil3 : integer {bilangan yang dicari maksimumnya}
MAX : integer {variabel bantu}
Deskripsi :
read(Bil1,Bil2)
if (Bil1>=Bil2) then
Bil1←MAX
else
Bil2←MAX
read(Bil3)
if (Bil3>=MAX) then
Bil3←MAX
write(MAX)
3. Flowchart
Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-rutan prosedur dari suatu program.  Flowchart menolong analis dan programmer  untuk memecahkan masalah ke  dalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian. Bila seorang analis dan  programmer  akan membuat  flowchart, ada  beberapa petunjuk yang harus diperhatikan, seperti:
1.  Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
2.  Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
3. Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
4. Setiap langkah dari aktivitas harus diuraikan dengan menggunakan  deskripsi kata kerja, misalkan MENGHITUNG PAJAK PENJUALAN.
5. Setiap langkah dari aktivitas harus berada pada urutan yang benar
6. Gunakan simbol-simbol flowchart yang standar.
Simbol-simbol yang sering digunakan dalam flowchart antara lain:
Contoh flowchart untuk menghitung jumlah dua buah bilangan yakni sebagai berikut :
Berdasarkan white paper resmi dari SUN, Java memiliki karakteristik berikut :
1.  Sederhana (Simple) Bahasa pemrograman Java menggunakan sintaks mirip dengan C++ namun sintaks pada Java telah banyak diperbaiki terutama menghilangkan penggunaan  pointer  yang rumit dan multiple  inheritance. Java juga menggunakan automatic memory allocation dan memory garbage collection.
2. Berorientasi objek (Object Oriented) Java mengunakan pemrograman berorientasi objek yang membuat program dapat dibuat secara modular dan dapat dipergunakan  kembali. Pemrograman berorientasi objek memodelkan dunia nyata ke  dalam objek dan melakukan interaksi antar objek-objek tersebut
3. Terdistribusi (Distributed) Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya networking libraries yang terintegrasi pada Java
4. Interpreted Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM). Hal ini menyebabkan source  code  Java yang telah dikompilasi menjadi Java  bytecodes  dapat dijalankan pada  platform yang berbeda-beda
5. Robust Java mempuyai reliabilitas yang tinggi.  Compiler  pada Java mempunyai kemampuan mendeteksi  error secara lebih teliti dibandingkan bahasa pemrograman lain. Java mempunyai  runtime-exception handling untuk membantu mengatasi error pada program.
6. Secure Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk merusak sistem komputer yang menjalankan aplikasi tersebut
7. Architecture Neutral Program Java  bersifat  independent  platform. Program cukup mempunyai satu buah versi yang dapat dijalankan pada platform berbeda dengan menggunakan Java Virtual Machine
8. Portable Source code maupun program Java dapat dengan mudah dibawa ke platform yang berbeda-beda tanpa harus dikompilasi ulang
9. Multithreaded Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan beberapa pekerjaan secara sekaligus dan simultan
10. Dynamic Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada suatu class dengan menambahkan  properties ataupun  method  dapat dilakukan tanpa menggangu program yang menggunakan class tersebut.
Mekanisme eksekusi program di Java
Lingkungan pemrograman pada Java menggunakan  compiler  sekaligus interpreter  agar dapat berjalan pada platform  yang berbeda. Java  compiler melakukan kompilasi pada  source  code  (.java) menjadi Java  bytecodes (.class) seperti ditunjukkan oleh Gambar Berikut :
Program Java hasil kompilasi akan dapat dijalankan pada berbagai platform sistem komputer dengan menggunakan Java Virtual machine (JVM). JVM disebut juga bytecodes interpreter atau Java runtime interpreter. Tidak seperti bahasa pemrograman lainnya, platform Java mempunyai dua komponen, yaitu:
1. Java  Virtual  machine  (JVM)  yang merupakan fondasi untuk platform Java yang dapat digunakan di berbagai platform perangkat keras.
2. Java  Application  Programming  Interface  (Java API)yang merupakan kumpulan komponen-komponen perangkat lunak siap pakai untuk berbagai keperluan penulisan program.

MEMAHAMI ALGORITMA

0 komentar
DASAR-DASAR ALGORITMA DAN PEMROGRAMAN

Dewasa ini, komputer digunakan di hampir se­mua bidang kehidupan manusia, mulai dari pendidik­an, bisnis, sampai dengan permainan. Berbicara tentang komputer tidak lepas dari pemrograman komputer. Hal ini karena komputer pada dasarnya adalah mesin yang tidak bisa apa-apa. Kita harus memberikan serangkaian instruksi kepada komputer agar mesin 'pintar' ini dapat memecahkan suatu masalah. Langkah-langkah yang kita lakukan dalam memberikar. instruksi kepada komputer untuk memecahkan masalah inilah yang dinamakan pemrograman komputer.

 
Pemrograman Komputer

Dalam kehidupan sehari-hari, untuk berkomu­nikasi dengan orang lain, kita harus menggunakan bahasa yang sama dengan orang tersebut. Apabila kita menggunakan Bahasa Indonesia, lawan bicara kita juga harus mengerti Bahasa Indonesia. Kalau lawan bicara kita tidak mengerti Bahasa Indonesia, kita masih bisa berkomunikasi dengannya melalui seorang penerjemah.
Dalam pemrograman komputer, berlaku juga hal seperti di atas. Kita harus menggunakan bahasa yang dimengerti oleh komputer untuk memberikan suatu instruksi.
Pada dasarnya, komputer adalah mesin digital, artinya komputer hanya mengenal kondisi ada arus listrik (biasanya dilambangkan dengan 1) dan tidak ada arus listrik (biasanya dilambangkan dengan 0). Dengan kata lain, kita harus menggunakan sandi 0 dan 1 untuk melakukan pemrograman komputer. Bahasa pemro­graman yang menggunakan sandi 0 dan 1 ini disebut bahasa mesin. Mungkin Anda sudah bisa membayang­kan bagaimana sulitnya memprogram dengan bahasa mesin. Namun Anda tidak perlu kuatir karena dewasa ini jarang sekali orang yang memprogram dengan bahasa mesin.
Karena bahasa mesin sangat susah, maka muncul ide untuk melambangkan untaian sandi 0 dan 1 dengan singkatan kata yang lebih mudah dipahami manusia. Singkatan kata ini kemudian sering disebut mnemonic code. Bahasa pemrograman yang menggunakan singkat­an kata ini disebut bahasa assembly.
Sebagai contoh, dalam prosesor Intel, terdapat perintah 0011 1010 0000 1011. Perintah dalam bahasa mesin ini sama artinya dengan perintah assembly CMP AL, OD, yang artinya bandingkan nilai register AL dengan 0D. CMP di sini sebenarnya adalah singkatan dari CoMPare. DapatAnda lihat di sini bahwa perintah CMP AL, 0D jauh lebih mudah dipahami daripada 0011 1010 0000 1011. Tentu saja ini jika dilihat dari sudut pandang manusia, bagi komputer, kombinasi 0 dan 1 tentu lebih mudah dipahami. Perangkat lunak yang mengkonversikan perintah-perintah assembly ke dalam bahasa mesin sering disebut juga assembler.
Pemrograman dengan bahasa assembly dirasa­kan banyak orang masih terlalu sulit, termasuk saya sendiri. Sesusai dengan sifat manusia yang tidak pernah puas, akhirnya dikembangkan suatu bahasa pemro­graman yang lebih mudah digunakan. Bahasa pemro­graman ini menggunakan kata-kata yang mudah di­kenali oleh manusia. Bahasa pemrograman seperti ini disebut bahasa generasi ketiga atau disingkat 3GL (third­generation language). Beberapa orang menyebut bahasa ini dengan bahasa tingkat tinggi atau disingkat HLL (high-level language). Ada banyak contoh bahasa generasi ketiga, antara lain: Basic, Pascal, C, C++, CO­BOL, dsb.

Bahasa generasi ketiga biasanya menggunakan kata-kata dalam bahasa Inggris karena memang bahasa tersebut adalah bahasa internasional. Sebagai contoh, Anda dapat menuliskan perintah berikut dalam bahasa Pascal:
writeln (‘Algoritma’);
atau perintah berikut dalam bahasa C:
printf (“Algoritma\n\r”);
atau perintah berikut dalam bahasa C++:
cout « “Algoritma” « endl;
Ketiga pernyataan di atas bertujuan sama, yaitu menuliskan teks 'Algoritma' ke keluaran standar (stan­dard output), biasanya ke layar komputer.
Ketiga perintah sederhana di atas sebenarnya terdiri dari puluhan atau mungkin bahkan ratusan per­nyataan assembly. Perangkat lunak yang menerjemah kan program dalam bahasa manusiawi ke dalam bahasa assembly atau mesin ada dua macam, yaitu interpreter dan kompiler.
Interpreter menerjemahkan program baris per baris, artinya jika suatu baris akan dieksekusi, maka baris tersebut diterjemahkan terlebih dulu ke bahasa mesin. Apabila baris berikutnya akan dieksekusi, maka baris tersebut baru diterjemahkan ke dalam bahasa me­sin. Contoh bahasa pemrograman yang menggunakan interpreter adalah Basic.
Kompiler menerjemahkan semua perintah ke dalam bahasa mesin kemudian menjalankan hasil penerjemahan. Hasil penerjemahan ini bisa disimpan dalam file atau memori. Contoh bahasa pemrograman yang menggunakan kompiler adalah Pascal, C, dan C++. Khusus untuk Pascal, ada beberapa kompiler tetapi memang jumlahnya tidak banyak, misalnya Turbo Pascal (http://www.innrise.com), GNU Pascal (http://didaktik.physik.uni-essen.de/-gnu-pascal/ home.html), Free Pascal (http://www.freepascal.sk), dsb. Meskipun demikian, kompiler Pascal yang paling banyak digunakan adalah Turbo Pascal. Jadi buku ini juga menggunakan Turbo Pascal sebagai acuannya.
Perkembangan bahasa pemrograman tidak sampai pada bahasa generasi ketiga saja. Ada generasi lanjutan bahasa pemrograman, yaitu bahasa generasi keempat atau disingkat 4GL (fourth-generation language). Bahasa ini banyak digunakan untuk mengembangkan aplikasi basis data (database). Salah satu contohnya adalah SQL (Structured Query Language). Pada bahasa ini, perintah-perintah yang digunakan lebih manusiawi, misalnya "SELECT Nama, Alamat FROM Karyawan", untuk mengambil data Nama dan Alamat dari basis data Karyawan.
Dari penjelasan singkat ini, saya berharap Anda dapat memahami di manakah sebenamya posisi bahasa Pascal ditinjau dalam pemrograman komputer. Pada subbab berikutnya, saya akan membahas di manakah posisi algoritma dalam pemrograman komputer.

Langkah-langkah dalam Pemrograman Komputer

Dalam melakukan suatu kegiatan, tentu saja kita memerlukan langkah-langkah yang harus dilalui. Orang tidur saja, menurut para dokter, melewati beberapa tahapan atau fase. Dalam pemrograman kom­puter, kita juga memerlukan beberapa langkah.
Urutan langkah-langkah yang saya sajikan dalam buku ini tidak bersifat mutlak, artinya Anda tidak harus melakukannya dari langkah pertama, kedua, ketiga, dst. Ada beberapa langkah yang harus atau mungkin diulang sampai berkali-kali. Lebih jauh lagi, buku lain mungkin menyajikan langkah-langkah yang kelihatan­nya berbeda tetapi pada intinya sama. Berikut ini adalah beberapa langkah yang harus dilakukan dalam pemrograman komputer:

1.    Mendefinisikan masalah. Langkah pertama ini sering dilupakan oleh banyak pemrogram. Begitu mereka mendapat perintah untuk membuat suatu program, mereka langsung menulis programnya tanpa mendefinisikan masalahnya terlebih dulu. Saya mengutip kata-kata dari Henry Ledgard da­lam salah satu bukunya tentang Hukum Murphy untuk pemrograman:
Semakin cepat Anda menulis program akan semakin lama Anda menyelesaikannya.

Memang tidak ada bukti ilmiah tentang kata-kata ini, tetapi dari pengalaman pribadi saya ketika menjadi asisten riset di Universitas Gadjah Mada tahun 1995 dan 1996, kata-kata ini ternyata banyak benarnya.

Sebelum menginjak pada langkah kedua, saya ingatkan sekali lagi bahwa langkah pertama, mendefinisikan masalah, sangat vital tetapi sering dilupakan. Tentukan masalahnya seperti apa, kemudian apa saja yang harus dipecahkan dengan komputer, yang terakhir adalah apa masukannya dan bagaimana keluarannya.

2.    Menentukan solusi. Setelah masalah didefinisikan dengan jelas, masukan apa yang diberikan sudah jelas, keluaran apa yang diinginkan sudah jelas, langkah selanjutnya adalah mencari jalan bagai­mana masalah tersebut diselesaikan. Apabila per­masalahan terlalu kompleks, biasanya kita harus membaginya ke dalam beberapa modul kecil agar lebih mudah diselesaikan.
Sebagai contoh, program untuk menghitung invers matriks, dapat dibagi menjadi beberapa modul kecil. Modul pertama adalah meminta masukan dari pengguna berupa matriks bujur sangkar. Modul kedua adalah mencari invers matriks yang dimasukkan pengguna. Modul terakhir adalah me­nampilkan hasilnya kepada pengguna. Anda akan belajar membagi permasalahan ke dalam beberapa modul kecil pada Bab 5, Subrutin.

  3.   Memilih algoritma. Langkah ini merupakan salah satu langkah penting  dalam pemrograman kom­puter. Mengapa? Karena pemilihan algoritma yang salah akan menyebabkan program memiliki unjuk kerja yang kurang baik. Algoritma inilah yang akan saya bahas sepanjang buku ini, jadi saya tidak akan membahasnya panjang lebar di sini.

4.      Menulis program. Pada langkah ini, Anda mulai menuliskan program komputer untuk memecah­kan masalah yang diberikan. Sebagaimana saya jelaskan di awal bab ini, untuk menulis program Anda dapat menggunakan salah satu bahasa ge­nerasi ketiga. Saya tidak merekomendasikan ba­hasa mesin atau assembly karena terlalu sulit dan memboroskan waktu. Ingat ada pepatah lama mengatakan waktu adalah uang. Memang banyak orang yang senang menggunakan assembly de­ngan alasan kecepatan yang tinggi, tetapi waktu yang diperlukan untuk menulis programnya juga sangat lama. Dengan kata lain, harga yang dibayar untuk kecepatan yang tinggi tersebut cukup mahal. Saya juga tidak merekomendasikan bahasa generasi keempat karena penggunaannya lebih banyak dalam dunia basis data.




Ada beberapa hal yang harus dipertimbangkan saat memilih bahasa pemrograman, antara lain masalah yang dihadapi, bahasa pemrograman yang Anda kuasai, dsb. Dalam buku ini, Anda khusus akan menulis program menggunakan bahasa Pascal.

 5.   Menguji program. Setelah program selesai ditulis, Anda harus mengujinya. Pengujian pertama ada­lah: apakah program berhasil dikompilasi dengan baik? Pengujian berikutnya: apakah program dapat menampilkan keluaran yang diinginkan?

Lebih jauh lagi, Anda juga harus menguji program dengan banyak kasus lain. Sering terjadi, suatu program berjalan baik untuk kasus A, B, C; tetapi menghasilkan sesuatu yang tidak diinginkan untuk kasus X, Y, dan Z.

Langkah keempat dan kelima ini bisa dilakukan berulang-ulang sampai program diyakini benar­-benar berjalan sesuai yang diharapkan.

6.   Menulis dokumentasi. Hal ini biasanya dilakukan bersamaan dengan menulis program, artinya pada setiap baris program atau setiap beberapa baris program, Anda menambahkan komentar yang menjelaskan kegunaan dari suatu pernyataan.

Dokumentasi ini kelihatannya sepele dan banyak dilupakan orang, padahal fungsinya penting sekali. Di masa mendatang, apabila Anda perlu melaku­kan perubahan atau perbaikan terhadap suatu pro­gram, Anda akan merasakan pentingnya dokumen­tasi yang baik. Meskipun demikian, sebagian besar contoh program di buku ini tidak menyertakan do­kumentasi. Hal ini karena dokumentasi dari pro­gram tersebut tidak lain adalah buku ini sendiri.
Dokumentasi yang dijadikan satu dalam program, berupa komentar-komentar pendek, biasanya sudah cukup. Namun akan lebih baik jika Anda juga menuliskannya dalam dokumen tersendiri kemudian mencetaknya di atas kertas jika perlu. Saya memang tidak begitu menyarankan doku­mentasi di atas kertas, tetapi hal yang terpenting adalah menambahkan komentar-komentar singkat di dalam program Anda. Mungkin sekarang Anda berpikir tidak ada gunanya, tetapi percayalah nantinya Anda akan merasakan pentingnya hal ini.

7.        Merawat program. Langkah ini dilakukan setelah program selesai dibuat dan sudah digunakan oleh pengguna Anda. Hal yang paling sering terjadi di sini adalah munculnya bug yang sebelumnva tidak terdeteksi. Atau mungkin juga pengguna ingin tambahan suatu fasilitas baru. Apabila hal-hal seperti ini terjadi, Anda harus melakukan revisi terhadap program Anda.
Apa Itu Algoritma?

Dari materi subbab sebelumnya, Anda sudah mengetahui di manakah posisi algoritma dalam dunia pemrograman komputer atau lebih umumnya lagi dalam dunia komputer. Sekarang saya akan membahas algoritma itu sendiri. Ada beberapa definisi algoritma, tetapi di sini saya menggunakan acuan Microsoft Book­shelf:
Algoritma adalah urutan langkah berhingga untuk memecahkan masalah logika atau matematika.'

Dalam kehidupan sehari-hari, sebenarnya Anda juga menggunakan algoritma untuk melakukan sesuatu. Sebagai contoh, Anda ingin menulis surat, maka Anda perlu melakukan beberapa langkah berikut:
1.    Mempersiapkan kertas dan amplop.
2.    Mempersiapkan alat tulis, seperti pena atau pensil.
3.    Mulai menulis.
4.    Memasukkan kertas ke dalam amplop.
5.    Pergi ke kantor pos untuk mengeposkan surat tersebut.

Langkah-langkah dari nomor 1 sampai dengan nomor 5 di atas itulah yang disebut dengan algoritma. Jadi sebenamya Anda sendiri juga sudah menggunakan algoritma baik sadar maupun tidak sadar.
Dalam banyak kasus, algoritma yang Anda laku­kan tidak selalu berurutan seperti di atas. Kadang-ka­dang Anda harus memilih dua atau beberapa pilihan. Sebagai contoh, jika Anda ingin makan, Anda harus menentukan akan makan di rumah makan atau me­masak sendiri. Jika Anda memilih untuk makan di rumah makan, Anda akan menjalankan algoritma yang berbeda dengan jika Anda memilih memasak sendiri. Dalam dunia algoritma, hal semacam ini sering disebut percabangan.
Dalam kasus lain lagi, Anda mungkin harus melakukan langkah-langkah tertentu beberapa kali. Sebagai contoh, saat Anda menulis surat, sebelum me masukkan kertas ke dalam amplop, mungkin Anda ha­rus mengecek apakah surat tersebut sudah benar atau belum. Jika belum benar, berarti Anda harus memper­siapkan kertas baru dan menulis lagi. Demikian seterus­nya sampai surat Anda sesuai dengan yang diharapkan. Dalam dunia pemrograman, hal semacam ini sering disebut pengulangan.
Contoh Algoritma

Berikut ini adalah contoh algoritma untuk me­mecahkan masalah matematika. Misalkan Anda ingin menghitung luas lingkaran dari masukan berupa jari-­jari lingkaran. Rumus luas lingkaran adalah:
L = π.R2
Berikut ini adalah contoh algoritma untuk meng­hitung luas lingkaran:

1.         Masukkan R.
2.         Pi ← 3,14.
3.         L← Pi*R*R.
4.         Tulis L

Perhatikan terdapat tanda        pada baris kedua dan ketiga. Tanda itu berarti nilai di sebelah kanan di­berikan pada operan di sebelah kiri. Sebagai contoh, untuk baris kedua, nilai 3.14 diberikan pada variabel Pi. Berikutnya, nilai Pi * R * R diberikan pada variabel L.
Baris pertama dari algoritma di atas meminta masukkan dari pengguna berupa jari-jari lingkaran yang disimpan pada variabel R. Pada baris kedua nilai π disimpan pada variabel dengan nama Pi. Baris ketiga menghitung luas lingkaran dengan rumus π R2 atau yang dituliskan Pi * R * R. Luas lingkaran ini disimpan pada variabel L. Baris terakhir menuliskan luas lingkaran tersebut.
 Untuk memudahkan memahami algoritma, biasanya orang menggambarkan suatu diagram alir (flow charf).
Percabangan
Contoh berikutnya adalah algoritma untuk menuliskan nilai absolut dari nilai yang dimasukkan pengguna. Definisi dari nilai absolut adalah sebagai berikut:
│x│= x, jika x >= 0
│x│= -x, jika x < 0

Berikut ini adalah algoritma untuk menuliskan nilai absolut dari masukan pengguna:

1. Masukkan x.
2. Jika (x < 0) maka kerjakan baris 3, jika tidak kerjakan baris 4.
3. x    -x.
4. Tulis x.

Baris pertama meminta masukkan suatu bilangan dari pengguna yang disimpan pada variabel x.
Baris kedua mengecek nilai variabel x lebih kecil dari 0 atau tidak. Jika ya, yang dikerjakan adalah baris ketiga, tetapi jika tidak yang dikerjakan adalah baris keempat.
Baris ketiga membuat nilai x menjadi positif ka­rena baris ini hanya dikerjakan jika nilai x lebih kecil dari 0.
Baris terakhir menuliskan nilai x yang selalu positif.

Pengulangan
 
Berikut ini adalah algoritma untuk menghitung rata-rata data yang dimasukkan pengguna:

1.    Masukkan N.
2. il.
3.    j 0.
4.    Selama (i <= N) kerjakan baris 4 sampai dengan 7.
5.    Masukkan dt.
6.     I i+l.
7.     j j+dt
8.     Rata j / N.
9.    Tulis Rata.

Baris pertama meminta pengguna memasukkan N, yaitu jumlah data.

Pada baris kedua, variabel i, yang berguna sebagai pencacah banyaknya data yang telah dimasukkan pengguna, diberi nilai 1.
Pada baris ketiga, variabel j, yang digunakan un­tuk menyimpan hasil penjumlahan data, diberi nilai 0.
Baris keempat memberikan perintah untuk mengulangi baris keempat sampai dengan baris ketujuh selama i kurang dari sama dengan N. Dengan kata lain, setelah i lebih besar dari N, baris kedelapan yang dijalankan.
Baris kelima meminta masukkan data yang ke-i.
Baris keenam menambah variabel i dengan 1. Perhatikan arti dari perintah i i + 1 adalah nilai I ditambah dengan 1 kemudian hasilnya disimpan pada variabel i kembali.
Baris ketujuh menambah variabel j dengan data yang dimasukkan pengguna. Sebagaimana dijelaskan di atas, variabel j digunakan untuk menyimpan hasil penjumlahan semua data, jadi untuk setiap masukan data, nilai variabel j harus ditambah dengan dt.
Baris kedelapan menghitung rata-rata dengan cara membagi hasil penjumlahan dengan banyaknya data.
Baris terakhir menuliskan rata-rata tersebut.

Catatan Akhir

Sekedar catatan akhir, algoritma sebenarnya di­gunakan untuk membantu Anda dalam mengkonversi­kan suatu permasalahan ke dalam bahasa komputer. Oleh karena itu, banyak pemrogram yang sudah ber­pengalaman tidak pernah menuliskan algoritma di atas kertas lagi. Artinya dia menuliskan algoritma itu di dalam kepalanya dan dia langsung memprogram berdasarkan algoritma di kepalanya itu. Pada bab-bab akhir dari buku ini, Anda akan jarang menemukan pe­nulisan algoritma secara eksplisit seperti di atas karena saya menganggap Anda sudah bisa menuliskannya di dalam kepala.
Pada bab-bab berikutnya, saya tidak akan meng­gambar diagram alir lagi. Apabila Anda kesulitan mem­pelajari algoritma yang disajikan, Anda dapat meng­gambarnya sendiri di atas kertas.
Latihan

1.    Tulislah algoritma untuk mencari luas segitiga jika masukan dari pengguna adalah alas clan tingginya.

Petunjuk: Luas segitiga dapat dihitung dengan rumus:
L = 1/2.a.t
dengan a: alas segitiga dan t: tinggi segitiga.
2.    Tulislah algoritma untuk mencari sisi miring dari suatu segitiga siku-siku jika diketahui panjang dua sisi yang membentuk sudut siku-siku.

Petunjuk: Sisi miring segitiga siku-siku dapat dihitung dengan rumus Pythagoras:
3. Tulislah algoritma untuk meminta masukan dua bilangan dari pengguna   kemudian menampilkan bilangan terbesar di antara kedua bilangan ter­sebut.
4.    Tulislah algoritma untuk meminta masukan tiga bilangan dari pengguna kemudian menampilkan bilangan terkecil di antara ketiga bilangan tersebut.
5.    Tulislah algoritma untuk menampilkan teks "Turbo Pascal" sebanyak 100 kali.
6.    Tulislah algoritma untuk mencari modus dari sekumpulan data yang dimasukkan pengguna.
Petunjuk: Modus adalah data yang paling sering muncul.