Showing posts with label pengertian algoritma. Show all posts
Showing posts with label pengertian algoritma. Show all posts

Friday

BAHASA C

Sejarah dan Standar C
Akar dari bahasa C adalah bahasa BCPL yang dikembangkan oleh Martin Richard pada tahun 1967. Bahasa ini memberikan ide kepada Ken Thompson yang kemudian mengembangkan bahasa yang disebut dengan B pada tahun 1970. Perkembangan selanjutnya dari bahasa B adalah bahasa C oleh Dennis Ricthie sekitar tahun 1972-an di Bell Telephone Laboratories Inc. ( sekarang adalah AT&T Bell Laboratories).
Kepopuleran bahasa C membuat versi-versi dari bahasa ini banyak dibuat untuk komputer mikro. Untuk membuat versi-versi tersebut standar, ANSI (American National Standards Institute) kemudian menetapkan standar ANSI untuk bahasa C. Standar ANSI ini didasarkan dari standar UNIX yang diperluas. Standar ANSI menetapkan sebanyak 32 buah kata-kata kunci (keyword) standar. Ke 32 kata kunci ini adalah :








Menjalankan Bahasa C dengan Turbo C++
Dengan asumsi di komputer kita sudah ada software bahasa C yaitu Turbo C++ yang tersimpan dalam folder TC, maka untuk menjalankan Turbo C++ dengan cara sebagai berikut :
1. Siapkan folder untuk menyimpan data program C kita misal kita buat folder di D:\Naya
2. Buka Windows Explorer dan buka folder TC
3. Buka folder BIN
4. Cari file execution (.EXE) yang bernama TC.EXE
5. Untuk menjalankannya maka doubel klik file tersebut, sehingga akan tampil menu utama Turbo C++ seperti gambar berikut ini.



















6. Dari tampilan ini, maka tekan Enter atau klik OK. Maka editor Turbo C++ akan tampil. Disinilah tempat kita mengetikkan semua program C++ kita. Anda melihat disini ada menu File, Edit, Search, Run, Compile, Debug, Project, Option, Windows dan Help.
Untuk memilih menu tersebut bisa dengan mouse atau dengan menekan ALT dan huruf depan dari menu yang ingin kita pilih. Misal ALT+F untuk memilih File. dst.
7. Sebelum mengetikkan program, sebaiknya arahkan direktori kerja ke folder yang sudah kita siapkan sebelumnya (langkah 1) dalam contoh ini adalah D:\Naya, dengan langkah sebagai berikut :
a. Pilih menu File
b. Pilih Change Dir…
c. Pilih Drive (Tekan Enter atau double klik)
d. Pilih D (Tekan Enter atau double klik)
e. Cari folder Naya (Tekan Enter atau double klik)
f. Tekan OK
Maka folder D:\Naya sudah aktif sebagai folder kerja, artinya pada saat penyimpanan program dan pemanggilan program akan langsung mengarah pada folder D:\Naya, sehingga file program kita tidak tercampur dengan data file yang lain. Lakukan langkah ini setiap kali memulai Turbo C++.



















8. Mulailah mengetik program. Perintah-perintah penting dalam C++ dalam pengoperasian program antara lain :
























Alasan-alasan Menggunakan Bahasa C
Beberapa alasan mengapa bahasa C banyak digunakan, diantaranya adalah sebagai berikut :
1. Bahasa C tersedia hampir di semua jenis komputer
2. Kode bahasa C sifatnya adalah portabel Aplikasi yang ditulis dengan bahasa C untuk suatu komputer tertentu dapat digunakan di komputer lain hanya dengan sedikit modifikasi.
3. Bahasa C hanya menyediakan sedikit kata-kata kunci.
4. Proses executable program bahasa C lebih cepat
5. Dukungan pustaka yang banyak Keandalan bahasa C dicapai dengan adanya fungsi-fungsi pustaka.
6. C adalah bahasa yang terstruktur Bahasa C mempunyai struktur yang baik sehingga mudah untuk dipahami. C mempunyai fungsi-fungsi sebagai program bagiannya.
7. Selain bahasa tingkat tinggi, C juga dianggap sebagai bahasa tingkat menengah. Bahasa C mampu menggabungkan kemampuan bahasa tingkat tingkat tinggi dengan bahasa tingkat tingkat rendah.
8. Bahasa C adalah kompiler Karena C sifatnya adalah kompiler, maka akan menghasilkan executable program yang banyak dibutuhkan oleh program-program komersial.

