Kamis, 31 Maret 2016

pertemuan 3 keamanan sistem informasi

Keamanan Sistem Informasi

Kenapa harus ada keamanan sistem informasi?
Meski  sebuah  sistem  informasi  sudah  dirancang memiliki  perangkat pengamanan, harus selalu dimonitor. Hal ini disebabkan oleh beberapa hal, antara lain:

Ditemukannya  lubang  keamanan  (security  hole)  baru.  Perangkat lunak  dan  perangkat  keras  biasanya sangat kompleks  sehingga  tidak mungkin  untuk  diuji seratus    persen.  Kadang-kadang  ada  lubang keamanan yang   ditimbulkan oleh kecerobohan implementasi.
Kesalahan  konfigurasi.  Karena  lalai atau  alpa, konfigurasi sebuah  sistem kurang benar sehingga lubang keamanan. Misalnya mode  (permission atau kepemilikan) dari berkas yang menyimpan  password  secara  tidak sengaja diubah sehingga dapat diubah atau ditulis.
Contoh di windows Atau di /etc/passwd di sistem linux dengan perintah chmod 777 /etc/passwd sehingga memberi izin user,group,other untuk read,write, execute.

-            Sumber Lubang Keamanan
Lubang keamanan  (security hole) dapat  terjadi karena : Salah disain  (Design  Flaw)dari   paket TCP/IP. Sehingga  timbul  masalah  yang  dikenal  dengan nama “IP spoofing”.
Implementasi Kurang Baik Contoh :  seringkali batas/bound  dari  sebuah “array”  tidak  dicek  sehingga  terjadi  yang disebut out-of-bound  array  atau  buffer  overflow  yang  dapat dieksploitasi (misalnya overwrite ke variable berikutnya).Contoh lain adalah kealpaan memfilter karakter-karakter yang aneh-aneh yang  dimasukkan sebagai  input dari sebuah program web
Salah Konfigurasi Contoh : Berkas  yang  semestinya  tidak dapat  diubah   oleh  pemakai  secara  tidak  sengaja  menjadi  “writeable”.Apabila  berkas  tersebut  merupakan  berkas  yang  penting,  seperti  berkas yang digunakan untuk menyimpan password.
Salah Menggunakan Program atau Sistem Contoh : Kesalahan  menggunakan  program  dengan account root (super user) dapat berakibat fatal. Sering terjadi cerita horor dari sistem administrator baru yang teledor dalam menjalankan perintah  “rm  -rf” (remove) di  sistem linux  (yang menghapus  berkas  atau  direktori beserta  sub direktori  di  dalamnya).  Akibatnya  seluruh  berkas  di  sistem menjadi  hilang  mengakibatkan  Denial  of  Service  (DoS).

Cara Mengamankan  Sistem Informasi
Pada  umumnya,  pengamanan  dapat  dikategorikan  menjadi  dua  jenis :

-  Pencegahan  (preventif)
   Usaha  pencegahan dilakukan  agar  sistem  informasi  
   tidak  memiliki  lubang  keamanan

-  Pengobatan  (recovery).
   Usaha-usaha  pengobatan  dilakukan  apabila  lubang  
   keamanan sudah dieksploitasi.

Beberapa cara  yang  dapat  digunakan  untuk  mengamankan  informasi adalah :
• Mengatur akses
• Menutup Servis yang tidak digunakan
• Memasang Proteksi
• Firewall
• Pemantau adanya serangan
• Pemantau integritas sistem
• Audit
• Backup secara rutin
• Penggunaan enkripsi
• telnet atau shell aman

A. Mengatur akses (Access Control)

Mengatur  akses  ke  informasi  melalui  mekanisme “authentication”  dan  “access  control”.  Implementasi  dari mekanisme  ini antara lain dengan menggunakan “password”. Di sistem LINUX dan Windows NT,untuk menggunakan sebuah sistem atau komputer, pemakai  diharuskan  melakukan  authentication  dengan menuliskan  “userid”  dan  “password”. Apabila keduanya  valid,  pemakai tersebut diperbolehkan menggunakan sistem. Apabila ada yang salah, pemakai tidak dapat menggunakan sistem. Informasi  tentang  kesalahan  ini  biasanya  dicatat  dalam berkas  log.

Hal-hal  yang sebaiknya dihindari  sebagai password adalah :
1.      Nama anda, nama istri / suami, anak, nama teman.
2.      Nama komputer yang anda gunakan.
3.      Nomor telepon atau plat nomor kendaran anda
4.      Tanggal lahir
5.      Alamat rumah
6.      Nama tempat yang terkenal.

B. Menutup Servis Yang Tidak Digunakan

Seringkali  sistem  (perangkat  keras  dan/atau  perangkat  lunak)  diberikan beberapa  servis  yang dijalankan sebagai  default.  Contoh Pada sistem LINUX servis-servis berikut  sering dipasang dari vendornya:  finger, telnet, ftp, smtp, pop,echo, dan seterusnya. Pada sistem windows seperti servis apache, mysql, telnet, remote dekstop dll.

C. Memasang Proteksi

Untuk  lebih  meningkatkan  keamanan  sistem  informasi,  proteksi  dapat ditambahkan. Proteksi ini dapat berupa filter(secara umum) dan yang lebih spesifik firewall.
Filter  dapat  digunakan  untuk  memfilter  e-mail, informasi, akses, atau bahkan dalam level packet.Contoh :LINUX paket  program  “tcpwrapper” dapat   digunakan  untuk membatasi  akses servis  atau   aplikasi  tertentu. 

D. Firewall
Firewall  bekerja  dengan  mengamati  paket  IP  (Internet  Protocol)  yang melewatinya. Berdasarkan konfigurasi darifirewall maka akses dapat diatur berdasarkan  IP  address,  port,  dan  arah  informasi. Firewall  dapat  berupa  sebuah  perangkat  keras  yang  sudah  dilengkapi dengan perangkat lunak  tertentu,sehingga pemakai (administrator)  tinggal melakukan  konfigurasi  dari  firewall  tersebut.  Firewall  juga  dapat berupa perangkat  lunak  yang  ditambahkan  kepada  sebuah  server.

E. Pemantau adanya serangan
Sistem pemantau (monitoring system) digunakan untuk mengetahui adanya tamu tak diundang (intruder) atau adanya serangan (attack).Nama lain dari sistem  ini  adalah  “intruder  detection  system”  (IDS).  Sistem  ini  dapat memberitahu administrator melalui e-mail maupun melalui mekanisme lain seperti melalui pager.

Contoh software IDS antara lain :
1.      Autobuse
2.      Courtney  dan  portsentry
3.      Shadow dari SANS
4.      Snort 

F. Pemantau integritas sistem
Pemantau  integritas  sistem  dijalankan  secara  berkala  untuk  menguji integratitas  sistem.
Contoh :  Pada Sistem UNIX  adalah  program  Tripwire.  Program  paket  Tripwire  digunakan untuk memantau adanya perubahan pada berkas. Tripwire  dijalankan  dan  membuat  database  mengenai  berkas-berkas  atau direktori  yang  ingin  kita  amati  beserta  “signature”  dari
berkas  tersebut.

