Refleksi minggu ke12
Bissmillah.
Pada pertemuan ke 12 kali ini dosen mengadakan kuis mengenai rekursif.
untuk materi tentang rekursif ini belum terlalu memahami betul.
dosen memberikan penjelasan bahwa prinsip rekursif yaitu:
1. Merupakan fungsi yang memanggil dirinya sendiri.
2. bisa menggunakan fungsi dengan tipe kembalian (return)
seperti int dll, juga bisa.
menggunakan tipe data yang tanpa nilai pengembalian.
3. ada pengkondisian untuk berhenti (stop) dan pengkondisian
kapan dia berulang(loop).
contoh :
int HitungGCD(int c, int d)
===> Ada dua parameter nnti dipanggil fungsi juga harus 2 parameter
{
if (d==0) return(c); ==> kontrol/kondisi saat dia mau
berhenti(stop)
if (c<d) return(HitungGCD(d,c));
return(HitungGCD(c-d, d)); ==> ini pemanggilan fungsi
rekursifnya
}
Refleksi minggu ke 10
Pada minggu ke 10 masih sama dengan minggu lalu yaitu dosen masih
membahas tentang sorting.
Refleksi minggu ke 9
Pada pertemuan ke 9 Algoritma Pemrograman dosen membahas
mengenai, sorting dan searching.
tp pada pertemuan ke 9 ini dosen hanya fokus membahas ke sorting.
Sorting (Pengurutan):
Sorting merupakan suatu proses (operasi) yang mengurutkan data dalam suatu urutan yang dikehendaki.
Pengurutan dapat dilakukan secara ascending (urut naik) maupun descending (urut turun).
Sorting dalam ilmu komputer dibagi menjadi 4 yakni:
1. Bubble Sort
Metode sorting termudah
Cara
pengurutannya : bandingkan dua data kemudian swap. Diberi nama “Bubble” karena proses pengurutan secara berangsur-angsur bergerak/berpindah ke posisinya yang
tepat, seperti gelembung.
Bubble Sort mengurutkan data dengan cara membandingkan elemen
sekarang dengan elemen berikutnya. Ascending : Jika elemen sekarang lebih besar
dari elemen berikutnya maka kedua elemen tersebut ditukar/swap. Descending :
Jika elemen sekarang lebih kecil dari elemen berikutnya,
maka kedua elemen tersebut ditukar/swap.
for (i=0; i < n-1; i++){
for (j=n-1; j > i; j--) {
if (X[j] < X[j-1]) {
tmp = X[j];
X[j] = X[j-1];
SWAP
X[j-1] = tmp;
}
}
}
2. Selection Sort
Cara
pengurutannya : seleksi data yang ada kemudian dilakukan swap (pertukaran
posisi).
Pada Ascending : seleksi data terkecil kemudian swap. Pada
descending : seleksi data terbesar kemudian swap.
Algoritma Selection Sort (Ascending)
- Tampung data ke-i
- Seleksi data terkecil
- Cek apakah data yang ditampung lebih besar dari data hasil
seleksi (data terkecil).
- Jika pengecekan langkah 3 bernilai “true” : lakukan pertukaran posisi antara data yang ditampung dengan data
terkecil.
- Ulangi langkah 1 sampai 4, hingga nilai i sama dengan n.
3. Insertion Sort
Cara pengurutannya : dimulai dari data
ke-2 sampai dengan data terakhir, jika ditemukan data yang lebih kecil, maka
akan ditempatkan (diinsert) diposisi yang seharusnya.
Ascending : ketika perbandingan ambil data yang paling kecil.
Descending : ketika perbandingan ambil data yang paling
besar.
Algoritma Insertion Sort (Ascending)
- Ambil satu data ke-i simpan di temp
- Bandingkan data temp dengan data yang ada disebelah kiri satu per-satu
- Cek apakah data temp lebih kecil dari data sebelah kiri.
- Jika langkah sebelumnya bernilai “true” : lakukan pergeseran data satu-persatu
kemudian pada posisi yang tepat sisipkan data temp.
- Ulangi langkah sebelumya, hingga i sama dengan n.
for(i=1;i<n;i++){
t=X[i];
----->>>> Ambil data pertama
for (j =i-1; j >= 0; j--) {
if (t < X[j]){
X[j+1] = X[j]; ----->>> Penggeseran Data
X[j]=t;
Pergeseran data
Ambil data pertama
}
else {
X[j+1] = t;
break;
}}}
4. Merge Sort(Merging)
Cara
pengurutannya : memecah proses menjadi sub-proses. Bagi dua deret data, bandingkan, kemudian gabungkan (begitu seterusnya sampai selesai). Teknik
pemecahan proses menggunakan rekursif.
Permasalahan utama dipecah menjadi sub-masalah, kemudian
solusi dari sub-masalah akan membimbing menuju solusi permasalahan utama. Mengimplementasikan
konsep rekursi. Proses rekursi berhenti jika mencapai elemen dasar. Hal ini
terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa
pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut
sesuai rangkaian.
Refleksi minggu ke 8
Bissmillah
Pada pertemuan ke 8 Algoritma pemrograman membahas mengenai Array 1 dimensi.
Dosen memberikan kuliah dan konsep-konsep dalam menyelesaikan kasus Array.
mulai dari mengidentifikasi, menganalisis bentuk kasusnya hingga penyelesaian algoritmanya.
dalam penyusunan algoritma saya masih mengalami kesulitan.
karena dalam pengerjaan program-program memang kami langsung membuat programnya,
tanpa melalui mengidenfikasi, menganalisis dan baru menyusun kerangka Algoritma program.
dengan ketidak mampuan kami ini dosen memberikan tugas untuk mahasiswa di kelas untuk menyusun algoritma suatu kasus agar lebih bisa mengidentifikasi,menganalisis,kemudian menyusun suatu program dengan lebih baik lagi.
Pada pertemuan ke 8 Algoritma pemrograman membahas mengenai Array 1 dimensi.
Dosen memberikan kuliah dan konsep-konsep dalam menyelesaikan kasus Array.
mulai dari mengidentifikasi, menganalisis bentuk kasusnya hingga penyelesaian algoritmanya.
dalam penyusunan algoritma saya masih mengalami kesulitan.
karena dalam pengerjaan program-program memang kami langsung membuat programnya,
tanpa melalui mengidenfikasi, menganalisis dan baru menyusun kerangka Algoritma program.
dengan ketidak mampuan kami ini dosen memberikan tugas untuk mahasiswa di kelas untuk menyusun algoritma suatu kasus agar lebih bisa mengidentifikasi,menganalisis,kemudian menyusun suatu program dengan lebih baik lagi.
Refleksi minggu ke 7
Pada pertemuan ke 7 Algoritma pemrograman dosen menanyakan persiapan dalam menghadapi UTS serta memberikan nasihat dan motivasi
ke mahasiswa, untuk menghadapi UTS serta evaluasi tugas-tugas yang sebelumnya di tugaskan
untuk dikerjakan.
Refleksi minggu ke 6
Bissmillah
Pada pertemuan minggu ke 6 dosen membahas tentang sub program dan
rekursif.
Dosen memberikan penjelasan mengenai sub program dan
rekursif.
Variabel yaitu menyiapkan tempat di memori untuk menyimpan data.
Parameter yaitu
melewatkan nilai pada sub program, hanya bisa di proses pada sub program
Contoh:
Int tambah satu(int x){
Int hasil;
Hasil=x+2;
Return hasil; }
Parameter variabel yang tidak bisa di rubah
Ex:
Int tambah satu(int x=2) //nilai x selalu tetap =2
Parameter
value yaitu assignment pada parameter bisa dirubah
Ex:
Void kalidua(int x){
x=x*2;
Cout<<”Nilai didalam fungsi”<<x<<endl; }
Perulangan
yaitu ada 3 jenis=
1. Nilai selalu
bertambah/naik ( going up )
2. Nilai selalu
berkurang/turun( going down)
3. Nilai berkurang
setengah setengah (half)
Kapan fungsi diperlukan ?
1. Sesuatu yang
dikerjakan beberapa kali dalam program
2. Sesuatu yang
akan dikerjakan pada program yang berbeda
3. Sederetan
operasi yang kompleks yang membuat arus program sukar diikuti
Refleksi minggu ke 5
Bissmillah
Pada pertemuan ke 5 ini dosen membahas mengenai cara pembuatan
program
sesuai prosedur yang baik. Berdasarkan dengan
program development steps.
saat proses perkuliahan dosen memberikan contoh mengenai program development steps, setelah itu kami diberi tugas kelompok pada modul how to solve computer.pdf pada kasus 3.1 3.3 3.5,
dosen membagi tugas masing-masing pada kasus tersebut. Mahasiswa mengerjakan kasus tersebut menggunakan konsep program development step sambil di tuntun dosen.
saat proses perkuliahan dosen memberikan contoh mengenai program development steps, setelah itu kami diberi tugas kelompok pada modul how to solve computer.pdf pada kasus 3.1 3.3 3.5,
dosen membagi tugas masing-masing pada kasus tersebut. Mahasiswa mengerjakan kasus tersebut menggunakan konsep program development step sambil di tuntun dosen.
Saya mengalami kesusahan, dalam menganalisis suatu masalah dalam membuat program.