Kamis, 12 Mei 2022

Menghitung Akar Kuadrat Menggunakan Iterasi (Dengan Gambar)

menggunakan sedikit aljabar & geometri

Bagaimana cara menghitung √10 itu?

Coba lihat gambar berikut:

Pada gambar di atas, luas kotak (yang paling besar) adalah 10, dan luas kotak hitam adalah 9. sedangkan panjang pinggiran kotak hitam adalah √9 = 3, dan panjang pinggiran kotak (yang paling besar) adalah √10.

Sekarang, kita perlu menghitung x (karena √10 - √9 = x).
Kita sudah tahu bahwa kotak (yang paling besar) tertumpuk (overlap) dengan kotak hitam, maka total  luas kotak merah dan biru adalah 10 - 9 = 1
luas 1 kotak merah = x ⋅ 3. namun karena kotak merah ada 2, maka luas total kotak merah = x ⋅ 3 ⋅ 2.
total luas kotak merah dan biru = x ⋅ 3 ⋅ 2 + x² = 1
1 - x² = x ⋅ 3 ⋅ 2
x = (1 - x²) ÷ (3 ⋅ 2)

Nah, persamaan ini tidak bisa diselesaikan karena nilai x bergantung dengan angka x itu sendiri.
Maka untuk menghitungnya, kita bisa menggunakan iterasi (iteration).
Kita bisa mensubstitusi sebuah persamaan dengan persamaan itu sendiri.
Coba lihat:
x = (1 - x²) ÷ (3 ⋅ 2)
   = (1 - ((1 - x²) ÷ (3 ⋅ 2))²)  ÷ (3 ⋅ 2)
   = (1 - ((1 - ((1 - x²) ÷ (3 ⋅ 2))²) ÷ (3 ⋅ 2))²)  ÷ (3 ⋅ 2)
   = (1 - ((1 - ((1 - ((1 - x²) ÷ (3 ⋅ 2))²) ÷ (3 ⋅ 2))²) ÷ (3 ⋅ 2))²)  ÷ (3 ⋅ 2)

memprogram iterasi perhitungan √10

Ketika kita menggunakan metode iterasi (untuk menghitung sebuah angka), kita tidak bisa menghitung angka dengan persis, tapi kita bisa menghitung aproksimasi angka. semakin banyak iterasi yang dilakukan, semakin akurat kita dengan angka sebenarnya.
Pada iterasi ke-0, kita bisa mengatur x = 0:
Iterasi ke-0:
x₀ ≈ 0
Pada iterasi ke-1, baru kita memasukkan persamaan:
Iterasi ke-1:
x₁ ≈ (1 - x₀²) ÷ (3 ⋅ 2)                ≈ (1 - 0²) ÷ (3 ⋅ 2) ≈ 1 ÷ (3 ⋅ 2)
Iterasi ke-2:
x₂ ≈ (1 - x₁²) ÷ (3 ⋅ 2)                ≈ (1 - ((1 - 0²) ÷ (3 ⋅ 2))²) ÷ (3 ⋅ 2)
Iterasi ke-3:
x₃ ≈ (1 - x₂²) ÷ (3 ⋅ 2)                ≈ (1 - ((1 - ((1 - 0²) ÷ (3 ⋅ 2))²) ÷ (3 ⋅ 2))²) ÷ (3 ⋅ 2)
Perhatikan angka 'kecil'-nya (₀, ₁, ₂, dsb) di variabel x.
Nah sekarang kita bisa membuat program-nya.

sqrt_10.py

Sabtu, 26 Maret 2022

Menggambar Dengan 'Bahasa" Komputer (SD usia 7 tahun ke atas)

 

Gambar dari buku CS Unplugged

Ini adalah salah satu kegiatan untuk mempelajari bagaimana komputer berinteraksi dengan bahasa perintahnya. Cara paling mudah adalah memerintahkan 'kompjuter untu kmembuat gambar yang telah tersedia dengan perintah tertentu. Tidak perlu menggunakan bahasa program betulan, cukup dengan bahasa sehari hari saja. Dari aktivitas ini anak anak akan belajar tentang algoritma dan membuat'pseudo code' . 

Gambar yang dibuat di atas   tentu dibuat dengan berbagai maksud dan tujuan. Pada gambar di atas terlihat ada pola, pengulangan, jarak, kordinat, ukuran dan lain lain. Ini membuat perintah lebih mudah dilakukan. Bayangkan jika gambarnya fraktal, elips dan lain lain yang lengkung atau tidak beraturan, .membuat perintah menjadi lebih sulit

Setelah mencobanya banyak kejadian lucu yang dialami karena perintah yang kurang jelas dan detil. Kurang lebih bahasa dan algoritma komputer seperti itu, harus ada batasan yang jelas, perintah yang bertingkat, cukup rinci dan sederhana. 

