ALGORITMA & STRUKTUR DATA
~ Pendahuluan ~
Nb: Untuk segala bentuk diskusi, kritik dan saran mengenai materi silahkan hubungi admin!
Kontak | Konsultasi & Diskusi ke : \(\downarrow\) |
dsciencelabs@outlook.com | |
https://www.instagram.com/dsciencelabs/ | |
RPubs | https://rpubs.com/dsciencelabs/ |
Github | https://github.com/dsciencelabs/ |
Telegram | @dsciencelabs |
Sekarang ini kita hidup di era digital yang dikenal sebagai Big Data, ada banyak perusahaan dan organisasi yang menginvestasikan dana besar untuk merekrut orang-orang terbaik yang bisa memformulasikan strategi bisnis mereka, dengan menggunakan data historis yang sudah dikumpulkan atau bahkan melakukan pengumpulan data dari berbagai sumber. Pertanyaan besarnya adalah bagaimana menggunakan big data atau informasi tersebut sehingga dapat memberikan manfaat yang diharapkan bagi perusahaan maupun organisasi?. Hal paling sederhana yang harus dilakukan adalah membiasakan diri untuk menangani dan mengatur informasi dengan cara terbaik. Lebih penting lagi, jika anda adalah seseorang yang ingin menjadi salah satu dari berbagai bidang terkait profesi sains data (Data Scientist) maupun bagi anda yang ingin menjadi insinyur perangkat lunak (Software Engineer) maka anda perlu memahami konsep dasar seperti Algoritma dan Struktur Data.
Apa itu Algoritma?
Pada dasarnya, algoritma hanyalah serangkaian instruksi yang dirancang dengan menggunakan alur logis, disusun langkah demi langkah, yang berguna untuk menyelesaikan suatu masalah maupun dalam menyelesaikan tugas tertentu. Dalam komputasi, algoritma menyediakan komputer dengan panduan berturut-turut untuk menyelesaikan tindakan. Mereka terdiri dari daftar instruksi yang tepat yang menguraikan dengan tepat bagaimana menyelesaikan tugas.
Untuk mempermudah pemahaman mengenai algoritma ini, maka berikut ini diberikan tiga contoh penerepan algoritma dalam kehidupan sehari-hari dan dilengkapi dengan flowchartnya.
Catatan: Jika anda ingin belajar lebih lanjut mengenai prosedur membuat flowchart silahkan klik disini.
Memasak Telur
Makan adalah kebutuhan primer untuk kita bertahan hidup. Dalam berbagai jenis makanan kita perlu untuk memasak sebelum menyantapnya. Dalam hal ini, misalkan anda ingin memasak telur, ada beberapa variasi dan langkah yang bisa dilakukan:
- Siapkan telur yang akan dimasak
- Tentukan telurnya akan dimasak seperti apa
- Jika ingin memasak orak-arik, maka:
- Pecahkan telurnya ke dalam wadah
- Kocok telur dan tambahkan bumbu sesuai selera
- Panaskan penggorengan
- Masukkan kocokan telur ke penggorengan yang sudah panas
- Aduk telur sampai menjadi orak-arik
- Jika ingin memasak ceplok, maka:
- Panaskan penggorengan yang sudah diisi minyak
- Pecahkan telur di penggorengan dan tunggu sampai matang
- Jika ingin memasak telur rebus, maka:
- Didihkan air dalam panci
- Masukkan telur utuh ke dalamnya dan tunggu beberapa menit sampai isinya matang sesuai selera
- Siap untuk dimakan
Cek Kesehatan di Rumah Sakit
Kesehatan sudah menjadi hal terpenting dalam kehidupan manusia, maka saat anda ingin melakukan cek kesehatan di rumah sakit, secara garis besar anda akan mengikuti prosedur berikut:
- Pasien datang ke rumah sakit
- Memastikan apakah data pasien sudah ada di dalam sistem
- Jika tidak (belum ada), pasien harus mengisi formulir data diri
- Jika iya (sudah ada), pasien diarahkan ke perawat
- Jika belum ada perawat, pasien diminta menunggu di ruang tunggu
- Jika ada perawat, pasien melakukan cek detak jantung, tekanan darah, berat badan, dan pengukuran lain yang relevan
- Pasien diarahkan ke dokter
- Jika belum ada dokter, pasien diminta menunggu di ruang tunggu
- Jika ada dokter, pasien langsung diperiksa
- Dokter memutuskan apakah pasien butuh kontrol lanjutan
- Jika ya, dokter membuatkan jadwal kontrol
- Jika tidak, dokter akan meresepkan obat
- Dokter memutuskan apakah pasien butuh obat
- Jika iya, dokter akan meresepkan obat
- Pasien akan diminta menebus obat
- Pasien dapat meninggalkan rumah sakit
Flowchart 2: Cek Kesehatan di Rumah Sakit, sumber:bitlabs
Rekrutmen Pegawai
Bekerja adalah usaha memperoleh penghasilan untuk memenuhi kebutuhan sehari hari. Adapun prosedur atau tahapan yang akan anda ketahui dalam proses rekruitmen pegawai untuk mendapatkan pekrjaan adalah sebagai berikut:
- Identifikasi kebutuhan penambahan pegawai
- Lengkapi deskripsi pekerjaan yang dibutuhkan
- Kirim permintaan penambahan pegawai ke bagian HR
- HR melakukan pengklasifikasian
- HR memutuskan apakah penambahan ini masuk ke rekrutmen reguler atau berdasarkan proyek
- HR melakukan rekrutmen internal
- Jika ada yang sesuai, atur pertemuan dengan kandidat
- Atur pre-wawancara
- Susun daftar pertanyaan wawancara
- Lakukan wawancara
- Jika tidak puas, proses selesai di sini
- Jika puas, pilih kandidat
- Lakukan diskusi gaji
- Buat penawaran
- Jika kandidat tidak menerima, proses selesai di sini
- Jika kandidat menerima, rekrut kandidat
- HR tidak melakukan rekrutmen internal
- Cek database pelamar sebelumnya
- Jika kandidat tidak sesuai, susun strategi rekrutmen lanjutan
- Pasang iklan
- Kumpulkan pelamar baru
- Jika ada yang sesuai, atur pertemuan dengan kandidat
- Atur pre-wawancara
- Susun daftar pertanyaan wawancara
- Lakukan wawancara
- Jika tidak puas, proses selesai di sini
- Jika puas, pilih kandidat
- Lakukan diskusi gaji
- Buat penawaran
- Jika kandidat tidak menerima, proses selesai di sini
- Jika kandidat menerima, rekrut kandidat
Flowchart 3: Rekrutmen Pegawai, sumber:bitlabs
Manajemen Penjualan
Setelah mengikuti beberapa proses rekruitmen, akhirya anda diterima bekerja di salah satu bisnis perbelanjaan online (e-commerce) yang menangani manajemen pemasaran (penjualan). Adapun beberapa hal mendasar yang akan anda lakukan dalam manajemen penjualan adalah sebagai berikut:
- Memperoleh dan memeriksa pesanan
- Mencetak detail pesanan yang berisikan informasi lengkap
- Cek apakah valid dan layak diproses
- Jika tidak, batalkan pesanan
- Jika iya (valid), setujui pesanan dan langsung diteruskan ke bagian berikutnya
- Apakah stok mencukupi?
- Jika tidak
- Beli bahan baku dan buat produk sesuai jumlah pesanan
- Masukkan produk yang sudah jadi ke gudang stok
- Jika tidak
- Jika ya
- Lanjut ke langkah selanjutnya
- Pesanan siap dikirimkan
- Pembayaran penuh diterima
- Pesanan dikirimkan ke alamat pemesan
- Pemesan menerima paket
Flowchart 3: Manajemen Penjualan, sumber:bitlabs
Komplain e-Commerce
Sebagai seseorang yang bekerja di salah satu e-commerce, saat konsomen ingin melakukan komplain terhadap perusahaan, dan anda ingin menyelesaikan dan mejawab permasalahan tersebut maka diperlukan prosedur komplain berikut ini:
- Tuliskan komplain melalui kanal yang sudah disediakan
- Jika komplain adalah tentang pedagang
- Customer service e-commerce akan menjembatani komplain antara pembeli dengan pedagang
- Jika belum selesai, sistem akan me-review dan memberikan jawaban
- Jika belum selesai juga, departemen terkait akan menjawab komplain
- Jika masih ada kendala, pembeli akan diminta untuk meninjau ulang komplain
- Jika masih belum selesai, pihak e-commerce akan menawarkan kompensasi
- Jika sudah selesai (dapat melalui tahapan 2.x mana saja) transaksi diproses
- Jika komplain adalah tentang sistem e-commerce
- Sistem akan me-review dan memberikan jawaban
- Jika belum selesai juga, departemen terkait akan menjawab komplain
- Jika masih ada kendala, pembeli akan diminta untuk meninjau ulang komplain
- Jika masih belum selesai, pihak e-commerce akan menawarkan kompensasi
- Jika sudah selesai (dapat melalui tahapan 3.x mana saja) proses berjalan sesuai dengan SOP e-commerce.
- Jika komplain bukan tentang pedagang maupun sistem
- Departemen terkait akan menjawab komplain
- Jika masih ada kendala, pembeli akan diminta untuk meninjau ulang komplain
- Jika masih belum selesai, pihak e-commerce akan menawarkan kompensasi
- Jika sudah selesai (dapat melalui tahapan 3.x mana saja) proses berjalan sesuai dengan SOP e-commerce.
- Selesai
Apa Itu Struktur Data?
Sebelum mendefinisikan struktur data, mari kita mundur sedikit dan bertanya, “Apa itu data?” Inilah jawaban singkatnya: Data adalah kumpulan informasi yang dapat memberikan representasi fakta dari suatu keadaan atau kejadian. Di era digital seperti sekarang ini, data atau informasi tersebut disimpan dalam bentuk file, basis data, maupun penyimpanan dalam komputer. Dalam Teknik Informatika, struktur data berarti tata letak data yang berisi kolom-kolom data, baik itu kolom yang tampak oleh pengguna (user) ataupun kolom yang hanya digunakan untuk keperluan pemrograman yang tidak tampak oleh pengguna. Dengan sifatnya ini, sebuah struktur data dapat diterapkan untuk pengolahan database, misalnya untuk keperluan data keuangan, atau untuk pengolah kata (word processor) yang kolomnya berubah secara dinamis. Contoh struktur data dapat dilihat pada file-file spreadsheet, database, pengolahan kata, gambar yang dikompres, dan pemampatan file (kompres) dengan teknik tertentu yang memanfaatkan struktur data.
Secara umum, Struktur Data adalah cara penyimpanan, pengorganisasian, dan pengaturan data di dalam media penyimpanan komputer untuk dapat digunakan secara efisien. Dalam hal ini, setiap aplikasi dalam perangkat lunak komputer terdiri dari dua komponen: algoritma dan data. Data adalah informasi, dan algoritma adalah aturan dan instruksi yang mengubah data menjadi sesuatu yang berguna untuk pemrograman.
Algoritma dan Struktur Data
Sebelum masuk ke pembahasan utama, saya ingin menunjukkan suatu “meme pedas” mengenai Machine Learning (ML) dan Artificial Intelegence (AI) yang pernah saya lihat di beberapa media seputar teknologi dan science pada pertengahan musim panas 2020. Coba perhatikan gambar 1 berikut ini:
Gambar 1: Meme ML/AI, sumber:kaggle
Saat ini, ada banyak sekali orang yang menyukai ML/AI karena ini adalah topik hangat di bidang Sains Data, Teknik Informatika, Sistem Informasi, Matematika, Statistika, Fisika, dll. Tentu saja menguasai ML/AI ini merupakan hal yang hebat dan menantang. Namun, hal itu tidaklah mudah untuk dipelajari, yang saya maksudkan bahwa beberapa mata pelajaran juga memerlukan pengetahuan dasar sebagai pondasi. Seperti yang Anda lihat di meme, untuk sepenuhnya memahami ML/AI, anda harus memiliki pengetahuan matematika dasar, algoritma dan struktur data (Jika tidak, anda akan tenggelam/tersesat tanpanya). Tentu saja, tidak perlu belajar sampai benar-benar menguasai semuanya. Untuk matematika, Anda bisa mempelajari kalkulus dasar, aljabar linier, dan statistik. Untuk algoritma, cukup bahas dasar-dasar bahasa pemrograman dalam proses pengolahan data dan menampilkan informasi dengan visulalisasi. Untuk tahap lanjutan anda perlu untuk mempelajari cara menggunakan atau membuat algoritma dalam proses analisis statistik deskriptif maupun inferensial, prediksi, Machine Learning, Deep Learning, dan AI itu sendiri.
Berdasarkan latar belakang tersebut diatas maka Algoritma dan Struktur Data dapat didefinisikan sebagai proses pengolahan data yang melibatkan algoritma dengan bahasa pemrograman tertentu untuk mendapatkan informasi yang diinginkan.
Bahasa Pemrograman
Bahasa pemrograman dikenal juga dengan nama bahasa komputer atau bahasa pemrograman komputer. Bahasa pemrograman adalah kumpulan sintaks yang berfungsi untuk memerintahkan perangkat lunak pada komputer. Secara singkat, bahasa ini dipakai untuk membuat program komputer menggunakan aturan logika komputer.
Ada dua bahasa pemrograman yang paling banyak digunakan dalam proses olah data yaitu R dan Python. Khususnya, pada proses pemberalajaran algoritma dan struktur data ini, akan difokuskan pada penggunaan bahasa pemrograman R. Dimulai dari dasar-dasar pemrograman hingga lanjutan, memahami berbagai jenis dan struktur data dari perspektif R, pengendalian data, menggunakan algoritma dalam visualisasi dan statistika dasar yang dijelaskan dengan contoh yang relevan dalam berbagai kasus Data Science. Apa itu Data Science?. Data science adalah ilmu yang menggabungkan matematika, statisika dengan ilmu komputer dengan tujuan analisa data (data analysis) dari suatu himpunan data baik skala kecil (sampel) maupun besar (populasi) dengan mengaplikasikan algoritma tertentu untuk tujuan menggali data (data mining) dan mendapatkan pola data serta dapat melakukan prediksi data (prediction) dengan cukup akurat yang dapat membantu dalam pengambilan keputusan dan dapat digunakan untuk membuat sistem yang cerdas (AI) yang dapat terus belajar dengan sendirinya (machine learning). Untuk penjelasan lebih lanjut mengenai data science, silahkan klik disini.
Catatan: Untuk menambah wawasan anda mengenai bahasa pemrograman Phyton anda dapat mempelajarinya sendiri dan pada saat mengumpulkan tugas anda juga dipersilahkan untuk menggunakan Python.
Kontrak Kuliah
Materi
Pada kuliah ini akan dibahas berbagai topik yang dapat menunjang pengetahuan dan pemahaman anda mengenai Data Science, khususnya dalam hal ini adalah Algoritma dan Struktur Data.
Pertemuan | Materi |
---|---|
Minggu 1 | Pengantar |
Minggu 2 | Dasar-dasar R dan Python |
Minggu 3-4 | Mengenal Struktur Data |
Minggu 5 | Aliran Kontrol |
Minggu 6 | Fungsi |
Minggu 7 | Input-Output |
Minggu 8 | Ujian Tengah Semester |
Minggu 9 | Pemrograman Berorientasi Objek |
Minggu 10 | Penanganan Kesalahan |
Minggu 11 | Penanganan Berkas |
Minggu 12 | Paket di R |
Minggu 13 | Antarmuka Data |
Minggu 14 | Visualisasi Data |
Minggu 15 | Statistik Dasar |
Minggu 16 | Ujian Akhir Semester |
Template Laporan
Berikut adalah template yang digunakan dalam setiap laporan yang akan anda kerjakan setiap pengerjaan tugas mingguan.
Kriteria Penilaian
Penilaian dilakukan sesuai dengan kriteria penilaian yang berlaku di Universitas Matana sebagai berikut:
Nilai huruf | Nilai Numerik | Nilai Bobot | Predikat |
---|---|---|---|
A | 4.00 | 81–100 | istimewa/sangat baik |
A- | 3.70 | 80-84 | hampir sangat baik |
B+ | 3.30 | 75-79 | lebih baik |
B | 3.00 | 70-75 | baik |
B- | 2.70 | 65-69 | hampir baik |
C+ | 2.30 | 60-69 | lebih dari cukup |
C | 2.00 | 55-59 | cukup |
C- | 1.70 | 50-54 | kurang |
D | 1.00 | 40-50 | tidak baik |
E | 0 | 0-40 | tidak lulus |
Contoh: persentase sistem penilaian yang berlaku:
-Ujian Akhir Semester = bobot 35%
-Ujian Tengah Semester = bobot 35%
-Tugas (dapat berupa makalah maupun tugas presentasi) = bobot 20%
-Kehadiran = 10%
Jika anda mendapat nilai sebesar:
-UAS : 86
-UTS: 75
-Tugas : 90
- Kehadiran : 100% (tidak pernah absen).
Maka perkiraan nilai akhirmu adalah, (86x0.35) + (75x0.35) + (90x0.2) + (100x0.1) = 84.35, atau bernilai A- dalam nilai huruf dan 3.70 dalam nilai numerik.
Aturan Pembelajaran & Ujian
- Kegiatan pembelajaran dimulai tepat waktu (sesuai jadwal), toleransi keterlambatan maksimal 15 menit.
- Selama pembelajaran/ujian berlangsung HP/gadget dimatikan (silent).
- Pengumpulan tugas individu sesuai jadwal. Bagi yang terlambat nilai hanya 50%; keterlambatan lebih satu minggu nilainya 0%.
- Tugas yang merupakan hasil copy paste tidak diterima.
- Aturan jumlah minimal kehadiran, berpakaian sopan, bersepatu dan aturan akademik lainnya tetap berlaku.
- Pada saat pelaksanaan ujian berlaku aturan tata tertib ujian yang diberlakukan di Universitas Matana
- Pada saat ujian, bila kedapatan berbuat curang, maka nilai ujian nol/dibatalkan.
- Bila komponen penilaian tidak lengkap tidak akan dapat nilai maksimal
- Tidak ada ujian susulan, kecuali bagi yang sakit dan opname, orang tua meninggal, atau ditugaskan oleh institusi kampus yang diperkuat dengan surat penugasan. Untuk hal ini perlu ada surat pengantar dari universitas untuk ujian susulan.