• Tidak ada hasil yang ditemukan

Buku Algoritma dan Pemrograman

N/A
N/A
Ni Kadek Puji Paramitha Surya

Academic year: 2023

Membagikan "Buku Algoritma dan Pemrograman"

Copied!
134
0
0

Teks penuh

Pemrograman terstruktur adalah proses penerapan rangkaian langkah-langkah penyelesaian suatu permasalahan dalam bentuk program yang memiliki desain terstruktur dan tidak rumit sehingga siapapun dapat dengan mudah menelusuri, memahami dan mengembangkannya. Menganggap komputer sebagai mesin yang “pintar” adalah suatu anggapan yang salah, karena komputer hanyalah sebuah alat yang kepadanya seseorang memberikan serangkaian perintah sehingga dapat menyelesaikan permasalahan dengan cepat, tepat, bahkan berulang-ulang, tanpa merasa lelah dan bosan. Dalam pemrograman, algoritma berarti suatu metode tertentu yang tepat dan terdiri dari serangkaian langkah-langkah yang terstruktur dan tertulis.

Langkah-langkah tersebut harus logis, artinya nilai kebenarannya harus dapat ditentukan, benar atau salah. Sekarang algoritma Swap_Fill_Glass diatas sudah diperbaiki sehingga kandungan air pada gelas A dan kadar air pada gelas B dapat tertukar dengan benar.

Penyajian Algoritma

Deskriptif

Pseudocode

Simbol persiapan, simbol yang digunakan untuk memberikan nilai awal pada suatu variabel atau counter. Simbol proses default, simbol yang digunakan untuk proses yang detailnya dijelaskan secara terpisah, misalnya dalam bentuk subrutin. Simbol link ke halaman lain, simbol yang digunakan untuk menghubungkan bagian-bagian flowchart pada halaman yang berbeda.

Simbol tautan ke halaman yang sama, simbol yang digunakan untuk menghubungkan bagian-bagian diagram alur pada halaman yang sama. Simbol yang menunjukkan dokumen yang digunakan untuk masuk dan keluar baik secara manual, mekanis, maupun komputerisasi.

Gambar 2.1.  flowchart program Hitung Gaji Pedoman membuat flowchart :
Gambar 2.1. flowchart program Hitung Gaji Pedoman membuat flowchart :

Struktur Urut (sequence)

Pengulangan

Struktur Algoritma

Aturan penamaan algoritma mengacu pada aturan penamaan identifier yang akan dibahas pada bagian selanjutnya. Algoritma akan mencetak kata “prime” jika bilangan tersebut merupakan bilangan prima, dan sebaliknya akan mencetak kata “composite” jika bilangan tersebut bukan bilangan prima}. Nama-nama tersebut dapat berupa nama konstanta, nama variabel, nama tipe, nama prosedur, dan nama fungsi.

Contoh berikut adalah algoritma untuk menghitung nilai rata-rata dari jumlah digit yang dimasukkan menggunakan keyboard. Komentar merupakan penjelasan terhadap sesuatu yang tertulis pada algoritma, dan komentar bukan merupakan bagian dari langkah penyelesaian algoritma.

Input dan Output

Input

Output

Pengertian Pemrograman

Oleh karena itu, suatu program merupakan perwujudan atau implementasi suatu algoritma yang ditulis dalam bahasa pemrograman tertentu agar dapat dieksekusi oleh komputer. Merupakan bahasa pemrograman yang menggunakan aturan tata bahasa untuk menulis ekspresi atau pernyataan dengan standar yang mudah dipahami oleh manusia dan memiliki instruksi khusus yang dapat langsung diakses oleh komputer. Merupakan bahasa pemrograman yang menggunakan aturan tata bahasa untuk menulis ekspresi atau pernyataan dengan standar bahasa yang dapat langsung dipahami orang.

Jika terjadi kesalahan kompilasi, dapat langsung diperbaiki secara interaktif. C. Tidak menghasilkan objek program d. Tidak menghasilkan file yang dapat dieksekusi. Keamanan program kurang terjamin, karena yang selalu digunakan adalah program sumber... sehingga dapat dijalankan dari system prompt.

Tipe Data

