Pengantar
Semua sepakat bahwa komputer merupakan alat bantu untuk menyelesaikan masalah.  Agar komputer dapat menyelesaikan masalah maka perlu dirumuskan terlebih dahulu  langkah-langkah dalam suatu rangkaian instruksi. Sekumpulan instruksi yang  merupakan penyelesaian masalah dinamakan "Program".  
Agar komputer dapat menjalankan program, maka harus ditulis dalam bahasa yang  dapat dimengerti oleh komputer. Karena komputer adalah sebuah mesin maka program  harus ditulis dalam bahasa yang khusus dibuat untuk berkomunikasi dengan  komputer. Bahasa komputer yang digunakan dalam menulis program dinamakan bahasa  pemrograman. Salah satu contoh bahasa pemrograman adalah Bahasa C.
Dalam menyelesaikan masalah dengan bantuan komputer, langkah pertama yang  dilakukan adalah dengan membuat desain (rancangan). Desain menyajikan cara  berfikir pemrogram dalam menyelesaikan masalah. Desain ini berisi urutan  langkah-langkah pencapaian solusi yang ditulis dalam notasi-notasi deskriptif.  Urutan langkah-langkah yang sistematis untuk menyelesaikan masalah dinamakan  ALGORITMA.
Definisi Algoritma
ALGORITMA : urutan langkah-langkah logis penyelesaian masalah yang disusun  secara sistematis.  
Algoritma menurut Kamus Besar Bahasa Indonesia adalah Urutan logis  pengambilan keputusan untuk pemecahan masalah .  
Contoh Algoritma dalam kehidupan sehari-hari :
| Proses | Algoritma | Langkah dalam Algoritma | 
| Membuat Kue | Resep Kue | ambil  3buah telur, ambil kuning telur dan kocok | 
| Membuat baju | Pola Baju | Potong kain sesuai pola | 
| Isi Voucher HP | Panduan | tekan nomor 555 | 
Notasi Algoritma
    Notasi algoritma bukan notasi bahasa pemrograman,sehingga  siapapun dapat membuat notasi algoritma yang berbeda.Hal yang penting mengenai  notasi tersebut adalah mudah dibaca dan dimengerti.Meskipun notasi algoritma  bukan notasi baku namun kepatuhan terhadap notasi perlu diperhatikan untuk  menghindari kekeliruan.
Beberapa notasi dalam penulisan algoritma :
1.Notasi  I : menyatakan langkah-langkah algoritma dengan untaian  kalimat deskriptif.
Dengan notasi bergaya kalimat deskriptif, deskripsi setiap langkah dapat  dijelaskan dengan bahasa yang gamblang.Misalnya, proses diawali dengan kata  kerja  seperti 'baca', 'hitung' , 'ganti' dan sebagainya.Sedangkan pernyataan  kondisional dinyatakan dengan 'jika....' ,  'maka....'.
Notasi ini bagus untuk algoritma yang pendek ,namun untuk masalah yang besar  notasi ini tidak mungkin dipakai.Selain itu,konversi dari notasi algoritma ke  bahasa pemrograman cendrung relatif sukar.
2.Notasi  II: menggunakan diagram alir(flow-chart).
Diagram alir populer pada awal-awal era pemrograman dengan komputer.Diagram  alir lebih menggambarkan aliran instruksi didalam program secara visual  ketimbang memperlihatkan struktur program.Notasi algoritma ini juga cocok untuk  masalah kecil, tidak cocok untuk masalah besar karena akan memerlukan berlembar  halaman kertas untuk menggambarkan aliran proses program.  
3. Notasi III: menggunakan pseudo-code
Pseudocode (pseudo artinya semu atau tidak sebenarnya) adalah notasi yang  menyerupai notasi bahasa pemrograman tingkat tinggi seperti bahasa C.Hasil  pengamatan memperlihatkan bahwa bahasa pemrograman umumnya mempunyai notasi yang  hampir mirip untuk beberapa instruksi, seperti notasi if-then-else, while-do,repeat-until,read,  write  dan sebagainya. Berdasarkan pengamatan tersebut, maka didefinisikan  bahwa notasi algoritma yang dapat menjelaskan perintahnya dengan  bahasa  yang jelas tanpa membingungkan pembaca bisa disebut dengan notasi algoritma   menggunakan pseudo-code.  Tidak seperti bahasa program yang direpotkan  dengan tanda titik koma dan sebagainya, kata-kata khusus,indeks,format, dan  lainnya, maka dengan pseudo-code ini akan lebih memudahkan dan menguntungkan.  Keuntungan penggunaan notasi pseudo-code ini adalah kemudahan mengkonversinya  kebahasa pemrograman, karena terdapat korespondensi antara setiap pseudo-code  dengan notasi bahasa program.Korespondensi ini dapat diwujudkan dengan tabel  translasi dari notasi algoritma ke notasi bahasa program
Aturan Penulisan Algoritma
    Teks algoritma berisi deskripsi langkah-langkah  penyelesaian masalah.Deskripsi tersebut dapat ditulis alam bentuk notasi apapun  , asalkan mudah dibaca dan dimengerti. Tidak ada notasi yang baku dalam  penulisan teks algoritma. Tiap orang dapat membuat aturan penulisan  dan  algoritma sendiri.Namun, agar notasi algoritma dapat dengan mudah ditranslasi ke  alam notasi bahasa pemrograman, maka sebaiknya notasi algoritma itu  berkoresponden dengan notasi bahasa pemrograman secara umum.
