Thursday, May 18, 2017

TUGAS UAS "ALGORITMA DAN PEMROGRAMAN KOMPUTER"



WELCOME TO STMIK MUHAMMDIYAH JAKARTA



Assalamualaikum Warahmatullahi Wabarakatuh
Bissmillahirohmanirohim

Selamat siang pembaca Blogger STMIK MJ. Kali ini saya akan memposting tugas kuliah saya pada :
Mata Kuliah  : Algoritma dan Pemrograman Komputer
Dosen              : Habibah Nur Fauziah Syafa, S.kom M.Si
Tugas              : UAS 1
Judul              :"Materi Algoritma dan Pemrograman komputer"

Baiklah berikut postingan saya mengenai materi Algoritma dan Pemrograman Komputer.

1.  Apakah Itu Algoritma

Ditinjau dari asal-usul katanya, kata Algoritma sendiri mempunyai sejarah yang panjang. Orang hanya menemukan kata algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan algorist jika Anda menghitung menggunakan angka arab. Para ahli bahasa berusaha menemukan asal kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu Musa Al-Khuwarizmi. Al-Khuwarizmi dibaca orang barat menjadi Algorism. Beliau adalah salah satu cendekiawan muslim dalam bidang matematika. Al-Khuwarizmi menulis buku yang berjudul Kitab Al Jabar Wal-Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of restoration and reduction). Dari judul buku itu kita juga memperoleh akar kata “Aljabar” (Algebra). Perubahan kata dari algorism menjadi algorithm muncul karena kata algorism sering dikelirukan dengan arithmetic, sehingga akhiran –sm berubah menjadi –thm. Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa, maka lambat laun kata algorithm berangsur-angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga kehilangan makna kata aslinya. Dalam bahasa Indonesia, kata algorithm diserap menjadi algoritma.

2.  Definisi Algoritma

“Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis dan logis”. Kata logis merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus logis dan harus dapat ditentukan bernilai salah atau benar. Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan tertentu. Selain itu beberapa ahli juga memiliki pendapat masing-masing, berikut beberapa definisi algoritma menurut para ahli ;
  • Menurut Abu Ja’far Muhammad Ibnu Musa Al-Khawarizmi, Seorang Matematikawan Islam dari Uzbekistan
Algoritma adalah suatu metode khusus untuk menyelesaikan suatu persoalan yang ada.
  • Menurut Goodman dan Hedetniemi, penulis buku “Introduction to the Design and Analysis of Algorithms“
Algoritma merupakan Urut-urutan terbatas dari operasi terdefinisi dengan baik, yang masing-masing membutuhkan memory dan waktu yang terbatas untuk menyelesaikan suatu masalah.
  • Menurut Donald Ervin Knuth, seorang ilmuan terkenal dalam bidang komputerisasi
Algoritma yaitu Sekumpulan aturan-aturan berhingga yang memberikan sederetan operasi-operasi untuk menyelesaikan suatu jenis masalah yang khusus.
  • Menurut Seymour Lipschutz dan Marc Lipson, keduanya penulis buku tentang aljabar dan seorang praktisi matematika dan komputer
Algoritma merupakan suatu daftar langkah demi langkah yang terhingga dari instruksi-instruksi yang terdefinisikan dengan jelas yang dipakai untuk permasalahan tertentu.
  • Menurut Marvin Minsky, seorang Ilmuwan dibidang Kecerdasan Buatan (Artificial Intelligence)
Algoritma adalah seperangkat aturan yang memberitahukan kepada kita dari waktu ke waktu, tepatnya bagaimana untuk bertindak.
  • Menurut David Bolton, seorang praktisi dibidang teknologi asal Australia
Algoritma merupakan sebuah deskripsi suatu prosedur yang berakhir dengan sebuah hasil.
  • Menurut Andrey Andreyevich Markov, Matematikawan asal Rusia
Algoritma adalah hal umum untuk dipahami sebagai suatu keputusan yang tepat untuk mendefinisikan proses komputasi yang mengarahkan dari data awal hingga hasil yang diinginkan.
  • Menurut Romi Satria Wahono, salah satu praktisi Komputerisasi terbaik dari indonesia pemilik dari situs ilmukomputer.c
Algoritma adalah logika, metode dan tahapan (urutan) sistematis yang digunakan untuk memecahkan suatu permasalahan.
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 ditinjau dari 2 hal yaitu efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar (paling mendekati), tetapi jika kita 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 kenyataannya, 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.

3.  Hubungan Algoritma dan Program

Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa pemrograman. Beberapa pakar memberi formula bahwa :
Program = Algoritma + Bahasa (Struktur Data)
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, demikian juga sebaliknya.
Pembuatan algoritma mempunyai banyak keuntungan di antaranya :
  • Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman manapun, artinya penulisan  algoritma independen dari bahasa pemrograman dan komputer yang melaksanakannya.
  • Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman.
  • Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena algoritmanya sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma :
  • Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah. Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami.
  • Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.
  • Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini dikarenakan 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 menjalannya.
  • Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
  • Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu :
a.       Pendeklarasian variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa  pemrograman apabila    tidak semua bahasa pemrograman membutuhkannya.
b.      Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian variabel maka perlu hal ini 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 sintaksis
Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa pemrograman yang akan digunakan.
e.       Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya menjadi program.
f.       Cara pengoperasian compiler atau interpreter.
Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau interpreter.


4. Notasi algoritma


Notasi algoritma merupakan hal dasar yang harus diketahui oleh setiap orang yang ingin membuat suatu pogram, karena dalam notasi algoritma inilah terdapat instruksi atau langkah-langkah suatu program. Notasi algoritma bukan notasi bahasa pemrograman, karena itu program dalam notasi algoritma tidak dapat dijalankan oleh komputer. Notasi algoritma bukan notasi bahasa pemrograman, sehingga siapapun dapat membuat notasi algoritma yang berbeda. Ciri notasi algoritma yang baik yaitu dapat diterjemahkan ke dalam berbagai bahasa pemrograman. Hal yang penting mengenai notasi tersebut adalah mudah dibaca dan dimengerti.
Di bawah ini ada 3 notasi yang umum digunakan dalam penulisan algoritma, yaitu :