Tipe dasar: adalah tipe data yang selalu tersedia dalam bahasa pemrograman apa pun, antara lain: bilangan bulat (integer), bilangan biasa (real), bilangan tetap (const), karakter (karakter atau char), logis (logika atau boolean). Tipe terbentuk: merupakan tipe data yang dibentuk dari gabungan tipe-tipe dasar antara lain: array, record, string. Tipe data logis adalah tipe data yang digunakan untuk memberikan nilai pada hasil perbandingan atau kombinasi perbandingan.

Array adalah tipe data yang merupakan wadah untuk menampung beberapa nilai data dengan tipe yang sama. Record adalah tipe data yang dibangun yang merupakan wadah untuk menyimpan elemen data yang tipenya tidak harus sama untuk tujuan mewakili satu tipe objek.

Variabel

Pada program Pascal atau C, setiap variabel yang akan digunakan dideklarasikan terlebih dahulu, dan setiap variabel harus mempunyai tipe.

Konstanta

Pemberian Nilai

Menampilkan Nilai

Ekspressi ( Expression )

Operator relasional: operator untuk menyatakan hubungan atau perbandingan antara dua operan, seperti: > (lebih besar dari), < (kurang dari), >= (lebih besar atau sama dengan), <= (kurang dari atau sama dengan),. Misalnya data jam-menit-detik adalah 1 jam 30 menit 40 detik, maka jumlah detiknya adalah 5440 detik. Pada dasarnya, Anda ingin mengetahui bahwa jumlah detik sama dengan berapa jam dan berapa detik yang tersisa.

Instruksi Runtunan (Sequential)

Struktur program dimana setiap baris program akan dieksekusi secara berurutan dari atas ke bawah, sesuai urutan penulisannya. Dari grafik diatas, pertama-tama processor akan mengeksekusi instruksi program baris 1, instruksi program baris 2 akan dieksekusi jika instruksi program baris 1 telah selesai. Dari kedua algoritma dan flowchart di atas terlihat bahwa algoritma kedua memiliki baris instruksi yang lebih sedikit sehingga menghasilkan pemrosesan yang lebih cepat.

Gambar 4.2. Flowchart menghitung isi tabung
Gambar 4.2. Flowchart menghitung isi tabung

Instruksi Pemilihan (Selection)

Struktur opsional if-then hanya menyediakan satu opsi tindakan jika kondisinya benar (bernilai benar), dan tidak menyediakan opsi tindakan lain jika kondisinya bernilai salah. Bentuk seleksi yang lebih umum adalah memilih salah satu dari dua tindakan berdasarkan nilai suatu kondisi. Jika kondisi "hari hujan" benar, tindakan "naik sepeda motor" dijalankan, sebaliknya tindakan "naik sepeda motor" dijalankan jika "hari hujan" tidak benar.

Carilah pembagi terbesar (pbt) dari kedua bilangan tersebut, yaitu bilangan positif terbesar yang habis dibagi m dan n. Berikut ini adalah flowchartnya.

Gambar 2.3. Algoritma Euclidean  Dengan Pseudo-Code
Gambar 2.3. Algoritma Euclidean Dengan Pseudo-Code

Instruksi Pengulangan (Repetition)

Instruksi berulang adalah instruksi yang dapat mengulangi pelaksanaan sejumlah instruksi lainnya secara berulang-ulang sesuai kebutuhan yang ditentukan. Penghitung iterasi: variabel yang nilainya harus berubah agar iterasi dapat terjadi dan pada akhirnya membatasi jumlah iterasi yang dapat dilakukan. Menetapkan catatan data pegawai yang terdiri dari unsur Nomor_Pegawai (NIP), Nama, Tanggal Lahir, Tempat Lahir, Jenis Kelamin, Agama, Status, Pangkat.

Tuliskan algoritma sederhana untuk membaca kembali dan menampilkan data karyawan yang sesuai dengan struktur catatan pada Soal 1. Buatlah algoritma untuk menghitung jumlah uang yang harus dibayar pelanggan berdasarkan berat jeruk yang dibeli. Output yang diinginkan adalah total harga sebelum diskon, diskon, dan total harga setelah diskon.

