Python: Basic Computation

Apa Itu Python dan MengapaPython?

Mfmohammadfikri
7 min readMar 2, 2022

Python adalah bahasa pemrograman yang dikembangkan oleh Guido van Rossum pada tahun 1990. Python sering digunakan untuk membangun situs web dan perangkat lunak, mengotomatisasi tugas, dan melakukan analisis data.

Python adalah bahasa pemrograman yang bisa dibilang lebih mudah untuk dibaca dibandingkan bahasa pemrograman yang lain seperti C++, Java, dll.

Python merupakan program Open Source yang mana dapat digunakan secara gratis dan bebas untuk memodifikasi.

Belakangan ini juga, penggunaan Python semakin banyak di dalam komunitas Data Science dan Machine Learning. Library di Python di dedicated untuk para data scientist dalam pengolahan data, Python memiliki ketersediaan library dan framework yang lengkap seperti:

  • Scikit-learn
  • PyTorch
  • TensorFlow
  • Pandas
  • Numpy & Scipy

Python juga memiliki dukungan komunitas yang kuat, Python menjadi salah satu bahasa yang paling dibutuhkan dan bahasa pemrograman nomor 2 terpopuler. sehingga nantinya ketika kita memperoleh kesulitan maka akan mudah untuk mencari referensi dikarenakan besarnya komunitas dari pengguna python itu sendiri.

Dasar Komputasi

Apa yang dilakukan dilakukan oleh komputer?

sehari-seharinya kita bisa dibilang beriinteraksi dengan komputer. beberapa dari kita menggunkan komputer untuk mempermudah pekerjaan kita. adapun beberapa aktivitas kompleks seperti mengedit video, browsing, membuat dokumen hingga bermain game dapat kita lakukan dengan komputer.

Komputer memiliki kemampuan menghitung dan kemampuan untuk mengingat, namun tidak memiliki kemampuan untuk membuat ide baru.

namun pada dasarnya komputer hanya dapat melakukan 2 hal saja yaitu:

  1. Melakukan perhitungan (mampu hingga milyaran perhitungan setiap detik)
  2. Mengingat informasi

Secara default atau umum, komputer dapat melakukan perhitungan yang sudah built-in didalam bahasa pemrogramannya seperti:

  • Operasi aritmetik sederhana.
  • Komparasi.
  • Pengulangan.

Walaupun komputer merupakan alat yang sangat powerfull akan tetapi komputer sebenarnya memiliki kapasitas sangat terbatas dengan 3 perhitungan default yang sudah system built in. nah, kita sebagai developer atau programmerlah yang memiliki peran untuk memaksimalkan kapasitas komputer dengan dapat mendefinisikan sebuah perhitungan baru dengan mengombinasikan operasi-operasi primitif tadi.

Contoh:

  1. Operasi pemangkatan

misal, ketika kita ingin membuat membuat program menggunakan operasi pemangkatan kemudian memberikan operasi seperti Perkalian, penambahan, pengurangan, pembagian, dan Pengulangan. dimana kita tahu sebenarnya pangkat merupakan perkalian berulang terhadap dirinya sendiri, misal:

X² = X * X

X³ = X * X * X

X⁴ = X * X * X* X

karena kita mengetahui konsep dasar dari pemangkatan maka kita dapat membuat program untuk formulasi pemangkatan.

2. Mengurutkan nama barang

Dalam microsoft Excel kita tahu tidak begitu sulit untuk mengurutkan suatu objek. kita dapat melakukannya dengan block semua cell yang berisi nama barang kemudian klik kanan, terakhir urutkan berdasarkan abjad..

namun, fitur sorting ini tidak ada secara default pada komputer. walapun begitu fitur ini sudah menjadi setandar pada umumnya pada komputer. pada awalnya para engineer merancang fitur ini menggunakan operasi sederhana yang bisa dilakukan oleh komputer by default seperti Aritmatika, Komparasi, Pengulangan, dan Penyimpanan.

Limitasi

adapun yang menjadi batasan atau limitasi pada komputer sekarang yang bisa dibilang sangat powerfull yaitu beberapa kendala yang terlalu kompleks. salah satu yang populer yaitu

  • Prediksi cuaca yang sangat akurat dengan resolusi yang tinggi.

Mengapa prediksi cuaca yang sangat akurat terlalu kompleks?

  • Banyak ketidakpastian.
  • Cuaca dipengaruhi banyak faktor.
  • Luasan cakupan cuaca berbeda-beda (Di kota yang sama, tapi di rumah A hujan, di rumah B tidak).
  • Perubahan kecil pada suatu variabel dapat berakibat besar (Chaos Theory).

[Source](https://letstalkscience.ca/sites/default/files/styles/x_large/public/2019-11/Weather_model.png?itok=rz_LM-C0)

Pengetahuan (Knowledge)

berbeda dengan manusia, komputer tidak memiliki knowledge, dikarenakan komputer hanyalah mesin untuk menghitung dan menyimpan. komputer hanya menjalankan perintah yang diberikan oleh user. “Knowledge” yang dimiliki komputer hanya sebatas informasi dan aturan yang disimpan dalam memori. sehingga kita sebagai user lah yang harus memasukan knowledge kita ke komputer.

secara garis besar, Knowledge terbagi menjadi 2 yaitu:

  1. Declarative Knowledge
  2. Imperative Knowledge

[Source]
(https://i.ytimg.com/vi/q0i6tfxk7wQ/maxresdefault.jpg)

Declarative Knowledge (pernyataan) merupakan tipe pengetahuan yang berupa pernyataan suatu fakta, sehingga dalam tipe ini tidak ditunjukkan langkah-langkah untuk mencapai suatu fakta tersebut. Declarative Knowledge juga biasanya merupakan pengetahuan eksplisit, artinya Anda secara sadar menyadari bahwa Anda memahami informasi tersebut.

Contoh dari Declarative Knowledge:

  • “Baju saya berada di dalam lemari.”
  • “Kue itu terbuat dari tepung dan telur.”
  • “ATM terdekat berada di SPBU Kuningan.”

Imperative Knowledge (Prosedur) merupakan tipe pengetahuan yang menunjukkan langkah-langkah untuk mencapai suatu tujuan. Jika diibaratkan, Imperative Knowledge adalah resep masakan.

Contoh Pertama (membuat masakan):

  1. Beli bahan-bahan yang dibutuhkan.
  2. Campur tepung, telur, dan susu ke dalam satu wadah.
  3. Aduk hingga semua bahan tercampur rata.
  4. Tuang adonan kedalam cetakan.
  5. Masak hingga matang.

Contoh Kedua(Mencari ATM terdekat lewat HP):

  1. Anda memasukkan perintah “Cari ATM terdekat”.
  2. Mengambil lokasi anda saat ini.
  3. Mengambil lokasi ATM di kota anda.
  4. Menghitung jarak terdekat anda ke daftar ATM.
  5. Mengambil dan menampilkan hasil dengan jarak terdekat.

Contoh dalam pemrograman (aplikasi mencari hasil perpangkatan)

  1. Declarative Knowledge
  • Nilai pangkat dua suatu bilangan 𝑥x adalah 𝑦y sehingga 𝑥∗𝑥=𝑦x∗x=y
  • Nilai pangkat tiga suatu bilangan 𝑥x adalah 𝑦y sehingga 𝑥∗𝑥∗𝑥=𝑦

2. Imperative Knowledge

Untuk mencari hasil perpangkatan dari suatu bilangan diperlukan langkah-langkah berikut:

  • Masukkan suatu bilangan x dan nilai dari pangkatnya z
  • Jika nilai z adalah 0, maka nilai dari perpangkatan adalah 1.
  • Jika nilai z adalah 1, maka nilai dari perpangkatan adalah x.
  • Jika nilai z adalah bilangan bulat positif mulai dari 2, maka kalikan x dengan dirinya sendiri sebanyak z-1 kali.

Imperative knowledge merupakan tipe knowledge yang digunakan untuk keperluan programming dimana kita menyampaikan intruksi kita ke komputer secara prosedural sehingga mampu di adaptasikan oleh komputer. sedangkan Declarative knowledge tidak memiliki arti banyak bagi komputer.

Kesimpulannya adalah kita dapat membuat komputer untuk melakukan tugas yang kita inginkan dengan menggunakan pendekatan berupa imperative knowledge yang berupa “resep” untuk melakukan sesuatu. Secara sederhana “resep” dapat dijabarkan menjadi 3 poin, yaitu:

  1. Urutan dari langkah-langkah sederhana.
  2. Urutan dari proses kontrol yang menspesifikasi kapan tiap langkah dieksekusi.
  3. Memiliki informasi kapan untuk berhenti dan kapan untuk jalan.

Poin-poin diatas ketika digabungkan akan menghasilkan yang namanya Algoritma!!

[Source]
https://media.geeksforgeeks.org/wp-content/cdn-uploads/20191016135223/What-is-Algorithm_.jpg

Komputer adalah Mesin!

komputer hanyalah mesin yang membantu kita melakukan pekerjaan repetitif atau berulang dan melelahkan. secara historis komputer terbagi menjadi dua yaitu Fixed Program yang mana komputer seperti kalkulator dan Stored Program seperti komputer PC yang kita kenal.

Perbedaan stored dan fixed program:

  • Stored program dapat melakukan kombinasi perintah yang lebih kompleks.
  • Kombinasi perintah dapat disimpan sebagai program.
  • Program yang disimpan dapat diaktifkan maupun dinonaktifkan.
  • Dapat berganti-ganti program sesuai kebutuhan.

Komponen Dasar Komputer

Di dalam komputer stored program terdapat beberapa komponen inti yang terdiri dari 3 komponen besar yaitu:

  • Interface (berupa input dan output yang digunakan untuk berinteraksi dengan user)
  • Prosesor (Untuk mengolah data)
  • Memory (Untuk menyimpan informasi). di dalam memori disimpan dua jenis informasi yaitu Data (informasi yang ingin kita olah) seperti kumpulan dari angka, kata, gambar, dll. dan Algoritma (urutan dari instruksi yang ingin dijalankan).

CONTOH

Menghitung rata-rata dengan Microsoft excel:

  • Interface input adalah keyboard dan mouse.
  • Interface output adalah layar monitor.
  • Angka yang anda masukkan ke Excel, disebut dengan Data.
  • Perintah rata-rata di dalam Excel adalah Algoritma.
  • Untuk menghitung rata-rata, prosesor akan mengambil data dan algoritma sesuai perintah input di dalam memori.
  • Prosesor melihat urutan perintah di dalam algoritma dan mengolah data sesuai algoritma tadi.
  • Setelah selesai diproses, data bisa disimpan kedalam memori.
  • Atau ditampilkan sebagai output di monitor.

Bahasa Pemrograman

Seperti disebutkan sebelumnya, prosesor melihat urutan perintah dalam algoritma untuk melakukan perintah. Namun, algoritma tersebut ditulis di dalam bahasa pemrograman, yang mudah ditulis dan dibaca oleh manusia. nah selanjutnya bagaimanakah cara prosesor dapat mengetahui perintah yang kita tulis?

Ya betul dengan bahasa pemrograman, dimana bahasa pemrograman(interpreter) adalah suatu program di dalam komputer yang bertugas menerjemahkan instruksi dari user ke mesin.

[Source]
https://media.geeksforgeeks.org/wp-content/uploads/20200530152827/223-1.png

Bahasa pemrograman memiliki elemen dan operasi dasar yang menjadi building block program yang akan dibuat:

  • Kombinasi dari operasi dan elemen dasar disebut dengan expressions.
  • Definisi formal expression : Kombinasi kompleks yang legal dari operasi dan elemen dasar di dalam bahasa pemrograman.

Untuk membentuk suatu expression yang legal, maka perlu diperhatikan aspek-aspek berikut:

1. Operasi dan elemen dasar (Basic Primitives)

Basic primitives merupakan elemen-elemen dasar suatu bahasa.

Analogi basic primitives:

  • Bahasa Indonesia : kata, angka dan tanda baca.
  • Bahasa pemrograman : angka (integer,float), teks(string), dan operasi-operasi lainnya (+-*/**//).

Contoh:

  • integer : 1 2 3 4 5
  • float : 1.2 2.3 4.5
  • string : "Saya Belajar dengan giat"

2. Syntax

sintaks adalah kombinasi yang valid dari elemen-elemen dasar suatu bahasa. Contoh dalam bahasa Indonesia:

  • “Budi membeli nasi goreng di pasar malam.” adalah contoh kalimat yang valid secara sintaks.
  • “Budi nasi goreng di pasar membeli.” adalah contoh kalimat yang tidak valid secara sintaks.

Contoh dalam bahasa pemrograman:

Syntax valid

in : 5*2/4-1+50/2*3

out : 7.65

Syntax Invalid

in : 25/

Syntax Error: Invalid Syntax

3. Semantik Statik

Istilah semantik statik disini merujuk kepada apakah suatu expression atau kalimat memiliki arti. Contoh paling mudah dalam bahasa inggris:

  • “I am tired.” adalah kalimat yang valid secara sintaks dan valid secara statik semantik.
  • “You is tired.” adalah kalimat yang valid secara sintaks (pronoun + verb + adj), namun memiliki error pada statik semantik.

Contoh dalam bahasa pemrograman:

valid secara statik semantik

in : 3.1425 * 4

out: 12.57

in : "ini "+"bapak "+"budi"3

out: ini bapak budi

Error statik semantik

dimana ketika string coba digabungkan dengan integer

4. Semantik

walaupun secara sintaks dan semantik statik sudah benar baik dalam bahasa inggris maupun bahasa indonesia, namun masih terdapat kemungkinan untuk suatu kalimat bermakna ganda atau ambigu. Sebagai contoh:

  • “Kakakku adalah seorang penjahit jas wanita.”
    Kalimat ambigu karena dapat bermakna bahwa “Kakakku adalah seorang penjahit jas khusus wanita.” atau “Kakakku adalah seorang wanita penjahit jas.”
  • “Pamanku adalah seorang manager perusahaan terkenal.”
    dapat bermakna “Pamanku yang terkenal, adalah seorang manager perusahaan” atau “Pamanku adalah seorang manager dari perusahaan terkenal”

Beberapa kemungkinan Kesalahan pada program sederhana.

  • Error Dalam syntax
  • Sering terjadi dan mudah untuk diketahui
  • Error statik semantik
  • Beberapa bahasa pemrograman memeriksa hal ini sebelum menjalankan perintah.
  • Dapat menyebabkan error yang tidak terprediksi.
  • Tidak ada error semantik, namun berbeda dengan yang kita maksud.
  • Program error.
  • Program tidak bisa berhenti.
  • Program memberikan hasil, tetapi tidak sesuai harapan.

--

--

Mfmohammadfikri
Mfmohammadfikri

No responses yet