0% menganggap dokumen ini bermanfaat (0 suara)
253 tayangan11 halaman

Mengimplementasikan Algoritma Pemrograman

Diunggah oleh

Bruno Samlon
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
253 tayangan11 halaman

Mengimplementasikan Algoritma Pemrograman

Diunggah oleh

Bruno Samlon
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai DOCX, PDF, TXT atau baca online di Scribd

Kode Unit : J.620100.022.

02
Unit Kompetensi
Judul : Mengimplementasikan Algoritma Pemrograman
Unit
A. Petunjuk
1. Baca dan pelajari setiap instruksi kerja dibawah ini dengan cermat sebelum melaksanakan
praktek
2. Klarifikasi kepada Asesor apabila ada hal-hal yang belum jelas
3. Laksanakan pekerjaan sesuai dengan urutan proses yang sudah ditetapkan
4. Seluruh proses kerja mengacu kepada SOP/WI yang dipersyaratkan
5. Batas Waktu : 60 Menit

B. Skenario
Buatlah flowchart dan pseudocode untuk mengurutkan dan mencari angka, dengan ketentuan
sebagai berikut:
1. Buatlah Programnya anda bisa gunakan bahasa C++; C#; Pascal, Java, dll
2. Buat menu pilihan input angka, sorting, dan searching.
3. Buatlah prosedur/fungsi sorting dan searching.
4. Pilih menu input angka, kemudian masukkan angka secara acak sebanyak n. jika sudah
selesai kembali ke menu pilihan.
5. Pilih menu sorting untuk menampilkan hasil sorting.
6. Pilih menu sorting, kemudian masukkan angka yang mau dicari. Tampilkan hasil pencarian
“Angka ditemukan” atau “Angka tidak ditemukan” .
7. Hitung kompleksitas waktu dan memori dari algoritma yang dibuat.

a. Tampilan Menu Utama

MENU PILIHAN
1. Input angka
2. Sorting
3. Searching
4. Selesai

Masukkan pilihan [1/2/3/4] : _

b. Tampilan Input Angka

MENU INPUT ANGKA

Masukkan jumlah angka: _ input sebanyak yang anda suka

Angka 1: _ masukan angka yang anda suka


Angka 2: _
Angka 3: _
……
……
{Akan tampil sebanyak jumlah angka anda masukan}
Kembali ke menu utama (Y/T): _
c. Tampilan Sorting Angka

Tampilan dibawah adalah contoh ketika pada point b, anda menginputkan Jumlah angka = 8,
dan anda inputkan kemasing-masing inputan adalah: 10, 5, 8, 4, 2, 6, 1, 8

MENU SORTING

Angka yang anda masukan:


10, 5, 8, 4, 2, 6, 1, 8

Hasil Sorting Angka:


1, 2, 4, 5, 6, 8, 10

Kembali ke menu utama (Y/T): _

d. Tampilan Searching Angka

MENU SEARCHING

Masukan Angka yang Anda cari: 7

Hasil Searching Angka: 7, Tidak Ditemukan

Kembali ke menu utama (Y/T): _

MENU SEARCHING

Masukan Angka yang Anda cari: 10

Hasil Searching Angka: 10, Ditemukan

Kembali ke menu utama (Y/T): _

C. Langkah Kerja
1. Menjelaskan varian dan invarian
1.1. Jelaskan tipe data yang sesuai kaidah pemrograman.
Jawab:

digunakan untuk
menyimpan angka
tanpa komponen
pecahan dengan
rentang
angka -707, 0, hingga 707.
2. Floating point : tipe
data yang mengacu pada
penggunaan dua kali lipat
jumlah
penyimpanan relative
dengan metode angka
dalam kode seperti
kalkulator.
3. Character ( char ) : tipe
data yang digunakan
untuk menyimpan satu
huruf, angka,
tanda baca, symbol, atau
spasi kosong.
4. Boolean : tipe data yang
mewakili nilai benar dan
salah dalam suatu data.
1. Integer : tipe data berbentuk bilangan bulat atau tipe data numerik yang umum
digunakan untuk menyimpan angka tanpa komponen pecahan dengan
rentangangka -707, 0, hingga 707.
2. Floating point : tipe data yang mengacu pada penggunaan dua kali lipat jumlah
penyimpanan relative dengan metode angka dalam kode seperti kalkulator.
3. Character ( char ) : tipe data yang digunakan untuk menyimpan satu huruf,
angka, tanda baca, symbol, atau spasi kosong.
4. Boolean : tipe data yang mewakili nilai benar dan salah dalam suatu data.
5. Array : tipe data berbentuk daftar yang menyimpan sejumlah elemen dalam
urutan tertentu dari semua tipe data yang sama
6. String : tipe data ini terdiri dari satu atau lebih karakter yang dapat mencakup
huruf, angka, dan jenis karakter lainnya seperti halnya teks biasa