G. Audit (Mengamati Berkas Log)
Hampir semua  kegiatan  penggunaan  sistem  dapat  dicatat  dalam berkas yang biasanya disebut “logfile” atau“log” saja.  Berkas log ini sangat berguna  untuk  mengamati  penyimpangan  yang  terjadi.  Kegagalan  untuk masuk ke sistem (login), akan tersimpan di dalam berkas log. Untuk itu para  administrator  diwajibkan  untuk  rajin  memelihara  dan  menganalisa berkas log yang dimilikinya.

H. Backup secara rutin
Seringkali  tamu  tak  diundang  (intruder)  masuk  ke  dalam  sistem  dan merusak sistem dengan menghapus berkas-berkas yang ditemui. Jika intruder  ini  berhasil  menjebol  sistem  dan  masuk  sebagai  administrator, maka  ada  kemungkinan  dia  dapat  menghapus  seluruh berkas. Untuk  itulah, backup data wajib dilakukan  secara rutin.Untuk sistem yang sangat esensial, secara berkala perlu dibuat backup yang letaknya  berjauhan  secara  fisik.  Hal ini  dilakukan  untuk  menghindari hilangnya  data  akibat  bencana  seperti  kebakaran,  banjir,  dll. karena bila data
dibackup tetapi diletakkan pada lokasi yang  sama, kemungkinan data akan hilang  jika  tempat yang bersangkutan mengalami bencana seperti kebakaran.

I. Penggunaan Enkripsi
Salah  satau  mekanisme  untuk  meningkatkan  keamanan  adalah  dengan menggunakan  teknologi  enkripsi.  Data-data  yang  anda  kirimkan  diubah sedemikian  rupa  sehingga  tidak mudah disadap. Banyak  servis di Internet yang  masih  menggunakan  “plain  text”  untuk  authentication,  seperti penggunaan pasangan  userid  dan  password.  Informasi  ini  dapat  dilihat dengan mudah oleh program penyadap atau pengendus (sniffer).

Contoh servis yang menggunakan plain text  antara lain :
1.      Akses jarak jauh dengan menggunakan telnet dan rlogin
2.      Transfer file dengan menggunakan FTP
3.      Akses email melalui POP3 dan IMAP4
4.      Pengiriman email melalui SMTP 
5.      Akses web melalui HTTP
Penggunaan  enkripsi dapat digunakan untuk  remote  akses  (misalnya  melalui  ssh  sebagai penggani telnet atau rlogin)

J. Telnet atau shell aman
Enkripsi  dapat  digunakan  untuk  melindungi adanya  sniffing. Paket  yang  dikirimkan  dienkripsi  dengan algoritma DES atau Blowish (dengan menggunakan kunci session yang dipertukarkan via RSA  atau  Diffie-Hellman) sehingga  tidak  dapat  dibaca  oleh  orang  yang tidak berhak. Salah satu  implementasi mekanisme  ini adalah SSH (Secure Shell).
Ada beberapa implementasi SSH ini, antara lain :

1.SSH  untuk  UNIX  (dalam  bentuk  source  code,  gratis, mengimplementasikan protokol SSH versi 1 dan versi 2)
2. SSH  untuk Windows95  dari Data  Fellows  (komersial,ssh  versi  1  dan versi 2)
             http://www.datafellows.com
3. TTSSH,  yaitu  skrip  yang  dibuat  untuk  Tera  Term  Pro (gratis,  untuk Windows 95, ssh versi 1) http://www.paume.itb.ac.id/rahard/koleksi
4. SecureCRT untuk Windows95 (shareware / komersial)
5. Putty  (SSH  untuk  Windows  yang  gratis,  ssh  versi  1)  Selain menyediakan  ssh,  paket  putty  juga  dilengkapi dengan  pscp  yang mengimplementasikan secure copy  sebagai pengganti FTP.

Kamis, 24 Maret 2016

Sistem Informasi Berbasis Internet

Sistem Informasi Berbasis Internet

Berikut Alasan Sistem Informasi Berbasis Internet..........!!!

Sistem  informasi  saat  ini banyak yang menggunakan Internet, Hal ini  disebabkan   :
• Internet  merupakan  sebuah  platform  yang  terbuka  (open platform) sehingga menghilangkan
ketergantungan perusahaan pada sebuah vendor(pembuat perangkat hard/software) tertentu
• Open platform juga mempermudah interoperability (kemampuan saling mendukung) antar vendor.
• Internet  merupakan  media  yang  paling ekonomis untuk digunakan sebagai basis sistem informasi, Dapat diakses dimanapun dan perangkat lunak yang digunakan untuk mengakses internet banyak tersedia secara murah bahkan gratis.
Alasan-alasan  tersebut  di  atas  menyebabkan  Internet  menjadi  media elektronik yang  paling  populer untuk menjalankan  bisnis,  yang kemudian dikenal  dengan  istilah  electronic  commerce  (e-commerce).  Dengan diperbolehkannya bisnis menggunakan Internet, maka penggunaan Internet menjadi meledak.  Statistik  yang  berhubungan  dengan  kemajuan  Internet dan e-commerce semakin meningkat dan  sangat menakjubkan.
Selain hal diatas internet juga digunakan sebagai media sosial, hal ini di buktikan dengan suksesnya :
·         Koin Peduli Prita ( 2009)
·         Koin Cinta Bilqis (2010)

Statistik Internet
Data-data  statistik  tentang  pertumbuhan  jumlah  pengguna Internet di Indonesia saja Juni 2012, 55 juta  dari
total di Asia 1,076,681,059 yang diperoleh  dari  “Internet World Stats”.

 Statistik Electronic Commerce

Hampir mirip dengan statistik jumlah pengguna Internet, statistik penggunaan Internet  untuk  keperluan  e-commerce  juga meningkat  dengan  nilai  yang menakjubkan. Berdasarkan data dari International Data Corporation (IDC) tahun 2011, tercatat nilai perdagangan lewat internet di Indonesia mencapai sekitar $ 3,4 miliar atau setara dengan Rp 30 triliun Dan sekarang hampir semua  perusahaan terutama perusahaan perbankkan menyediakan fasilitas transaksi bisnis yang dapat  dilakukan dengan internet.

Keamanan Sistem Internet
Internet merupakan jalan  raya  yang  dapat  digunakan  oleh  semua  orang  (public).
Untuk melihat keamanan  sistem  Internet terlebih dahulu harus mengetahui cara kerja  sistem Internet. Seperti :
-  Hubungan  antara komputer  di  Internet
-  Protokol  yang  digunakan. 

Hackers, Crackers, dan Etika
Aspek  dari  pelaku  yang  terlibat  dalam masalah  keamanan  dalam internet,  yaitu  para hackers  and crackers.
·      Hackers  vs  Crackers
Terminologi hacker muncul  pada awal tahun 1960-an diantara para anggota organisasi mahasiswa Tech Model Railroad Club di Laboratorium Kecerdasan Artifisial Massachusetts Institute of Technology (MIT). Kelompok mahasiswa tersebut merupakan salah satu perintis perkembangan teknologi komputer dan mereka berkutat dengan sejumlah komputer mainframe
Kata hacker pertama kalinya muncul dengan arti positif untuk menyebut seorang anggota yang memiliki keahlian dalam bidang komputer dan mampu membuat program komputer yang lebih baik ketimbang yang telah dirancang bersama.

