Rabu, 29 Oktober 2014

ANALISA PERMASALAHAN HARDWARE DAN SOFTWARE PADA JARINGAN




Jaringan Komputer dan Permasalahannya
Langkah-langkah melakukan diagnosis PC yang tersambung jaringan adalah sebabagi berikut:
I. IDENTIFIKASI PERMASALAHAN JARINGAN
Munculnya permasalahan pada jaringan biasa disebabkan oleh beberapa faktor. Factor tersebut adalah oleh tegangan listrik yang naik turun maupun oleh alat/komponen jaringan itu sendiri yang dikarenakan oleh tidak berfungsi atau mati.
Untuk mengetahui adanya permasalahan dalam jaringan, kita dapat melihat indicator yang muncul pada komponen jaringan.
Indikator-indikator tersebut memberikan isarat jika terjadi kerusakan atau tidak berfungsinya komponen. Indikasi kerusakan pada masing masing komponen dapat diuraikan sebagai berikut:
  1. Server : Server adalah komputer yang berisikan daftar user yang diperbolehkan masuk ke server tersebut. Jadi apabila komputer server mengalami kerusakan atau gangguan secara otomatis seluruh jaringan tidak berfungsi karena server merupakan pintu masuk dan sebagai pusat jaringan tersebut.
  2. Workstation : Workstation adalah komputer yang memanfaatkan jaringan untuk menghubungkan komputer tersebut dengan komputer lain. Apabila terjadi kerusakan pada komputer workstation berarti komputer yang tersebut tidak dapat masuk dalam jaringan.
  3. Hub/switch : Hub/switch merupakan pembagi signal data bagi kartu jaringan (Network Card). Jika Hub mengalami kerusakan berarti seluruh jaringan juga tidak dapat berfungsi untuk berkomunikasi. Apabila terjadi kerusakan pada Hub dapat dilihat pada lampu indikator power dan lampu indikator untuk masing-masing workstation.
  4. Network Interface Card (Kartu jaringan) : Apabila terjadi gangguan atau kerusakan pada kartu jaringan berakibat pada komputer tersebut tidak dapat masuk dalam sistem jaringan. Indikator yang dapat dilihat dalam kerusakan kartu jaringan adalah lampu indikator NIC.
  5. Kabel dan konektor : Kabel dan konektor merupakan media penghubung antar komputer.
(1) Jenis kabel serat optik menggunakan konektor SC dan ST. Gangguan pada serat optik sangat jarang, tetapi memerlukan penanganan secara khusus untuk perawatan.
(2) Jenis Kabel UTP dengan konekor RJ45. Gangguan pada kabel jenis ini adalah konektor yang tidak terpasang dengan baik (longgar), susunan pengkabelan yang salah dan kabel putus. Indikasi yang dapat dilihat adalah lampu indikator yang tidak hidup pada kartu jaringan atau pada Hub/switch.
(3) Jenis kabel Coaxial dengan konektor BNC. Gangguannya karena konektor yang longgar (tidak konek), kabel short dan kabel terbuka resistor pada terminating conector. Short pada pemasangan kabel dengan plug konektor ini menyebabkan system jaringan akan down dan komunikasi antar komputer berhenti.
II. MEMILAH MASALAH BERDASARKAN KELOMPOK
Masalah digolongkan menjadi 2 yaitu : Hardware dan Software.
Kerusakan pada Hardware diantaranya yaitu:
  1. NICè jika terjadi masalah indikator dapat dilihat melalui lampu NIC, sedangkan untuk melihat secara software dapat dilihat melalui Device Manager
  2. Kabel dan konektor è
a. Kabel koaksial. Masalah yang muncul adalah kabel terbuka (open), konektor longgar, kabel short, resistor pada terminating connector, short antara kabel dan plug konektor, dan longgar pada male konektor.
b. Kabel UTP. Masalah yang muncul adalah konektor longgar, kabel short, dan kabel terbuka, serta masalah setting susunan kabel.
Kerusakan pada Software diantaranya yaitu :
  1. Kesalahan setting konfigurasi jaringan
  2. Kesalahan protocol yang digunakan
  3. Kesalahan pengalamatan IP
  4. Kesalahan identifikasi client dan server
  5. Kesalahan network service
  6. Kesalahan security system
  7. Kerusakan file program
