Selasa, 19 Juli 2022

Merakit Train Seesaw Dengan Lego Technic 9686


Dulu, kami sering membuat mainan bergerak dari barang bekas. Tapi ternyata mainan seperti ini walaupun senang memainkannya, agak sulit dibuat dan tidak tahan lama. Apalagi ada bagian bagin yang memang membutuhkan ukuran dan presisi yang cukup besar seperti roda gigi, katrol, roda, dan lain lain. cara paling mudah untuk membuat mainan ini memang cari lagi bagian yang kurang bisa dibuat dari kertas dan kardus. cara lain paling sederhana adalah menggunakan Lego. Lego technic 9686 terdiri dari banyak bagian yang mengasyikkan seperti berbagai macam roda gigi, batang berlubang, poros, berbagai macam sekrup, dan lain lain. 

Lego technic ini dilengkapi dengan beberapa contoh mesin sederhana untuk anak anak SMP dan SD. Ada juga lembar eksperimen sains jika anak suka mencoba. namun merakit dan memainkannya sudah dapat memberi manfaat utnuk anak. 

Setelah semua mesin sederhana selesai dirakit, timbul lagi keinginan untuk merancang sendiri mesin atau mainan sederhana. Kebetulan di Youtube masih jarang contoh mainan sederhana yang dibuat dari Lego technic.

 Ini adalah Train Seesaw, yang awalnya adalah mainan kereta api dalam rel yang dapat melewati jembatan jungkat jungkit. Mainan ini dapat ditemukan di:

  • https://www.thingiverse.com/thing:65965
  • https://www.instructables.com/Train-Seesaw/ 
https://www.instructables.com/Train-Seesaw/

Mainan ini dapat juga dibuat dari Lego Technic 9686. Di bawah ini adalah video cara membuatnya.

 

 

Senin, 18 Juli 2022

Dynamic Programming di Python

Ini adalah salah satu materi yang ada di buku Pemrograman Kompetitif. Buku ini bisa di download di https://tlx.toki.id/courses/competitive/chapters/07/lessons/A. Seharusnya penjelasannya diketik ulang , tapi maaf belum sempat... 

Dalam buku dijelaskan konsep dan Pseudocode dari soal. Keduanya diterjemahkan dalam bahasa Python versi saya.

Soalnya seperti ini:

Diberikan M jenis koin, masing-masing jenis bernilai a₁,a₂, ....aₘ rupiah. Asumsikan banyaknya koin  yang ada tak terbatas. Tentukan banyaknya koin paling sedikit untuk membayar tepat sebesar N rupiah!

Solusinya bisa diselesaikan dalam dua cara: Bottom up dan Top down.

1. Bottom-up: (ubah variabel M dan N untuk mengubah input)

  1. def solve(a, N):
  2.     f = [0] * (N + 1)
  3.     for x in range(1, N + 1):
  4.         best = float('inf')
  5.         for k in range(len(a)):
  6.             if a[k] <= x:
  7.                 best = min(best, f[x - a[k]] + 1)
  8.         f[x] = best
  9.     return f[-1]

  10. def main():
  11.     M = 1, 6, 10
  12.     N = 12
  13.     print(solve(M, N))

  14. if __name__ == '__main__':
  15.     main()


2. Top-down:

  1. def solve(x):
  2.     if x == 0: return 0

  3.     best = float('inf')
  4.     for k in range(len(M)):
  5.         if M[k] <= x:
  6.             best = min(best, solve(x - M[k]) + 1)
  7.     return best

  8. def main():
  9.     global M
  10.     M = 1000, 2000, 5000
  11.     N = 12000
  12.     print(solve(N))

  13. if __name__ == '__main__':
  14.     main()

Menyelesaikan Soal Cerita Berbasis Aljabar (Matematika SD)

https://id.pngtree.com/freepng/cartoon-watermelon-score-clipart_6030316.html

 

Belum belajar persamaan aljabar, sudah ada soal cerita aljabar. Seperti yang kita ketahui soal Aljabar sederhana biasa membuat perumpamaan dan perbandingan beberapa bilangan utnuk mendapatkan hasil. cara ini agak sulit untuk anak usia sekolah SD kelas 1,2,3. Tapi apakah ada cara lain untuk menyelesaikan soal seperti ini?

Saya menemukan soal cerita ini di buku Matematika SD kelas 3.(diterjemahkan dengan sedikit modifikasi)

Soal ke 1

Kathy berkata kepada ayahnya: "Guru memuji saya hari ini karena memecahkan masalah." Adiknya mendengar ini dan berkata kepada Kathy: "Saya tidak tahu mengapa Anda dipuji, tetapi sayalah siswa nomor satu dalam aritmatika." Sang ayah lalu memberi soal untuk siswa siswa jago matematika. 

Kathy membaca soal ayahnya: "Jika Anda menambahkan setengah bagiannya ke uang saya, Anda mendapatkan 81 Dolar. Berapa banyak uang yang saya miliki?" 

Dan Adiknya membaca ini: "Jika ibu memasukkan sepertiga dari uang di dompetnya ke dompetnya, maka akan ada 68 Dolar di dompetnya. Berapa banyak uang di dompetnya?" 

Anak anak menjadi malu karena kesulitan mengerjakan soal itu. Bisakah kamu membantu mereka? 

 

Ada banyak cara dan jawaban yang dapat diberikan oleh anak anak. 

Cara 1

Cara paling gampang adalah cara coba coba (Brute Force). 

Kita bisa menebak terlebih dulu berapa uang milik ayah. Dari sana kita akan periksa apakah perhitungannya sudah betul atau belum. Jika belum kita akan menambah atau mengurangi tebakan seusai dengan hasil yang sudah ada.  

Cara 2

Anak kelas 3 banyak yang belum belajar pecahan dan masih kesulitan membuat persamaan aljabar. namun soal ini bisa diselesaikan dengan membuat model dan membandingkan.

Uang yang ditambahkan adalah sesuatu = x

Uang itu adalah setengah dari uang saya. Jadi uang saya 2 kalinya. = 2x

Jumlah uang saya dan yang ditambahkan untuk saya adalah x+ 2x. 

Hasilnya adalah 81 Dolar. 

3 bagian x hasilnya 81, kalau 1 bagian adalah 81/3 = 27. Uang saya adalah 2 kalinya yaitu: 27 x 2 = 54 Dolar. 

Cara 3

Soal ini juga dapat diselesaikan dengan cara membuat garis bilangan, atau membuat model gambar. Dan tentu saja untuk anak yang lebih besar bisa menyelesaikannya dengan persamaan aljabar. 


 Soal ke 2

Seorang pria bertemu dengan keluarga yang terdiri dari kakek, ayah dan anak, dan bertanya berapa usia mereka. "Kita semua umurnya100 tahun," jawab kakek. (maksudnya jumlah umur semua anggota adalah 100). 

Kemudian pria itu bertanya kepada ayahnya: "Nah, katakan padaku, berapa umurmu?" - "Bersama dengan putra saya, saya berusia 45 tahun," jawab sang ayah, "dan putranya 25 tahun lebih muda dari saya."  

Jadi pria yang penasaran itu tidak perlu mencari tahu berapa usia mereka masing-masing.  Apakah kamu juga sudah tahu? 

Cara menyelesaikannya hampir sama dengan soal ke 1.

Soal Ke 3

Yang ini adalah soal yang aneh tapi lucu.. 'thinking out of the box'. 

Tugas lelucon  

a) Berapa banyak ujung yang dimiliki 4 batang, 5 batang, 5 setengah batang? 

Cara ini dapat diselesaikan denagn membuat model atau menggambar secara visual. Berapa ujung yang dimiliki oleh 1 batang.

b) Bagilah dua belas menjadi dua bagian yang sama di atas kertas sehingga setengah dari angka ini adalah tujuh.  

c) Bagaimana cara membagi 188 menjadi dua bagian yang sama sehingga masing-masing menjadi 100?

Soal b dan c lebih sulit. Kita  pasti membayangkan dua-belas itu adalah besaran atau jumlah. Padahal yang dimaksud di sini adalah angka. Dan format angka bukan hanya format arabic, tapi bisa bentuk lain.