-          contoh dari serangan yang menggunakan alasan politik antara lain:
 Hackers  Portugal  yang mengubah  isi  beberapa web  site milik  pemerintah  Indonesia  karena  tidak  setuju dengan apa yang dilakukan oleh pemerintah Indonesia di Timor Timur. Selain itu, mereka  juga mencoba merusak  sistem yang ada dengan menghapus seluruh disk.


Apakah ada hackers dan crackers Indonesia?
Beberapa komunitas underground(istilah hacker crackers) di Indonesia, antara lain:
Ø  Jasakom
Didirikan Firmansyah (xnuxer), dan Onno W. Purbo. Segala aktivitas online Jasakom dipusatkan di forum yang beralamat dijasakom.com dan milis di Yahoo! Groups
Ø  Xcode
Xcode sebagai Yogyafree atau Yogya Family Code adalah komunitas Gudeg, Yogyakarta didirikan pada 5 Juni 2004 alamatnya di xcode.or.id Tahun 2000 dimotori oleh S’to,Dany atau
Biasa juga dikenal underground yang berbasis di Kota


Dasar-Dasar Keamanan  Sistem Informasi

David Khan  dalam  bukunya  The  Code-breakers membagi masalah pengamanan  informasi  menjadi  dua  kelompok : Security Hal ini dikaitkan  dengan  pengamanan  data Intelligence
(pencurian,penyadapan)  data.  Hal dikaitkan dengan pencarian

Pengamanan data dapat dilakukan dengan cara,  yaitu : 
a. Steganography
 Pengamanan  dengan  menggunakan  steganografi  membuat  seolah-oleh pesan  rahasia  tidak  ada  atau  tidak  nampak. Contoh steganografi antara lain :
“Setelah engkau rasakan nikmatnya gula, hisap aroma rokok ini sampai engkau nyaman ingin nambah”.

b. Cryptography
Kriptografi (cryptography) merupakan ilmu dan seni untuk menjaga pesan agar  aman. Crypto”  berarti  “secret” (rahasia)  dan  “graphy”  berarti “writing”  (tulisan). Kalau cryptography disembunyikan.
Sedangkan Cryptanalysis  adalah  seni  dan  ilmu  untuk  memecahkan  ciphertext  tanpa bantuan kunci. Cryptanalyst adalah pelaku atau praktisi yang menjalankan cryptanalysis. Cryptology  merupakan  gabungan  dari  cryptography  dan cryptanalysis.

c. Enkripsi
Enkripsi digunakan untuk menyandikan data-data atau  informasi sehingga tidak dapat dibaca oleh orang yang tidak berhak. Dengan enkripsi data  disandikan  (encrypted)  dengan menggunakan  sebuah  kunci  (key).
-  Diagram Proses Enkripsi dan Dekripsi

Secara matematis, proses atau fungsi enkriEnkripsipsi (E) dapat dituliskan : E ( M ) =  C

Proses atau fungsi dekripsi (D) dapat dituliskan sebagai :

 D (C) = M
Dimana :
             M adalah Plaintext (Message)
             C adalah Ciphertext.





 TERIMAKASIH*







Minggu, 20 Maret 2016

pertemuan 1 pengenalan keamanan sistm informasi


Pengenalan Keamanan Sistem Informasi
1. Pendahuluan
     Menurut G.  J.  Simons,  keamanan  informasi  adalah  bagaimana  kita  dapat mencegah  penipuan (cheating) atau,  paling  tidak,  mendeteksi  adanya penipuan  di  sebuah  sistem  yang  berbasis informasi, dimana informasinya sendiri tidak memiliki arti fisik Lawrie Management  Model”  untuk menghadapi  ancaman  (managing threats). Ada  tiga komponen yang memberikan  kontribusi kepada Risk, yaitu Asset, Vulnerabilities, dan Threats Brown menyarankan menggunakan“Risk 
managemen resiko berfungsi mengurangi dampak dari resiko menurut g. j simons, ada 3 komponen managemen resiko yaitu harta, kelemahan dan ancaman. countermeasures artinya mengurangi ancaman

Untuk menanggulangi  resiko  (Risk)  tersebut  dilakukan  apa  yang  disebut “countermeasures” yang dapat berupa :
a.  Usaha untuk mengurangi Threat
b.  Usaha untuk mengurangi Vulnerability
c.  Usaha untuk mengurangi impak (impact)
d.  Mendeteksi kejadian yang tidak bersahabat (hostile event)
e.  Kembali (recover) dari kejadian.


  • Penyebab Meningkatnya Kejahatan Komputer (Network Security)

Diposkan oleh mahadi suta 4.5 Senin, 28 Januari 2013 Label: Komunikasi Data

Dalam maningkatnya kejahatan di dunia komputer faktor yang sangat besar pengaruhnya yaitu adanya timbal balik antara kenyamanan dan keamanan. Komputer yang aman tentunya memiliki banyak hal yang membuat pemakai kurang nyaman. Sehingga sedikit demi sedikit aplikasi untuk keamanan jaringan di abaikan. Padahal aplikasi-aplikasi tersebut yang nantinya dapat membuat komputer tersebut terlindung daripada kejahatan komputer yang marak terjadi. Orang berfikir aplikasi keamanan seringkali membuat ribet saat penggunaan. Ini dasar pertama kenapa kejahatan tersebut bisa timbul, hal tersebut tidak lain datang dari sisi pengguna itu sendiri. Alasan yang lainnya akan saya uraikan dibawah ini:

Internet adalah faktor pertama yang saya bahas disini, ketika Internet mulai diperkenalkan kepada publik tahun 1995 sudah terdapat banyak kasus kejahatan komputer yang terjadi. Salahsatunya informasi datang dari FBI National Computer Crime Squad (1996), kejahatan komputer yang terdeteksi kurang 15%, dan hanya 10% dari angka yang dilaporkan. Hal ini dikarenakan banyak komputer yang terhubung di dalam sebuah jaringan komputer. Kembali lagi karena kesalahan daripada penggunanya yang tidak terlalu memperdulikan keamanan daripada komputer yang mereka gunakan.

Kurangnya Sumber Daya Manusia yang mampu di dalam Network Security. Hal ini dikarenakan adanya transisi dari single vendor ke multi-vendor. Orang yang menguasai banyak jenis perangkat dari berbagai vendor yang harus dipelajari sangat sulit. Hal ini dikarenakan adanya banyak aplikasi yang harus dikuasai oleh seorang network security. Contohnya untuk router seorang yang terjun setidaknya menguasai Cisco, Bay Networks, Nortel, 3Com, Juniper, Linux-base router dan yang lainnya. Kemudian untuk server seorang yang terjun di network security setidaknya menguasai Solaris, Windows NT/2000/XP, SCO UNIX, Linux, *BSD, AIX, dan yang lainnya. Hal inilah salah satu penyebab terjadinya kejahatan komputer.

Kemudahan dalam mendapat software menjadi penyebab selanjutnya. Internet kembali menjadi salah satu landasan untuk faktor ini. Kita bisa lihat, dengan download di internet, aplikasi sudah bisa kita pakai di komputer kita. Baik aplikasi untuk dipakai dalam hal positif atau aplikasi yang dipakai oleh tangan-tangan usil.

Rendahnya Awareness menjadi hal selanjutnya yang menyebabkan meningkatnya kejahatan di dunia komputer. Awareness atau kesadaran mungkin akan membuat kejahatan itu lebih sedikit dilakukan. Alasannya jika seseorang sadar dengan apa yang dia lakukan, tidak hanya sekedar sadar bahkan dia tahu apakah yang dia lakukan baik atau tidak, maka otomatis orang tersebut akan menghindari tindakan yang dia anggap sebuah kejahatan.

Kemudian penyebab selanjutnya datang dari hukum yang ditegakkan untuk kejahatan di dunia komputer. Istilah untuk hal ini adalah Cyber Law. Cyber Law masih sangat rendah, hal ini dikarenakan cyber law harus memperhitungkan hal nyata yang disebabkan oleh seseorang yang bertindak dalam kejahatan komputer, yang merugikan pengguna lain, walaupun media yang digunakan berupa media elektronik.

TERIMAKASIH*

sumber : Read more: http://mahadisuta.blogspot.com/2013/01/penyebab-meningkatnya-kejahatan.html#ixzz43QfzdmqE 

Senin, 01 Desember 2014

Tugas Teknik Pemrograman (Program Administrasi Karyawan)

Kelompok :
Syahrul Aziz (12131021)
Endah Mulyanti (12130466)
Ipah Saripah (12136908)
Andreas Pesta Demo Siahaan (12134607)

Source Code Program :
#include<conio.h>
#include<stdio.h>
#include<iostream.h>

main()
{
long jumkar, total;
char bulan[20];
struct{
      long kj,gp,tj,subt;
char nk[45],nip[10],jb[20],ks,status[15];
}karyawan[50];

   cout<<"Jumlah Pegawai : ";cin>>jumkar;
cout<<"Bulan : ";cin>>bulan;
cout<<endl;

   cout<<"Input Data Karyawan"<<endl;
   cout<<"--------------------------------------"<<endl;
for(int x=1;x<=jumkar;x++)
{
cout<<"Data Pegawai Ke - "<<x<<endl;
   cout<<"NIP Pegawai : ";cin>>karyawan[x].nip;
      cout<<"Nama Pegawai : ";cin>>karyawan[x].nk;
      cout<<"Kode Jabatan[1/2]: ";cin>>karyawan[x].kj;
      cout<<"Kode Status[M/S]: ";cin>>karyawan[x].ks;

if(karyawan[x].kj == 1)
      {
       strcpy(karyawan[x].jb, "Data Analis");
         karyawan[x].gp = 1500000;

       if((karyawan[x].ks == 'M')||(karyawan[x].ks == 'm'))
       {
     karyawan[x].tj = 250000;
            strcpy(karyawan[x].status, "Menikah");
     }
         else
         {
         karyawan[x].tj = 150000;
            strcpy(karyawan[x].status, "Single");
         }
      }
     else
      {
       strcpy(karyawan[x].jb, "Programming");
         karyawan[x].gp = 1000000;

if((karyawan[x].ks == 'M')||(karyawan[x].ks == 'm'))
       {
     karyawan[x].tj = 200000;
            strcpy(karyawan[x].status, "Menikah");
     }
         else
         {
         karyawan[x].tj = 100000;
            strcpy(karyawan[x].status, "Single");
         }
      }

      karyawan[x].subt = karyawan[x].tj + karyawan[x].gp;
      cout<<endl;
}

   clrscr();

   cout<<"Daftar Gaji Karyawan"<<endl;
   cout<<"PT YUVERTY SEJAHTERA"<<endl;
   cout<<endl;
   cout<<"Bulan : "<<bulan<<endl<<endl;
   cout<<"=======================================================";

gotoxy(1,7);cout<<"No";
   gotoxy(5,7);cout<<"NIP";
   gotoxy(5,8);cout<<"Karyawan";
gotoxy(15,7);cout<<"Nama";
gotoxy(15,8);cout<<"Karyawan";
gotoxy(27,7);cout<<"Jabatan";
gotoxy(40,7);cout<<"Status";
gotoxy(48,7);cout<<"Gaji";
   gotoxy(48,8);cout<<"Pokok";
   gotoxy(55,7);cout<<"Tunjangan";
   gotoxy(66,7);cout<<"Total";
   gotoxy(66,8);cout<<"Gaji";

   cout<<endl;
   cout<<"=======================================================";

   total = 0;
   for(int x=1;x<=jumkar;x++)
{
   gotoxy(1, 9+x);cout<<x;
      gotoxy(5, 9+x);cout<<karyawan[x].nip;
      gotoxy(15, 9+x);cout<<karyawan[x].nk;
      gotoxy(27, 9+x);cout<<karyawan[x].jb;
      gotoxy(40, 9+x);cout<<karyawan[x].status;
      gotoxy(48, 9+x);cout<<karyawan[x].gp;
      gotoxy(55, 9+x);cout<<karyawan[x].tj;
      gotoxy(66, 9+x);cout<<karyawan[x].subt;

      total += karyawan[x].subt;
}

   cout<<endl;
   cout<<"=======================================================";
cout<<"Total Gaji Karyawan : Rp."<<total;

   getch();
}

Output Program :

Kamis, 31 Oktober 2013

TUGAS LOGIKA & ALGORITMA


Pengertian Logika & Algoritma

Nama : Ipah saripah
Kelas : 12.1C.02
NIM : 12136908
Absen : 57
 

Algoritma adalah urutan penyelesaian masalah yang di deskripsikan secara logis untuk memecahkan suatu masalah. Dalam ilmu komputer Algoritma dikenal dengan langkah-langkah komputasi yang terdiri dari masukan dan keluaran. Karena itu Algoritma biasanya dijadikan dasar atau pengantar bahasa pemrograman (misalnya Pascal) dalam study yang berkecimpung atau berhubungan dengan ilmu komputer. Misalnya Teknik Informatika.

Seperti yang telah diketahui bahwa komputer memerlukan instruksi yang berupa langkah-langkah pengurutan sehingga sebuah prosedur dapat dijalankan. Nah, prosedur yang berisi langkah-langkah penyelesaian masalah inilah yang disebut dengan Algoritma. Jadi, Sebelum masuk kepada tahap pemrograman komputer dengan bahasa pascal/lainnya ada baiknya mempelajari Algoritma yang merupakan pengantar kepada pemrograman komputer tersebut.

Algoritma terdiri dari beberapa notasi yaitu Deskriptif, Bagan-alir, dan Pseudo-Code. Namun yang paling mirip dengan bahasa pemrograman pascal adalah notasi Pseudo-Code. Karena pada notasi ini sedikit menyerap bahasa Pascal. Meskipun tidak semua tata cara penulisan/aturan dalam bahasa pascal diikuti. Algoritma dalam notasi ini sangat cocok untuk lebih mudah memahami atau menjalankan pemrograman dalam bahasa Pascal.

Definisi Algoritma :
1. Langkah-langkah yg dilakukan agar solusi masalah dapat diperoleh.
2. Suatu prosedur yang merupakan urutan langkah-langkah yang berintegrasi
3. Suatu motode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata (Webster dictionary)
Kriteria Pemilihan Algoritma
1. Ada out put
2. Efektifitas dan efesiensi
3. Jumlah langkahnya berhingga
4.  (semi Algoritma)
àBerakhir
5. Terstruktur
1. Ada out put
Mengacu pada definisi algoritma, algoritma harus mempunyai out put yang harus merupakan solusi dari masalah yang sedang diselesaikan.
2. Efektifitas dan efesiensi
Dikatakan efektif jika algoritma tersebut menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan, dalam arti algoritma harus tepat guna.
Dikatakan efisien jika waktu proses suatu algoritma relatif lebih singkat dan penggunakan memori komputernya lebih sedikit.
3. Jumlah langkahnya berhingga
Barisan instruksi yang dibuat harus dalam suatu urutan tertentu atau harus berhingga agar masalah yang dihadapi dapat diselesaikan dengan tidak memerlukan waktu relatif lama.
4.  (semi Algoritma)àBerakhir
Penyelesaian masalah harus berhenti. Dan bias menimbulkan masalah lain.
5. Terstruktur
Penyelesaian masalah menggunakan langkah-langkah tersusun
Algoritma yang baik
Suatu algoritma harus menghasilkan out put yang tepat guna (efektif) dalam waktu yang relative singkat.
ANALISA ALGORITMA
1. Bagaimana merencakan suatu algoritma
Menentukan beberapa model / desain sebagai penyelesaian masalah sehingga muncul beberapa model yang akan diambil solusi mana yang terbaik.
2. Bagaimana menyatakan suatu algoritma
3. Bagaimana validitas suatu algoritma
4. Bagaimana menganalisis suatu algoritma
5. Bagaimana menguji program dari suatu algoritma
Cara/prosedur algoritma
1. Kata-kata
2. Diagram alur
3. Statemen program
TAHAP PROSES UJI ALGORITMA
1. Fase Debugging
Fase dari suatu proses program eksekusi yang akan melakukan koreksi terhadap kesalahan program/ error. Kesalahan program ini dapat berupa kesalahan dalam penulisan program baik logika atau sintaknya.
2. Fase profiling
Fase yang akan bekerja jika program tersebut sudah benar.

Pengertian LOGIKA
Logika berasal dari bahasa Yunani yaitu LOGOS yang berarti ilmu. Logika pada dasarnya filsafat berpikir. Berpikir berarti melakukan suatu tindakan yang memiliki suatu tujuan.
Jadi pengertian Logika adalah ilmu berpikir / cara berpikir dengan berbagai tindakan yang memiliki tujuan tertentu.

KONSEP ALGORITMA

@ Algoritma Variabel Pe-ubah
Adalah variabel yang nilainya BUKAN konstanta (selalu berubah – sesuai dengan kondisi Variabel terkini)

Sintaks : P = Q
Algoritma : P <- Q
Arti : Bahwa Nilai P diberi harga Nilai Q
Nilai P akan SAMA DENGAN nilai Q dan Nilai Q TETAP
Contoh Soal 1:
Diketahui P=0, Q=5 dan R=10. Diberikan algoritma P=Q, Q=R, maka nilai P, Q, R sekarang ?
Jawab
Diketahui P = 0, Q = 5, R = 10
P = Q –> Pada saat ini nilai dari Variabel P akan diberi nilai dari Variabel Q (P = 5)
Q = R –> Pada saat ini nilai dari Variabel Q akan diberi nilai dari Variabel R (Q = 10)
Maka nilai P, Q dan R sekarang adalah P = 5, Q = 10 dan R = 10

Contoh Soal 2:
Diketahui Algoritma P=10, P=P+1 dan Q = P. Berapakah nilai P dan Q ?

Jawab
Algoritma:
P = 10 –> Pada saat ini nilai dari Variabel P akan diberi nilai 10
P = P + 1 –> Pada saat ini nilai dari Variabel P yang baru adalah nilai dari variabel P yang lama ditambah 1 (10 + 1 = 11)
Q = P –> Pada saat ini nilai dari variabel Q diberi nilai dari variabel P yang baru (Q =11)

Contoh Soal 3:
Diketahui 3 varibael peubah P, Q dan R. Agar isi Q ditaruh di P, isi R ditaruh di Q dan isi P ditaruh di R,maka Algoritma yang dapat ditulis adalah ..?

Jawab
Agar isi Q ditaruh di P, algoritma yang dapat ditulis adalah (P <- Q atau P=Q)
Agar isi R ditaruh di Q, algoritma yang dapat ditulis adalah (Q <- R atau Q=R)
Agar isi P ditaruh di R, algoritma yang dapat ditulis adalah (R <- P atau R=P)

@ Algoritma Variabel Pertukaran
Berfungsi mempertukarkan masing-masing isi Variabel sedemikian sehingga Nilai dari tiap Variabel akan berubah/bertukar.

Contoh Soal:
Diketahui 2 peubah K = 10 dan L = 20. Buat Algoritma untuk mempertukarkan isi K dan L .. ?

Jawab
Untuk menyelesaikan algoritma pertukaran, dibutuhkan satu buah peubah (variabel) tambahan untuk menyimpan nilai dari salah satu peubah. Algoritma pertukaran untuk masalah diatas adalah (dimisalkan variabel tambahan adalah T).
T = K –> Pada algoritma ini nilai dari variabel T (variabel tambahan) akan diisi dengan nilai dari variabel K (T = 10)
K = L –> Pada algoritma ini nilai dari Variabel K akan diisi dengan variabel L (K = 20)
L = T –> Pada algoritma ini nilai dari Variabel L akan diisi dengan variabel T (L = 10)
Setelah algoritma ini dijalankan dapat dilihat bahwa algorita diatas telah mempertukarkan nilai dari variabel-variabel tersebut. Sebelumnya variabel K = 10 dan L = 20, menjadi variabel K = 20 dan L = 10

ARTIKEL LOGIKA DAN ALGORITMA
Pada saat kita dihadapkan dengan suatu masalah maka tindakan kita selanjutnya
adalah mencari penyelesaiannya. Sekarang kita tidak langsung memecahkan masalah
dengan langsung menuliskan solusinya berupa program dalam suatu bahasa
pemrograman, namun suatu cara penyelesaian masalah yang akan diprogram dengan
menekankan pada desain atau rancangan yang mewakili pemecahan masalah.
Masalah ---------------------> Algoritma
--------------------> Penyelesaian
Pemecahan Masalah Tahap Implementasi
(Fase Problem Solving) (Fase Implementasi)
Algoritma mempunyai peranan yang sangat penting dalam bidang teknik
informatika pada umumnya dan bidang pemrograman pada khususnya. Algoritma
membantu mahasiswa mengembangkan daya penalaran atau kerangka berpikir yang
sistematis dalam memahami masalah dan membuat perencanaan atau konsep
pemecahan masalah yang lebih baik sehingga dapat menghasilkan yang tepat pula.
Pengertian Algoritma
Kata algoritma, mungkin bukan sesuatu yang asing bagi kita. Penemunya
adalah seorang ahli matematika dari uzbekistan yang bernama Abu Abdullah
Muhammad Ibn Musa al-Khwarizmi (770-840). Di literatur barat dia lebih terkenal
dengan sebutan Algorizm. Panggilan inilah yang kemudian dipakai untuk menyebut
konsep algorithm yang ditemukannya.
Dalam bahasa Indonesia kita kemudian menyebutkannya sebagai algoritma.
Definisi Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang
digunakan untuk memecahkan suatu permasalahan.
Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk
melakukan pekerjaan tertentu. Pertimbangan dalam pemilihan algoritma adalah
pertama, algoritma haruslah benar. Artinya algoritma akan memberikan keluaran yang
dikehendaki dari sejumlah masukan yang diberikan. Tidak peduli sebagus apapun
algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut
bukanlah algoritma yang baik.
Pertimbangan kedua yang harus diperhatikan adalah kita harus
mengetahui seberapa baik hasil yang dicapai oleh algoritma tersebut. Hal ini penting
terutama pada algoritma untuk menyelesaikan masalah yang memerlukan aproksimasi
hasil (hasil yang hanya berupa pendekatan). Algoritma yang baik harus mampu
memberikan hasil yang sedekat mungkin dengan nilai yang sebenarnya.
Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditnjau dari 2
hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang
benar (paling mendekati), tetapi kalaunkita harus menunggu berjam-jam untuk
mendapatkan keluarannya, algoritma tersebut biasanya tidak akan dipakai. Setiap
orang menginginkan keluaran yang cepat. Begitu juga dengan memori, semakin besar
memori yang terpakai maka semakin buruklah algoritma tersebut.
Dalam kenyatannya, setiap orang bisa membuat algoritma yang berbeda
untuk menyelesaikan suatu permasalahan. Walaupun terjadi perbedaan dalam
menyusun algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi
demikian carilah algoritma yang paling efisien dan cepat.