Struktur Program C
Untuk dapat memahami bagaimana suatu program ditulis, maka struktur dari program harus dimengerti terlebih dahulu, atau sebagai pedoman penulis program (programmer) bagaimana seharusnya program tersebut ditulis.
Struktur dari program C dapat diihat sebagai kumpulan dari sebuah atau lebih fungsifungsi.
Fungsi pertama yang harus ada di program C yang sudah ditentukan namanya, yaitu fungsi main(). Artinya program C minimal memiliki satu fungsi (fungsi main()).
Fungsi-fungsi lain selain fungsi utama bisa dituliskan setelah atau sebelum fungsi utama dengan deskripsi prototype fungsi pada bagian awal program. Bisa juga dituliskan pada file lain yang apabila kita ingin memakai atau memanggil fungsi dalam file lain tersebut, kita harus menuliskan header file-nya, dengan preprocessor directive #include. File ini disebut file pustaka (library file). Struktur bahasa C dapat dilihat pada gambar berikut ini :




































Keterangan :
1. Dimulai dari tanda { hingga tanda } disebut tubuh fungsi / blok.
2. Tanda ( ) digunakan untuk mengapit argumen fungsi, yaitu nilai yang dilewatkan ke fungsi. Pada fungsi main( ) tidak ada argumen yang diberikan, maka tidak ada entri di dalam ( ).
3. Kata void menyatakan bahwa fungsi ini tidak memiliki nilai balik.
4. Tanda { menyatakan awal eksekusi program dan tanda } menyatakan akhir eksekusi program.
5. Didalam tanda { } bisa tergantung sejumlah unit yang disebut pernyataan (statemen). Umumnya pernyataan berupa instruksi untuk :
a. Memerintah komputer melakukan proses menampilkan string ke layar.
b. Menghitung operasi matematika.
c. Membaca data dari keyboard.
d. dll.
Bahasa C dikatakan sebagai bahasa pemrograman terstruktur, karena strukturnya menggunakan fungsi-fungsi sebagai program bagian (subroutine). Fungsi-fungsi selain fungsi utama merupakan program-program bagian. Fungsi-fungsi ini dapat ditulis setelah fungsi utama atau diletakkan di file pustaka (library). Jika fungsi-fungsi diletakkan di file pustaka dan akan dipakai disuatu program, maka nama file judul (header file) harus dilibatkan didalam program yang menggunakannya dengan preprocessor directive #include.

ABOUT ALGO PROGRAM

