Anda di halaman 1dari 7

Kode Unit : J.620100.022.

02
Unit Kompetensi
Judul Unit : Mengimplementasikan Algoritma Pemrograman

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 inpu 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:
a. Tipe data Integer: Tipe data untuk angka bulat seperti 5, 7, atau 48.
b. Tipe data Float/Double: Tipe data untuk angka pecahan seperti 3.14, 5.55, atau
0.00024.
c. Tipe data Boolean: Tipe data yang berisi nilai true atau false.
d. Tipe data Char: Tipe data untuk 1 karakter, seperti ‘a’, ‘Z’ atau ‘%’.
e. Tipe data Void: Tipe data khusus yang menyatakan tidak ada data.
f. Tipe data Array: Tipe data untuk kumpulan tipe data lain yang sejenis.
g. Tipe data String: Tipe data digunakan mendeklarasikan data berisi kalimat atau kata.
1.2. Jelaskan variabel data yang sesuai kaidah pemrograman.
Jawab:
Variabel adalah suatu data yang nilainya dapat berubah-ubah. Variabel sangat erat
kaitannya dengan tipe data.

Ada beberapa aturan penulisan variabel yang harus kamu ketahui:

 Nama variabel tidak boleh didahului dengan simbol dan angka.


 Nama variabel tidak boleh menggunakan kata kunci yang sudah ada pada
bahasa C, contoh: if, int, void, dll.
 Nama variabel bersifat case sensitive, artianya huruf besar dan kecil
dibedakan, contoh: nama dan Nama adalah dua variabel yang berbeda.
 Disarankan menggunakan underscore untuk nama variabel yang terdiri dari
dua suku kata, contoh: nama_lengkap.

1.3. Jelaskan konstanta yang sesuai kaidah pemrograman.


Jawab:
konstanta adalah variabel yang nilainya bersifat tetap dan tidak dapat diubah
sepanjang kode program. Di dalam pascal, sebuah konstanta hanya dapat diisi
dengan tipe data dasar, yakni char, integer, real, boolean, serta tipe data string dan
set.

2. Membuat alur logika (flowchart)


2.1. Menentukan Metode yang sesuai
Jawab:
Metode Process Flowchart

Bagan alir proses (process flowchart) merupakan bagan alir yang banyak digunakan
di teknik industri. Bagan alir ini juga berguna bagi analis sistem untuk
menggambarkan proses dalam suatu prosedur.

2.2. Menentukan Komponen yang dibutuhkan


Jawab:
 Terminator Symbol : Simbol untuk permulaan (start) atau akhir (stop)
 Processing Symbol : Persegi kotak sebagai tempat pengolahan Data
 Flow Direction Symbol : Garis untuk menghubungkan Antar Simbol
 Simbol Decision : Simbol pemilihan proses berdasarkan kondisi
 Simbol Input-Output : Simbol menyatakan proses input dan output

2.3. Mentapkan Relasi antar komponen


Jawab:
Relasi Database adalah model yang paling sederhana dari suatu komponen basis
data yang saling berhubungan antara suatu tabel basis data yang satu dengan tabel
basis data yang lain sehingga mudah untuk dipahami. Model ini menggunakan
sekumpulan tabel berdimensi dua yaitu relasi dan tabel. Masing – masing relasi
tersusun atas tupel atau barisan dan atribut. Relasi dirancang sedemikian rupa
sehingga dapat menghilangkan kemubaziran data redudansi dan menggunakan
kunci utama atau biasa disebut dengan primary key sebagai penghubung relasi.
2.4. Mentapkan Alur mulai dan selesai
Jawab:

3. Menerapkan teknik dasar algoritma umum


3.1. Membuat algoritma untuk sorting.
Jawab:
Code Sorting

<div class="box">
<center><h3>MASUKKAN ANGKA YANG AKAN DI URUTKAN<br/>(SELECTION
SORT)</h3></center>

<!--form input angka-->


<form action="" method="post">
<input type="text" name="satu">
<input type="text" name="dua">
<input type="text" name="tiga">
<input type="text" name="empat">
<input type="text" name="lima">
<input type="text" name="enam">
<input type="text" name="tujuh">
<input type="text" name="delapan">
<input type="submit" name="submit" value="SORTING">
</form>

<?php
//cek submit
if(isset($_POST['submit'])){

//menangkap data angka yang di input


$satu=$_POST['satu'];
$dua=$_POST['dua'];
$tiga=$_POST['tiga'];
$empat=$_POST['empat'];
$lima=$_POST['lima'];
$enam=$_POST['enam'];
$tujuh=$_POST['tujuh'];
$delapan=$_POST['delapan'];

//masukkan data angka ke array


$angka=array($satu,$dua,$tiga,$empat,$lima,$enam,$tujuh,$delapan);

//mengurutkan angka dengan fungsi sort()


sort($angka);
echo "</br>";
echo "<div class='hasil'> HASIL : ";

//menampilkan isi array angka dengan looping for


$jumlah=count($angka);
for($x=0;$x<$jumlah;$x++)
{
echo $angka[$x];
echo " ";
}
echo "</div>";

}
?>
</div>
</body>
</html>

3.2. Membuat algoritma untuk searching.


Jawab:
Algoritma Searching
<?php
include 'koneksi.php';
?>

<h3>Form Pencarian Dengan PHP</h3>

<form action="index.php" method="get">


<label>Cari :</label>
<input type="text" name="cari">
<input type="submit" value="Cari">
</form>

<?php
if(isset($_GET['cari'])){
$cari = $_GET['cari'];
echo "<b>Hasil pencarian : ".$cari."</b>";
}
?>

<table border="1">
<tr>
<th>No</th>
<th>Nama Pelanggan</th>
</tr>
<?php
if(isset($_GET['cari'])){
$cari = $_GET['cari'];
$data = mysqli_query($koneksi, "SELECT * FROM pelanggan where
nama_pelanggan like '%".$cari."%'");
}else{
$data = mysqli_query($koneksi,"SELECT * from pelanggan");
}
$no = 1;
while($d = mysqli_fetch_array($data)){
?>
<tr>
<td><?php echo $no++; ?></td>
<td><?php echo $d['nama_pelanggan']; ?></td>
</tr>
<?php } ?>
</table>

4. Menggunakan prosedur dan fungsi


4.1. Identifikasi konsep penggunaan kembali prosedur dan fungsi.
Jawab:
a. Fungsi: Fungsi merupakan suatu program terpisah dalam blok sendiri yang
berfungsi sebagai subprogram (program bagian).
b. Prosedur: merupakan suatu program terpisah dalam blok sendiri yang berfungsi
sebagai subprogram (program bagian). Prosedur biasanya bersifat suatu aktifitas
seperti mencari bilangan prima dari sekumpulan bilangan atau mencari bilangan
genap dari sekumpulan bilangan ,dsb.

4.2. Gunakan prosedur dalam program diatas.


Jawab:

4.3. Gunakan fungsi dalam program diatas.


Jawab:
if(isset($_GET['cari'])){
$cari = $_GET['cari'];
$data = mysqli_query($koneksi, "SELECT * FROM pelanggan where
nama_pelanggan like '%".$cari."%'");
}else{
$data = mysqli_query($koneksi,"SELECT * from pelanggan");
}
$no = 1;
while($d = mysqli_fetch_array($data)){
?>

5. Mengidentifikasikan kompleksitas algoritma


5.1. Identifikasi kompleksitas waktu algoritma.
Jawab:
Kompleksitas waktu algoritma dihitung berdasarkan jumlah operasi perbandingan
elemen larik (A[i] > maks).Kompleksitas waktu CariElemenTerbesar : T(n) = n – 1.

5.2. Identifikasi kompleksitas penggunaan memory algoritma.


Jawab:
Algoritma yang bagus adalah algoritma yang efisien. Efisiensi suatu algoritma diukur
dari berapa jumlah waktu dan ruang (space) memori yang dibutuhkan untuk
menjalankannya. Algoritma yang efisien adalah algoritma yang meminimumkan
kebutuhan waktu dan ruang.

Kompleksitas ruang, S(n), diukur dari memori yang digunakan oleh struktur data
yang terdapat di dalam algoritma sebagai fungsi dari ukuran masukan n.

Anda mungkin juga menyukai