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.
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.
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.
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 <.
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.