Buat algoritma yang meminta masukan bilangan bulat dan kemudian mengembalikan keluaran dalam bentuk satuan, puluhan, dan ratusan. Jika dimasukkan angka 73 (tujuh puluh tiga), maka algoritma menghasilkan keluaran 3 satuan, 7 puluhan, dan 0 ratusan. Setelah mempelajari beberapa petunjuk utama, modal untuk merancang algoritma sederhana pada dasarnya sudah cukup. Oleh karena itu, pada bagian ini akan disajikan beberapa contoh soal yang dapat digunakan sebagai studi kasus bagi siswa yang mempelajari algoritma.

Akses Data Langsung

Menjumlahkan Deret

Mengelompokkan Data

Memilih Operasi Berdasarkan Data Input

Pemilihan 2 Kasus

Syarat atau syarat bilangan n genap dan ganjil dapat kita tampung pada variabel bertipe boolean, dalam hal ini kita sebut genap. Berdasarkan pengamatan tersebut, baris 09 pada algoritma di atas dapat diubah menjadi genap. Algoritma di atas juga dapat ditulis dari sudut pandang ODD, yaitu kondisinya diubah menjadi genap = FALSE.

Oleh karena itu, kita dapat menyimpulkan bahwa kita menulis a jika a≥b, dan menulis b jika kebalikannya. Analisa: masukan: jumlah jam kerja (n) keluaran: upah normal (upah), upah lembur (overtime) dan upah total (total) Upah per jam, upah lembur dan batas lembur dapat dijadikan konstanta. Contoh ini memberi kita dua pilihan, apakah pekerja menerima lembur atau tidak menerima lembur (lembur = 0).

Upah lembur yang diterima merupakan selisih antara jam kerja dengan batas waktu lembur dikalikan dengan upah lembur. Algoritma tersebut menghasilkan keluaran besaran upah reguler, besaran upah lembur dan total upah yang diterima karyawan}. Berdasarkan informasi di atas, buatlah algoritma untuk menentukan apakah suatu tahun merupakan tahun kabisat atau bukan.

Pemilihan Lebih dari 2 Kasus

Jika tidak, maka kasusnya dikurangi menjadi 3 pilihan yaitu kelompok B, C atau D. 2) Misalkan kasus tersebut terdiri dari 2 pilihan yaitu kelompok B atau tidak. Suatu titik pada sistem sumbu koordinat dapat digolongkan menjadi kuadran 1 sampai kuadran 4 berdasarkan letaknya, yang dapat dilihat pada gambar berikut. Ingatlah bahwa jika suatu titik terletak pada sumbu (x atau y), maka titik tersebut tidak terletak di kuadran mana pun.

Analisis : Bisa menggunakan cara sebelumnya yaitu melihatnya sebagai kasus 5 pilihan yaitu kuadran 1 di kuadran 4 ditambah “tidak di kuadran”. Jika tidak pada sumbunya, maka tersisa 4 pilihan yaitu di kuadran 1, kuadran 2, kuadran 3, atau kuadran 4. Kita dapat mengelompokkan kasus dengan 4 pilihan menjadi 2 pilihan saja yaitu jika titik tersebut terletak di sebelah kanan sumbu y (x>0) atau terletak di sebelah kiri sumbu y (x<0).

Jika letaknya di sebelah kanan sumbu y, maka pilihannya hanya tersisa 2 yaitu titik tersebut terletak di kuadran 1 atau di kuadran 4, tergantung nilai y. Jika tidak (terletak di sebelah kiri sumbu y), maka pilihannya hanya tersisa 2 yaitu titik tersebut terletak di kuadran 2 atau di kuadran 3 tergantung nilai y. Perlu diketahui bahwa syarat yang kedua ini lebih lemah dari syarat yang pertama, yaitu walaupun tahun tersebut habis dibagi 100, namun jika tahun tersebut habis dibagi 400 maka tahun tersebut merupakan tahun kabisat.

Jadi langkah pertama adalah mempertimbangkan kasus dengan 6 pilihan sebagai kasus dengan 2 pilihan yaitu apakah nilainya valid (terletak pada rentang 0–100) atau tidak valid. Jadi sebelum menambahkan detik kita perlu mengecek apakah bisa langsung ditambahkan seperti tabel baris 1 yaitu dengan syarat ss + 1 <. Namun sebelum menjumlahkan 1 pada mm, kita harus mengecek apakah mm dapat langsung dijumlahkan seperti tabel baris ke-2 yaitu dengan syarat mm + 1 <.

