Pertemuan 7 Algoritma & Pemprograman
TAHAPAN MEMBUAT BUBBLE SORT, PENJELASKAN TENTANG PERULANGAN FOR, WHILE, DO WHILE, NESTED LOOP DAN PENJELASAN TENTANG FLOWCHART
Langkah-langkah Bubble Sort di Excel:
program JSON:
buat program nya terlebih dahulu di json untuk nanti di jalankan ke dalam program javascript, berikut program nya:
"arrayData": [10, 5, 20, 15, 30]
selanjutnya menggunakan javascript agar program json bisa jalankan.
program JAVASCRIPT:// ==========================================
// TUGAS REVISI DO-WHILE & JSON - KELOMPOK 3
// Anggota: Aryy & Davin
// ==========================================
// 1. Data awal sesuai permintaan tugas
let dataAwal = [10, 5, 20, 15, 30];
// 2. Menyimpan data awal ke dalam format JSON (Simulasi penyimpanan data)
let objekData = {
kelompok: "Kelompok 3",
anggota: ["Aryy", "Davin"],
keterangan: "Data sebelum di-sorting menggunakan Bubble Sort",
arrayData: dataAwal
};
// Mengubah objek JavaScript menjadi string JSON
let jsonStringAwal = JSON.stringify(objekData, null, 2);
console.log("--- DATA JSON AWAL ---");
console.log(jsonStringAwal);
// 3. Memproses data dari JSON untuk di-sorting
let dataTerparse = JSON.parse(jsonStringAwal);
let arr = dataTerparse.arrayData;
let n = arr.length;
let swapped;
let jumlahLangkah = 0;
console.log("\n--- PROSES BUBBLE SORT MENGGUNAKAN DO-WHILE ---");
// Do-While Luar untuk mengontrol perulangan sorting sampai benar-benar terurut
do {
swapped = false;
let i = 0;
// Do-While Dalam untuk membandingkan elemen yang bersebelahan
do {
if (arr[i] > arr[i + 1]) {
// Proses tukar posisi (Swapping) ala Excel/Manual
let temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
swapped = true;
}
i++;
} while (i < n - 1);
jumlahLangkah++;
console.log(`Langkah ke-${jumlahLangkah}: [${arr.join(", ")}]`);
n--; // Mengurangi batas cek karena elemen paling belakang sudah urut
} while (swapped);
// 4. Menyimpan hasil akhir kembali ke dalam format JSON
let hasilAkhirObjek = {
kelompok: "Kelompok 3",
anggota: ["Aryy", "Davin"],
status: "Selesai Diurutkan",
totalLangkah: jumlahLangkah,
dataHasilSort: arr
};
let jsonStringAkhir = JSON.stringify(hasilAkhirObjek, null, 2);
console.log("\n--- JSON HASIL AKHIR ---");
console.log(jsonStringAkhir)
1. Data awal
let dataAwal = [10, 5, 20, 15, 30];
2. Membuat objek data
let objekData = {
kelompok: "Kelompok 3",
anggota: ["Aryy", "Davin"],
keterangan: "Data sebelum di-sorting menggunakan Bubble Sort",
arrayData: dataAwal
};
Menyimpan informasi kelompok, anggota, keterangan, dan data awal dalam sebuah objek.
3. Mengubah data menjadi Json
let jsonStringAwal = JSON.stringify(objekData, null, 2);
Mengubah objek JavaScript menjadi teks JSON yang rapi.
console.log("--- DATA JSON AWAL ---");
console.log(jsonStringAwal);
Menampilkan judul dan data JSON awal di konsol.
4. Membaca data JSON
let dataTerparse = JSON.parse(jsonStringAwal);
Mengubah teks JSON kembali menjadi objek JavaScript.
let arr = dataTerparse.arrayData;
Mengambil array angka dari objek JSON untuk diurutkan.
5. Menyiapkan variabel
let n = arr.length;
Menghitung jumlah elemen dalam array.
Membuat penanda apakah terjadi pertukaran angka.
Menghitung jumlah putaran pengurutan.
6. Menampilkan proses sorting
let swapped;
Membuat penanda apakah terjadi pertukaran angka.
let jumlahLangkah = 0;
Menghitung jumlah putaran pengurutan.
6. Menampilkan proses sorting
console.log("\n--- PROSES BUBBLE SORT MENGGUNAKAN DO-WHILE ---");
Menampilkan judul proses Bubble Sort di konsol.
7. Perulangan luardo {
swapped = false;
let i = 0;
Memulai perulangan pengurutan, mengatur penanda pertukaran menjadi false, dan memulai indeks dari nol.
8. Perulangan dalam do {
if (arr[i] > arr[i + 1]) {
Membandingkan dua angka yang bersebelahan. Jika angka kiri lebih besar, keduanya akan ditukar.
let temp = arr[i];
Menyimpan angka pertama sementara.
arr[i] = arr[i + 1];
Memindahkan angka kedua ke posisi pertama.
arr[i + 1] = temp;
Memindahkan angka yang disimpan sementara ke posisi kedua.
swapped = true;
}
i++;
Menutup kondisi if dan berpindah ke pasangan angka berikutnya.
} while (i < n - 1);
Mengulang perbandingan selama masih ada pasangan angka yang perlu diperiksa.
9. Menghitung langkah
jumlahLangkah++;
console.log(`Langkah ke-${jumlahLangkah}: [${arr.join(", ")}]`);
Menampilkan hasil array setelah setiap putaran.
n--;
Mengurangi batas pemeriksaan karena angka terbesar sudah berada di posisi belakang.
} while (swapped);
Mengulang proses jika masih terjadi pertukaran angka. Jika tidak ada pertukaran, proses berhenti.
let hasilAkhirObjek = {
kelompok: "Kelompok 3",
anggota: ["Aryy", "Davin"],
status: "Selesai Diurutkan",
totalLangkah: jumlahLangkah,
dataHasilSort: arr
};
Menyimpan identitas kelompok, status pengurutan, jumlah putaran, dan hasil array yang sudah terurut.
10. Menyimpan hasil dalam Json
let jsonStringAkhir = JSON.stringify(hasilAkhirObjek, null, 2);
Mengubah objek hasil akhir menjadi teks JSON.
console.log("\n--- JSON HASIL AKHIR ---");
Menampilkan judul hasil akhir.
console.log(jsonStringAkhir);
Menampilkan data akhir dalam format JSON.
penjelasan tentang perulangan for, while, do while, nested loop
1. Perulangan for
Perulangan for digunakan untuk menjalankan kode secara berulang dengan jumlah pengulangan yang biasanya sudah diketahui.
Contoh kode:
Perulangan while digunakan untuk menjalankan kode selama kondisi bernilai benar (true).
Contoh kode:
Perulangan for digunakan untuk menjalankan kode secara berulang dengan jumlah pengulangan yang biasanya sudah diketahui.
Contoh kode:
for (let i = 1; i <= jumlahBarang; i++) { console.log(i);- Penjelasan:
- let i = 1 : nilai awal perulangan adalah 1.
- i <= 5 : perulangan berjalan selama nilai i kurang dari atau sama dengan 5.
- i++ : nilai i bertambah 1 setiap pengulangan.
- console.log(i) : menampilkan nilai i.
Perulangan while digunakan untuk menjalankan kode selama kondisi bernilai benar (true).
Contoh kode:
for (let i = 1; i <= jumlahBarang; i++) { console.log("Input harga barang ke-" + i);Penjelasan:- let i = 1 : menentukan nilai awal.
- while (i <= 5) : memeriksa apakah nilai i masih kurang dari atau sama dengan 5.
- console.log(i) : menampilkan nilai i.
- i++ : menambah nilai i sebanyak 1.
Perulangan do while mirip dengan while, tetapi kode dijalankan terlebih dahulu, kemudian kondisinya diperiksa.
Contoh kode:
logText += "<b>3. Perulangan WHILE (Cetak Struk):</b><br>"; let hitungMundur = 3; while (hitungMundur > 0) { logText += "untuk mencetak struk dalam " + hitungMundur + "...<br>"; hitungMundur--; }
Penjelasan:- let i = 1 : menentukan nilai awal.
- do : memulai blok kode yang akan dijalankan.
- console.log(i) : menampilkan nilai i.
- i++ : menambah nilai i sebanyak 1.
- while (i <= 5) : memeriksa apakah pengulangan dilanjutkan.
4. Perulangan nested loop
Nested loop adalah perulangan yang berada di dalam perulangan lainnya. Biasanya digunakan untuk membuat pola angka, tabel, atau baris dan kolom.
Contoh kode:
Penjelasan:Nested loop adalah perulangan yang berada di dalam perulangan lainnya. Biasanya digunakan untuk membuat pola angka, tabel, atau baris dan kolom.
Contoh kode:
logText += "<br><b>4. Perulangan Nested Loop:</b><br>"; for (let i = 1; i <= 2; i++) { for (let j = 1; j <= 3; j++) { logText += i + " " + j + "<br>"; } }- for pertama menggunakan variabel i untuk mengatur perulangan luar.
- for kedua menggunakan variabel j untuk mengatur perulangan dalam.
- Perulangan dalam selesai seluruhnya setiap kali perulangan luar berjalan satu kali.
- console.log(i, j) menampilkan nilai i dan j.
PENJELASAN TENTANG FLOWCHART
Terminator (Oval) - Awal ProgramStart
Penjelasan: Menandai awal dari jalannya alur program
Input/Output (Jajar Genjang) - Input Data
Input & Validasi jumlah barang
Penjelasan: Menerima input data berupa jumlah barang dari pengguna serta
melakukan validasi input tersebut.
Input/Output (Jajar Genjang) - Input Data
Input & Validasi Harga Barang
Penjelasan: Menerima input data berupa
harga barang dari pengguna beserta validasinya.
Decision (Belah Ketupat) - Perulangan (Looping)
Loop i = 1 s.d. jumlah barang
Penjelasan: Memeriksa kondisi perulangan untuk memproses
item barang mulai dari ke-1 hingga sejumlah barang yang dimasukkan.
Process (Persegi Panjang) - Menampilkan Header
Tampilkan Header Program
Penjelasan: Menjalankan proses untuk menampilkan
bagian judul/header dari program
Process (Persegi Panjang) - Inisialisasi Variabel
Inisialisasi total bayar = "0"
Penjelasan: Menyetel nilai awal variabel
total bayar menjadi 0 sebelum perhitungan dimulai.
Process (Persegi Panjang) - Perhitungan Total
total bayar "+=" harga
Penjelasan: Melakukan proses akumulasi perhitungan dengan
menjumlahkan nilai harga ke dalam variabel total bayar.
Process (Persegi Panjang) - Format & Tampilan
Format & Tampilkan Total Bayar
Penjelasan: Memproses format angka/mata uang lalu
menampilkan jumlah total bayar.
Process (Persegi Panjang) - Output Status
Cetak Status Countdown
Penjelasan: Menjalankan proses pencetakan teks
status hitung mundur (countdown)
Terminator (Oval) - Akhir Program
Selesai
Penjelasan: Menandai akhir dari seluruh alur program.

Komentar
Posting Komentar