Permasalahan Pada Software
Pada saat isolasi permasalahan secara software hal-hal yang perlu diperhatikan adalah :
a. Instalasi driver kartu jaringan harus sempurna, karena kartu tersebut mengkomunikasikan kartu jaringan dengan komputer.
b. Konfigurasi kartu jaringan karena setting kartu jaringan mengkomunikasikan komputer dengan jaringan yang telah ada.
c. IP Address dan Subnet mask adalah alamat komputer kita karena apabila kita mengisi alamat tersebut dengan asal maka kita tidak dapat masuk dalam sistem jaringan maka perlu mengetahui nomor IP dan Subnet mask yang digunakan dalam jaringan untuk dapat bergabung dalam jaringan tersebut.
d. Workgroup karena untuk masuk dalam jaringan harus mengetahui alamatnya kalau tidak mengetahui kelompok yang kita tuju maka kita juga tidak dapat masuk dalam kelompok tersebut walaupun nomor IP dan subnet mask kita sudah benar.
III. MENGISOLASI PERMASALAHAN
Pengisolasian secara hardware
  1. Mengisolasi NIC
  2. Mengisolasi masalah kabel dan konektor
  3. Mengisolasi masalah Hub/Switch
Pengisolasian secara software
  1. Kesalahan pengalamatan IP
  2. Kesalahan identifikasi workgroup
  3. Kesalahan service network
  4. Kerusakan file program
PENANGANAN MASALAH PADA TOPOLOGI
Penanganan masalah pada topologi Bus dilakukan step-by-step yaitu dilakukan pengecekan satu persatu pada tiap node komputer yang terhubung ke kabel dan pengecekan pada tiap titik node untuk mengetahui kerusakan pada kabel. Isolasi masalah jaringan apabila terjadi pemasalahan maka akan mempengaruhi seluruh jaringan tidak dapat berfungsi sama sekali.
Penanganan masalah pada topologi Star apabila terjadi kerusakan pada salah satu komputer workstation maka hanya jaringan pada komputer tersebut yang ditangani sehingga pengisolasian lebih mudah dan penanganan perbaikan jaringan juga lebih cepat. Isolasi kerusakan terhadap sistem jaringan dengan topologi star adalah tidak berpengaruh, karena seluruh komputer tersambung secara paralel. Sehingga apabila terjadi kerusakan pada salah satu komputer maka hanya komputer tersebut yang bermasalah sedangkan komputer lainnya tetap dapat berfungsi.
Lebih mudah pengisolasian menggunakan topologi star karena:
  1. Jika terjadi kerusakan pada salah satu komputer maka tidak akan mempengaruhi komputer yang lainnya.
  2. Pengisolasian dan perbaikan jaringan lebih akan memakan waktu yang lebih cepat.
  3. Tidak mengecek seluruh jaringan jika terjadi kerusakan karena kerusakan salah satu komputer tidak menggangu atau mempengaruhi komputer yang lainnya.
Beberapa contoh masalah/kasus yang muncul pada jaringan:
a) Tidak bisa Login dalam jaringan
Kasus tidak bisa masuk dalam jaringan berarti client tidak dapat mengakses jaringan secara keseluruhan. Apabila kita telah melakukan instalasi dan konfigurasi kartu jaringan dengan sempurna maka bisa juga karena kesalahan kita dalam memasukkan password yang salah saat kita Login ke jaringan.
b) Tidak bisa menemukan komputer lain pada daftar network neighborhood.
Kasus ini sering terjadi karena sistem windows yang kurang baik sehingga perlu melakukan refresh apabila menutup program atau mau menjalankan program.
c) Tidak bisa sharing files atau printer.
Untuk dapat melakukan sharing data dapat dengan cara masuk ke windows explorer pilih data atau directory yang akah disharingkan kemudian klik kanan lalu klik sharing
d) Tidak bisa install network adapter.
Kasus ini biasanya disebabkan oleh sorfware kartu jaringan yang tidak sesuai dengan kartu jaringan yang dipasang, atau pemasangan kartu jaringan yang tidak sempurna sehingga komputer tidak dapat mengenal kartu jaringan tersebut.
e) Komputer lain tidak dapat masuk ke komputer kita.
Komputer lain yang tidak dapat masuk ke komputer kita padahal komputer kita dapat masuk ke komputer lain disebabkan kita belum melakukan sharing data atau sharing printer.

Selasa, 02 September 2014

Sistem Operasi Jaringan

Unix adalah sistem operasi yang digunakan sebagai sistem operasi baku pada berbagai jenis komputer, terutama komputer mini baik sebagai workstation atau server (sistem yang menyediakan pelayanan pada jaringan). Karena dengan unix sebagai server, berpindah kerja dari satu jenis komputer ke komputer lainnya menjadi mudah.
Unix didesain sebagai sistem operasi yang portable, multi-tasking, multi-user, sistem berkas hierarkis dan utilitas.