Gambar 4.1. Flowchart Kuadran
Gambar 4.1. Flowchart Kuadran

Jika tidak, maka berarti hh bernilai 0 seperti tabel baris ke-4

  • ARRAY
  • PROSEDUR
  • FUNGSI

Buatlah algoritma untuk mencetak tulisan “Panas”, “Dingin” atau “Normal” sesuai dengan suhu yang diinput oleh pengguna. Berdasarkan teori pada soal nomor 3, buatlah algoritma untuk menghitung penyelesaian persamaan kuadrat jika persamaan tersebut mempunyai penyelesaian nyata. Algoritma untuk menggeser elemen array menggunakan prosedur yang digunakan di atas diberikan di bawah ini.

Misalnya Array A dengan 10 elemen digabungkan dengan Array B dengan 15 elemen. Tentunya kombinasi berupa Array C harus memiliki elemen yang sama atau lebih besar dari 25. Berikut ini adalah prosedur menggabungkan elemen Array A dan N dengan elemen Array B, M, menjadi Array C dengan elemen L dimana L = N + M. Misalnya, Array C dengan 25 elemen dapat dipecah menjadi Array A dengan 10 elemen dan Array B dengan 15 elemen.

Berikut ini adalah prosedur yang membagi array C dengan elemen L menjadi array A dengan elemen N dan array B dengan elemen M. Berikut ini disajikan prosedur pencarian elemen pada array yang berjumlah N elemen. Ada array satu dimensi yang dibuat dengan int A[10], buat algoritma untuk mengisi array menggunakan pointer sehingga isinya menjadi.

Contoh algoritma berikut menunjukkan penggunaan parameter masukan dan parameter keluaran untuk prosedur penghitungan luas segitiga. Contoh algoritma berikut menunjukkan penggunaan parameter input/output yang digunakan untuk prosedur yang menukar nilai variabel. Membuat algoritma untuk menghitung luas bangun datar dan bangun ruang, serta rumus perhitungan matematika lainnya.

Gambar 5.2 Algoritma untuk menampilkan data waktu setelah ditambahkan 1 detik  01| Algoritma Penambahan_Waktu_1_Detik
Gambar 5.2 Algoritma untuk menampilkan data waktu setelah ditambahkan 1 detik 01| Algoritma Penambahan_Waktu_1_Detik

Gambar

Gambar 2.1.  flowchart program Hitung Gaji Pedoman membuat flowchart :
Gambar 2.4. Flowchart Algoritma Mencari Jumlah 3 Buah Bilangan Bulat  2)  Algoritma mencari hasil kali dari dua buah bilangan dengan flowchart
Gambar 2.5. Flowchart Algoritma Algoritma Mencari Hasil Kali dari Dua Buah  Bilangan
Gambar 4.2. Flowchart menghitung isi tabung
+7

Referensi

Dokumen terkait

Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta. Diperiksa

Dilarang memperbanyak sebagian atau seluruh isi dokumen tanpa ijin tertulis dari Fakultas Teknik Universitas Negeri Yogyakarta. Diperiksa

¾ HTML yang merupakan kepanjangan dari ( Hyper Text MarkUp Language ) memiliki fungsi untuk memformat dokumen teks biasa agar bisa digunakan pada World Wide Web (WWW). Sebuah

2.1 Menunjukkan perilaku, disiplin, tanggung jawab, percaya diri, berani mengakui kesalahan, meminta maaf dan memberi maaf yang dijiwai keteladanan pahlawan

ALGORITMA TULIS PROGRAM COMPILE Sintak Err Executable code: =&gt; Run Output Err DOKUMEN TASI Masalah:. Tentukan akar-akar dari suatu persamaan

Dokumen ini merupakan diskripsi dari aplikasi penggajian pegawai yang menggunakan bahasa pemograman berbasis java, selain itu dokumen ini juga untuk memenuhi tugas mata

“ Ki 6 : “ Beress itu bu, hehehe” Ko : “ Well, mungkin kita perlu penyegaran kembali ya biar suasana tidak membosankan.” Ki : “ Setuju, setuju… Bersorak sorai Kegiatan diselingi

Dokumen ini berisi instruksi, contoh algoritma, dan soal ujian akhir semester untuk mata kuliah Algoritma dan Pemrograman