7. Array : tipe data


berbentuk daftar
yang menyimpan
sejumlah elemen
dalam urutan
8. tertentu dari semua
tipe data yang sama
Array : tipe data berbentuk daftar yang menyimpan sejumlah elemen dalam
urutan tertentu dari semua tipe data yang samatertentu dari semua tipe data
yang sama.String : tipe data ini terdiri dari satu atau lebih karakter yang dapat
mencakup huruf, angka, dan jenis karakter lainnya seperti halnya teks biasa.

1.2. Jelaskan variabel data yang sesuai kaidah pemrograman.


Jawab:
 Nama variabel tidak boleh didahului dengan symbol dan angka
 Nama variabel tidak boleh menggunakan kata kunci yang sudah ada pada Bahasa
c
 Nama variabel bersifat case sensitive
 Disarankan menggunakan underscore untuk nama variabel yang lebih dari 2 suku
kata
1.3. Jelaskan konstanta yang sesuai kaidah pemrograman.
Jawab:
Konstanta adalah identifier yang terkait nilai tidak bisa biasanya diubah oleh program
selama pelaksanaannya (meskipun dalam beberapa kasus ini dapat dielakkan, misalnya
menggunakan self-modifying code).
2. Membuat alur logika (flowchart)
2.1. Menentukan Metode yang sesuai
Jawab:
Flowchart Program & Flowchart Sistem
2.2. Menentukan Komponen yang dibutuhkan
Jawab:
= Digunakan untuk memulai atau start

= Digunakan untuk proses

= Digunakan untuk kotak


keputusan/decison

= Digunakan untuk menginput data secara manual

= databae

2.3. Menetapkan Relasi antar komponen


Jawab:
1. Relasi Fungsional:
 Deskripsi: Komponen-komponen memiliki hubungan fungsional di mana satu
komponen melakukan fungsi tertentu dan menghasilkan output yang
digunakan oleh komponen lain.
 Contoh: Fungsi pengolahan data yang menghasilkan output yang digunakan
oleh fungsi tampilan.
2. Relasi Ketergantungan:
 Deskripsi: Suatu komponen tergantung pada hasil atau input dari komponen
lain.
 Contoh: Modul A menghasilkan data yang diperlukan oleh Modul B, sehingga
Modul B bergantung pada Modul A.
3. Relasi Komunikasi:
 Deskripsi: Komponen-komponen berkomunikasi satu sama lain untuk
bertukar informasi atau data.
 Contoh: Sistem pesan antara dua modul yang memungkinkan pertukaran
data atau perintah.
4. Relasi Kontrol:
 Deskripsi: Suatu komponen mengendalikan atau mengarahkan aktivitas atau
eksekusi komponen lain.
 Contoh: Modul pengendali yang mengatur alur eksekusi antara beberapa
modul lainnya.
5. Relasi Asosiasi:
 Deskripsi: Hubungan yang tidak memiliki kendali langsung, tetapi komponen-
komponen tersebut terkait atau berbagi informasi.
 Contoh: Kelas A dan Kelas B terkait dan dapat berkomunikasi tanpa harus
mengendalikan satu sama lain secara langsung.
6. Relasi Agregasi dan Komposisi:
 Deskripsi: Menunjukkan bagaimana suatu objek atau komponen terkait
dengan objek atau komponen lain dalam tingkatan yang berbeda.
 Contoh: Agregasi: Kelas memiliki objek lain sebagai bagian darinya.
Komposisi: Kelas memiliki objek lain sebagai bagian darinya, dan objek
tersebut tidak dapat ada tanpa kelas tersebut.
7. Relasi Dependensi:
 Deskripsi: Komponen A memerlukan komponen B untuk menjalankan fungsi
atau tugas tertentu.
 Contoh: Penggunaan pustaka atau modul eksternal yang diperlukan untuk
melengkapi fungsi atau tugas dalam komponen utama.
8. Relasi Saling Bergantung (Interdependence):
 Deskripsi: Komponen-komponen saling bergantung satu sama lain dan tidak
dapat berfungsi secara terpisah.
 Contoh: Modul A dan Modul B harus berinteraksi dan saling bergantung
untuk mencapai tujuan tertentu.
2.4. Menetapkan Alur mulai dan selesai
Jawab:
Alur mulai pada memasukkan pilihan di halaman pilihan menu dan alur selesai setelah
tampil hasil searching
3. Menerapkan teknik dasar algoritma umum
3.1. Membuat algoritma untuk sorting.
Jawab:
3.2. Membuat algoritma untuk searching.
Jawab:
 Binary Search (Pencarian Biner) - untuk data yang terurut:

 Linear Search (Pencarian Linear) - untuk data yang tidak terurut:

4. Menggunakan prosedur dan fungsi


4.1. Identifikasi konsep penggunaan kembali prosedur dan fungsi.
Jawab:
1. Abstraksi:
 Deskripsi: Membungkus serangkaian pernyataan atau operasi ke dalam satu unit yang
lebih besar.
 Manfaat: Memudahkan pemahaman dan penggunaan kode, karena pengguna hanya
perlu memahami abstraksi tingkat tinggi tanpa harus tahu detail implementasinya.
2. Modularitas:
 Deskripsi: Memecah program menjadi modul-modul kecil atau bagian-bagian terpisah
yang dapat dikelola dan dimaintenance secara terpisah.
 Manfaat: Mempermudah pengembangan, pemeliharaan, dan pemahaman kode. Setiap
modul dapat diuji dan dimodifikasi secara independen.
3. Pengurangan Redundansi:
 Deskripsi: Menghindari pengulangan kode dengan membagi tugas-tugas ke dalam
prosedur atau fungsi yang dapat dipanggil.
 Manfaat: Mengurangi kesalahan manusia, mempercepat pengembangan, dan
mempermudah pemeliharaan kode.
4. Pemisahan Kepentingan (Separation of Concerns):
 Deskripsi: Menyusun kode agar setiap fungsi atau prosedur bertanggung jawab atas satu
aspek atau tugas tertentu.
 Manfaat: Meningkatkan kejelasan dan pemahaman kode, memudahkan identifikasi dan
isolasi masalah, serta memungkinkan pengembangan tim.
5. Reusabilitas:
 Deskripsi: Kemampuan untuk menggunakan kembali fungsi atau prosedur di berbagai
bagian program atau proyek yang berbeda.
 Manfaat: Menghemat waktu dan upaya pengembangan, karena tidak perlu menulis
ulang kode yang sama.
6. Keterbacaan Kode:
 Deskripsi: Membuat kode lebih mudah dibaca dan dipahami dengan memecahnya
menjadi unit-unit kecil yang memiliki tanggung jawab terbatas.
 Manfaat: Meningkatkan keterbacaan dan pemahaman kode, membuatnya lebih mudah
untuk ditelusuri dan dipahami oleh pengembang lain atau oleh diri sendiri di masa
depan.
7. Ketertarikan Minimal:
 Deskripsi: Membuat fungsi atau prosedur dengan tugas yang terbatas, sehingga hanya
fokus pada satu hal tertentu.
 Manfaat: Meningkatkan fleksibilitas dan ketahanan perubahan, karena perubahan pada
satu bagian tidak seharusnya memengaruhi bagian lain.

4.2. Gunakan prosedur dalam program diatas.


Jawab:
4.3. Gunakan fungsi dalam program diatas.
Jawab:
5. Mengidentifikasikan kompleksitas algoritma
5.1. Identifikasi kompleksitas waktu algoritma.
Jawab:
1. Notasi O (Big-O):
 Deskripsi: Big-O menggambarkan kompleksitas waktu terburuk dari suatu
algoritma. Ini memberikan batas atas pertumbuhan waktu eksekusi algoritma
seiring dengan pertumbuhan ukuran input.
 Contoh: O(n) (linear), O(n^2) (kuadratik), O(log n) (logaritmik).
2. Notasi Ω (Big-Omega):
 Deskripsi: Big-Omega menggambarkan kompleksitas waktu terbaik dari suatu
algoritma. Ini memberikan batas bawah pertumbuhan waktu eksekusi
algoritma seiring dengan pertumbuhan ukuran input.
 Contoh: Ω(n) (linear), Ω(1) (konstan), Ω(log n) (logaritmik).
5.2. Identifikasi kompleksitas penggunaan memory algoritma.
Jawab:
1. Notasi O (Big-O) untuk Kompleksitas Memori:
 Deskripsi: Big-O memperkirakan batas atas penggunaan memori seiring
dengan pertumbuhan ukuran input.
 Contoh: O(1) (konstan), O(n) (linear), O(n^2) (kuadratik).
2. Notasi Ω (Big-Omega) untuk Kompleksitas Memori:
 Deskripsi: Big-Omega memperkirakan batas bawah penggunaan memori
seiring dengan pertumbuhan ukuran input.
 Contoh: Ω(1) (konstan), Ω(n) (linear).

Anda mungkin juga menyukai