PENGANTAR LOGIKA DAN ALGORITMA
P ENGERTIAN L OGIKA DAN A LGORITMA
Hal yang sama berlaku untuk memori: semakin banyak memori yang digunakan, semakin buruk algoritmanya. Pada kenyataannya, setiap orang dapat membuat algoritma yang berbeda untuk memecahkan suatu masalah, bahkan jika ada perbedaan dalam membangun algoritma tersebut, secara alami kita mengharapkan hasil yang serupa atau sama. Jika Anda menghadapi masalah seperti itu, Anda harus memilih algoritma yang paling efisien dan cepat.
C IRI - CIRI , S IFAT , S TRUKTUR D ASAR DAN C ARA P ENULISAN A LGORITMA
- Runtunan (sequence)
- Pemilihan (selection)
- Pengulangan (repetition)
Pertimbangan kedua yang perlu diperhatikan adalah kita perlu mengetahui seberapa bagus hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama untuk algoritma yang memerlukan perkiraan hasil, yaitu algoritma yang hasilnya hanya perkiraan saja.
P ERBEDAAN A LGORITMA DAN P ROGRAM
Saat menulis sebuah program, kita terikat oleh aturan sintaksis dalam bahasa pemrograman yang akan kita gunakan. Oleh karena itu, suatu program adalah perwujudan atau implementasi teknis dari suatu algoritma yang ditulis dalam bahasa pemrograman tertentu sehingga dapat dieksekusi oleh komputer.
M EKANISME P ELAKSANAAN A LGORITMA OLEH P EMROSES N OTASI P ENULISAN
Ada beberapa jenis instruksi dalam bahasa pemrograman (urutan, pemilihan dan pengulangan), urutan langkah-langkah dalam algoritma dapat diterjemahkan ke dalam satu atau lebih instruksi tersebut. Untuk dapat dieksekusi oleh komputer, suatu algoritma harus ditulis dalam notasi bahasa pemrograman berupa instruksi-instruksi yang dapat dipahami oleh komputer, sehingga disebut dengan program.
B ELAJAR M EMBUAT P ROGRAM DAN B ELAJAR B AHASA P EMROGRAMAN
Namun yang dimaksud dengan “tingkat tinggi” di sini mengacu pada tingkat abstraksi yang lebih tinggi dibandingkan dengan bahasa mesin tingkat rendah. Oleh karena itu, kode-kode yang perlu bekerja secara efisien dapat ditulis dalam bahasa pemrograman tingkat rendah, sedangkan bahasa tingkat tinggi digunakan untuk kemudahan pemrograman.
L ATIHAN S OAL
Konstanta dan variabel merupakan tempat dalam memori komputer untuk menyimpan data berupa nilai dengan tipe data tertentu. Pada Gambar 3.1, misalnya, kita membuat dua konstanta atau variabel bernama pengidentifikasi nilai dan X, yang masing-masing dapat digunakan untuk menyimpan nilai dalam memori sesuai dengan tipe data yang telah ditentukan sebelumnya.
NOTASI PENULISAN ALGORITMA
K ALIMAT DESKRIPTIF
- Judul Algoritma
- Bagian Deklarasi
- Bagian deskripsi
Cara penulisan algoritma dengan menggunakan notasi bahasa deskriptif merupakan cara yang paling mudah untuk dibuat, namun cara ini paling sulit untuk diterjemahkan ke dalam bahasa pemrograman. Algoritme menerima jari-jari lingkaran sebagai masukan, menghitung luasnya, dan kemudian mencetak luas tersebut ke perangkat keluaran} Spesifikasi.
P SEUDOCODE
Struktur penulisan pseudocode secara umum sama dengan struktur penulisan algoritma yang menggunakan pernyataan deskripsi, dimulai dengan judul/header, deklarasi/kamus, dan diakhiri dengan deskripsi. Meskipun tidak ada sintaks khusus untuk penulisan pseudocode, namun terkadang pseudocode ditulis menggunakan gaya penulisan beberapa bahasa pemrograman yang ada, seperti Fortran, Pascal, C, dan lain-lain.
F LOWCHART
Diagram alir program menggambarkan serangkaian instruksi yang diwakili oleh simbol-simbol tertentu untuk menyelesaikan masalah dalam suatu program. Diagram alur program berisi informasi lebih rinci tentang bagaimana setiap langkah program atau prosedur harus dilaksanakan.
L ATIHAN S OAL
Dalam bidang ilmu komputer, tipe data adalah jenis data yang dapat diproses oleh komputer untuk memenuhi kebutuhan pemrograman komputer. Dengan demikian, definisi umum tipe data abstrak dapat dipahami karena tipe data abstrak adalah struktur data yang mengandung operasi atau aturan tertentu. Subbab selanjutnya membahas perbedaan tipe tipe data dari tipe data yang telah disebutkan sebelumnya.
Array adalah alokasi beberapa lokasi dalam memori yang disimpan secara berurutan yang digunakan untuk menyimpan banyak nilai dengan tipe data homogen.
STRUKTUR DATA DALAM ALGORITMA
T IPE D ATA
- Tipe dasar
- Tipe data bentukan
- Tipe data abstrak (Abstract Data Type)
Ketepatan pemilihan tipe data untuk variabel atau konstanta akan sangat menentukan penggunaan sumber daya komputer (terutama memori komputer). Secara umum tipe data dapat digolongkan menjadi tiga tipe, yaitu tipe data dasar (tipe data primitif), tipe data komposit, dan tipe data abstrak. Tipe data terkonstruksi atau tipe data komposit adalah tipe data yang dibangun dari tipe data dasar untuk memudahkan pekerjaan programmer.
Yang termasuk dalam tipe data yang dibentuk adalah array, string, record, union, struktur, dan lain-lain.
K ONSTANTA DAN V ARIABEL
A RRAY
Dua operasi paling dasar pada elemen array adalah menyimpan nilai elemen pada posisi tertentu dalam array dan mengambil nilai elemen dari posisi tertentu dalam array. Biasanya bahasa pemrograman menyediakan sintaks tertentu untuk menyimpan dan mengambil nilai elemen pada posisi tertentu dalam sebuah array. Nama = Siswa[20], berarti mengambil nilai elemen posisi ke-20 dari array Siswa dan menyimpan nilai tersebut dalam variabel bernama "Nama".
Kita tidak dapat memiliki array yang salah satu elemennya adalah karakter, elemen lainnya adalah angka, dan elemen lainnya adalah tipe lain.
S TACK
Ilustrasi menunjukkan bahwa C adalah data terakhir yang masuk ke tumpukan, tetapi yang pertama keluar dari tumpukan. Kebalikan dari A, A adalah data pertama yang masuk ke dalam tumpukan, namun menjadi data terakhir yang keluar dari tumpukan.
Q UEUE
Bila data diletakkan di ujung (belakang) antrian disebut enqueue, bila elemen dipindahkan dari kepala (depan) antrian disebut dequeue. Sama halnya dengan stack, dengan konsep FIFO, pada saat operasi enqueue dilakukan, informasi yang diperlukan hanya berupa konten atau nilai atau elemen yang akan disimpan atau diambil. Dari ilustrasi pada Gambar 3.9 terlihat bahwa C merupakan data terakhir yang masuk ke antrian Q dan akan menjadi data terakhir yang keluar dari antrian.
Sebaliknya dengan A, A merupakan data pertama yang masuk antrian dan akan menjadi data pertama yang keluar antrian.
T REE
Dalam pemrograman, pohon terdiri dari elemen yang disebut node, dimana hubungan antar node bersifat hierarkis. Node yang berada tepat di bawah akar disebut anak dari akar, yang biasanya mempunyai anak di bawahnya juga. Menurut konvensi komputasi, pohon tumbuh ke bawah, tidak seperti pohon di dunia nyata yang tumbuh ke atas.
Simpul yang terletak paling bawah pada pohon disebut simpul akar, sedangkan simpul yang paling ujung pada pohon disebut simpul daun.
G RAPH
Untuk mengecek konektivitas tidak langsung dan jarak antara dua kota dapat diperoleh berdasarkan data konektivitas langsung dari kota perantara lainnya. Pengertian graf adalah kumpulan objek-objek yang disebut node (atau simpul) yang dihubungkan oleh sisi-sisinya. Biasanya, grafik direpresentasikan secara grafis sebagai kumpulan lingkaran yang mewakili titik-titik, dihubungkan oleh garis-garis yang mewakili sisi-sisinya.
Masalah jalur minimum (Shortest path problem) yaitu mencari jalur dengan jarak terpendek dalam suatu jaringan transportasi.
L ATIHAN S OAL
Variabel luas dan keliling dideklarasikan yang hasil perhitungan rumusnya bervariasi tergantung pada nilai jari-jari dan inisialisasi konstanta dan variabel yang dibutuhkan dalam soal ini adalah ius lingkaran dan disimpan dalam variabel jari-jari sebagai berikut: .. n yang didefinisikan. uah angka dengan 2 nasional), jadi PI adalah tipe pecahan. Variabel integer untuk menyimpan nilai input detik --> variabel invoice - Variabel integer untuk menyimpan data detik --> variabel detik. Variabel bertipe integer untuk menyimpan bilangan awal --> variabel bilangan - Variabel bertipe bilangan bulat untuk menyimpan bilangan hasil --> variabel hasil - Variabel untuk menyimpan variabel tumpukan --> tumpukan.
87. Muat jarak dan rute terpendek dari informasi berikut: .. setiap titik selain titik asal, nilai y diinisialisasi ke M) dan nilai z diinisialisasi ke titik 0, se.
STUDI KASUS PERMASALAHAN SEDERHANA
S TUDI K ASUS 1: M ENGHITUNG LUAS DAN KELILING LINGKARAN
- Permasalahan
- Cara Penyelesaian Masalah
- Struktur Data Yang Dibutuhkan
- Input
- Output
- Proses Penyelesaian
- Flowchart Keseluruhan
Karena fleksibel) jari-jari ikan dapat divariasikan menggunakan luas dan keliling yang dimasukkan ke dalam diagram alur. Ada dua kegiatan yang terjadi dalam proses dan dilakukan secara berurutan (berurutan) yaitu menghitung luas dan keliling lingkaran sesuai rumus yang telah ditentukan sebelumnya.
S TUDI K ASUS 2: K ONVERSI SUHU
- Permasalahan
- Cara Penyelesaian Masalah
- Struktur Data Yang Dibutuhkan
- Deklarasi dan Inisialisasi
- Input
- Output
- Proses Penyelesaian
- Flowchart Keseluruhan
Variabel F dan C dinyatakan bertipe pecahan karena sifat nilai suhu yang dapat direpresentasikan sebagai bilangan pecahan. Variabel F dinyatakan sebagai variabel karena nilai yang tersimpan di dalamnya merupakan hasil perhitungan rumus konversi suhu yang nilainya dapat berubah tergantung dari nilai C yang dimasukkan oleh pengguna. Proses yang dilakukan adalah menghitung konversi suhu dari Celsius ke Fahrenheit menggunakan rumus yang telah disebutkan sebelumnya.
S TUDI K ASUS 3: M ENAMPILKAN BILANGAN GANJIL
- Permasalahan
- CaraPenyelesaian Masalah
- Struktur Data Yang Dibutuhkan
- Deklarasi dan Inisialisasi
- Input
- Output
- Proses Penyelesaian
- Flowchart Keseluruhan
Flowchart hanya akan menampilkan angka ganjil, sehingga harus diperiksa kondisinya untuk melihat apakah angka tersebut ganjil. Oleh karena itu dilakukan operasi aritmatika termasuk operator % (modulo), jika bilangan pada modulo 2 bernilai 1 maka bilangan tersebut merupakan bilangan ganjil dan harus ditampilkan di layar, sedangkan jika hasilnya 0 maka bilangan tersebut adalah bilangan genap dan tidak perlu ditampilkan.muncul di layar. . Namun perlu ditambahkan pengecekan kondisi yaitu tidak semua angka ganjil akan ditampilkan di layar, angka 21 dan 27 tidak ditampilkan.
Seperti yang telah dijelaskan sebelumnya, flowchart hanya akan menampilkan angka ganjil, sehingga harus diperiksa kondisinya untuk melihat apakah angka tersebut merupakan angka ganjil.
S OAL L ATIHAN
Proses peredupan kemudian mempunyai jalur ke 2 titik ya titik 2, maka nilai y pada titik penjumlahan ini kurang dari 1. Nilai y pada titik 2 adalah 2. Nilai z pada titik 2 adalah 3. Keterangan pada titik 2 redup Nilai yang sama dikeluarkan pada titik 2 dan titik 3, lihat. Hasilnya sama dengan keadaan nilai y dan nilai z serta nilai z pada titik – terdapat jalur titik dan.
STUDI KASUS PERBANDINGAN
C ONTOH K ASUS 1: T AHUN KABISAT
- Permasalahan
- Proses Penyelesaian Masalah
- Input
- Output
- Struktur Data yang Dibutuhkan
- Logika Pemrograman
- Flowchart
Menampilkan frasa “tahun kabisat” jika angka yang dimasukkan adalah tahun kabisat, dan frasa “Bukan tahun kabisat” jika bukan.
C ONTOH K ASUS 2: D ERET BILANGAN GENAP
- Permasalahan
- Cara Penyelesaian Masalah
- Input
- Output
- Struktur Data yang Dibutuhkan
- Logika Pemrograman
- Flowchart
S OAL L ATIHAN
STUDI KASUS KONVERSI
C ONTOH K ASUS 1: K ONVERSI JAM KE MENIT
- Permasalahan
- Cara Penyelesaian Masalah
- Input
- Output
- Struktur Data yang Dibutuhkan
- Logika Pemrograman
- Flowchart
Untuk mengkonversi jam ke menit, kalikan nilai jam dengan 60 dan tambahkan nilai menit. Variabel integer untuk menyimpan data per jam --> variabel jam - Variabel integer untuk menyimpan data menit --> variabel menit - Variabel integer untuk menyimpan hasil --> variabel hasil 6.1.6 Logika program :.
C ONTOH K ASUS 2: K ONVERSI DETIK KE HARI , JAM , MENIT , DAN DETIK
- Permasalahan
- Cara Penyelesaian Masalah
- Input
- Output
- Struktur Data yang Dibutuhkan
- Logika Pemrograman
- Flowchart
Dengan kata lain nilai kedua merupakan nilai sisa koefisien nilai masukan dibagi 60 (1 menit adalah 60 detik). Jumlah menit adalah jumlah nilai detik (input yang diterima adalah jumlah nilai detik) dibagi 60 dengan menggunakan operator. Nilai menit merupakan nilai sisa koefisien jumlah menit dibagi 60 (1 jam adalah 60 menit).
Kemudian nilai per jamnya diperoleh dengan menghitung sisa hasil bagi jumlah jam dibagi 24 (1 hari adalah 24 jam).
S OAL L ATIHAN
Mengubah bilangan desimal ke biner dilakukan dengan cara membaginya dengan 2 dan mengambil sisanya.
STUDI KASUS PERCABANGAN DAN PERULANGAN
C ONTOH K ASUS 1: K ALKULATOR SEDERHANA
- Cara Penyelesaian Masalah
- Input
- Output
- Struktur Data yang Dibutuhkan
- Logika Pemrograman
- Flowchart
Kemudian program akan mengecek nilai operatornya, jika operatornya '+' maka operasinya penjumlahan, jika operatornya '-' maka operasinya pengurangan, jika operatornya '*' maka operasinya adalah perkalian dan jika operatornya '/', merupakan operasi pembagian.
C ONTOH K ASUS 2: T UMPUKAN BILANGAN
- Permasalahan
- Cara Penyelesaian Masalah
- Input
- Output
- Struktur Data yang Dibutuhkan
- Logika Pemrograman
- Flowchart
S OAL L ATIHAN
STUDI KASUS TUMPUKAN (STACK)
C ONTOH K ASUS 1: M EMBALIK KALIMAT
- Permasalahan
- Cara Penyelesaian Masalah
- Input
- Output
- Struktur Data yang Dibutuhkan
- Logika Pemrograman
- Flowchart
Stack merupakan suatu struktur data yang pengelolaan datanya bersifat Last In First Out (LIFO), yaitu data terakhir yang dimasukkan akan dikeluarkan terlebih dahulu.
C ONTOH K ASUS 2: M EMBALIK BILANGAN
- Permasalahan
- Cara Penyelesaian Masalah
- Input
- Output
- Struktur Data yang Dibutuhkan
- Logika Pemrograman
- Flowchart
S OAL L ATIHAN
STUDI KASUS KONVERSI BILANGAN
Permasalahan
Cara Penyelesaian Masalah
Pada kasus permasalahan di atas, input bilangan biner yang dimasukkan bersama 8 elemen numerik dapat diselesaikan sebagai berikut :.
Struktur Data Yang Dibutuhkan
Deklarasi dan Inisialisasi
Input
Output
Proses Penyelesaian
Flowchart Keseluruhan
S TUDI K ASUS 2: K ONVERSI BILANGAN DESIMAL KE BINER
- Permasalahan
- Cara Penyelesaian Masalah
- Struktur Data Yang Dibutuhkan
- Deklarasi dan Inisialisasi
- Input
- Output
- Proses Penyelesaian
- Flowchart Keseluruhan
Untuk pertama kali, pengguna harus memasukkan nilai bilangan yang akan diubah ke biner. Karena tugas tersebut mengharuskan nilai bilangan tidak boleh lebih besar dari 255, maka perlu diperiksa apakah bilangan tersebut memenuhi persyaratan. Bilangan desimal merupakan hasil konversi bilangan desimal yang dikeluarkan dari tumpukan dengan operasi pop agar dapat dibaca secara terbalik.
Tujuan menggunakan tindanan adalah supaya data yang masuk ke dalam tindanan boleh dibaca secara terbalik, jadi ini berguna untuk membaca baki nilai yang ditolak ke dalam tindanan secara terbalik.
L ATIHAN
- Permasalahan
- Cara Penyelesaian Masalah
STUDI KASUS OPERASI MATRIKS
S TUDI K ASUS : O PERASI PENAMBAHAN MATRIKS
- Permasalahan
- Cara Penyelesaian Masalah
- Struktur Data Yang Dibutuhkan
- Deklarasi dan Inisialisasi
- Input
- Output
- Proses Penyelesaian
- Flowchart Keseluruhan
- Permasalahan
- Cara Penyelesaian Masalah
Operasi penjumlahan matriks dilakukan dengan mengalikan setiap elemen baris pada Matriks 1 secara berturut-turut dengan elemen kolom pada Matriks 2, kemudian setiap hasil perkaliannya diakumulasikan.
STUDI KASUS SHORTEST PATH PROBLEM
S TUDI K ASUS : S HORTEST P ATH P ROBLEM DENGAN A LGORITMA D IJKSTRA
- Permasalahan
- Cara Penyelesaian Masalah
- Struktur Data Yang Dibutuhkan
- Deklarasi dan Inisialisasi
- Input
- Output
Proses dijalankan di titik 3 menuju titik-titik jalur jalur, setelah itu tidak ada proses antrian. Maka isi antrian dequeue d bernilai 4, s adalah jalur menuju titik 5. Informasi jalur titik Karena titik 5 adalah tujuan, m Lalu kosongkan, lalu ubah nilainya proses selanjutnya, ada solusinya. Informasi jarak terpendek terdekat dalam soal adalah informasi jalur terpendek yang dimasukkan ke dalam tumpukan.
T 2 adalah 1, sama dengan titik informasi jalan tercepat, sehingga mendapatkan pengumuman jalan tercepat 11.1.3 Struktur data D.
L ATIHAN