Anak yang lebih besar bisa mencoba menggunakan ukuran atau koordinat agar perintah yang dibuatnya lebih spesifik.

Kita juga dapat  membuat gambar sendiri kalau sudah selesai dengan gambar di atas dengan kemungkinan yang tidak terbatas.

Kamis, 24 Maret 2022

Cerita Barisan Angsa Dan Menghitung Uang ( Matematika SD Kelas 3)

1. Sekawanan angsa terbang: satu angsa di depan, dan dua di belakang; satu di belakang dan dua di depan; satu antara dua dan tiga berturut-turut. Ada berapa angsa di sana?

Jawab:


 

Dengan cara Visualisasi dapat dilihat ada 3 angsa. 

2. Jika Anda menambahkan setengahnya ke uang saya, Anda mendapatkan 81 rubel. Berapa banyak uang yang saya miliki pada awalnya?

Jawab: 

Jumlah uang saya awalnya adalah 1, ditambah setengah lagi jadi 81. Maka 1.5 uang saya adalah 81. Satu bagian dari uang saya adalah 27 dan  2 bagiannya adalah 54.

 3. Jika ibu memasukkan sepertiga dari uang itu ke dalam dompetnya, maka dompet itu akan menjadi 68. Berapa banyak uang di dompet?

Seperti soal di atas dan jawabannya adalah (17*3)= 51

Kamis, 24 Februari 2022

Membuat List dari Input Files pada Python

 Ada banyak cara utnuk membuat list langsung dari input files seperti: 

Buat list kosong, masukkan satu persatu listnya denagn loop (while atau for), menggunakan listkosong.append(variabelinput). Nah biar bisa berhenti, masukkan len listnya berapa (bisa diinput atau tidak) kalau nggak ada len listkosongnya bisa pake sentinnel (if variabelinput !="Q" or "q") untuk mengatur agar loop sesuai. Seperti:

# creating an empty list
lst = []

# number of elements as input
n = int(input("Enter number of elements : "))

# iterating till the range
for i in range(0, n):
    ele = int(input())

    lst.append(ele) # adding the element
    
print(lst)
 

Bagaimana kalau mau membuat input dalam bentuk list? bisa saja , tapi harus dipisah pake perintah split().Ingat, yang dipisah itu masih variabel string, kalau mau int harus diganti lagi. 

Bisa begini: 

input_string = input('Enter elements of a list separated by space ')
print("\n")
user_list = input_string.split()
# print list
print('list: ', user_list)

# convert each item to int type
for i in range(len(user_list)):
    # convert each item to int type
    user_list[i] = int(user_list[i])

# Calculating the sum of list elements
print("Sum = ", sum(user_list))

Atau : 

# number of elements
n = int(input("Enter number of elements : "))

# Below line read inputs from user using map() function
a = list(map(int,input("\nEnter the numbers : ").strip().split()))[:n]

print("\nList is - ", a)

Sumber:

https://pynative.com/python-accept-list-input-from-user/

https://www.geeksforgeeks.org/python-get-a-list-as-input-from-user/

Senin, 21 Februari 2022

Cara Menginstall Compiler C++ di Visual Studio Code Windows

Visual Studio Code adalah integrated development environment (IDE) yang bisa dipakai untuk banyak bahasa program seperti C++, C#, Python, dan lain lain. Bahasa C++ lebih mudah dipakai di Linux karena sudah terpasang compilernya GNU Compiler Collection (GCC), Untuk windows kita perlu menginstallnya sendiri. 

Agar dapat memakai C++ di  Visual Studio Code di Windows kita harus (Petunjuk lengkap bisa dilihat di sini) : 

Install extension C++ di Visual Studio Code pada icon Activity bar atau pakai  keyboard shortcut (Ctrl+Shift+X). Pilih C++ dan install

Cek apakah sudah ada compiler di Visual Studio Code, pada Integrated Terminal keyboard short cut (Ctrl+) dan run compiler.

kalau n ggak ada install MinGW-w64 via MSYS2, download file yang ada di sana. Simpan di folder. Run MSYS2.

run pacman -Syu

Run "MSYS2 MSYS" from Start menu.

install mingw-w64 GCC dengan perintah: (pacman -S --needed base-devel mingw-w64-x86_64-toolchain).

Kita bisa melihat yang  mana yang mau diinstall. Untuk c++  ambil yang ke 3. tapi ternyata semuanya perlu.. jadi install semua saja.

ternyata error. Kadang kalau internet koneksi lambat, kita nggak bisa install semua sekaligus, tapi harus satu persatu.. dan itu berhasil. 

Setelah di Install, kita bisa ikuti perintah dari https://code.visualstudio.com/docs/languages/cpp yaitu: 

di Windows setting :

Edit environment variables 

Pilih Path edit di User Variables

Tambah baru (New) ke folder path  Mingw ke sistem( \mingw64\bin) 