Beda Algoritma dan Program
Ø  Program adalah kompulan instruksi komputer, sedangkan metode dan tahapan
sistematis dalam program adalah algoritma. Program ini ditulis dengan menggunakan
bahasa pemrograman. Jadi bisa kita sebut bahwa program
adalah suatu implementasi dari bahasa pemrograman.
Beberapa pakar memberi formula bahwa:
Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada
sebuah program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan
membuat program menjadi kurang baik, semikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan diantaranya:
1.      Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman
manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan
komputer yang mengeksekusinya.
2.      Notasi algoritmik dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
3.      Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena
algoritmanya sama.
Beberapa hal yang perlu dalam membuat algoritma diperhatikan:
1)      Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi
tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan
dipahami.
2)      Tidak ada notasi yang baku dalam penulisan teks algoritma seperti pada notasi
bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut
notasi algoritmik.
3)      Tiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini
karena teks algoritma tidak sama dengan teks program. Namun supaya notasi
algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu,
maka sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa
pemrograman secara umum.
4)      Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam
notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh
komputer, pseudocode dalam notasi algoritmik harus ditranslasikan atau
Program = Struktur Data + Algoritma
diterjemahkan ke dalam notasi bahasa pemrograman yang dipilih. Perlu diingat
bahwa orang yang menulis program sangat terikat dalam aturan tata bahasanya dan
spesifikasi mesin yang menjalankannya.
5)      Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan
suatu permasalahan ke dalam bahasa pemrograman.
6)      Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh
komputer, algoritma harus ditranslasi ke dalam notasi bahasa pemrograman. Ada
beberapa hal yang harus diperhatikan ketika translasi tersebut yaitu:
a)Pendeklarasian variabel.
Apakah bahasa pemrograman yang akan digunakan membutuhkan
pendeklarasian variabel karena tidak semua bahasa pemrograman
membutuhkannya.
b)Pemilihan tipe data.
Apabila bahasa pemrograman yang akan digunakan membutuhkan
pendeklarasian variabel maka perlu dipertimbangkan pada saat pemilihan tipe
data.
c)Pemakaian instruksi-instruksi.
Beberapa instruksi mempunyai kegunaan yang sama tetapi masing-masing
memiliki kelebihan dan kekurangan yang berbeda.
d)Aturan sintaks.
Pada saat menulis program kita terikat dengan aturan sintaks dari bahasa
pemrograman yang akan digunakan.
e)Tampilan hasil.
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan
disajikan. Hal-hal teknis ini kita perhatikan ketika mengkonversikannya
menjadi program.
f)Cara pengopersian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk kelompok compiler atau
interpreter.
Beberapa persyaratan untuk membuat algoritma yang baik adalah:
1.Tingkat kepercayaannya tinggi (realibility). Hasil yang diperoleh dari proses harus
berakurasi tinggi dan benar.
2.Pemrosesan yang efisien (cost rendah). Proses harus diselesaikan secepat mungkin
dan frekuensi kalkulasi yang sependek mungkin.
3.Sifatnya general. Bukan sesuatu yang hanya untuk menyelesaikan satu kasus saja,
tapi juga untuk kasus lain yang lebih general.
4.Bisa dikembangkan (expandable). Haruslah sesuatu yang dapat kita kembangkan
lebih jauh berdasarkan perubahan requirement yang ada.
5.Mudah dimengerti. Siapapun yang melihat, dia akan bisa memahami algoritma
anda. Susah dimengertinya suatu program akan membuat susah di-maintenance
(dikelola).
6.Portabilitas yang tinggi (Portability). Bisa dengan mudah diimplementasikan di
berbagai platform komputer.
Penyajian Algoritma
Penyajian algoritma secara garis besar bisa dalam 2 bentuk penyajian yaitu
tulisan dan gambar.
Algoritma yang disajikan dengan tulisan yaitu dengan struktur bahasa tertentu
(misalnya bahasa Indonesia atau bahasa Inggris) dan pseudocode. Pseudocode adalah
kode yang mirip dengan kode pemrograman yang sebenarnya. Pseudocode ditulis
berbasis pada bahasa pemrograman tertentu misalnya Pascal, C atau Python, sehingga
lebih tepat digunakan untuk menggambarkan algoritma yang akan dikomunikasikan
kepada pemrogram. Pseudocode lebih rinci daripada struktur bahasa Inggris, misalnya
dalam menyatakan sintaks, tipe data yang digunakan dan lain-lain. Sedangkan
algoritma yang disajikan dengan gambar, misalnya dengan flowchart. Flowchart
bukan satu-satunya cara untuk menjelaskan atau menerangkan algoritma. Cara yang
lain diantaranya :
1.Structure chart
2.DFD (Data Flow Diagram)
3.Warnier diagram
4.IPO (Input Process Output)
5.HIPO (Hierarchical Input Process Output)
Flowchart (bagan alir) merupakan representasi secara grafik dari suatu algoritma
atau prosedur untuk menyelesaikan suatu masalah. Dengan menggunakan flowchart
akan memudahkan kita untuk melakukan pengecekan apakah ada bagian-bagian yang
terlupakan dalam analisis masalah. Di samping itu flowchart juga berguna sebagai
fasilitas untuk berkomunikasi antara pemrogram yang bekerja dalam tim suatu
proyek. Flowchart ada dua macam :
1.Flowchart Sistem
Yaitu diagram alir yang menggambarkan suatu sistem peralatan komputer yang
digunakan dalam proses pengolahan data dan hubungan antar peralatan tersebut.
Flowchart sistem digunakan untuk menggambarkan urutan langkah untuk
memecahkan masalah tetapi hanya untuk menggambarkan prosedur dalam sistem
yang dibentuk.
Simbol yang digunakan :
Contoh:
2. Flowchart program
Yaitu bagan yang menggambarkan urutan logika dari suatu prosedur pemecahan
masalah.
Simbol yang digunakan adalah American National Standard Inc.
: (terminal symbol), menunjukkan awal dan akhir dari program
: (preparation symbol), memberikan niai awal pada suatu variabel atau
counter
: (processing symbol), menunjukkan pengolahan aritmatika dan
pemindahan data
: (input/output symbol), menunjukkan proses input atau output
: (decision symbol), untuk mewakili operasi perbandingan logika
: (predefined process symbol), proses yang ditulis sebagai sub program,
yaitu prosedur/ fungsi
: (connector symbol), penghubung pada halaman yang sama
: (off page connector symbol), penghubung pada halaman yang berbeda
: arah proses
Tahap-Tahap Pemrograman
Ø  Sebelumnya perlu dipahami tiga pengertian pokok yakni program, bahasa
pemrograman dan pemrograman. Program adalah kata, ekspresi, pernyataan yang
disusun dan dirangkai menjadi satu kesatuan prosedur yang berupa urutan langkah
untuk menyelesaikan masalah yang diimplementasikan dengan menggunakan bahasa
pemrograman sehingga dapat dieksekusi oleh komputer. Bahasa pemrograman adalah
prosedur atau tata cara penulisan program. Sedangkan pemrograman adalah proses
mengimplementasikan urutan langkah untuk menyelesaikan suatu masalah dengan
menggunakan suatu bahasa pemrograman.
Pemrograman meliputi dua tahapan yaitu:
Ø  1.Fase Problem Solving
Ø  2.Fase Implementasi
Langkah-langkah untuk dapat menyelesaikan masalah adalah sebagai berikut:
v  1.Memahami atau menganalisis masalah
Hal-hal yang harus diketahui dalam analisis masalah supaya kita mengetahui
bagaimana permasalahan tersebut:
a)Kondisi awal, yaitu input yang tersedia.
b)Kondisi akhir, yaitu output yang diinginkan
c)Data lain yang tersedia
d)Operator yang tersedia
e)Syarat atau kendala yang harus dipenuhi
v  2.Merancang atau merumuskan algoritma
Bila masalahnya kompleks maka kita bagi ke dalam modul-modul. Tahap
penyusunan algoritma seringkali dimulai dari langkah yang global terlebih dahulu.
Langkah global ini diperhalus sampai menjadi langkah yang lebih rinci atau detail.
Cara pendekatan ini sangat bermanfaat dalam membuat algoritma untuk masalah
yang kompleks. Penghalusan lanngkah dengan cara memecah langkah menjadi
beberapa langkah. Tiap langkah diuraikan lagi menjadi beberapa langkah yang
lebih sederhana. Penghalusan langkah ini akan terus berlanjut sampai setiap
langkah sudah cukup rinci dan tepat untuk dilaksanakan oleh pemroses
v  Ciri-ciri algoritma yang baik :
a)Precise (tepat, betul, teliti)
Setiap instruksi harus ditulis dengan seksama dan tidak ada keragu-raguan,
dengan demikian setiap instruksi harus dinyatakan secara eksplisit dan tidak
ada bagian yang dihilangkan karena pemroses dianggap sudah mengerti. Setiap
langkah harus jelas dan pasti.
Contoh: Tambahkan 1 atau 2 pada x.
Instruksi di atas terdapat keraguan.
b)Jumlah langkah atau instruksi berhingga dan tertentu.
Artinya untuk kasus yang sama, banyaknya langkah tetap dan tertentu
meskipun datanya berbeda.
c)Efektif
Tidak boleh ada instruksi yang tidak mungkin dikerjakan oleh pemroses yang
akan menjalankannya.
Contoh: Hitung akar 2 dengan presisi sempurna.
Instruksi di atas tidak efektif, agar efektif instruksi tersebut diubah. Misal:
Hitung akar 2 sampai lima digit di belakang koma.
d)Harus terminate
Jalannya algoritma harus ada kriteria berhenti. Pertanyaannya adalah apakah
apabila jumlah instruksinya berhingga maka pasti terminate?
e)Output yang dihasilkan tepat
Jika langkah-langkah algoritmanya logis dan diikuti dengan seksama maka
dihasilkan output yang diinginkan.
v  3.Menulis program
Algoritma yang telah dibuat diterjemahkan dalam bahasa komputer menjadi
sebuah program. Ketika menulis program, seorang pemrogram akan terikat
dengan sintaks-sintaks instruksi dalam bahasa pemrograman yang digunakan. Hal
ini tidak terjadi ketika menyusun atau membuat algoritma karena tidak ada notasi
yang baku dalam penulisan teks algoritma seperti pada notasi bahasa
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi
algoritmik. Tiap orang dapat membuat aturan penulisan dan notasi algoritmik
sendiri. Hal ini karena teks algoritma tidak sama dengan teks program. Namun
supaya notasi algoritmik mudah ditranslasikan ke dalam notasi bahasa
pemrograman tertentu, maka sebaiknya notasi algoritmik tersebut
berkorespondensi dengan notasi bahasa pemrograman secara umum.
Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode
dalam notasi algoritmik tidak dapat dijalankan oleh komputer. Agar dapat
dijalankan oleh komputer, pseudocode dalam notasi algoritmik harus
ditranslasikan atau diterjemahkan ke dalam notasi bahasa pemrograman yang
dipilih. Perlu diingat bahwa orang yang menulis program sangat terikat dalam
aturan tata bahasanya dan spesifikasi mesin yang menjalankannya. Perlu
diperhatikan bahwa pemilihan algoritma yang salah akan menyebabkan program
memiki unjuk kerja yang kurang baik.
Program yang baik memiliki standar penilaian :
a. Standar teknik pemecahan masalah
1.      Teknik Top-Down
Teknik pemecahan masalah yang paling umum digunakan. Prinsipnya
adalah suatu masalah yang kompleks dibagi-bagi ke dalam beberapa
kelompok masalah yang lebih kecil. Dari masalah yang kecil tersebut
dilakukan analisis. Jika dimungkinkan maka masalah tersebut akan
dipilah lagi menjadi subbagian-subbagian dan setelah itu mulai
disusun langkah-langkah untuk penyelesaiannya secara lebih detail.
2.      Teknik Bottom-Up
Prinsip teknik bottom up adalah pemecahan masalah yang kompleks
dilakukan dengan menggabungkan prosedur-prosedur yang ada
menjadi satu kesatuan program sebagai penyelesaian masalah
tersebut.
b. Standar penyusunan program
1)      Kebenaran logika dan penulisan
2)      Waktu minimum untuk penulisan program
3)      Kecepatan maksimum eksekusi program
4)      Ekspresi penggunaan memori
5)      Kemudahan merawat dan mengembangkan program
6)      User friendly
7)      Portability
8)      Pemrograman modular
9)       Standar perawatan program
10)  Dokumentasi
11)  Penulisan instruksi
12)   Standar prosedur
v  4.Uji hasil
Pertama kali harus diuji apakah program dapat dijalankan. Apabila program tidak
dapat dijalankan maka perlu diperbaiki penulisan sintaksnya tetapi bila program
dapat dijalankan maka harus diuji dengan menggunakan data-data yang biasa
yaitu data yang diharapkan oleh sistem yang dibuat maupun data-data yang
ekstrem yaitu data yang tidak diharapkan oleh sistem. Contoh data ekstrem
misalnya program menghendaki masukan jumlah data tetapi user mengisikan
dengan bilangan negatif. Program sebaiknya diuji menggunakan data yang relatif
banyak. Memperbaiki atau membetulkan suatu error atau kesalahan dapat menjadi
sangat mahal karena ada beberapa alasan, diantaranya :
        I.            Program yang dibuat oleh setiap pemrogram bisa saja strukturnya berbeda
