Website : http://stmikmj.ac.id/site/index.php/id/
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.
- 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.
- 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.
- Symbol Process: berbentuk persegi panjang dalam posisi horizontal (rectangle). Simbol ini dipakai untuk menunjukkan pengolahan yang dilakukan komputer.
- Symbol Manual Operation: berbentuk trapesium yang terbalik (trapezoid). Simbol ini dipakai untuk menunjukkan pengolahan manual, atau tanpa kinerja komputer.
- Symbol Decision: berbentuk belah ketupat (diamond). Simbol ini dipakai untuk menunjukkan kondisi yang dapat memberikan beragam kemungkinan aksi.
- 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).
- 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.
- 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.
- 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.
- Symbol Input-Output: berbentuk jajar genjang (parallelogram). Simbol ini dipakai untuk menunjukkan proses input dan output tanpa melihat jenis peralatan.
- 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.
- 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.
- 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.
- 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).
- 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
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 ← i+1 {pencacah naik}
writeln ('angka ke', i)
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 ←
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
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 :
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"; }}
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.
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 :
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
Kali ini saya akan membuat algoritma dan flowchart untuk mencari deret bilangan Fibonacci ( 1, 1, 2, 3, 5, 8, 13, 21 ).
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