Lewati ke konten utama

Bagian 1.6 Sage

Sage adalah sistem yang andal untuk mempelajari dan menjelajahi berbagai bidang matematika. Dalam buku teks ini, Anda akan mempelajari beragam struktur aljabar, seperti grup, gelanggang, dan lapangan. Sage menerapkan banyak fitur objek-objek ini dengan sangat baik, sebagaimana akan kita lihat dalam bab-bab selanjutnya. Namun, di sini, dalam bab pertama ini, kita akan memusatkan perhatian pada beberapa cara umum untuk memperoleh manfaat sebesar-besarnya dari bekerja dengan Sage.
Anda dapat menggunakan Sage dengan beberapa cara berbeda. Sage dapat digunakan sebagai program baris perintah apabila dipasang di komputer Anda sendiri. Sage juga dapat digunakan sebagai aplikasi web seperti SageMathCloud. Uraian kami mengasumsikan bahwa Anda membaca bagian ini sebagai lembar kerja dalam Sage Notebook (antarmuka peramban web), atau sebagai bagian dari keseluruhan buku yang disajikan dalam bentuk halaman web, dan Anda menggunakan Sage Cell Server melalui halaman-halaman tersebut. Setelah beberapa bab pertama, penjelasannya seharusnya berlaku sama baiknya untuk sarana apa pun yang Anda gunakan guna menjalankan perintah Sage.

Subbagian 1.6.1 Menjalankan Perintah Sage

Sebagian besar interaksi Anda dilakukan dengan mengetikkan perintah ke dalam sel komputasi. Jika Anda membaca bagian ini dalam Sage Notebook atau versi halaman web buku ini, Anda akan melihat sel komputasi tepat di bawah paragraf ini. Klik satu kali di dalam sel komputasi; jika Anda berada dalam Sage Notebook, sel tersebut akan diberi bingkai yang lebih mencolok, dengan kursor berkedip di dalamnya, serta tautan kecil “evaluate” di bawahnya.
Pada posisi kursor, ketik 2+2, lalu klik tautan evaluate. Apakah 4 muncul di bawah sel? Jika demikian, Anda telah berhasil mengirimkan perintah untuk dievaluasi oleh Sage dan menerima kembali jawaban yang benar.
Berikut ini sel komputasi lainnya. Cobalah mengevaluasi perintah factorial(300) di sini.
Hmmmm. Itu bilangan bulat yang sangat besar! Jika Anda melihat garis miring di akhir setiap baris, artinya hasil tersebut berlanjut ke baris berikutnya, karena keseluruhan hasil terdiri atas 615 digit.
Untuk membuat sel komputasi baru dalam Sage Notebook (dan hanya di sana), arahkan tetikus tepat di atas sel komputasi lain, atau tepat di bawah keluaran suatu sel komputasi. Ketika Anda melihat bilah biru tipis yang melintang selebar lembar kerja, klik bilah itu untuk membuka sel komputasi baru yang siap menerima masukan. Perhatikan bahwa lembar kerja akan mengingat setiap perhitungan yang Anda lakukan, dalam urutan pelaksanaannya, tanpa memandang lokasi sel, jadi sebaiknya tetaplah teratur dan tambahkan sel baru di bagian bawah.
Cobalah menempatkan kursor tepat di bawah nilai \(300!\) yang luar biasa besar tadi. Klik bilah biru dan cobalah perhitungan faktorial lain dalam sel komputasi baru.
Setiap sel komputasi hanya akan menampilkan keluaran dari perintah terakhir dalam sel tersebut. Cobalah memperkirakan keluaran berikut sebelum mengevaluasi sel.
Kode Sage (cadangan statis)
a = 10
b = 6
b = b - 10
a = a + 20
a
Keluaran referensi (cadangan statis)
30
Sel komputasi berikut tidak akan mencetak apa pun karena perintah tunggalnya tidak menghasilkan keluaran. Namun, perintah itu akan berdampak, seperti dapat Anda lihat ketika menjalankan sel sesudahnya. Perhatikan bahwa sel ini menggunakan nilai b dari atas. Jalankan sel komputasi ini satu kali. Tepat satu kali. Bahkan jika sel itu tampak tidak melakukan apa-apa. Jika Anda menjalankan sel dua kali, kartu kredit Anda mungkin ditagih dua kali.
Kode Sage (cadangan statis)
b = b + 50
Sekarang jalankan sel ini, yang akan menghasilkan keluaran.
Kode Sage (cadangan statis)
b + 20
Keluaran referensi (cadangan statis)
66
Jadi, b mula-mula terbentuk dengan nilai 6. Tepat sesudahnya kita mengurangkan \(10\text{.}\) Kemudian sel berikutnya menambahkan 50. Ini mengasumsikan bahwa Anda menjalankan sel tersebut tepat satu kali! Dalam sel terakhir kita membentuk b+20 (tetapi tidak menyimpannya) dan nilai inilah (\(66\)) yang menjadi keluaran, sedangkan b tetap bernilai \(46\text{.}\)
Anda dapat menggabungkan beberapa perintah dalam satu baris dengan tanda titik koma. Ini merupakan cara yang baik untuk memperoleh beberapa keluaran dari satu sel komputasi. Sintaks untuk membentuk matriks semestinya cukup jelas ketika Anda melihat keluarannya, tetapi jika belum jelas, hal itu belum terlalu penting untuk dipahami sekarang.
Kode Sage (cadangan statis)
A = matrix([[3, 1], [5,2]]); A
Keluaran referensi (cadangan statis)
[3 1]
[5 2]
Kode Sage (cadangan statis)
print(A); print(); print(A.inverse())
Keluaran referensi (cadangan statis)
[3 1]
[5 2]
<BLANKLINE>
[ 2 -1]
[-5  3]

