Rabu, 04 Januari 2023

Programming Visual dengan Sctrach │Computer Science and Programming Language │ Minggu ke 1

 

CS-50 Website KLIK HERE

Selamat datang!
Kelas ini lebih dari sekadar pemrograman komputer!
Iya, beneran, ho'oh tenan, kelas ini adalah tentang pemecahan masalah dengan cara yang sangat memberdayakan! Anda mungkin akan mengambil pemecahan masalah yang Anda pelajari di sini, kemungkinan besar akan langsung diterapkan pada pekerjaan Anda di luar kursus ini, dan bahkan karier Anda secara keseluruhan!
Namun, itu tidak akan mudah! Anda akan “meminum dari hydran pemadam kebakaran” pengetahuan selama kursus ini. 

Anda akan kagum dengan apa yang dapat Anda capai dalam beberapa minggu mendatang.
Kursus ini jauh lebih tentang Anda memajukan "Anda" dari "di mana Anda hari ini" daripada mencapai standar yang dibayangkan.
Pertimbangan pembukaan yang paling penting dalam kursus ini:

Berikan waktu yang Anda butuhkan untuk belajar melalui kursus ini. Setiap orang belajar secara berbeda. Jika sesuatu tidak berjalan dengan baik di awal, ketahuilah bahwa seiring waktu Anda akan tumbuh dan berkembang dalam keahlian Anda. 

Apa yang Akan Anda pelajari ?

Anda akan belajar minggu ini tentang Scratch, bahasa pemrograman visual.
Kemudian, di minggu-minggu mendatang, Anda akan belajar tentang C. Itu akan terlihat seperti ini: 

Selanjutnya, seiring berjalannya minggu, Anda akan belajar tentang algoritma.
Anda akan belajar tentang memori.
Anda akan belajar tentang kode buggy dan apa yang menyebabkan komputer crash.
Anda akan belajar tentang struktur data seperti tabel hash.
Kemudian, kita akan bertransisi ke bahasa tingkat baru yang lebih tinggi bernama Python. Kode Anda akan terlihat seperti ini:

Kelas ini akan memberi Anda pemahaman yang kuat tentang bagaimana bahasa pemrograman terbaru berkembang dari yang sebelumnya.
Kami juga akan melihat bagaimana kami dapat menggunakan basis data dan kerangka kerja pihak ketiga untuk membuat aplikasi web.
 
Berpikir Komputasi

Pada dasarnya, pemrograman komputer adalah tentang mengambil beberapa masukan dan membuat beberapa keluaran - dengan demikian memecahkan masalah. Apa yang terjadi di antara input dan output, yang bisa kita sebut kotak hitam, adalah fokus dari kursus ini. 

Misalnya, kita mungkin perlu mengecek kehadiran untuk kelas. Kita bisa menggunakan sistem yang disebut unary untuk menghitung, satu jari pada satu waktu. Komputer saat ini menghitung menggunakan sistem yang disebut biner. Dari istilah digit biner itulah kita mendapatkan istilah yang akrab disebut bit. Sedikit adalah nol atau satu.
Komputer hanya berbicara dalam bentuk nol dan satu. Nol mewakili off. Satu mewakili Nol. 
Komputer adalah jutaan, dan mungkin miliaran, transistor yang dihidupkan dan dimatikan.
Jika Anda membayangkan menggunakan bola lampu, satu bola lampu hanya dapat menghitung dari nol hingga satu.
Namun, jika Anda memiliki tiga bola lampu, ada lebih banyak pilihan yang terbuka untuk Anda!

Menggunakan tiga bola lampu, berikut ini bisa mewakili nol:

 Demikian pula, berikut ini akan mewakili satu:
Dengan logika ini, kita dapat mengusulkan bahwa yang berikut ini sama dengan dua:

 Memperluas logika ini lebih jauh, berikut ini mewakili tiga:

 Empat akan muncul sebagai:
 

Faktanya, kami hanya dapat menggunakan tiga bola lampu yang dihitung hingga tujuh!
 

Sebagai heuristik, kita dapat membayangkan bahwa nilai-nilai berikut mewakili setiap kemungkinan tempat dalam digit biner kita:

Komputer menggunakan 'basis-2' untuk menghitung. Hal ini dapat digambarkan sebagai berikut:
 


Oleh karena itu, Anda dapat mengatakan bahwa diperlukan tiga bit (tempat empat, tempat dua, dan tempat satu) untuk mewakili angka setinggi tujuh.
Komputer umumnya menggunakan delapan bit untuk mewakili angka. Misalnya, 00000101 adalah angka 5 dalam biner.
 
Teks

Sama seperti angka adalah pola biner dari satu dan nol, huruf juga diwakili menggunakan satu dan nol!
Karena ada tumpang tindih antara satu dan nol yang mewakili angka dan huruf, standar ASCII dibuat untuk memetakan huruf tertentu ke angka tertentu.
Misalnya, huruf A diputuskan untuk dipetakan ke angka 65.
Jika Anda menerima pesan teks, biner di bawah pesan tersebut mungkin mewakili angka 72, 73, dan 33. Jika dipetakan ke ASCII, pesan Anda akan terlihat seperti berikut:
 

Syukurlah untuk standar seperti ASCII yang memungkinkan kami menyepakati nilai-nilai ini!
Berikut adalah peta nilai ASCII yang diperluas:

 Jika mau, Anda dapat mempelajari lebih lanjut tentang ASCII.
 
Emoji