Program komputer adalah rangkaian kata perintah yang telah dimengerti oleh komputer untuk dikerjakannya. Kata-kata perintah tersebut membentuk suatu bahasa yang disebut dengan bahasa pemrograman.
Sebagaimana bahasa pada manusia, bahasa pemrograman juga terdiri atas banyak macam bahasa, dan memiliki aturannya masing-masing.
Sulitnya, komputer saat ini belum diberi hak inisiatif, sehingga jika ada sedikit saja kesalahan penulisan perintah oleh pemrogram, ia tidak mau memakluminya atau berusaha memperbaiki sendiri kesalahan tersebut. Serta merta ia “ngambek” dan tidak mau mengerjakan perintah-perintah lainnya.
Komputer diciptakan melalui logika manusia, karenanya, ia bekerja secara logis, tanpa
campur-tangan “perasaan.”
Orang yang telah terbiasa “bergaul” dengan komputer menggunakan satu bahasa pemrograman tertentu (tingkat mahir), biasanya tidak lagi memerlukan kertas coret-coretan untuk membuat suatu program komputer.
Namun bagi pemula, pembelajar, atau yang belum mahir, diperlukan kertas coret-coretan tersebut.
Kertas coret-coretan itu akan digunakan untuk menyusun algoritma (langkah-langkah penyelesaian masalah), flowcharting (alur logika perintah, yang merupakan aplikasi dari algoritma), maupun menuliskan perintah sesuai dengan kaidah dari bahasa pemrograman yang akan digunakannya.
Sewaktu menyusun algoritma, kita tidak perlu tahu (atau tidak perlu menyesuaikan dengan) bahasa pemrograman yang nanti akan kita gunakan.
Hal utama yang kita pikirkan adalah kaidah (hirarki) dari komputer itu sendiri, yaitu input-proses-output.
Input adalah data yang harus ada (sudah ada/ sudah tersedia), yang dapat diproses dengan aturan-aturan tertentu untuk menghasilkan output seperti yang dikehendaki. Data yang ada harus logis (masuk akal) bahwa “ia” dapat diproses untuk menghasilkan output.
Meskipun sudah dikatakan, bahwa sewaktu kita menyusun algoritma kita tidak perlu tahu bahasa pemrograman apa yang akan digunakan kelak, namun, untuk penulisan algoritma yang lebih efisien dan efektif, maka penggunaan sebagian perintah yang ada di dalam bahasa pemrograman perlu dilakukan juga.
Adapun perintah bahasa pemrograman yang paling sering digunakan untuk menyusun algoritma adalah bahasa pemrogrman yang terstrukutur, seperti Pascal, C, SNOBOL, PL/1, dan sebagainya.
Misalkan saja, untuk contoh berikut ini :
Langkah 1 : Beri nilai 10 ke variabel S
Maka, akan lebih mudah jika ditulis sebagai :
Langkah 1 : S := 10;
Belum lagi jika algoritma yang ditulis harus melakukan perulangan langkah ke langkah-langkah sebelumnya (looping).
10 Mulai I:= 1;
11 Lakukan perbandingan data ke I dengan data ke I+1
12 Jika data ke I+1 lebih kecil, maka tukar tempat keduanya
13 Tambahkan I dengan 1
14 Lakukan langkah 11 hingga langkah 13 selama nilai I < 10
15 selesai
Tentu akan lebih ringkas jika kita tulis (perintah BASIC) :
10 For I= 1 to 10
20 If A(i) > A(I+1) then SWAP A(i), A(j)
30 next
40 end
Jadi terlihat, jika algoritma tersebut sederhana, maka penyusunan algoritma akan sama dengan penyusunan sebuah program (karena semua perintahnya sudah sesuai dengan kaidah penulisan di bahasa pemrogramannya).
Apakah semuanya akan demikian ?. Tentu saja tidak, misalkan, kita diminta untuk menentukan bilangan terkecil dari seratus buah bilangan yang akan dimasukkan ke komputer, ini masih dapat langsung dibuatkan programnya.
Algoritma (program)nya bisa kita susun sebagai berikut :
1 DIM A(100)
2 FOR M = 1 TO 100
3 INPUT A(M) : NEXT : KECIL = A(1)
4 FOR M = 2 TO 100
5 IF KECIL > A(M) THEN X = KECIL: KECIL = A(M) : A(M) = X
6 NEXT : PRINT KECIL : END
Tetapi, misalkan jika kita diminta untuk mengalihkan notasi infix menjadi postfix melalui stack, hal itu sulit untuk dilakukan.
Algoritmanya bisa menggunakan gabungan kalimat dengan bahasa pemrograman, berikut contoh penggalannya.

Contoh :
1. Asumsi : deretan notasi infix dimasukkan ke dalam sebuah variabel array bernilai string, nama variabelnya D
2. S adalah variabel string untuk menyimpan susunan data di dalam stack
3. H adalah variabel string untuk menyimpan hasil
4. P = banyaknya elemen array
5. For I = 1 to p
If top(s) = empty then {top(s) adalah posisi atas stack)
     if D(i) = operand then
        H = D(i)
        Else
        S = S + D(i)
        Top(s) = D(i)
      Endif
      Else
  If D(i) = operator then
       If derajat D(i) > derajat Top(s) then
       . . .
     . . .
   . . .
. . .
Jadi, terdapat beberapa kata yang tidak dapat dijabarkan langsung ke dalam bahasa pemrograman. Misalkan, kata Top(s), empty, operand, operator, dan derajat.