a.       Notasi Alami.

      Notasi Alami Penulisan algoritma dengan notasi alami adalah dengan cara menuliskan instruksi- instuksi yang harus dilaksanakan untuk memecahkan masalah dalam bentuk untaian kalimat deskriptif. Dengan notasi bergaya kalimat ini, deskripsi setiap langkah dijelaskan dengan bahasa yang gamblang. Proses diawali dengan kata kerja seperti ‘baca’, ‘hitung’, ‘bagi’, ‘ganti’, dan sebagainya, sedangkan pernyataan kondisional dinyatakan dengan ‘jika…maka…’. Notasi ini bagus untuk algoritma yang pendek, namun untuk masalah yang algoritmanya besar, notasi ini jelas tidak efisien. Selain itu, pengkonversian notasi algoritma ke notasi bahasa pemrograman cenderung relative sukar.
Contoh:
• Algoritma_Menghitung_Luas_Persegi_Panjang.
Langkah 1: Baca nilai panjang.
Langkah 2: Baca nilai lebar.
Langkah 3: Kalikan nilai panjang dengan nilai lebar dan berikan nilainya ke hasil.
Langkah 4: Tampilkan nilai hasil.

b.      Flowchart / Diagram Alur.

   Flowchart / Diagram Alir Flowchart adalah gambaran dalam bentuk diagram alir dari algoritma-algoritma dalam suatu program, yang menyatakan arah alur program tersebut. Diagram alur lebih menggambarkan aliran instruksi di dalam program secara visual dibanding memperlihatkan struktur program. Notasi diagram alur lebih cocok digunakan untuk masalah yang kecil, untuk masalah yang besar tidak cocok digunakan karena membutuhkan berlembar halaman kertas. Selain itu, pengkonversian notasi algoritma ke bahasa pemrograman cenderung relatif sukar.
      Untuk dapat membaca flowchart Anda harus mengetahui simbol simbol flowchart. Ada banyak simbol simbol flowchart yang dapat dipergunakan sebagai komponen dalam penyusunan prosedur sistematis tersebut. Berikut simbol simbol flowchart sesuai pengelompokannya.
Kelompok Simbol Petunjuk Arus (Flow Direction Symbols)
Simbol simbol flowchart ini dipakai untuk menghubungan antar simbol.
  1. Symbol Off-Line Connector: berbentuk persegi sama sisi dengan sisi bagian bawah membentuk segitiga sama kaki (pentagon). Simbol ini dipakai untuk penghubung keluar masuk antar prosedur dalam satu lembar kerja flowchart dengan lembar kerja selanjutnya.
  2. Symbol Connector: berbentuk lingkaran (oval). Simbol ini dipakai untuk penghubung keluar masuk antar prosedur dalam satu lembar kerja flowchart yang sama.
Kelompok Simbol Pemrosesan (Processing Symbols)

Simbol simbol flowchart ini dipakai untuk memberitahukan tindakan pengolahan pada prosedur.
  1. Symbol Process: berbentuk persegi panjang dalam posisi horizontal (rectangle). Simbol ini dipakai untuk menunjukkan pengolahan yang dilakukan komputer.
  2. Symbol Manual Operation: berbentuk trapesium yang terbalik (trapezoid). Simbol ini dipakai untuk menunjukkan pengolahan manual, atau tanpa kinerja komputer.
  3. Symbol Decision: berbentuk belah ketupat (diamond). Simbol ini dipakai untuk menunjukkan kondisi yang dapat memberikan beragam kemungkinan aksi.
  4. Symbol Predefined Process: berbentuk persegi enam dengan dua garis yang berada dalam posisi horizontal memiliki ukuran yang lebih panjang daripada garis-garis di sisi lainnya (hexagon). Simbol ini dipakai untuk menyiapkan tempat penyimpanan untuk pengolahan).
  5. Symbol Terminal: berbentuk persegi panjang dalam posisi horizonyal dengan sudut yang tidak lancip (rounded rectangle). Simbol ini dipakai untuk awal atau akhir dari suatu program.
  6. Symbol Off-Line Storage: berbentuk segitiga sama kaki terbalik (isosceles triangle). Simbol ini dipakai untuk menunjukkan bahwa data yang berada di dalam simbol akan segera disimpan.
  7. Symbol Keying Operation: berbentuk persegi panjang dalam posisi horizontal dengan sisi sebelah kiri lebih pendek daripada sisi kanan, keduanya dihubungkan dengan garis lurus melalui atas. Simbol ini dipakai untuk menunjukkan operasi menggunakan mesin yang ber-keyboard.
Kelompok Simbol Input dan Output (Input-Output Symbols)
Simbol simbol flowchart ini dipakai untuk media input dan output.
  1. Symbol Input-Output: berbentuk jajar genjang (parallelogram). Simbol ini dipakai untuk menunjukkan proses input dan output tanpa melihat jenis peralatan.
  2. Symbol Magnetic-tape Unit: berbentuk seperti huruf Q kapital. Simbol ini dipakai untuk menyatakan input yang berasal dari pita magnetic, atau menyatakan output akan disimpan ke pita magnetic.
  3. Symbol Punched Card: berbentuk seperti SIM Card telepon seluler. Simbol ini dipakai untuk menyatakan input berasal dari kartu, atau output akan ditulis ke dalam kartu.
  4. Symbol Disk and On-line Storege: berbentuk persegi panjang dalam posisi horizontal dengan kedua sisi di samping kanan dan kiri terdapat setengah lingkaran yang keduanya menjorok ke kiri. Simbol ini dipakai untuk menyatakan input berasal dari disk, atau output akan disimpan ke disk.
  5. Symbol Display: berbentuk persegi panjang dalam posisi horizontal dengan sisi sebelah kiri terdapat segitiga sama kaki yang menjorok ke bagian kiri atau bagian luar, dan sisi sebelah kanan terdapat setengah lingkaran yang menjorok ke sebelah kanan atau bagian luar. Simbol ini dipakai untuk menunjukkan bahwa peralatan output terdiri dari layar, plotter, printer, dan lain-lain).
  6. Symbol Document: berbentuk persegi panjang dalam posisi horizontal dengan sisi bagian kiri lebih panjang daripada sisi sebelah kanan, di mana kedua sisi tersebut dihubungkan dengan garis berkelok melalui bagian bawah. Simbol ini dipakai untuk menyatakan input berasal dari kertas, atau output akan dicetak ke dalam kertas. 