Kalau pake Mysys2 pathnya:  C:\msys64\mingw64\bin.

Ok, buka ilang windows console untuk melihat path baru

Seterusnya bisa dilihat di sini.

Kita bisa juga install MinGW di https://sourceforge.net/projects/mingw/ atau https://osdn.net/projects/mingw/. 

Tapi kalau sudah diinstall kita perlu menambahkan sedikit script pada file json di Visual Studio Code pada task dan launch json. Seperti ini: 

dan ini: 


kalau masih belum bisa juga, kita bisa compile secara manual di viscode denagn script: 




Sabtu, 19 Februari 2022

Kemungkinan Mengambil Apel Yang Sama (Soal Probabilitas Matematika SD)

Teori kemungkinan atau probabilitas agak jarang ditemukan pada matematika SD, tapi sebetulnya ada banyak soal sederhana yang bisa mengenalkan anak pada probabilitas. Soal termudah yang pernah saya kerjakan di tingkat SMP seperti ini: 

Kalau kamu melempar 1 buah dadu, ada berapa kemungkinan kamu mendapatkan nilai dadu 1? 

Setelah membaca sedikit tentang probabilitas, kita tinggal memasukkan rumusnya saja. Tapi sebetulnya soal probabilitas yang sederhana dapat diselesaikan tanpa menggunakan rumus.

Ada sebuah soal menarik yang saya temukan pada sebuah buku  matematika SD kelas 4: 

 Ada 3 jenis apel di dalam tas. Di dalam tas ada cukup banyak apel dari setiap varietas. Berapa jumlah minimal apel yang harus diambil dari kantong tanpa melihat agar: 

a) di antara mereka setidaknya ada 2 apel dari varietas yang sama; 

b) di antara mereka ada setidaknya 5 apel dari varietas yang sama.

Awalnya membaca ini agak membingungkan karena tidak dijelaskan berapa perbandingan tiap varietas apel. Tapi sebetulnya kita nggak perlu tahu perbandingannya karena soal tidak menanyakan apel mana yang akan diambil secara spesifik (jenis a atau b atau c). Soal hanya meminta apapun jenisnya yang penting ada 2 apel yang sama. 

Kita bisa mendemokannya dengan bola atau kertas yang disimpan ke dalam kantong dan mengajak anak mencoba sendiri berapa kemungkinan. Namun secara logika, tentu saja kemungkinan terburuk ada 2 jenis apel itu akan terjadi ketika kita mengambil 4 kali (walau bisa saja pada tahap ke 2 atau ke 3 kita sudah mendapatkannya) karena  jumlah apel ada 3 jenis. 


Untuk 5 jenis apel kita tinggal mengalikannya dengan 4 dan ditambah 1, berarti 3 x 4 +1, jadi 13 kali mengambil apel.

Kamis, 17 Februari 2022

Peringatan Dari "Browser" (Keamanan Internet)

 

 Pagi pagi ingin meluncur ke sebuah situs, tiba tiba ada notifikasi dari browsernya:

 

Browser yang saya pakai : Chrome.. jadi pertama saya cpoba pakai browser lain.. ternyata waktu coba  FireFox, notifikasinya kurang lebih sama saja.. Kemungkinan terjadi pencurian data password, message dan kartu kredit cukup bikin jantungan untuk saya yang gaptek ini.. Padahal sudah beberapa kali saya meluncur ke situs ini tapi tidak pernah ada peringatan. O ya bisa juga kalau link diklik bisa ke website nggak jelas, iklan atau bahkan terkena virus.. kemungkinan lain ada yang mencegah kamu meluncur ke situs tersebut (hacker) dan ia berusaha mencuri data data kamu dengan menyuruh kamu isi form yang nggak jelas.

  • Karena takut kena virus, atau pencurian data, saya agak ragu untuk meluncur ke sana..Apa yang harus dilakukan kalau ada notifikasi "Your Connection is not private" seperti ini?
  • Selidiki dulu kenapa (lihat di option advance) . Ada beberapa kemungkinan seperti security certificate yang sudah expired yang bisa terjadi karena memang nggak diupdate lagi sama server, atau salah konfigurasi. 
  • Kalau penjelasannya masih kurang, kita bisa google, mungkin ada yang punya kasus serupa dan tau apa permasalahannya.
  • Kalau masih belum jelas juga bisa kontak email website tersebut kalau ada.. 
  • Cara paling primitif dengan menunggu beberapa jam atau 1 hari sampai ada perubahan pada sebsite.. bisa saja sedang diutak atik atau sedang proses pemindahan ke server lain.  
  • Atau kalau kamu berani, dan yakin situs itu aman, meluncur saja ke sana.. tapi ingat, jangan pernah memasukkan data pribadi ke form yang tiba tiba datang entah darimana biar data pribadimu  nggak keambil.