SUSE adalah sistem operasi komputer yang dibangun diatas kernel Linux. OpenSUSE dikembangkan dengan dukungan komunitas melalui Proyek OpenSUSE yang disponsori oleh SUSE dan sejumlah perusahaan lain.Setelah Novell mengakuisisi SUSE Linux pada bulan Januari 2004,Novell memutuskan untuk melepaskan produk SUSE Linux Profesional sebagai 100% proyek open source. Pada tahun 2011 The Attachmate Grup mengakuisisi Novell dan membagi Novell dan SUSE menjadi dua anak perusahaan yang berdiri sendiri. SUSE menawarkan produk dan jasa sekitar SUSE Linux Enterprise - yang dibangun dengan dasar OpenSUSE Linux.
Rilis awal dari proyek komunitas OpenSUSE adalah versi beta dari SUSE Linux 10.0. Versi stabil saat ini adalah openSUSE 13.1 yang telah dirilis pada tanggal 19 November 2013.

Red Hat adalah salah satu perusahaan terbesar dan dikenal untuk dedikasinya atas perangkat lunak sumber bebas. Red Hat didirikan pada 1993 dan bermarkas di Raleigh, North Carolina, Amerika Serikat. Red Hat terkenal karena produknya Red Hat Linux salah satu distro Linux utama.

Debian adalah sistem operasi bebas yang dikembangkan secara terbuka oleh banyak programer sukarela(pengembang Debian) yang tergabung dalam Proyek Debian. Sistem operasi Debian adalah gabungan dari perangkat lunak yang dikembangkan dengan lisensi GNU, dan utamanya menggunakan kernel Linux, sehingga populer dengan nama Debian GNU/Linux. Sistem operasi Debian yang menggunakan kernel Linux merupakan salah satu distro Linux yang populer dengan kestabilannya. Dengan memperhitungkan distro berbasis Debian,

Windows NT merupakan sebuah sistem operasi 32-bit dari Microsoft yang menjadi leluhur sistem operasi Windows 2000, Windows XP, Windows Server 2003, dan Windows Vista. Sistem operasi tersebut pada awalnya mendukung beberapa platform mikroprosesor, dimulai dari Intel 80x86 (hingga sekarang), MIPS R4x00 (dihentikan pada versi Windows NT 4.0), Digital Equipment Corporation Alpha AXP (dihentikan pada versi Windows 2000 Beta 3), IBM PowerPC (dimulai dari versi Windows NT 3.51 dan dihentikan pada versi Windows NT 4.0), serta beberapa platform lainnya, seperti Clipper dan SPARC (tidak dirilis untuk umum, karena dibuat oleh pihak ketiga, Intergraph). Saat ini, sistem operasi berbasis Windows NT hanya mendukung platform Intel 80x86, Intel IA64 dan AMD64 (atau x64), sementara platform lainnya tidak didukung lagi, mengingat kurangnya dukungan dari pihak ketiga untuk prosessor tersebut.

Solaris merupakan suatu operasi system turunan asli dari varian kernel Unix yang dikembangkan pada tahun 1969 oleh American Telephone and Telegraph (AT&T). Solaris pada umumnya digunakan untuk menjalankan web server dan database server. Sejak Sun memulai membangun Solaris, pangsa pasar ditujukan untuk perusahaan menengah ke atas (Enterprise). Solaris juga membangun sebuah operasi system yang berfokus pada bagaimana Solaris bisa berjalan dengan baik dan stabil dengan membandingkan operasi system dengan turunan Unix lainnya. Solaris memberikan dukungan pada kemampuan Multiprocessor, bagaimana mengatasi deadlock, bagaimana menjaga dan meningkatkan CPU dan bagaimana teknik memanajemen Memory yang baik. Jika dilakukan perbandingan multiprocessor pada mesin yang sebanding antara Solaris 10 x86, RedHat Enterprise Linux 4, RedHat Enterprise Linux 5 dan Windows  Server 2003 R2. Solaris lebih unggul dalam stabilitas, efisiensi dan juga memiliki kinerja terbaik pada sebuah system operasi.


Novell NetWare adalah sebuah sistem operasi jaringan yang umum digunakan dalam komputer IBM PC atau kompatibelnya. Sistem operasi ini dikembangkan oleh Novell, dan dibuat berbasiskan tumpukan protokol jaringan Xerox XNS.
NetWare telah digantkan oleh Open Enterprise Server (OES). Versi terakhir dari NetWare hingga April 2007 adalah versi 6.5 Support Pack 6, yang identik dengan OES-NetWare Kernel, Support Pack 2.