Nah, dalam pembuatan contoh flowchart Anda harus paham dengan berbagai macam simbol yang masuk dalam kelompok-kelompok di atas. Jika Anda telah paham, maka Anda dapat menyusun flowchart dari suatu sistem dengan cara mentransfer kenyataan yang terdapat dalam sistem ke dalam bentuk diagram dalam lembaran kertas dengan menggambarkan simbol-simbol flowchart, kemudian menghubungkan arusnya dengan simbol yang telah ditetapkan.


Menurut penggunaannya, flowchart memiliki beragam jenis, tidak hanya flowchart untuk mempelajari prosedur sistem berbasis komputer, namun juga berbagai macam prosedur yang lain, sepert Flowchart Program, Dokumen, Data, dan Sistem.


Contoh Flowchart Program Sederhana



Flowchart terbagi atas lima jenis, yaitu :
  • Flowchart Sistem (System Flowchart)
  • Flowchart Flowchart Dokumen (Document Flowchart)
  • Flowchart Skematik (Schematic Flowchart)
  • Flowchart Program (Program Flowchart)
  • Flowchart Proses (Process Flowchart)
Flowchart Sistem
Flowchart Sistem merupakan bagan yang menunjukkan alur kerja atau apa yang sedang dikerjakan di dalam sistem secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur yang ada di dalam sistem. Dengan kata lain, flowchart ini merupakan dekripsi secara grafik dari urutan prosedur-prosedur yang terkombinasi yang membentuk suatu sistem.
Flowchart Sistem terdiri dari data yang mengalir melalui sistem dan proses yang mentransformasikan data itu. Data dan proses dalam flowchart sistem dapat digambarkan secara online (dihubungkan langsung dengan komputer) atau offline (tidak dihubungkan langsung dengan komputer, misalnya mesin tik, cash register atau kalkulator).
Flowchart Dokumen
Bagan alir dokumen (document flowchart) atau disebut juga bagan alir formulir (form flowchart) atau paperwork flowchart merupakan bagan alir yang menunjukkan arus dari laporan dan formulir termasuk tembusan-tembusannya. Bagan alir dokumen ini menggunakan simbol-simbol yang sama dengan yang digunakan di dalam bagan alir sistem.
Flowchart Skematik
Bagan alir skematik (schematic flowchart) merupakan bagan alir yang mirip dengan bagan alir sistem, yaitu untuk menggambarkan prosedur di dalam sistem. Perbedaannya adalah, bagan alir skematik selain menggunakan simbol-simbol bagan alir sistem, juga menggunakan gambar-gambar komputer dan peralatan lainnya yang digunakan. Maksud penggunaan gambar-gambar ini adalah untuk memudahkan komunikasi kepada orang yang kurang paham dengan simbol-simbol bagan alir. Penggunaan gambar-gambar ini memudahkan untuk dipahami, tetapi sulit dan lama menggambarnya.
Flowchart Program
Bagan alir program (program flowchart) merupakan bagan yang menjelaskan secara rinci langkah-langkah dari proses program. Bagan alir program dibuat dari derivikasi bagan alir sistem.
Bagan alir program dapat terdiri dari dua macam, yaitu bagan alir logika program (program logic flowchart) dan bagan alir program komputer terinci (detailed computer program flowchart). Bagan alir logika program digunakan untuk menggambarkan tiap-tiap langkah di dalam program komputer secara logika. Bagan alir logika program ini dipersiapkan oleh analis sistem.
Flowchart Proses
Flowchart Proses merupakan teknik penggambaran rekayasa industrial yang memecah dan menganalisis langkah-langkah selanjutnya dalam suatu prosedur atau sistem. Bagan alir proses menggunakan lima buah simbol tersendiri seperti terlihat pada tabel di bawah ini.
Flowchart Proses digunakan oleh perekayasa industrial dalam mempelajari dan mengembangkan proses-proses manufacturing. Dalam analisis sistem, flowchart ini digunakan secara efektif untuk menelusuri alur suatu laporan atau form.

c. Pseudocode

Pseudo-code adalah notasi yang menyerupai notasi bahasa pemrograman tingkat tinggi, khususnya Pascal dan C. Bahasa pemrograman umumnya mempunyai notasi yang hampir mirip untuk beberapa instruksi seperti notasi if-then-else, while-do, repeat-until, read, write, dan sebagainya. Namun tidak seperti bahasa pemrograman yang direpotkan dengan tanda titik koma, indeks, format keluaran, kata-kata khusus, dan sebagainya, sembarang versi Pseudocode dapat diterima asalkan perintahnya tidak membingungkan pembaca. Keuntungan menggunakan notasi Pseudocode adalah kemudahan mentranslasi ke notasi bahasa pemrograman, karena terdapat korespodensi antara setiap Pseudocode dengan notasi bahasa pemrograman. Sehingga Pseudocode cocok untuk algoritma yang rumit.Contoh notasi pseudocode adalah sebagai berikut :
     Mulai Selesai
     Baca nilai panjang
     Baca nilai lebar
     Hasil=panjang * lebar
     Tampilkan nilai Hasil
     Algoritma_Menghitung_Luas_Persegi_Panjang
     DEKLARASI: Panjang : integer Lebar : integer Luas : integer
     DESKRIPSI: read (Panjang) read (Lebar) Luas Panjang * Lebar write (Luas) 
Aturan penulisan algoritma dalam notasi pseudocode. 


5.Struktur Algoritma Berurutan, Percabangan, dan Pengulangan

a. Struktur Algoritma Berurutan

Ada tiga struktur dasar yang digunakan dalam membuat algoritma yaitu struktur berurutan (sequencing), struktur pemilihan/keputusan/percabangan (branching) dan struktur pengulangan (looping). Sebuah algoritma biasanya akan menggabungkan ketiga buah struktur ini untuk menyelesaikan masalah.
                               
Struktur berurutan terdiri satu atau lebih instruksi. Tiap instruksi dikerjakan secara berurutan sesuai dengan urutan penulisannya, yaitu sebuah instruksi dieksekusi setelah instruksi sebelumnya selesai dieksekusi. Urutan instruksi menentukan keadaan akhir dari algoritma. Bila urutannya diubah, maka hasil akhirnya mungkin juga berubah.

Menurut Goldshlager dan Lister (1988) struktur berurutan mengikuti ketentuan-ketentuan sebagai berikut:

·    tiap instruksi dikerjakan satu persatu x tiap instruksi dilaksanakan tepat sekali, tidak ada yang diulang x urutan instruksi yang dilaksanakan pemroses sama dengan urutan aksi sebagaimana yang tertulis di dalam algoritmanya
·     akhir dari instruksi terakhir merupakan akhir algoritma.

Flowchart untuk menghitung luas bangun. Buatlah flowchart untuk menghitung:

a.   volume balok
b.   luas lingkaran

Penyelesaian:

      Soal ini merupakan permasalahan dengan algoritma struktur berurutan karena tidak ada proses pemilihan atau pengulangan. Untuk volume balok, kita harus menentukan variabel input dan output yang dibutuhkan. Untuk menghitung volume balok dibutuhkan variabel input panjang, lebar dan tinggi.

     Sedangkan variabel outputnya adalah volume. Pada luas lingkaran dibutuhkan variabel input radius dan variabel output luas. Untuk menghitung luas lingkaran ini kita juga membutuhkan konstanta phi.

     Flowchart untuk konversi suhu. Buat flowchart untuk mengubah temperatur dalam Fahrenheit menjadi temperatur dalam Celcius dengan rumus oC = 5/9 x (oF -32).

Penyelesaian:

    Soal ini juga masih menggunakan algoritma dengan struktur berurutan. Variabel input yang dibutuhkan adalah F dan variabel outputnya adalah C. Flowchart untuk dua masalah ini dapat dilihat pada Gambar 5.7.
a.   flowchart menghitung volume balok
b.   flowchart menghitung luas lingkaran




 b. Struktur Algoritma Percabangan
   
Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur berurutan, kadang-kadang kita perlu merubah urutan pelaksanaan program dan menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa ini kadang disebut sebagai percabangan/pemilihan atau keputusan.
Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika suatu kondisi yang disyaratkan dipenuhi. Pada proses seperti ini simbol flowchart Decision harus digunakan. Simbol decision akan berisi pernyataan yang akan diuji kebenarannya. Nilai hasil pengujian akan menentukan cabang mana yang akan ditempuh.

Struktur percabangan untuk masalah batasan umur. Sebuah aturan untuk menonton sebuah film tertentu adalah sebagai berikut, jika usia penonton lebih dari 17 tahun maka penonton diperbolehkan dan apabila kurang dari 17 tahun maka penonton tidak diperbolehkan nonton. Buatlah flowchart untuk permasalahan tersebut?

      Penyelesaian:

Permasalahan diatas merupakan ciri permasalahan yang menggunakan struktur percabangan. Hal ini ditandai dengan adanya pernyataan jika .. maka ...(atau If ... Then dalam Bahasa Inggris. 
Pada gambar tersebut, tampak penggunaan simbol Decision. Pada simbol ini terjadi pemeriksaan kondisi, yaitu apakah usia lebih dari 17 tahun atau tidak. Jika jawaban ya maka program akan menghasilkan keluaran teks “Silahkan Menonton”, sedangkan jika input usia kurang dari 17 tahun maka program akan menghasilkan keluaran teks “Anda Tidak Boleh Menonton”.

Struktur percabangan untuk perhitungan dua buah bilangan. Dalam suatu perhitungan nilai P = X + Y. Jika P positif, maka Q = X * Y, sedangkan jika negative maka nilai Q = X/Y. Buatlah flowchart untuk mencari nilai P dan Q ?

     Penyelesaian:

Pada contoh ini input yang dibutuhkan adalah nilai X dan Y, sedangkan proses pemeriksaan kondisi dilakukan pada nilai P apakah positif (termasuk 0) ataukah negative. 

Kedua contoh di atas merupakan contoh struktur percabangan sederhana yang melibatkan hanya satu percabangan. Pada masalah-masalah yang lebih rumit, kita akan menjumpai lebih banyak percabangan. Kita juga akan menjumpai suatu struktur percabangan berada di dalam struktur percabangan yang lain, atau yang biasa disebut nested (bersarang).

      Perhatikan contoh-contoh berikut:
Sebuah usaha fotokopi mempunyai aturan sebagai berikut:

·  jika yang fotokopi statusnya adalah langganan, maka berapa lembar pun dia fotokopi, harga perlembarnya Rp. 75,-
·     jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari 100 lembar harga perlembarnya Rp. 100,-. Sedangkan jika lebih atau sama dengan 100 lembar maka harga perlembarnya Rp. 85,-.

Buat flowchart untuk menghitung total harga yang harus dibayar jika seseorang memfotokopi sejumlah X lembar.

     Penyelesaian:

Pada contoh ini, masalah terlihat lebih rumit. Ada dua percabangan yang terjadi. Yang pertama adalah pemeriksaan apakah status seseorang pelanggan atau bukan. Kedua, apabila status seseorang bukan pelanggan, maka dilakukan pemeriksaan berapa jumlah lembar fotokopi, apakah lebih dari 100 lembar atau tidak.

Pada soal ini kita juga menjumpai apa yang disebut sebagai nested. Perhatikan pernyataan pada syarat kedua dari persoalan di atas, jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari 100 lembar harga perlembarnya Rp. 100 pernyataan jika yang kedua berada di dalam jika yang pertama.

Input yang dibutuhkan untuk permasalahan ini adalah status orang yang fotokopi dan jumlah lembar yang difotokopi. Sehingga variable input yang digunakan adalah:

·       Status untuk status orang yang fotokopi
·       JLF untuk jumlah lembar yang difotokopi

Selain itu terdapat variable dengan nama HPP yang digunakan untuk menyimpan harga per lembar dan TH untuk menyimpan nilai total harga. Perhatikan, variable Status bertipe data char, sehingga penulisannya harus menggunakan tanda “ “.

Struktur percabangan bersarang untuk masalah kelulusan siswa. Aturan kelulusan siswa pada mata pelajaran Pemrograman Web diterapkan sebagai berikut:

Jika nilai ujian tengah semester (UTS) lebih besar dari 70 maka siswa dinyatakan lulus dan Nilai Akhir sama dengan nilai UTS. x Jika nilai UTS kurang atau sama dengan 70 maka siswa dinyatakan lulus jika Nilai Akhir lebih besar atau sama dengan 60 dimana Nilai Akhir = (nilai UTS x 40%) + (nilai UAS x 60%).

Buatlah flowchart penyelesaian masalah tersebut apabila output yang diinginkan adalah NIM, Nama Siswa, Nilai Akhir dan Status Kelulusan?

      Penyelesaian:
Pada contoh ini, ada dua percabangan. Yang pertama adalah pemeriksaan apakah nilai UTS siswa lebih dari 70. Kedua, apabila nilai UTS tidak lebih dari 70, maka dilakukan pemeriksaan apakah nilai akhir lebih dari 60. Input yang dibutuhkan untuk permasalahan ini adalah NIM, nama siswa, nilai UTS, dan nilai UAS.

Sehingga variable input yang digunakan adalah: NIM untuk Nomor induk siswa, nama untuk nama siswa, NUTS untuk nilai ujian tengah semester, dan NUAS untuk nilai ujian akhir semester. Sedangkan variabel ouput terdiri dari NA yang digunakan untuk menyimpan nilai akhir dan Status untuk menyimpan status kelulusan.
c.  Struktur Algoritma Pengulangan

Memang salah satu yang dipelajari di algoritma dan pemrograman dasar adalah pengulangan atau istilah lainnya looping, bukan hanya di algoritma saja, ternyat konsep looping ini digunakan juga di berbagai bahasa pemrograman dan konspe dasarnya adalah algoritma pengulangan.
Anda mungkin sudah tau struktur pengulangan namun belum tau apa maksud algoritma pengulangan ini, kapan harus menggunakan pengulangan dan untuk apa fungsinya, untuk pemula yang baru terjun ke dunia bahasa pemrograman hal semacam ini bisa dimaklumi, tapi disini saya akan jelaskan mengenai algoritma pengulangan ini secara detail sehingga bukan hanya tau pengertiannya saja, anda juga akan tau fungsinya, kapan harus menggunakan pengulangan dan apa maksud dari pengulangan itu sendiri.

Untuk memahami lebih lanjut mengenai pengulangan anda harus tahu dan paham mengenai konsep dasar algoritma, dan juga sudah mengenal tipe data dan variable, selain itu anda saya anggap sudah paham struktur dasar dari algoritma sehingga akan lebih mudah untuk memahami contoh kasus yang akan disajikan di artikel ini.

Apa itu Pengulangan?

Pengulangan atau disebut sebagai looping adalah instruksi khusus dalam bahasa pemrograman dan algoritma yang digunakan untuk mengulang beberapa perintah sesuai dengan jumlah yang telah ditentukan. tujuannya adalah untuk mempermudah pengerjaan program dan untuk mempersingkat instruksi program. dengan pengulangan instruksi program yang seharunya ditulis dengan jumlah baris yang banyak bisa dipersingkat.
Instruksi Pengulangan dalam Algoritma
Ada 3 jenis bentuk instuksi format pengulangan di dalam algoritma yaitu sebagai berikut:

1. Pengulangan menggunakan FOR
Pengulangan for disebut juga sebagai pengulangan di awal format instruksinya adalah sebagai berikut:
For i ← nilai_awal to nilai_akhir do
Statement
Endfor
Contoh:
Buatlah algoritma untuk mencetak tulisan "Algoritma Menyenangkan" sebanyak 100 baris maka instruknya adalah:
Jawab:

program looping_for
DEKLARASI
i:integer
ALGORITMA:
For i    1 to 100 do
writeln('Algoritma Menyenangkan')
endfor

2. Penggulangan menggunakan Instruksi While DO
Format:
while kondisi do
pernyataan
endwhile
Contoh Kasus:
Buatlah algoritma untuk mencetak tuliasan angka 1 sampai 100
Jawaban:
promgram looping
DEKLARASI
var i:integer
ALGORITMA:
i ← 0
while i <100 do
writeln ('angka ke', i)
i+1 {pencacah naik}
endwhile

3. Pengulangan dengan Menggungakan Repeat Until
Format:
repeat
statement
pencacah naik atau pencacah turun until kondisi
contoh kasus:
Buatlah algoritma untuk mencetak tulisan Hello World sebanyak 1000 baris.
Jawab:
program cetak
DEKLARASI
i:integer
ALGORITMA:
i ← 1 {isi nilai awal variable i dengan angka 1)
repeat write ('Hello World') i i+1
until i<=1000

Kapan Harus menggunakan Instruksi pengolangan di dalam algoritma?

Sebenarnya  untuk memecahkan masalah kasus pemrograman bisa dipecahkan dengan banyak cara tertangung logika si programmer, seperti halnya banyak jalan menuju kota jakarta, tapi tujuannya tetap saja, tapi yang terbaik adalah bagaimana membuat program dengan instruksi sedikit dan proses sangat cepat.
Programmer yang pintar akan sangat mudah sekali mencari cara yang terbaik untuk membuat program dengan instruksi yang singkat namun prosesnya cepat. salah satu instruksi yang bisa digunakan adalah pengulangan, ketika sebuah kasus memungkinkan untuk menggunakan pengulangan maka harus menggunakan pengulangan.

Kapan instruksi pengulangan harus digunakan?

Instruksi pengulangan digunakan manakala program atau bagian program terindikasi bisa menggunakan proses pengulangan.
Sebagai contoh sederhana. misalkan untuk kasus program untuk menampilkan angka 1 sampai 1000, atau program untuk mencetak tulisan tertentu dalam jumlah tertentu.
Sebenarnya bisa saja tidak menggunakan pengulangan, namun kurang efektif walaupun hasil outputnya bisa saja sama.

Pengulangan dengan Pencacah Naik
Pengulangan pencacah naik yaitu kondisi pengulangan yang dimulai dengan kondisi pencacah kecil ke besar naik sampai jumlah pengulangan yang diinginkan.
Contoh: buat algoritma untuk mencetak tulisan "Teknologi Modern" sebanyak 1000 baris.
Jika menggunakan pencacah naik instruksi algoritmanya adalah sebagai berikut:
Jawab:
algoritma pencacah_naik
DEKLARASI
i:integer
ALGORITMA:
for i  ← 1 to 1000 do
writeln ('Teknologi Modern');
endfor
Pengulangan yang digunakan di algorirma di atas disebut pengulangan pencacah naik karena dimulai dari angka 1 terus naik sampai angka 1.000. bisa juga menggunakan Repeat Until atau While DO.

Pengulangan dengan Pencacah Turun
Pengulangan pencacah turun yaitu kodisi pengulangan yang dimulai dengan kondisi nilai pencacah dari besar ke kecil. sesuai dengan jumlah yang diinginkan.
Contoh: buat algoritma untuk mencetak tulisan "Teknologi HP Modern" sebanyak 1000 baris. Jika menggunakan pencacah turun instruksi algoritmanya adalah sebagai berikut, misal menggunakan intruksi repeat until:
Jawab:
algoritma cacah_turun
DEKLARASI
i:integer
ALGORITMA:
i ← 1000 {nilai pencacah awal 1000 dimasukan ke variable i}
repeat writeln ('teknologi HP Modern')  
i-1 {turunkan pencacah}
until i<1
 


6. Bubble sort dan Array

Bubble sort
Bubble sort adalah salah satu metode sorting atau mengurutkan dari data terkecil ke data terbesar ataupun dengan cara membandingkan elemen kesatu dengan elemen  yang selanjutnya.

Konsep pada metode bubble sort ini adalah





Pada kesempatan kali ini kita akan membuat contoh program bubble sort pada bahasa c++ yaitu mengurutka nilai terbesar ke nilai terkecil.


Keterangan

a. baris 5-7  = adalah pendeklarasian variabel dan array yang akan digunakan dalam program
b  baris 10-13 = Proses inputan yang disimpan dalam array yang dilakukan dalam perulangan
c. baris 14-26 = Proses pengurutan antara elemen satu dengan yang lain dan apabila elemen
satu lebih kecil daripada elemen berikutnya (mengurtkan besar ke kecil) maka proses
pertukaran akan terjadi pada pada baris 23-25
d. baris 29-32 = Setelah pengurutan berhasil maka nilai akan dicetak/ ditampilkan pada baris
ini


Maka apabila di compile maka hasilnya akan menjadi :




Bagi yang ingin mencoba berikut kodingan:
#include<iostream>
using namespace std;

int main()
{   int a,k,c,d,g;
    k=4;
    int b[4];

    cout<<"BUBBLE SORT BY ZEFTAADETYA.BLOGSPOT.COM"<<endl;
    cout<<"mengurutkan nilai dari besar ke kecil"<<endl<<endl;
    for(a=0;a<k;a++)
    {
        cout<<"Masukkan nilai "<<a+1<<" : ";cin>>b[a];
    }
    for(a=0;a<k-1;a++)
    {

        for(d=a+1;d<k;d++)
        {
        c=a;
            if(b[c]<b[d])
            {
                c=d;
            }
        g=b[c];
        b[c]=b[a];
        b[a]=g;
        }

    }
    cout<<"\n setelah diurutkan akan menjadi : \n";
    for(a=0;a<k;a++)
    {
        cout<<b[a]<<" \n";  }}

Contoh bublesort :

1.Tentukan Jumlah Bilangan yang akan di inputkan
2.Inputkan bilangan 4,2,3,8,5
3.Bandingkan bilangan 1 >/< bilangan 2
4.Jika benar pindahkan bilangan 2 ke bilangan sisip
5.Pindahkan bilangan 1 ke bilangan 2
6.Pindahkan bilangan sisip ke bilangan 1
7.Jika tidak lanjutkan proses
8.Bandingkan bilangan 2 >/< bilangan 3
9.Jika benar pindahkan bilangan 3 ke bilangan sisip
10.Pindahkan bilangan 2 ke bilangan 3
11.Pindahkan bilangan  sisip ke bilangan 2 
12.Jika tidak lanjutkan proses
13.Ulangi langkah no 3 hingga hasil sesuai yang diinginkan


Array 


Array merupakan sebuah variabel yang menyimpan lebih dari 1 buah data yang memiliki tipe data yang sama. Jadi dapat dikatakan bahwa array merupakan kumpulan dari data-data tunggal yang dijadikan dalam 1 variabel array yang alamat memorinya berbeda yang selanjutnya disebut elemen-elemen array yang bisa kita akses berdasarkan indeks.
Sebagai contoh kita mempunyai 5 buah data dengan nilai 1, 2, 3, 4, dan 5 dengan tipe data integer (int). Kita bisa saja mendeklarasikan tiap datanya dalam 1 variabel, misalnya :
int A = 1;
int B =2;
int C = 3;
int D = 4;
int E=5;
Tapi deklarasi tersebut diatas menjadi tidak efektif karena terlalu banyak variabel yang digunakan. Kita dapat memanfaatkan array dalam hal ini. Kita dapat menggunakan 1 buah variabel, misalnya memasukkan semua data kedalam variabel A dengan struktur array seperti berikut.
int A[5] = {1, 2, 3, 4, 5};
Perlu diperhatikan bahwa pada bahasa C++, indeks array selalu dimulai dari 0 bukan 1.

Dalam Mendeklarasikan sebuah array, kita harus menggunakan tanda [ ] (bracket). Untuk menghitung Besarnya memory yang dibutuhkan untuk variabel A arrray diatas adalah 5 x 2 bytes ( 2 bytes merupakan ukuran untuk 1 buah data dalam bentuk integer). Jika kita ingin memanggil sebuah data pada array, misalnya kita ingin memanggil elemen ke-2, maka kita dapat memanggilnya dengan menuliskan sintaks seperti berikut :
 X = A[1];
Bentuk umun dari pendeklarasian sebuah array adalah sebagai berikut.
tipe_data nama_array[jumlah data];
Contoh kode program untuk menampilkan array :

#include <iostream> // header
#include <conio.h>
using namespace std;
int main()
{
// Mendeklarasikan nilai-nilai ke dalam variabel A
int A[5] = {1, 2, 3, 4, 5};
// Menampilkannya nilai yang terdapat pada elemen-elemen array
for (int i=0; i<5; i++)
{
cout<<“Nilai data pada elemen ke-“<<i ;
cout<<” = ” <<A[i]<<endl;
}
getch();
}
Jika kita jalankan kode diatas menggunakan sebuah aplikasi compiler misalkan DEV-C++, maka akan tampil pada command windows seperti tampilan berikut :





7.  Penerapan Konsep Tabel dan Teknik Switching

PENERAPAN KONSEP TABEL


Argumen dan Fungsi
Tabel merupakan data pembantu dalam pengolahan data. Misal dalam suatu lembar dokumen terdapat data pegawai sbb :

NIP
Gapok
Tunjangan
10200
500.000
120.000
10201
300.000
100.000
10202
350.000
120.000
10203
400.000
230.000
10204
450.000
100.000
10205
500.000
 50.000

Dari data pegawai tersebut tidak dapat diketahui nama setiap pegawai. Untuk itu dapat dibuat suatu tabel yang berisi khusus untuk nama pagawai seperti dibawah ini :
NIP
NAMA
10200
Amat
10201
Bondan
10202
Amir
10203
Dwi
10204
Tika
10205
Toni

Item NIP merupakan item yang dipakai sebagai acuan untuk mencari data nama pegawai di dalam tabel. Item ini berfungsi sebagai kontrol field yang sering disebut ARGUMEN. Sedang item NAMA merupakan FUNCTION dari tabel tersebut.

Penggunaan Storage untuk Penyimpanan Tabel
Data di dalam media penyimpanan seperti disk, kartu, dokumen dll yang berfungsi sebagai tabel disebut External Tabel.
Dalam proses pengolahan data, external tabel ini sebaiknya dipindahkan ke memori agar proses menjadi cepat.
Di dalam memori external tabel menempati lokasi yang disebut storage. Di storage ini terbentuk suatu tabel yang disebut sebagai Internal Tabel. Selanjutnya proses pengolahan data menggunakan internal tabel.

Flowchart proses pembentukan internal tabel.



Setiap data yang dibaca dari external tabel disimpan di dalam NIPTAB(I) dan NMTAB(I). Variabel ini merupakan variabel berindeks atau variabel array.
Variabel array merupakan suatu variabel dengan beberapa tempat penyimpanan.
Gambar dibawah memperlihatkan ilustrasi variabel array NIPTAB.

Penyimpanan ke dalam variabel array NIPTAB dilakukan berdasarkan nilai indeksnya. Pada flowchart di atas nilai indeks ditentukan melalui variabel I.



Proses Pencarian (Searching)

Proses pencarian di dalam internal tabel dilakukan dengan berpatokan pada nilai indeksnya.
Misal untuk mencari nama pegawai dengan NIP = 10203 dapat digambarkan melalui flowchart berikut:



Pengurutan dengan Eksternal Tabel


Pembentukan File Indeks
Proses pengurutan bilangan dilakukan di internal tabel. Semua bilangan yang akan diurutkan disimpan dahulu ke suatu penyimpanan di dalam memori yaitu variabel array.
Di memori, proses pengurutan dapat dilakukan dengan lebih cepat. Namun jika datanya banyak, maka proses ini akan membutuhkan ukuran memori yang besar. Untuk menghindarinya, proses pengurutan dilakukan di dalam eksternal tabel.
Eksternal tabel dibentuk dengan cara membuat file baru. File ini desebut sebagai File Indeks. Isi file indeks adalah field yang berfungsi sebagai field kunci (key field) dari record data yang akan diurutkan. Key Field merupakan field yang dipakai sebagai dasar pengurutan. Misal data yang harus diurutkan berdasarkan NIP, maka field kuncinya adalah field yang berisi NIP.
Secara garis besar, proses pengurutan dengan eksternal tabel terdiri dari langkah-langkah:
o   Bentuk file indeks yang hanya berisi field kunci.
o   Lakukan pengurutan pada file indeks. Pengurutan dapat dilakukan dengan metode bubble  sort atau straight selection.
o   Pindahkan record dari file lama ke file baru dengan posisi record sesuai pada file indeks. 
Proses Pembentukan File Indeks
PEG.DTA
NIP
NAMA
ALAMAT
93004
Amat
Jl. P
93001
Badu
Jl. G
93003
Dono
Jl. H
93006
Rina
Jl. Z
93002
Tuti
Jl. W
93005
Kiki
Jl. Q
/*




     Jika data di file PEG.DTA ingin diurutkan berdasarkan NIP, maka harus dibentuk file indeks yang hanya berisi field NIP. Proses pembentukan file indeks ini dapat digambarkan melalui flowchart :






Berdasarkan flowchart diatas, terbentuk file indeks yaitu INDEKS.DTA.







TEKNIK SWITCHING

   Teknik switching merupakan cara memperpendek jalur proses. Teknik ini memakai suatu indikator untuk mengantisipasi proses yang akan dilakukan selanjutnya. Indikator ini dapat dimisalkan seperti Switch pada tombol lampu, dimana tombol ini dapat mengatur dua kondisi yaitu nyala atau padam. Namun dalam Flowchart switch tersebut berupa variabel yang diisi dengan dua kondisi yaitu 0 dan 1. Melalui isi variabel tersebut dapat diketahui kondisi proses yang telah dilakukan. Sehingga dapat dilakukan pengalihan proses tanpa melalui  proses sebelumnya, sehingga dapat mempersingkat alur proses
1. Analisa Persoalan
Sebuah perusahaan ingin mengkomputerisasikan perhitungan pemakaian listrik. Dimana pelanggannya mencakup seluruh wilayah di Jakarta.
Spesifikasi prosesnya adalah :
· Input diperoleh melalui entry data oleh operator yang terdiri dari :
- wilayah                 : 1 numerik
- nomor langganan  : 2 alphanumerik
- nama langganan   : 20 alphanumerik
- jumlah pemakaian : 4 numerik
Data habis jika operator mengentry nomor langganan = 0
Data sudah urut per kode wilayah yang terdiri dari : Jakarta Barat, Jakarta Pusat, Jakarta Selatan, Jakarta Utara, Jakarta Timur.
Jika wilayah berubah, maka cetak total biaya per wilayah dan ganti halaman baru.
Pada akhir laporan cetak total seluruh biaya yaitu jumlah total pemakaian listrik di semua wilayah.
Layout laporan yang diinginkan adalah :


Berdasarkan contoh diatas, dibuat analisa sehingga diketahui persiapan yang harus dilakukan.
Persiapan tersebut adalah :
1.Dalam spesifikasi proses dijelaskan bahwa data sudah urut per kode wilayah. Jadi proses pembacaan data akan dilakukan terhadap sekelompok data dengan kode wilayah yang sama. Setelah data wilayah tersebut habis, maka proses pembacaan dilanjutkan dengan wilayah berikutnya. Bagaimanakah caranya agar diketahui perbedaan data yang baru dibaca dengan data sebelumnya?
2. Bagaimanakah halnya jika data yang akan dibandingkan merupakan data awal proses ? karena hal ini tidak memungkinkan untuk membandingkan data tersebut dengan data sebelumnya. Dimana variabel penyimpanan masih dalam kondisi kosong atau belum diisi oleh data wilayah sebelumnya. Untuk itu perlu dipersiapkan satu variabel yang berfungsi sebagai variabel switch. Variabel ini pada awal proses  diberi nol.
Sehingga sebelum dilakukan proses pembandingan, lakukan terlebih dahulu pemeriksaan isi variabel ini. Jika isinya masih tetap nol berarti pembacaan data merupakan data awal. Untuk itu tidak perlu dilakukan pembandingan terhadap kode wilayah. Yang perlu dilakukan adalah menyimpan kode wilayah tersebut ke dalam variabel sementara, agar pada proses pembacaan data berikutnya dapat dilakukan pembandingan terhadap data ini.



·         Implementasi ke dalam Flowchart


2. Penelusuran Flowchart

1.      Siapkan variabel-variabel yang diperlukan selama proses berlangsung.
2.      Variabel-variabel tersebut adalah :
SW     
:
Variabel Swicth
WS
:
Untuk mempertahankan kode wilayah yang pertama kali dibaca 
TotWil
:
Untuk menghitung total pemakaian per wilayah
TotSel
:
Untuk menghitung total pemakaian seluruh wilayah

3.      Input data dan disimpan didalam variabel :
NO      : Data Nomor Langganan
KW      : Data Kode Wilayah
NM      : Data Nama Pelanggan
JP       : Data Jumlah pemakaian listrik tiap pelanggan
Periksa isi variabel NO, bila NO=0,lakukan
Cetak Total Pemakaian Per Wilayah yang tersimpan   didalam variabel TotWil.
Cetak nilai Total pemakaian seluruh wilayah yang tersimpan didalam variabel TotSel.
Proses selesai / berakhir.
Jika isi variabel No ternayat tidak sama dengan 0 berarti proses belum berakhir, lanjutkan ke langkah 4.
4.      Periksa isi variabel SW. Langkah ini dilakukan untuk mengetahui apakah proses yang dilakukan merupakan proses awal. Jika SW = 0, berarti proses merupakan pembacaan data awal, maka lakukan :
Isi Variabel SW dengan nilali = 1
Karena proses pembacaan merupakan data awal, maka isi KW harus dipertahankan untuk perbandingan pada data berikutnya. Oleh karena itu lanjutkan ke langkah 9 untuk mengisi ke variabel penampungan yaitu WS.
Jika SW tidak sama dengan o, berarti data yang dibaca bukan merupakan data pertama. Berarti variabel WS telah diisi dengan kode wilayah sebelumnya. Untuk itu dapat dilakukan pembandingan isi antara variabel Ws dengan KW
Bandingkan isi variabel KW dengan WS
5.      Jika isi kedua variabel tersebut sama, berarti data yang dibaca merupakan data wilayah yang sama dengan data sebelumnya. Oleh karena itu lanjutkan proses ke langkah 11. Namun jika isi KW tidak sama dengan WS berarti data tersebut merupakan data pemakaian listrik untuk wilayah lainnya. Oleh karena itu harus harus dilakukan proses pencetakan total pemakaian wilayah sebelumnya dan proses pencetakan judul. Judul tersebut digunakan untuk wilayah baru sesuai dengan data wilayah yang dibaca. Lanjutkan ke langkah 6.

6.      Tambahkan nilai total pemakaian per wilayah ke nilai total seluruh wilayah dengan menggunakan rumus : TotSel = TotSel + TotWil

7.      Cetak nilali total per wilayah

8.      Kosongkan variabel TotWil. Karena variabel ini akan digunakan untuk perhitungan nilai total pemakaian wilayah berikutnya. Karena data yang dibaca merupakan wilayah baru maka isi variabel Ws juga harus diganti / diperbaharui.
9.      Variabel WS diisi sesuai dengan isi KW yang dibaca dengan menggunakan rumus berikut : WS = KW
10.  Cetak judul untuk setiap wilayah
11.  Tambahkan jumlah pemakaian tiap pelanggan ke dalam variabel total pemakaian per wilayah. Rumus yang dipakai adalah : TotWil = TotWil + JP
12.  Cetak data-data tiap pelanggan
13.  Kembali ke langkah-langkah untuk membaca data berikutnya

8. Algoritma dan flowchart untuk deret bilangan Fibonacci 



Kali ini saya akan membuat algoritma dan flowchart untuk mencari deret bilangan Fibonacci ( 1, 1, 2, 3, 5, 8, 13, 21 ).

Algoritma :
1.       Program dimulai
2.      Deklarasikan variabel fibo dengan tipe array of int, variabel i untuk iterasi, dan n untuk     jumlah bilangan  fibonacci yang ingin ditampilkan.
3.      Masukkan jumlah bilangan fibonacci yang ingin ditampilkan dan nyatakan ke dalam variable n, (  contohnya n <= 24 ).
4.      Tetapkan nilai pada variable fibo pada indeks ke-0 dengan 1.
5.      Tetapkan nilai pada variable fibo pada indeks ke-1 dengan 1.
6.      Cetak nilai pada variable fibo pada indeks ke-0 dan ke-1.
7.      Isi nilai i dengan 2.
8.      Tambahkan nilai pada variabel fibo di indeks ke-(i-1) dengan nilai pada variabel fibo di indeks ke-(i-2)  kemudian nyatakan ke variabel fibo pada indeks ke-i.
9.      Cetak nilai dari variabel fibo pada indeks ke-i.
10.  Tambahkan nilai i dengan 1.
11.  Tanya apakah user masih ingin menampilkan deret fibonacci.
12.  Bila jawabannya iya, maka kembali ke langkah ke-2.
13.  Bila jawabannya tidak, maka program dapat langsung diakhiri.
14.  Program selesai.






Flowchart :

 
Demikian ulasan saya mengenai materi algoritma dan pemrograman komputer. Mohon maaf atas kurang sempurnanya postingan ini, karena kesempurnaan hanya milik Alloh SWT. Terimakasih telah mengunjungi blog saya, semoga bermanfaat.



Wassalamualaikum Warahmatullahi Wabarakatuh








EmoticonEmoticon