PERLUNYA PROSEDUR
Toh akhirnya, kita tidak akan mungkin hanya membuat algoritmanya saja melainkan dilanjutkan ke pembuatan programnya. Karenanya, algoritma sebaiknya dibuat sedemikian rupa agar setiap perintah yang ada di dalamnya dapat diaplikasikan langsung ke dalam bahasa pemrograman.
Itulah perlunya prosedur. Misalkan kata “operand” di algoritma di atas yang tidak dapat langsung diaplikasikan di dalam bahasa pemrogramannya, kita buat saja prosedur dari algoritma tersebut yang mendefinisikan apa itu “operand.” Misalkan :
1 Procedure OPERAND
2 IF ASC(D(I)) > 64 AND ASC(D(I)) < 91 THEN OP = .T. ELSE OP = .F.
3 RETURN
Sehingga, di algoritma utamanya bisa diubah dari :
If top(s) = empty then                  {top(s) adalah posisi atas stack)
   if D(i) = operand then
      H = D(i)
menjadi :

If top(s) = empty then                  {top(s) adalah posisi atas stack)
    Do Procedure OPERAND
    IF op = .t.
       H = D(i)

PERLUNYA STANDAR PENGGUNAAN PERINTAH BAHASA PEMROGRAMAN
Sulit memang membuat standardisasi penggunaan perintah bahasa pemrograman di sebuah algoritma. Sulit karena ada yang hanya memahami satu bahasa pemrogrman saja sehingga ia tak mau menggunakan perintah di bahasa pemrograman lain.
Namun, itu sebatas cara penulisan saja, misalkan di BASIC A = 10, di Pascal berlaku A := 10, namun untuk perintah looping, umumnya memiliki alur logika yang sama, yaitu dalam penggunaan FOR-NEXT, REPEAT-UNTIL, DO WHILEENDDO, WHILE-WEND, dan sebagainya.
Jadi, meskipun tidak ada standar yang pasti, paling-paling hanya berbeda cara penulisannya saja, namun sama dalam alur logikanya. Jadi, ternyata, standardisasi semacam ini tidak diperlukan.

(Sumber, ALGORITMA PEMROGRAMAN Bambang Wahyudi,Skom.,MMSI)

Thursday

FLOWCHART

Flowchart adalah penggambaran secara grafik dari langkah-langkah dan urut-urutan prosedur dari suatu program. Flowchart menolong analis dan programmer untuk memecahkan masalah kedalam segmen-segmen yang lebih kecil dan menolong dalam menganalisis alternatif-alternatif lain dalam pengoperasian.
Flowchart biasanya mempermudah penyelesaian suatu masalah khususnya masalah yang perlu dipelajari dan dievaluasi lebih lanjut.

PEDOMAN-PEDOMAN DALAM MEMBUAT FLOWCHART
Bila seorang analis dan programmer akan membuat flowchart, ada beberapa petunjuk yang harus diperhatikan, seperti :
  • Flowchart digambarkan dari halaman atas ke bawah dan dari kiri ke kanan.
  • Aktivitas yang digambarkan harus didefinisikan secara hati-hati dan definisi ini harus dapat dimengerti oleh pembacanya.
  • Kapan aktivitas dimulai dan berakhir harus ditentukan secara jelas.
  • Setiap langkah dari aktivitas harus diuraikan dengan menggunakan deskripsi kata kerja, misalkan MENGHITUNG PAJAK PENJUALAN.
  • Setiap langkah dari aktivitas harus berada pada urutan yang benar.
  • Lingkup dan range dari aktifitas yang sedang digambarkan harus ditelusuri dengan hati-hati. Percabangan-percabangan yang memotong aktivitas yang sedang digambarkan tidak perlu digambarkan pada flowchart yang sama. Simbol konektor harus digunakan dan percabangannya diletakan pada halaman yang terpisah atau hilangkan seluruhnya bila percabangannya tidak berkaitan dengan sistem.
  • Gunakan simbol-simbol flowchart yang standar.

JENIS-JENIS FLOWCHART
Flowchart terbagi atas lima jenis, yaitu :
  1. Flowchart Sistem (System Flowchart)
  2. Flowchart Paperwork / Flowchart Dokumen (Document Flowchart)
  3. Flowchart Skematik (Schematic Flowchart)
  4. Flowchart Program (Program Flowchart)
  5. Flowchart Proses (Process Flowchart)

FLOWCHART PROSES

 Flowchart Proses merupakan teknik penggambaran rekayasa industrial yang memecah dan menganalisis langkah-langkah selanjutnya dalam suatu prosedur atau sistem.