Minggu, 02 Maret 2014

contoh aplikasi java

Contoh Aplikasi Java : Program Kasir (Client - Server) sederhana


download contoh aplikasi - program java free
Pada postingan kali ini ane kasi contoh Aplikasi Java, setelah kmaren2 udah kasi contoh Aplikasi C# dan PHP... postingan ini tentang program kasir sederhana dengan java berbasis Client - Server , Database nya pake Mysql... memang sudah agak lama gak nulis tentang Java di blog ini, padahal bahasa Java ini bahasa yang ane suka untuk Aplikasi dekstop ketimbang pake C#, ya... menurut ane Java lebih Fleksibel dari pada C#... Sebenarnya ane punya banyak Aplikasi berbasis Client server Pake Java, mau upload tapi rasanya belom waktu nya... menurut ane harus bertahap dulu... mulai dari contoh2 aplikasi / program sederhana baru yang Expert  :p .. bertahap lah.... ane kan bukan type orang yang memaksakan kehendak seperti salah satu orang dikehidupan ane yang suka maksa2 bawahannya harus inilah harus itulah... "Loe Pikir Otak Manusia itu sama ??"
Aplikasi yang ane upload ini, ane buat Pake IDE Eclipse Indigo, jadi buat ente yang pake Netbeans ya migrasi dulu lah ke IDE satu nya... Eclipse gitu... ... untuk Look and feel nya ane pake Jtatto, biar lebih keren dan lebih ganteng kayak ane, masak programmer nya cakep, program nya gak cakep ?? hehee... kalo untuk masalah GUI, sebenarnya ane kalo bikin aplikasi itu juga sangat memperhatikan GUI / User interface nya bagaimana bisa bagus dan enak dilihat, selain itu juga keren tapi gak kerentengan... wkwkwkwkwkwk.. seperti kemaren pas ane buat tugas akhirnya matakuliah Client-Server, ane pake Java dan untuk memperbagus GUI nya ane pake Usu library dan Jglasspane bikinan Mas eko kurniawan, tampilan GUI nya jadi bagus, bahkan lebih bagus dari Look and Feel Jtatto,Nimbuzzz.. diblognya mas eko juga udah dibahas bagaimana untuk meng-make over GUI Java Swing, ente bisa baca disana atau download ebook dan video nya...
Aplikasi kasir yang ane buat pake Java ini berbasis Client - Server, Client nya ada 2 dan server nya ada 1, waktu buat aplikasi ini... ane simulasikan seperti program nya Indomaret / Alfamart, dimana ada kasir yang bertugas untuk melayani pembayaran konsumen, bagian gudang yang menangani stok barang, dan Manager yang bertugas untuk analisa penjualan(transaksi) barang... program ini tidak lengkap2 amat kayak punya minimarket indomaret / alfamart... karena ane juga gak tau system nya di indomaret yang asli itu seperti gimana, ane itu cuma ngira2 saja aplikasi itu sebenarnya dibuat sesuai kebutuhan kan ya ?? hehehee
mungkin ada diantara para pengunjung blog ini yang pengen buat aplikasi kasir kayak punya indomaret, monggo hubungi ane lewat facebook... tapi jangan lupa donasi nya yak ?? wkwkwkwkk kan ane juga butuh makan gan... mangkanya minta donasi lah.... Untuk Screen shoot aplikasi nya, seperti dibawah ini gan

Aplikasi Kasir Java gratisss
Contoh Aplikasi Client Sever Java Download
Aplikasi Program Kasir dengan Java Gratis Download

CONTOH APLIKASI JAVA

ALGORITMA PEMOGRAMAN DASAR


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. 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). Gambar 1.1 adalah contoh diagram alir untuk algoritma penghitung luas lingkaran.





















Gambu 11 Algoritma penghitung luas lingkaran.
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.

Gambar 1.2 adalah contoh diagram alir untuk algoritma di atas.
Gambar 1.2. Algoritma menuliskan nilai absolut.





















Pengulangan

Untuk memperjelas penulisan algoritma, saya akan menyajikan satu contoh lagi, yaitu algoritma untuk menghitung rata-rata dari sekumpulan data yang di masukkan pengguna. Rumus mencari rata-rata dari data x. yang berjumlah N adalah sebagai berikut:
    



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

1.    Masukkan N.
2. i← l.
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.
Gambar 1.3 adalah contoh diagram alir untuk algoritma di atas.
Gambar 1.3. Algorr'tma menght'tung rata­rata sekumpulan data.
























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:
dengan a dan b adalah sisi siku-siku.

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.