Difference between revisions of "Elvin"
(→Pertemuan 3 (18 september 2019)) |
(→Pertemuan 3 (18 september 2019)) |
||
Line 96: | Line 96: | ||
'''1.a. Loop''' | '''1.a. Loop''' | ||
− | Algoritma | + | '''Algoritma''' |
* Definisikan nilai a = 0 dan b = 1 (a dan b berturut-turut akan menjadi suku ke-0 dan ke-1 serta menjadi dasar untuk penjumlahan fibonacci) | * Definisikan nilai a = 0 dan b = 1 (a dan b berturut-turut akan menjadi suku ke-0 dan ke-1 serta menjadi dasar untuk penjumlahan fibonacci) | ||
* Input suku ke - n Fibonacci yang diinginkan | * Input suku ke - n Fibonacci yang diinginkan | ||
Line 103: | Line 103: | ||
* jika n lebih dari 1 maka c = a + b, nilai a akan diubah menjadi b, nilai b akan diubah menjadi c. Proses akan di loop hingga mencapai nilai n yang diinginkan | * jika n lebih dari 1 maka c = a + b, nilai a akan diubah menjadi b, nilai b akan diubah menjadi c. Proses akan di loop hingga mencapai nilai n yang diinginkan | ||
− | Flowchart | + | '''Flowchart''' |
− | [[File:Flowchart Fibonacci Elvin.png| | + | [[File:Flowchart Fibonacci Elvin.png|600px]] |
− | Program Python | + | '''Program Python''' |
[[File:Loop Fibonacci Elvin.JPG]][[File:Loop Fibonacci Elvin Console.JPG]] | [[File:Loop Fibonacci Elvin.JPG]][[File:Loop Fibonacci Elvin Console.JPG]] | ||
+ | |||
'''1.b. Function''' | '''1.b. Function''' | ||
− | Algoritma | + | '''Algoritma''' |
− | * | + | * Definisikan fungsi f(n) = f(n-1) + f(n-2) |
− | * | + | * Nilai n hanya berlaku untuk n >= 0, jika n < 0 maka print "error" |
− | * | + | * Jika n = 0 atau n = 1 maka print nilai n tersebut |
− | * | + | * Jika n > 1 maka input nilai tersebut ke fungsi f(n) |
− | |||
− | Flowchart | + | '''Flowchart''' |
− | [[File: | + | [[File:Flowchart Fibonacci Function Elvin.png|600px]] |
− | Program Python | + | '''Program Python''' |
− | [[File: | + | [[File:Function Fibonacci Elvin.JPG]][[File:Function Fibonacci Elvin Console.JPG]] |
Revision as of 23:52, 20 September 2019
"Everything will be 大丈夫"
Profile | ||
---|---|---|
Nama | Elvin | |
NPM | 1706036381 | |
Jurusan | Teknik Mesin |
Pertemuan 1 (4 September 2019)
1. Pengenalan Kelas Metode Numerik
Perkenalkan nama saya Elvin, saya adalah seorang mahasiswa teknik mesin di Universitas Indonesia yang sedang mengambil mata kuliah Metode Numerik yang diajarkan Bapak Dr. Ir. Ahmad Indra Siswantara dan Bapak Dr. Eng. Radon Dhelika. Pada kelas ini, mahasiswa diberi pertanyaan "Mengapa harus mempelajari kalkulus?" oleh Bapak DAI (Dr. Ahmad Indra). Kalkulus merupakan ilmu dasar yang banyak digunakan pada banyak bidang ilmu lainnya, serta juga digunakan untuk membuat model matematika untuk pendekatan suatu kasus nyata serta menganalisa dan proses agar dapat mencapai penyelesaian. Dari kelas Metode Numerik ini sendiri, kami sebagai mahasiswa teknik mesin diharapkan dapat menyelesaikan masalah model matematika secara manual ataupun melalui pembelajaran bahasa pemrograman seperti bahasa C++, Python, Javascript, dan lainnya. Pada kelas Metode Numerik ini, pembelajaran kami akan berfokus pada bahasa pemrograman python yang sudah banyak digunakan secara internasional dan juga dipelajari oleh perguruan tinggi luar negeri seperti Massachusets Institute of Technology dan lainnya.
2. Bahasa Pemrograman Python
Python adalah sebuah bahasa pemrograman tingkat tinggi yang biasa digunakan oleh programmer untuk menulis rangkaian kode logik yang kemudian dapat digunakan sebagai sebuah program yang bekerja sesuai dengan keinginan atau tujuan programmer itu sendiri.
3. Tugas
Tugas yang diberikan pada 4 September 2019 adalah membuat algoritma dan program di Python untuk menyelesaikan persamaan berikut.
T(x) = (x^2 - 1) / (x - 1) (1)
secara manual, persamaan (1) dapat diselesaikan dengan mudah dengan penggunaan limit ataupun l'hopital. Akan tetapi, dikarenakan tugas ini diwajibkan untuk menggunakan Phyton, saya sendiri perlu mempelajari phyton secara keseluruhan terlebih dahulu. Dari hal sederhana seperti print ("Hello World") hingga bagaimana mengoperasikan sebuah kalkulator dengan variabel, string, operator aritmatika, conditionals (if, else, dan elif).
Untuk menyelesaikan persamaan (1), saya merancang algoritma yang diperlukan terlebih dahulu seperti pada gambar berikut.
Proses dimulai dari mendefinisikan masalah terlebih dahulu yaitu persamaan (1). Setelah itu nilai x dimasukkan ke persamaan (1) untuk mendapatkan hasil. Berdasarkan hasil yang didapatkan akan terdapat 2 pilihan. Jika hasil terdefinisi (tidak 0/0), maka perhitungan dilanjutkan seperti biasa. Akan tetapi, jika hasil tidak terdefinisi (0/0), maka perhitungan dilanjutkan dengan menggunakan limit x mendekati 1. Setelah itu, proses akan berakhir dengan mendapatkan nilai akhir dari persamaan.
Berdasarkan algoritma yang dirancang, saya menggunakan language interpreter Spyder untuk membuat rangkaian kode sebagai berikut.
Pada kode ini saya mendefinisikan persamaan (1) sebagai fungsi h(x)=f(x)/g(x) dimana fungsi f(x)=x^2-1 dan fungsi g(x)=x-1. Kemudian, mendefinisikan nilai x yang ingin dimasukkan ke persamaan. Berdasarkan nilai x tersebut, jika terjadi pembagian dengan 0 (tidak terdefinisikan), maka penyelesaian menggunakan limit yang diimport dari library sympy. berdasarkan gambar diatas yang menggunakan nilai x = 1, didapatkan hasil berikut yang terprint pada console spyder.
Sebaliknya, jika tidak terjadi pembagian dengan 0 (terdefinisikan), maka perhitungan dilanjutkan dengan biasa seperti pada gambar kode dan hasil pada console yang dibawah yang menggunakan nilai x = 5 dan mendapatkan hasil 6.
Pertemuan 2 (11 September 2019)
1. Wawasan oleh Pak DAI
Pertemuan kelas Metode Numerik pada minggu ke-2 melanjutkan pembelajaran dalam bahasa pemrograman python. Sebelum memasuki materi tersebut, Pak DAI memberikan beberapa wawasan yang penting dan menarik yang berkaitan mengenai pembelajaran metode numerik python dan pemrograman secara umum dari sudut luar pandang mahasiswa. Seperti yang kita tahu, Metode Numerik dapat digunakan untuk menyelesaikan masalah model matematika apapun dengan pendekatan yang menyerupai kondisi nyata. Hal ini dapat dibantu melalui penggunaan pemrograman contohnya python. Selain itu, manfaat dari pemrograman tidak hanya terbatas pada aplikasi metode numerik tetapi juga banyak digunakan untuk menghasilkan berbagai aplikasi/perangkat lunak yang banyak digunakan oleh manusia. Aplikasi ataupun perangkat lunak ini berisi berbagai algoritma dan rangkaian kode yang diisi oleh programmer yang membuatnya. Contoh secara umum adalah permainan catur digital yang banyak dimainkan memiliki puluhan ribu langkah yang diprogram untuk mengalahkan pemain. Di kasus ini, semakin banyak pemrograman ataupun langkah yang dibuat oleh programmer untuk programnya, maka semakin banyak hal atau langkah yang dapat dilakukan program tersebut hingga dapat disebut sebagai Artificial Intelligence (AI). Pak DAI sendiri mengatakan bahwa AI merupakan serangkaian logika yang dibuat oleh manusia yang mempunyai peran sebagai Natural Intelligence. Terlebih dari itu, Pak DAI juga mengatakan bahwa kita perlu memahami batasan yang dimiliki masing-masing sehingga kita dapat memanfaatkan perkembangan teknologi secara pesat seperti dari revolusi industri 1.0 hingga 4.0 sekarang. Dan kemudian, kita dapat memanfaatkan teknologi tersebut agar dapat ter-empower sehingga pada revolusi industri 5.0 berikutnya.
2. Python: List and Tuples
Materi Python yang diberi oleh Pak Radon pada pertemuan ini berfokus pada pengenalan python dari dasar. Selain itu, kami dianjurkan dari Pak Radon dan Pak DAI untuk aktif dan intensif untuk mempelajari phyton diluar jam mata kuliah. Dengan mencari sumber yang sesuai dengan cara pembelajaran masing-masing dari buku, video, ataupun website pembelajaran. Salah satu website yang dianjurkan adalah introtopython.org dimana web ini memiliki materi python yang sangat lengkap mengenai pemakaian dasar hingga kompleks. Materi hari ini difokuskan agar mahasiswa minimal sudah mengalami pemrograman python dengan memrogram print ("Hello World"). Setelah itu, materi dilanjutkan ke pembelajaran Tuples dan List.
Tuples Tuples adalah struktur data yang digunakan untuk mengelompokkan data yang terpisahkan oleh sebuah tanda koma (','). data ini kemudian dapat di ditetapkan sebagai suatu kode contohnya pada line 2 dan 3 gambar interpreter dibawah. Dengan demikian kita dapat me-print data spesifik yang dibutuhkan seperti kode yang terdapat dibawah beserta hasil yang diconsole.
Lists
Lists adalah struktur data yang digunakan untuk mengelompokkan data yang dapat diubah posisi ataupun nilainya. setiap data (item) yang terdapat pada lists ini juga memiliki pasangan angka yang terhitung dari 0 hingga seterusnya. Contoh-contoh pemakaian list terdapat pada gambar interpreter dan console berikut.
Tuples dan Lists ini mungkin terlihat menyerupai satu sama lain. Akan tetapi, perbedaan utama antara dua struktur data ini adalah data yang terdapat pada list dapat diubah (mutable) sedangkan data yang terdapat pada tuples tidak dapat diubah. selain itu, tuples menggunakan tanda kurung ( ) sedangkan lists menggunakan tanda kurung kotak [ ]
Pertemuan 3 (18 september 2019)
1. Kuis
Pada pertemuan kelas Metode Numerik 18 September 2019, Pak DAI dan Pak Radon memberikan kuis untuk menguji pemahaman mahasiswa dalam bahasa pemrograman Python.
Soal yang diberikan adalah sebagai berikut
1, 1, 2, 3, 5, 8, 13, 21, ...., n-1, n Dari deret Fibonacci diatas, buatlah algoritma, flowchart, serta Program Python untuk menghasilkan angka dari suku yang diinginkan
Soal ini dapat diselesaikan dengan menggunakan loop ataupun function pada python
1.a. Loop
Algoritma
- Definisikan nilai a = 0 dan b = 1 (a dan b berturut-turut akan menjadi suku ke-0 dan ke-1 serta menjadi dasar untuk penjumlahan fibonacci)
- Input suku ke - n Fibonacci yang diinginkan
- jika n=0 maka hasil adalah a
- jika n=1 maka hasil adalah b
- jika n lebih dari 1 maka c = a + b, nilai a akan diubah menjadi b, nilai b akan diubah menjadi c. Proses akan di loop hingga mencapai nilai n yang diinginkan
Flowchart
Program Python
1.b. Function
Algoritma
- Definisikan fungsi f(n) = f(n-1) + f(n-2)
- Nilai n hanya berlaku untuk n >= 0, jika n < 0 maka print "error"
- Jika n = 0 atau n = 1 maka print nilai n tersebut
- Jika n > 1 maka input nilai tersebut ke fungsi f(n)
Flowchart
Program Python
2. Tugas
Selain kuis yang diberikan, Pak DAI dan Pak Radon mengelompokkan mahasiswa dengan satu sama lain agar proses pembelajaran lebih baik. Setelah itu, tugas untuk menyelesaikan soal eliminasi Gauss diberikan pada setiap kelompok untuk diselesaikan.