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

Soal Probabilitas Matematika SD dekat dengan "Pigeon Hole Principle"

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. 

Ternyata soal ini mirip dengan soal OSN SMP Matematika 2011 tingkat kabupaten: 

 


 Tiap 1 warna berjumlah 100, untuk masing masing 1 warna perlu 5x1 +1 pengambilan. 

Untuk paling sedikit 5 kelereng sama perlu (100/5)+1 pengambilan sehingga ada 4a 4b 4c 4d 4e kelereng dab 1 kelereng warna tambahan agar berjumlah 5

 

 

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.

Senin, 07 Februari 2022

Nambah Elemen Dalam List (Python)

Ada banyak cara tapi yang cukup mudah adalah dengan append atau extend. Bedanya kalau extend bisa nambah beberapa list sekaligus, kalau append harus satu persatu.  Kalau nambah beberapa elemen dalam append akan dianggap satu list. 

https://stackoverflow.com/questions/252703/what-is-the-difference-between-pythons-list-methods-append-and-extend

 


Kalau ada soal seperti ini (https://www.practicepython.org/exercise/2014/02/15/03-list-less-than-ten.html)

Take a list, say for example this one:

  a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

and write a program that prints out all the elements of the list that are less than 5.


Salah satu solusinya yang pakai append: 


Append juga bisa menambah elemen baru dengan tambahan string seperti di sini:


https://tutorial.eyehunts.com/python/python-add-to-list-in-a-loop-appending-elements-in-list-example-code/

-ww-

Rabu, 02 Februari 2022

Aplikasi Pengingat Jadwal Belajar di Waktu Pandemi Gratis

Aplikasi Pengingat Jadwal

Selama pandemi, kita memang banyak belajar dari rumah.. Tapi kadang kita suka lupa waktu, ketika sedang ada di rumah, ternyata ada banyak sekali yang ingin dilakukan, tapi waktu selalu terbatas, dan kita harus menyelesaikan jadwal belajar kita setiap hari.. Maka dari itu, saya ingin membuat aplikasi "Pengingat Jadwal". 

Aplikasi pengingat waktu ini saya buat dalam bahasa python, dengan bantuan modul tkinter.

Download:

Kamu juga bisa menggunakan aplikasi Pengingat Jadwal. Caranya:

1. Pastikan python sudah terinstall di komputermu. jika belum, kamu bisa menginstallnya di: python.org

2. Download file zip dengan cara menekan tombol download berikut:

3. extrak zip yang baru didownload.

    a. klik kanan pada file zip dan pilih "Extract All..."


    b.  klik tombol "Extract"

Menjalankan aplikasi

run program "schedule-controller2.py", sebuah window akan muncul. tekan tombol Add untuk menambahkan jadwal.

Kalau kamu sudah mencobanya, tolong beri ide-ide yang bagus ya di kolom komentar, saya ingin membuat aplikasi ini menjadi lebih bagus. agar aplikasi ini bermanfaat bagi anak anak yang sedang belajar di masa Pandemi. 

Catatan:

Cara kerja script (Jika kamu penasaran):

import time, tkinter
from tkinter.messagebox import showerror
from tkinter import font

1. kita "mengimpor" modul yang kita akan gunakan:

  a. modul time untuk mengetahui waktu sekarang.

  b. modul tkinter untuk membuat window di OS.

  c. selain itu, tkinter.messagebox untuk membuat message di OS.


class Entry(tkinter.Entry):
    def __init__(self, master = None, colors = None, **kw):
        super().__init__(master, **kw)
       
        self.var = tkinter.StringVar()
        self['bd'] = 0
        self['textvariable'] = self.var
        setup_border(self, colors['outlinebox'], colors['focus'])
        self['selectbackground'] = colors['focus']
        self['selectforeground'] = colors['foregroundbox']
        self['bg'] = colors['box']
        self['fg'] = colors['foreground']

       
class Spinbox(tkinter.Spinbox):
    def __init__(self, master = None, colors = None, **kw):
        super().__init__(master, **kw)
        self.var = tkinter.StringVar()
        self['bd'] = 0
        self['wrap'] = True
        self['textvariable'] = self.var
        setup_border(self, colors['outlinebox'], colors['focus'])
        self['selectbackground'] = colors['focus']
        self['selectforeground'] = colors['foregroundbox']

[......] (dipotong)

2. karena GUI tkinter kurang cocok untuk aplikasi ini, maka saya membuat GUI sendiri, menggunakan class. supaya lebih modern.
Saya juga menambahkan GUI yang belum ada, seperti: notification, scrollview, dll.


[in-progress]

-- MNA --