walaupun hasilnya sama. Jadi apabila kita tidak bisa memahami maksud
programer maka pembetulan program akan memakan waktu yang lama dan
tidak efisien.
     II.            Dalam membetulkan kesalahan program, kita harus melihat kebutuhan
sekarang. Jadi bisa saja program yang error tersebut disesuaikan dengan
keadaan sekarang.

   III.            Memperbaiki kesalahan membutuhkan waktu yang lama karena perbaikan
terhadap satu error bisa menyebabkan timbulnya error yang lain atau
memperbaiki error-error yang lain sehingga semuanya bisa diatasi.
  IV.            Memperbaiki kesalahan tentu saja akan mempelajari maksud program secara
keseluruhan beserta struktur datanya. Jadi tentu saja akan membutuhkan
banyak waktu, disamping biaya yang dikeluarkan.
     V.            Membuat dokumentasi
Dokumentasi program ada dua macam yaitu dokumentasi internal dan
dokumentasi eksternal. Dokumentasi internal adalah dokumentasi yang dibuat di
dalam program yakni setiap kita menuliskan baris program sebaiknya kita beri
komentar atau keterangan supaya mempermudah kita untuk mengingat logika
yang terdapat dalam instruksi tersebut, hal ini sangat bermanfaat ketika suatu saat
program tersebut akan dikembangkan. Dokumentasi eksternal adalah dokumentasi
program yang dilakukan dari luar program yaitu membuat user guide atau tbuku
petunjuk aturan atau cara menjalankan program tersebut.
  VI.            Program dipakai
Jika program yang telah kita buat sudah sesuai dengan yang kita inginkan maka
program terebut dapat kita pakai.
Struktur Dasar Algoritma
Algoritma berisi langkah-langkah penyelesaian suatu masalah. Langkah-langkah
tersebut dapat berupa runtunan aksi (sequence), pemilihan aksi (selection),
pengulangan aksi (iteration) atau kombinasi dari ketiganya. Jadi struktur dasar
pembangun algoritma ada tiga, yaitu :
1)      Struktur Runtunan
Digunakan untuk program yang instruksinya sequential atau urutan.
2)      Struktur Pemilihan
Digunakan untuk program yang menggunakan pemilihan atau penyeleksian
kondisi.
3)      Struktur Perulangan
Digunakan untuk program yang instruksinya akan dieksekusi berulang-ulang.
Efisiensi Algoritma
Hal yang perlu diperhatikan dalam pembuatan algoritma adalah waktu proses.
Untuk menentukan waktu proses secara tepat merupakan pekerjaan yang sulit.
Analisa yang diinginkan untuk menyatakan efisiensi algoritma haruslah dibuat
seumum mungkin sehingga bisa dipakai pada semua algoritma, terlepas dari
implementasinya. Dalam melakukan analisa suatu algoritma kita ahrus
mengfokuskan diri pada operasi aktif yang merupakan pusat program, yaitu bagian
program yang paling sering dieksekusi. Bagian-bagian lain seperti pemasukan data,
penugasan dan lain sebagainya dapat diabaikan, karena bagian ini tidak dieksekusi
sesering operasi aktif. Jumlah keksekusi operasi aktif inilah yang selanjutnya
dihitung.








Perhatikan contoh berikut ini:
Jika kita ingin membuat sebuah program untuk menghitung jumlah dari suatu barisan
bilangan.
Jumlah=0 (I)
For i=1 to n
Jumlah=jumlah+i (II)
End for
Write(jumlah) (III)
Bagian (I) akan dieksekusi sebanyak 1 kali.
Bagian (II) merupakan sebuah loop (perulangan). Loop ini diproses berdasarkan
kenaikan nilai i, dimulai dari i=1 sampai dengan i=n. Jadi dibagian ini yaitu
perintah Jumlah=jumlah+i akan diproses sebanyak n kali.
Dan bagian (III) juga akan diproses sebanyak 1 kali.
Bagian (II) merupakan bagian yang paling sering diproses, maka bagian ini
merupakan operasi aktif dari algoritma tersebut. Sedangkan bagian (I) dan bagian (II)
dapat diabaikan karena bagian-bagian tersebut tidak diproses sesering bagian (II).
Waktu proses akan sebanding dengan n. Jadi kalau seandainya kita ingin melakukan
efisiensi maka pada bagian (II) inilah yang harus kita pertimbangkan dalam
pembuatan algoritmanya.
Resep Pemrograman
Memahami sebuah konsep dasar pembelajaran merupakan modal dasar untuk
menguasai materi tersebut. Konsep pemrograman sebenarnya bukanlah menulis
source code program, tetapi membuat algoritma dan logika kerja suatu masalah yang
akan diselesaikan. Artinya membuat algoritma dan logika kerja suatu masalah
merupakan langkah utama yang harus dikerjakan. Setelah selesai baru dikonversikan
ke bahasa pemrograman yang diinginkan. Kita tidak harus menguasai seluruh sintaks
yang ada dalam bahasa pemrograman yang dipakai. Dan memang sangat sulit untuk
menghapal semua sintaks yang ada dalam sebuah bahasa pemrograman.
Apa yang harus kita jika kita tidak mengetahui sintaks-sintaks yang
diperlukan? Misalnya kita tidak mengetahui perintah mencetak output dari suatu
proses di dalam program yang kita buat. Orang bijak mengatakan kita tidak perlu
mengetahui semua hal sebab kita hanyalah manusia biasa dan memang tidak mungkin
dilakukan, tetapi yang perlu kita ketahui adalah dimana kita bisa mendapatkan
informasi untuk permasalahan tersebut. Banyak sekali buku-buku dan referensi yang
dapat kita pakai sebagai acuan pembelajaran. Kesimpulannya bahwa dalam
merancang sebuah program yang diutamakan adalah algoritma penyelesaian masalah