Seiring berjalannya waktu, semakin banyak cara untuk berkomunikasi melalui teks.
Karena tidak ada cukup digit dalam biner untuk mewakili berbagai karakter yang dapat diwakili oleh manusia, standar Unicode memperluas jumlah bit yang dapat ditransmisikan dan dipahami oleh komputer.
Ada emoji yang mungkin Anda gunakan setiap hari. Berikut ini mungkin terlihat familier bagi Anda: 

Ilmuwan komputer menghadapi tantangan ketika ingin menetapkan berbagai warna kulit untuk setiap emoji agar komunikasi dapat lebih dipersonalisasi. Dalam hal ini, pembuat dan kontributor emoji memutuskan bahwa bit awal akan menjadi struktur emoji itu sendiri, diikuti dengan warna kulit.
Semakin banyak fitur ditambahkan ke standar Unicode untuk mewakili karakter dan emoji lebih lanjut.
Jika mau, Anda dapat mempelajari lebih lanjut tentang Unicode.
Jika mau, Anda dapat mempelajari lebih lanjut tentang emoji.
 
RGB

Merah, hijau, dan biru (disebut RGB) adalah kombinasi dari tiga angka.

Mengambil 72, 73, dan 33 kami yang sebelumnya digunakan, yang mengatakan HI! melalui teks, akan ditafsirkan oleh pembaca gambar sebagai warna kuning terang. Nilai merah adalah 72, nilai hijau adalah 73, dan biru adalah 33.
 
Gambar, Video dan Suara

Gambar hanyalah kumpulan nilai RGB.
Video adalah urutan dari banyak gambar yang disimpan bersama, seperti flipbook.
Musik dapat direpresentasikan melalui data MIDI.
 
Algoritma

Pemecahan masalah adalah inti dari ilmu komputer dan pemrograman komputer.
Bayangkan masalah mendasar mencoba menemukan satu nama di buku telepon.
Bagaimana Anda melakukannya?
Salah satu pendekatannya bisa dengan hanya membaca dari halaman satu ke halaman berikutnya hingga mencapai halaman terakhir.
Pendekatan lain bisa dengan mencari dua halaman sekaligus.
Pendekatan terakhir dan mungkin lebih baik adalah pergi ke tengah buku telepon dan bertanya, "Apakah nama yang saya cari di kiri atau di kanan?" Kemudian, ulangi proses ini, potong masalahnya menjadi setengah dan setengah.
Masing-masing pendekatan ini bisa disebut algoritma. Kecepatan masing-masing algoritma ini dapat digambarkan sebagai berikut yang disebut notasi O-besar:
 
 
Perhatikan bahwa algoritme pertama, disorot dengan warna merah, memiliki O besar n karena jika ada 100 nama di buku telepon, diperlukan hingga 100 kali percobaan untuk menemukan nama yang benar. Algoritme kedua, di mana dua halaman dicari sekaligus, memiliki O besar 'n/2' karena kami menelusuri halaman dua kali lebih cepat. Algoritme terakhir memiliki O besar dari log2n karena menggandakan masalah hanya akan menghasilkan satu langkah lagi untuk menyelesaikan masalah.
 
Pseudocode dan Blok Bangunan Dasar Pemrograman

Kemampuan untuk membuat kode semu adalah pusat keberhasilan seseorang di kelas ini dan dalam pemrograman komputer.
Pseudocode adalah versi kode Anda yang dapat dibaca manusia. Sebagai contoh, mengingat algoritma ketiga di atas, kita dapat membuat pseudocode sebagai berikut: 
 
 
Pseudocoding adalah keterampilan yang sangat penting setidaknya karena dua alasan. Pertama, ketika Anda membuat pseudocode sebelum Anda membuat kode formal, ini memungkinkan Anda memikirkan logika masalah Anda terlebih dahulu. Kedua, ketika Anda mem-pseudocode, nanti Anda dapat memberikan informasi ini kepada orang lain yang ingin memahami keputusan pengkodean Anda dan cara kerja kode Anda.
Perhatikan bahwa bahasa dalam kode semu kita memiliki beberapa fitur unik. 
Pertama, beberapa baris ini dimulai dengan kata kerja seperti ambil (1)Pick up Phonebook, buka (2) Open to middle of phonebook, lihat (3) Look at page. Nanti, kita akan memanggil fungsi-fungsi ini.
Kedua, perhatikan bahwa beberapa baris menyertakan pernyataan seperti if or else if. Ini disebut kondisional. (4) If person is on page (5) Call Person
Ketiga, perhatikan bagaimana ada ungkapan yang dapat dinyatakan sebagai benar atau salah, seperti “orang di awal buku”. Kami menyebutnya ekspresi boolean. (6) Else If Person is earlier in book
Terakhir, perhatikan bagaimana pernyataan seperti "kembali ke baris 3". Kami menyebutnya loop ini. (8) (9) Go back to line 3.
Dalam konteks Scratch, yang dibahas di bawah ini, kita akan menggunakan masing-masing blok bangunan dasar pemrograman di atas.
 
SCRATCH

Scratch adalah bahasa pemrograman visual yang dikembangkan oleh MIT.
Scratch menggunakan blok bangunan pengkodean secara esensi yang sama yang telah kita bahas sebelumnya dalam kuliah ini.
Scatch adalah cara yang bagus untuk masuk ke pemrograman komputer karena memungkinkan Anda untuk bermain dengan blok penyusun ini secara visual, tidak harus khawatir tentang sintaks kurung kurawal, titik koma, tanda kurung, dan sejenisnya.
Scatch IDE (lingkungan pengembangan terintegrasi) terlihat seperti berikut: