You are on page 1of 46

COM-60013

PENGANTAR ILMU KOMPUTER

COMPUTATIONAL
THINKING
Dr. Eng., Herman Tolle, ST., MT.
OUTLINE
• COMPUTATIONAL
THINKING
• DECOMPOSITION
• ABSTRACTION
• ALGORITHMS
• DATA &
INFORMATION
• PATTERN
RECOGNITION
COMPUTATIONAL
THINKING
Computational thinking will be a fundamental
skill used by everyone in the world by the middle
of the 21st Century. Like reading, writing &
arithmatic. (Wing, 2006)

Jeannette M. Wing - Carnegie Mellon University

BERPIKIR SECARA KOMPUTASIONAL


What is COMPUTATIONAL THINKING?

Computational thinking is the process of looking at a complex problem,


attempting to understand it and thinking about the best way to solve it.

Adalah proses bagaimana melihat persoalan yang kompleks, mencoba


memahami persoalan, dan berpikir untuk menyelesaikan persoalan tsb
dengan pendekatan komputasional
What is Computational Thinking?

“Computational Thinking is the thought processes involved


in formulating problems and their solutions so that the
solutions are represented in a form that can be effectively
carried out by an information-processing agent.”

• Cuny, Snyder, Wing (http://www.cs.cmu.edu/~CompThink/)


So what is Computational Thinking?
• “Well it is a collection of diverse skills to do with problem solving that result from
studying the nature of computation. It includes some obviously important skills
that most subjects help develop, like creativity, ability to explain and team work.
It also consists of some very specific problem solving skills such as the ability to
think logically, algorithmically and recursively. Computer Science is unique in the
way it brings all these diverse skills together.”
• http://www.cs4fn.org/computationalthinking
The four cornerstones of computational
thinking
There are four key techniques (cornerstones) to computational
thinking:
• decomposition - breaking down a complex problem or system into
smaller, more manageable parts
• pattern recognition – looking for similarities among and within
problems
• abstraction – focusing on the important information only, ignoring
irrelevant detail
• algorithms - developing a step-by-step solution to the problem, or
the rules to follow to solve the problem
DEKOMPOSISI
Solusi dengan cara memecahkan
masalah besar kedalam kelompok-
kelompok kecil

KENALI POLA
• Temukan pola, karakteristik
• Buat abstraksi dan model

DESAIN ALGORITMA
• Membuat solusi dalam urutan
langkah yang berurut
ABSTRAKSI
• Fokus pada informasi yang
penting saja, dan mengabaikan
detail lain yang tidak penting
PROBLEM to SOLUTION
DECOMPOSITION

PATTERN RECOGNITION

ABSTRACTION --> MODEL

ALGORITHM --> CODE

COMPUTER SOLUTION
The breaking down of a system
into smaller parts that are easier to
understand, program and
maintain.

decomposition
DEKOMPOSISI
Persoalan besar dipecah
dalam bagian-bagian yang
lebih kecil agar mudah untuk
dipecahkan
Contoh Dekomposisi
• Lokasi seseorang di bumi direspresentasikan dalam Latitude dan
Longitude
• In mathematics, we can decompose a number such as 256.37 as
follows: 2*102+5*101+6*100+3*10-1+7*10-2
• In science we decompose a projectile’s velocity into its components
along the x- and y-axis
Contoh Komposisi & Dekomposisi
Kasus: Perampokan Toko Permata

Telah terjadi kasus


perampokan toko permata.
Penyelesaikan kasus ini akan
menjadi sangat kompleks
jika ada banyak hal yang
harus diperhatikan.
Bagaimana langkah yang
dilakukan kepolisian untuk
memecahkan masalah
tersebut?
Dekomposisi: Kasus Perampokan
• Polisi harus menyederhanakan kasus ini dengan menggali jawaban atas
sejumlah problem (pertanyaan) berurut sebagai berikut:
• Kejahatan apa yang telah terjadi? (what crime was committed)
• Kapan kejahatan tersebut terjadi? (when the crime was committed)
• Dimana kejadiannya? (where the crime was committed)
• Apakah ada bukti, apa saja buktinya? (what evidence there is)
• Apakah ada saksi? (if there were any witnesses)
• Apakah ada kasus kejahatan yang sama dalam waktu dekat? (if there
have recently been any similar crimes)
• The complex problem of the committed crime has now been broken down
into simpler problems that can be examined individually, in detail.
Latihan Membuat Dekomposisi
1. Menyelesaikan Kuliah dalam 4 Tahun
2. Menguasai Pemrograman Dasar
3. Membuat Program Pertama “Hello World” dengan Jawa
4. Membuat jadwal aktifitas dalam 1 minggu

Do one of these tasks in class!


Once we have decomposed a complex
problem, it helps to examine the small
problems for similarities or ‘patterns’.
These patterns can help us to solve
complex problems more efficiently.

Pattern recognition
Apa itu PATTERN? (POLA)
• Bayangkan jika kita ingin menggambar beberapa jenis kucing
• Kucing memiliki karakteristik yang sama. Setiap kucing memiliki mata, ekor dan
bulu. Kucing juga suka makan ikan dan bersuara “meong”
• Dalam computational thinking, karakteristik tersebut dikenal sebagai
PATTERN. Sekali kita mengetahui deskripsi seekor kucing, akan mudah untuk
mendeskripsikan kucing lainnya dg mengikuti pola tersebut.
Sekali kita mengenali pattern dalam
persoalan, kita menggunakan abstraksi
untuk mengambil karakteristik umum dan
mengabaikan detail lain yg tidak
dibutuhkan dalam penyelesaian masalah
kita.
ABSTRAKSI
ABSTRAKSI

• Abstraksi memungkinkan kita untuk membuat ide umum (general


idea) dari persoalan dan bagaimana penyelesaiannya
• Abstraksi mengabaikan detail dan hanya fokus pada karakteristik
(pola) yang penting yang dapat membantu menyelesaikan
persoalan.
• Abstraksi membantu kita membuat MODEL
• Model adalah ide umum dari problem yang kita coba selesaikan
• Dari MODEL kita membuat ALGORITMA
Contoh Abstraksi
• What is this an abstraction of?
• For whom (aka. stakeholder) is it designed?
• What are its properties?

Slide 24
Alternative view…

■ What is this an abstraction of?


■ Who is the stakeholder?
■ What are its properties?

Slide 25 (C) Dennis Kafura 2017


Information Abstraction
•Maps are physical abstractions of physical things
•We can also form information abstractions of physical
things
•An information abstraction is
•A set of properties relevant to a specific stakeholder
•Each property
• Is named
• Is objective
• Recorded in quantitative terms (numbers, characters, codes,
categories)
Slide 27 (C) Dennis Kafura 2017
Types
• The value of a property must be of a known
“type”
• Computers are built to work with these types

Slide 28 (C) Dennis Kafura 2017


Units • Types do not have units (yards, years, pounds,
acres, dollars, etc.)
• The programmer and user must communicate the
units outside of the program
• This can be problematic

Mars Climate Orbiter


Crashed into Mars
September 23, 1999
due to a units conflict
In the use of the software

Slide 29 (C) Dennis Kafura 2017


Representing Abstractions
name stakeholder
description

Movie On-Line Customer


property Title Genre
type (string) (string)

“Gone
instances With the “Drama”
Wind”

values

Slide 30 (C) Dennis Kafura 2017


Example Abstraction of a “movie” for an on-line customer stakeholder.

Movie On-Line Customer


Title Year Length Genre Format Price
(string) (int) (int) (string) (string) (float)
“Moneyball” 2011 133 “Sports” “Blueray” 15.00

“Gone With
1939 219 “Drama” “DVD” 10.95
the Wind”
“Jurassic
1993 127 “SciFi” “DVD” 12.50
Park”
“Pirates of
the 2003 143 “Comedy” “Blueray” 17.50
Caribbean”
“Documentary “Streamin
“Sicko” 2007 116 11.75
” g”

The abstraction has six (6) properties (colums).


There are five (5) instances (row)

Slide 31 (C) Dennis Kafura 2017


CONTOH KASUS
Beberapa contoh penelitian bidang Computer Science yang menerapkan
pendekatan Computational Thinking
KASUS: FACE RECOGNITION
FEATURE EXTRACTION adalah proses ABSTRAKSI, mengambil karakteristik yang penting saja,
untuk kemudian ditemukan pola untuk mengenali wajah seseorang
KASUS: EMOTION RECOGNITION
Emotional recognition menggunakan feature data yang lebih banyak dari face
recognition tetapi masih fokus pada area tertentu: alis, mata, hidung dan bibir
Video from Google

Solving Problems at Google Using Computational Thinking


https://www.youtube.com/watch?time_continue=4&v=SVVB5RQfYxk
TUGAS-03
• Artikel essay tentang contoh penerapan Computational Thinking
dalam menyelesaikan persoalan nyata

• Problem🡪Composition🡪Pattern🡪Abstraction🡪Algorithm
NEXT
Computational Thinking
• Thinking Recursively (Berpikir secara Rekursif)
• Thinking Abstractly (Berpikir secara Abstraktif)
• Thinking Ahead (caching, pre-fetching...)
• Thinking Procedurally (Berfikir secara Prosedural)
• Thinking Logically (Berpikir secara Logika)
• Thinking Concurrently (Berpikir secara Konkuren)
So what is Computational Thinking?
Computational Thinking is a problem-solving process that includes the
following characteristics:
• Analyzing and logically organizing data
• Data modeling, data abstractions, and simulations
• Formulating problems such that computers may assist
• Identifying, testing, and implementing possible solutions
• Automating solutions via algorithmic thinking
• Generalizing and applying this process to other problems.

• http://en.wikipedia.org/wiki/Computational_thinking
COMPUTATIONAL THINKING
•Abstraction
•Data & Information Systems
•Algorithms and Programming
•Digital Systems
•Implications and Impacts
•Human Interaction
ANY QUESTIONS?

https://www.youtube.com/watch?v=AkzdvKhbWLQ

You might also like