Subbagian 1.6.2 Bantuan Langsung

Beberapa perintah dalam Sage merupakan “fungsi,” contohnya factorial() di atas. Perintah lainnya merupakan “metode” suatu objek dan menyerupai karakteristik objek tersebut; contohnya .inverse() sebagai metode suatu matriks. Setelah mengetahui cara membuat suatu objek (misalnya matriks), Anda dapat dengan mudah melihat semua metode yang tersedia. Tulis nama objek, tambahkan tanda titik (“dot”), lalu tekan tombol TAB. Jika A telah Anda definisikan di atas, sel komputasi di bawah ini sudah siap digunakan; klik di dalamnya, lalu tekan TAB (bukan “evaluate”!). Anda akan memperoleh daftar panjang metode yang mungkin digunakan.
Kode Sage (cadangan statis)
A.
Untuk memperoleh bantuan mengenai cara menggunakan suatu metode pada objek, tulis nama metode setelah tanda titik (tanpa tanda kurung), lalu tambahkan tanda tanya dan tekan TAB. (Tekan tombol escape “ESC” untuk menghilangkan daftar, atau klik teks suatu metode.)
Kode Sage (cadangan statis)
A.inverse?
Dengan satu tanda tanya tambahan dan menekan TAB, Anda dapat melihat instruksi komputer sebenarnya yang diprogram ke dalam Sage agar metode tersebut bekerja, setelah menggulir melewati dokumentasi yang dibatasi oleh tiga tanda petik ("""):
Kode Sage (cadangan statis)
A.inverse??
Ada gunanya melihat apa yang dilakukan Sage ketika terjadi kesalahan. Pada awalnya Anda mungkin akan sering melihat pesan seperti ini, dan mula-mula pesan tersebut mungkin agak menakutkan. Namun, seiring waktu, Anda akan belajar menggunakannya secara efektif dan juga menjadi lebih mahir menggunakan Sage sehingga makin jarang melihatnya. Jalankan sel komputasi di bawah ini; sel tersebut meminta invers dari suatu matriks yang tidak memiliki invers. Kemudian baca kembali penjelasannya.
Kode Sage (cadangan statis)
B = matrix([[2, 20], [5, 50]])
B.inverse()
Keluaran referensi (cadangan statis)
Traceback (most recent call last):
...
ZeroDivisionError: matrix must be nonsingular
Klik tepat di sebelah kiri pesan kesalahan untuk membentangkannya secara penuh (klik berikutnya menyembunyikannya seluruhnya, dan klik ketiga mengembalikan bentuk ringkasnya). Bacalah bagian bawah pesan kesalahan terlebih dahulu; bagian itu memberikan penjelasan terbaik. Di sini ZeroDivisionError tidak sepenuhnya tepat, tetapi cukup mendekati. Matriks tersebut tidak dapat dibalik, serupa dengan kenyataan bahwa kita tidak dapat membagi skalar dengan nol. Bagian pesan lainnya dimulai dari atas, menunjukkan tempat kesalahan pertama kali terjadi dalam kode Anda, kemudian berbagai tempat pemanggilan fungsi perantara, hingga bagian Sage tempat masalah tersebut benar-benar terjadi. Kadang-kadang informasi ini memberi petunjuk, kadang-kadang informasi itu sama sekali tidak dapat dipahami. Jadi, jangan biarkan pesan tersebut menakutkan Anda jika tampak misterius, tetapi ingatlah untuk selalu membaca baris terakhir terlebih dahulu, kemudian kembali dan bacalah beberapa baris pertama guna mencari sesuatu yang menyerupai kode Anda.

Subbagian 1.6.3 Memberi Anotasi pada Pekerjaan Anda

Anda dapat dengan mudah memberi komentar pada pekerjaan saat menggunakan Sage Notebook. (Uraian berikut hanya berlaku jika Anda membaca bagian ini dalam Sage Notebook. Jika tidak, Anda mungkin dapat membuka lembar kerja dalam Sage Notebook dan bereksperimen di sana.) Anda dapat membuka pengolah kata kecil dengan mengarahkan tetikus hingga bilah biru tipis kembali muncul, tetapi kali ini tahan tombol SHIFT ketika mengeklik. Bereksperimenlah dengan jenis huruf, warna, daftar berpoin, dan sebagainya, lalu klik tombol “Save changes” untuk keluar. Klik dua kali teks Anda jika kelak perlu kembali untuk menyuntingnya.
Buka kembali pengolah kata untuk membuat potongan teks baru (mungkin di dekat sel komputasi kosong tepat di bawah ini). Ketik seluruh teks berikut persis seperti ditampilkan,
Pythagorean Theorem: $c^2=a^2+b^2$
lalu simpan perubahan Anda. Simbol-simbol di antara tanda dolar ditulis menurut bahasa tata huruf matematis yang dikenal sebagai — telusurilah internet untuk mempelajari lebih lanjut alat yang sangat populer ini. (Setidaknya, alat ini amat populer di kalangan matematikawan dan ilmuwan fisik.)

Subbagian 1.6.4 Senarai

Sebagian besar interaksi kita dengan himpunan akan dilakukan melalui senarai Sage. Senarai ini sebenarnya bukan himpunan — senarai mengizinkan duplikasi, dan urutan berpengaruh. Namun, senarai begitu menyerupai himpunan, serta begitu mudah dan andal digunakan sehingga akan kita gunakan secara teratur. Untuk berlatih, kita akan menggunakan senarai rekaan yang menyenangkan; tanda petik berarti bahwa butir-butirnya hanya berupa teks, tanpa makna matematis khusus. Jalankan sel-sel komputasi ini ketika kita membahasnya.
Kode Sage (cadangan statis)
zoo = ['snake', 'parrot', 'elephant', 'baboon', 'beetle']
zoo
Keluaran referensi (cadangan statis)
['snake', 'parrot', 'elephant', 'baboon', 'beetle']
Jadi, tanda kurung siku menentukan batas senarai, tanda koma memisahkan butir, dan kita dapat memberi nama pada senarai tersebut. Untuk bekerja dengan satu elemen saja dari senarai, kita menggunakan nama dan sepasang tanda kurung siku yang berisi indeks. Perhatikan bahwa indeks senarai mulai menghitung dari nol. Hal ini mula-mula akan terasa aneh, tetapi kelak terasa sangat wajar.
Kode Sage (cadangan statis)
zoo[2]
Keluaran referensi (cadangan statis)
'elephant'
Kita dapat menambahkan makhluk baru ke kebun binatang; makhluk tersebut ditambahkan di ujung paling kanan.
Kode Sage (cadangan statis)
zoo.append('ostrich'); zoo
Keluaran referensi (cadangan statis)
['snake', 'parrot', 'elephant', 'baboon', 'beetle', 'ostrich']
Kita dapat menghapus seekor makhluk.
Kode Sage (cadangan statis)
zoo.remove('parrot')
zoo
Keluaran referensi (cadangan statis)
['snake', 'elephant', 'baboon', 'beetle', 'ostrich']
Kita dapat mengambil suatu subsenarai. Di sini kita mulai dari elemen 1 (gajah) dan berlanjut hingga, tetapi tidak menyertakan, elemen 3 (kumbang). Sekali lagi, hal ini agak aneh, tetapi kelak akan terasa wajar. Untuk sekarang, perhatikan bahwa kita mengambil dua elemen senarai, tepat \(3-1=2\) elemen.
Kode Sage (cadangan statis)
mammals = zoo[1:3]
mammals
Keluaran referensi (cadangan statis)
['elephant', 'baboon']
Kita sering ingin mengetahui apakah dua senarai sama. Untuk itu kita perlu mengurutkan senarai terlebih dahulu. Suatu fungsi membuat senarai baru yang sudah terurut, tanpa mengubah senarai asli. Jadi, kita perlu menyimpan senarai baru tersebut dengan nama baru.
Kode Sage (cadangan statis)
newzoo = sorted(zoo)
newzoo
Keluaran referensi (cadangan statis)
['baboon', 'beetle', 'elephant', 'ostrich', 'snake']
Kode Sage (cadangan statis)
zoo.sort()
zoo
Keluaran referensi (cadangan statis)
['baboon', 'beetle', 'elephant', 'ostrich', 'snake']
Perhatikan bahwa jika Anda menjalankan sel komputasi terakhir ini, kebun binatang Anda telah berubah dan beberapa perintah di atas belum tentu berjalan dengan cara yang sama. Jika ingin bereksperimen, kembalilah ke saat kebun binatang pertama kali dibuat, lalu mulai jalankan kembali sel-sel dari sana dengan kebun binatang yang baru.
Konstruksi yang disebut komprehensi senarai sangatlah ampuh, karena konstruksi ini hampir persis mencerminkan notasi yang kita gunakan untuk mendeskripsikan himpunan. Misalkan kita ingin membentuk bentuk jamak nama-nama makhluk dalam kebun binatang kita. Kita membentuk senarai baru berdasarkan semua elemen senarai lama.
Kode Sage (cadangan statis)
plurality_zoo = [animal+'s' for animal in zoo]
plurality_zoo
Keluaran referensi (cadangan statis)
['baboons', 'beetles', 'elephants', 'ostrichs', 'snakes']
Hampir tepat seperti bunyinya: kita menambahkan “s” pada setiap nama hewan, untuk setiap hewan dalam kebun binatang, lalu menempatkannya dalam senarai baru. Sempurna. (Kecuali bentuk jamak “ostrich” yang keliru.)

Subbagian 1.6.5 Senarai Bilangan Bulat

Satu jenis senarai terakhir, kali ini berisi bilangan. Fungsi srange() akan membuat senarai bilangan bulat. (Huruf “s” dalam namanya berarti “Sage”, sehingga fungsi ini menghasilkan bilangan bulat yang paling baik dipahami Sage. Banyak kesulitan awal dengan Sage dan teori grup dapat dikurangi dengan hanya menggunakan perintah ini untuk membuat senarai bilangan bulat.) Dalam bentuk paling sederhana, pemanggilan seperti srange(12) akan membuat senarai berisi 12 bilangan bulat, dimulai dari nol dan berlanjut hingga, tetapi tidak menyertakan, 12. Apakah pola ini terasa tidak asing?
Kode Sage (cadangan statis)
dozen = srange(12); dozen
Keluaran referensi (cadangan statis)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]
Berikut dua bentuk lainnya, yang semestinya dapat Anda pahami dengan mempelajari contoh-contohnya.
Kode Sage (cadangan statis)
teens = srange(13, 20); teens
Keluaran referensi (cadangan statis)
[13, 14, 15, 16, 17, 18, 19]
Kode Sage (cadangan statis)
decades = srange(1900, 2000, 10); decades
Keluaran referensi (cadangan statis)
[1900, 1910, 1920, 1930, 1940, 1950, 1960, 1970, 1980, 1990]

Subbagian 1.6.6 Menyimpan dan Membagikan Pekerjaan Anda

Terdapat tombol “Save” di sudut kanan atas Sage Notebook. Tombol ini menyimpan salinan lembar kerja saat ini sehingga kelak Anda dapat mengambil kembali pekerjaan tersebut dari dalam notebook, walaupun Anda harus menjalankan ulang semua sel ketika membuka kembali lembar kerja.
Di sebelah kiri juga terdapat daftar tarik-turun “File”, tepat di atas sel komputasi paling atas (jangan tertukar dengan butir menu File milik peramban Anda!). Di sini Anda akan melihat pilihan berlabel “Save worksheet to a file...” Ketika memilihnya, Anda membuat salinan lembar kerja dalam format sws (singkatan dari “Sage WorkSheet”). Anda dapat mengirim berkas ini melalui surel atau memasangnya di situs web; pengguna Sage lain dapat menggunakan tautan “Upload” pada halaman beranda notebook mereka untuk memasukkan salinan lembar kerja Anda ke notebook mereka.
Ada cara lain untuk membagikan lembar kerja yang dapat Anda coba, tetapi cara ini memungkinkan Anda membagikan lembar kerja apa pun kepada hampir siapa pun dan di mana pun.
Kita telah membahas banyak hal dalam bagian ini, jadi kembalilah kelak untuk mempelajari butir-butir kecil yang mungkin terlewat. Masih ada banyak fitur lain dalam Sage Notebook yang belum kita bahas.