Contoh perintah  :Tulis nilai x  dan  y
Dalam notasi algoritma menjadi : write (x,y)
Dalam Bahasa Turbo C ditulis : printf("%d %d",x,y);
Tipe, Nama, dan Nilai
Tipe
  Pada umumnya program komputer bekerja dengan memanipulasi objek (data)  di dalam memori. Objek yang akan diprogram bermacam-macam tipenya, misalnya tipe  numerik,karakter,string, dan record(rekaman).
Tipe data  dapat dikelompokan menjadi 2, yaitu: tipe dasar dan tipe  bentukan. Tipe dasar  adalah tipe yang langsung dapat dipakai, sedangkan  tipe bentukan dibentuk dari tipe dasar atau dari tipe bentukan lain yang sudah  didefinisikan.
Suatu tipe diacu dari namanya.Nilai-nilai yang dicakup oleh tipe tersebut  dinyatakan didalam ranah (domain)nilai. Operasi-operasi (beserta operator) yang  dapat dilakukan terhadap tipe tersebut  juga didefinisikan. Dengan kata  lain suatu tipe dinyatakan dengan namanya,ranah nilai yang dikandungnya,cara  menuliskan konstantanya, dan operasi yang dapat dilakukan padanya.
Tipe Dasar
Dalam bahasa pemrograman yang termasuk tipe dasar adalah :
1. bilangan logika
2. bilangan bulat
3. karakter atau string
4. bilangan riil
Tipe Bentukan
Tipe bentukan adalah tipe yang didefinisikan sendiri oleh pemrogram (user  define). Tipe bentukan disusun oleh satu atau lebih tipe dasar. Ada dua macam  tipe bentukan yaitu:
1.Tipe dasar yang diberi nama dengan nama tipe baru                                                                      contoh : tipe BilanganBulat : integer  
Variabel BilanganBulat adalah tipe bilangan bulat yang sama saja dengan tipe  integer. Misalkan kita mempunyai sebuah variabel  yang bernama X dan  bertipe BilanganBulat, maka artinya variabel X tersebut juga bertipe integer.
2.Rekaman (rekord).
Rekaman disusun oleh satu atau lebih field.Tiap field menyimpan data dari  tipe dasar tertentu atau dari tipe bentukan lain yang sudah dideinisikan  sebellumnya.Nama record itentukan oleh pemrogram. Karena stukturnya yang diusun  atas field-field, maka rekaman inamakan juga tipe terstruktur(stuctured type).
Nama
Setiap objek dialam mempunyai nama.Nama diberikan agar objek tersebut mudah  diidentifikasi, diacu, dan dibedakan dari objek lainya.Di dalam algoritma nama  dipakai sebagai pengidentifikasi  "sesuatu" dan pemrogram mengacu "sesuatu"  itu melalui namanya. Karena itu tiap nama haruslah unik, tidak boleh ada dua  buah nama yang sama.
Di dalam algoritma "sesuatu" yang diberi nama dapat berupa :
1.Variabel
2.Konstanta
3.Tipe Bentukan
4.Nama Fungsi
5.Nama Prosedur
Suatu hal yang penting untuk diperhatikan adalah, nama sebaiknya  interpretatif, yaitu mencerminkan nilai intrinsik atau fungsi yang  dikandungnya.Pemrogram sangat dianjurkan untuk memberikan penjelasan terhadap  nama yang didefinisikan.
Semua nama yang digunakan dalam algoritma harus didefinisikan atau  dideklarasikan dibagian deklarasi .Bagian deklarasi dipakai sebagai tempat  mengacu suatu kata untuk diketahui makna atau terjemahannya.Tempat untuk  menjelaskan nama dan tipe dari nama tersebut.
Nilai
Nilai adalah besaran dari tipe data yang sudah didefinisikan.Nilai dapat  berupa isi yang disimpan oleh nama variabel atau nama konstanta,nilai dari hasil  perhitungan, atau nilai yang dikirim oleh fungsi.Algoritma pada hakikatnya  adalah memanipulasi nilai yang disimpan didalam elemen memori. Nilai yang  dikandung oleh variabel dimanipulasi antara lain dengan cara : mengisikannya ke  variabel lain yang bertipe sama, dipakai untuk perhitungan, atau dituliskan ke  piranti keluaran.  
Contoh algorima : mencetak stirng "Halo, apa kabar?" ke piranti keluaran.
Versi 1. String "Halo, apa kabar?" langsung dicetak tanpa menggunakan  variabel.
Algoritma :
Deklarasi
       (tidak ada)
Deskripsi  
       write ("Halo,apa kabar?")
Versi 2.String "Halo,apa kabar?" disimpan di dalam sebuah variabel bertipe  string.
Algoritma :
Deklarasi
      ucapan  :  string
Deskripsi
     ucapan  <------ 'Halo,apa kabar?'
     write (ucapan)
Versi 3.String "Halo,apa kabar?" disimpan sebagai konstanta
Algoritma:
Deklarasi
      const ucapan  = 'Halo,apa kabar?'
Deskripsi
      write (ucapan)
Keluaran yang dihasilkan oleh algoritma versi 1, 2, dan 3 adalah :
     Halo, apa kabar?
URUTAN / RUNTUNAN
    Algoritma merupakan runtunan(sequence) satu atau lebih  instruksi,yang berarti bahwa :
1. Tiap instruksi dikerjakan satu persatu.
2. Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang.
3. Urutan instruksi  yang dilaksanakan pemroses sama dengan urutan  instruksi yang tertulis di algoritma.
4. Akhir instruksi merupakan akhir dari algoritma.
Urutan instruksi didalam algoritma sangat penting.Urutan instruksi menunjukan  urutan logika penyelesaian masalah.
PENGULANGAN
    Salah satu kelebihan komputer dibandingkan manusia adalah  kemampuannya untuk melaksanakan suatu instruksi berulangkali tanpa mengenal  lelah dan bosan.Pengulangan prose atau kalang(repetition atau loop) dapat  dilakukan ejumlah kali atau sampai suatu kondisi tercapai.
Struktur Pengulangan
Secara umum terdiri atas 2 bagian:
1. Kondisi pengulangan, yaitu ekspresi boolean yang harus dipenuhi untuk  melaksanakan pengulangan.Kondisi ini ada yang secara eksplisit oleh pemrogram  atau dikelola seniri oleh komputer (implisit).
2. Badan pengulangan, yaitu bagian algoritma yang diulang.
Struktur pengulangan biasanya disertai dengan bagian:
1. Inisialisasi, yaitu aksi yang dilakukan sebelum pengulangan dilakukan  pertama kali.
2. Terminasi, yaitu aksi yang dilakukan setelah pengulangan selesai  dilaksanakan.
Inisialisasi dan terminasi tidak selalu harus ada(optional), namun pada  berbagai kasus inisialisasi umumnya  diperlukan.
Struktur pengulangan secara umum :
    awal pengulangan
        badan pengulangan
    akhir pengulangan
Di dalam algoritma terdapat beberapa macam struktur pengulangan yang  berbeda.Beberapa struktur dapat dipakai untuk masalah yang sama,namun ada notasi  pengulangan yang hanya cocok untuk masalah tertentu saja.Pemilihan struktur  pengulangan yang tepat bergantung pada masalah yang akan diprogram.Banyak sekali  notasi struktur pengulangan, seperti :
1.Struktur For
    Struktur For  dipakai untuk menghasilkan pengulangan  sebanyak n kali yang sudah dispesifikasikan.Jumlah pengulangan diketahui atau  dapat dipastikan sebelum eksekusi program.Bentuk umumnya ada 2 macam
a.Menaik (ascending)
    for pencacah <------------- nilai_awal to nilai_akhir do
        aksi
    endfor
b.Menurun(descending)
    for pencacah <-------------nilai_akhir downto nilai_awal   do
        aksi
   endfor
2. Struktur While
    Bentuk umum struktur While adalah :
    while kondisi do
        aksi
    endwhile
Aksi (runtunan aksi) akan dilaksanakan berulangkali selama konii bernilai  true.Jika kondisi bernilai false maka pengulangan akan selesai.Agar kondisi yang  mula-mula bernilai true menjadi bernilai false maka harus ada suatu nilai  pengubah kondisi.
3. Struktur Repeat
    Bentuk umum struktur Repeat adalah :
    repeat
        aksi
   until kondisi
Pengulangan ini mendasarkan pada kondisi boolean.Aksi didalam badan kalang  diulang sampai konisi boolean bernilai true.Jika masih false maka pengulangan  akan terus berlangsung untuk itu diperlukan atau aksi yang mengubah nilai  pengubah kondisi. Struktur repeat memiliki makna yang sama dengan while, dan  dalam beberapa masalah kedua struktur tersebut komplemen satu sama lain.
Yang harus diperhatikan adalah bahwa pengulangan harus berhenti. Pengulangan  yang tidak pernah berhenti menunjukan algoritma yang salah.  
FUNGSI
Apakah fungsi itu?
    Fungsi adalah modul program yang memberikan/mengembalikan  (return) sebuah nilai dari tipe tertentu. Fungsi diakses dengan memanggil  namanya, nama fungsi harus unik.Fungsi dapat mengandung daftar parameter  formal.Parameter pada fungsi selalu merupakan parameter masukan.Jenis parameter  masukan pada fungsi merupakan masukan yang digunakan oleh fungsi tersebut untuk  menghasilkan  nilai.
Struktur fungsi sama dengan struktur algoritma
- bagian header yang berisi nama fungsi dan spesifikasi fungsi,  
- bagian  deklarasi
- badan fungsi
Notasi algoritma untuk mendefinisikan fungsi adalah:
    function NamaFungsi(input daftar parameter formal)----->  tipe hasil
    { spesifikasi fungsi, menjelaskan apa yang dilakukan dan  yang dikembalikan fungsi  }  
    Deklarasi
    { semua nama yang dipakai dialam algoritma fungsi  dideklarasikan disini.Nama yang  didefinisikan di dalam deklarasi lokal  hanya dikenal dan dipakai di dalam fungsi ini saja }
    Deskripsi:
    { badan fungsi, berisi instruksi-instruksi untuk  menghasilkan nilai yang akan dikembalikan oleh fungsi }
    return hasil ( pengembalian nilai yang dihasilkan fungsi }
LARIK
Larik adalah struktur data  yang menyimpan sekumpulan elemen yang bertipe sama. setpa elemen diakses  langsung melalui indeksnya. 
Mendefinisikan Larik
Larik adalah struktur data yang statik, artinya, jumlah elemen  larik harus sudah diketahui sebelum program dijalankan. Mendefinisikan banyaknya  elemen larik berarti memesan sejumlah tempat di memori.
Contoh deklarasi larik:
Deklarasi 
L       :  array[1..50] of integer
nama    : array['a'..'j'] of  string

 

 




0 komentar:
Posting Komentar