Lewati ke konten utama

Keterampilan Pemrograman Dasar di R

Latih keterampilan pemrograman dasar di R dengan menggunakan materi dari kursus gratis DataCamp Model a Quantitative Trading Strategy in R.
Diperbarui 28 Sep 2026  · 5 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Jika Anda ingin mengikuti kursus gratis kami Model a Quantitative Trading Strategy in R, berikut tautannya.

Membaca file: read.csv()

Langkah pertama sebelum kita dapat menganalisis data saham adalah mengunduhnya dan memuatnya ke workspace R. Memuat dataset ke workspace mirip seperti membuka file data di Excel, setelah itu kita dapat menjalankan fungsi yang tersedia pada data tersebut. Di R, tabel data umumnya disimpan sebagai objek yang disebut data frame.

Dalam bab ini, kita akan menggunakan data saham bernama MARUTI yang diunduh dari Yahoo Finance. Datanya tersedia di http://assets.datacamp.com/course/quantinsti/data_ch1.csv. Dataset ini berisi data harian OHLC (Open High Low Close) dan Volume Maruti dari 1 Jan 2008 hingga 31 Des 2013.

Dalam latihan ini, kita akan mulai dengan mendefinisikan object baru di R, bernama data_maruti. Sintaks untuk mendefinisikan variable atau object baru sangatlah sederhana:

variable_name <- value

di mana variable_name adalah nama object atau variable baru dan value adalah nilai yang diberikan.

Kita akan menyimpan file data .csv ke dalam data_maruti. function yang digunakan untuk membaca file .csv dan menyimpannya sebagai data frame adalah read.csv(). Sintaks untuk memanggil sebuah fungsi cukup sederhana:

function_name(object1, object2, argument1, argument2, ....)

di mana function_name adalah nama function dan object1, object1 adalah objek atau variabel tempat Anda ingin menjalankan fungsi tersebut. arguments adalah spesifikasi yang ingin Anda berikan saat menjalankan fungsi.

Dalam latihan ini, kita akan belajar membuat variabel baru menggunakan sebuah fungsi.

Instruksi

  • Periksa data frame dummy yang diunggah sebagai contoh untuk Anda. Perhatikan bahwa ada tiga argumen dalam fungsi read.csv(): file, sama dengan URL data, header, nilai logika yang menunjukkan apakah file memuat nama variabel pada baris pertama (TRUE dalam kasus ini) dan stringsAsFactors, yang menentukan apakah string dalam tabel harus disimpan sebagai faktor (FALSE dalam kasus ini).
  • Buat variabel baru data_maruti yang memuat data harian Maruti dari 1 Jan 2008 hingga 31 Des 2013. Pastikan untuk menetapkan header sebagai TRUE dan stringAsFactors sebagai FALSE.
  • Terakhir, periksa baris-baris pertama dari data frame yang telah Anda muat menggunakan fungsi head(). Cukup jalankan head(data_maruti) untuk memanggil fungsi tersebut.
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6IlxuIiwic2Ft cGxlIjoiXG4jIFRoaXMgaXMgZXhhbXBsZSBjb2RlIHRvIHNob3cgeW91IGhv dyB0byByZWFkIGEgLmNzdiBmaWxlXG5kdW1teSA8LSByZWFkLmNzdihmaWxl ID0gXCJodHRwOi8vYXNzZXRzLmRhdGFjYW1wLmNvbS9jb3Vyc2UvcXVhbnRp bnN0aS9kYXRhX2NoMS5jc3ZcIiwgaGVhZGVyID0gVFJVRSwgc3RyaW5nc0Fz RmFjdG9ycyA9IEZBTFNFKVxuXG4jIFJlYWQgb3V0IHRoZSAuY3N2IGZpbGUg c2F2ZWQgYXQgJ2h0dHA6Ly9hc3NldHMuZGF0YWNhbXAuY29tL2NvdXJzZS9x dWFudGluc3RpL2RhdGFfY2gxLmNzdidcbmRhdGFfbWFydXRpIDwtXG5cbiMg SW5zcGVjdCB0aGUgZGF0YSBmcmFtZSIsInNvbHV0aW9uIjoiXG4jIFRoaXMg aXMgZXhhbXBsZSBjb2RlIHRvIHNob3cgeW91IGhvdyB0byByZWFkIGEgLmNz diBmaWxlXG5kdW1teSA8LSByZWFkLmNzdihmaWxlID0gXCJodHRwOi8vYXNz ZXRzLmRhdGFjYW1wLmNvbS9jb3Vyc2UvcXVhbnRpbnN0aS9kYXRhX2NoMS5j c3ZcIiwgaGVhZGVyID0gVFJVRSwgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNF KVxuXG4jIFJlYWQgb3V0IHRoZSAuY3N2IGZpbGUgc2F2ZWQgYXQgJ2h0dHA6 Ly9hc3NldHMuZGF0YWNhbXAuY29tL2NvdXJzZS9xdWFudGluc3RpL2RhdGFf Y2gxLmNzdidcbmRhdGFfbWFydXRpIDwtIHJlYWQuY3N2KGZpbGUgPSBcImh0 dHA6Ly9hc3NldHMuZGF0YWNhbXAuY29tL2NvdXJzZS9xdWFudGluc3RpL2Rh dGFfY2gxLmNzdlwiLCBoZWFkZXIgPSBUUlVFLCBzdHJpbmdzQXNGYWN0b3Jz ID0gRkFMU0UpXG5cbiMgSW5zcGVjdCB0aGUgZGF0YSBmcmFtZVxuaGVhZChk YXRhX21hcnV0aSkiLCJzY3QiOiJcbnRlc3RfZXJyb3IoKVxudGVzdF9mdW5j dGlvbihcInJlYWQuY3N2XCIsXCJmaWxlXCIsaW5jb3JyZWN0X21zZyA9IFwi SGF2ZSB5b3Ugc3BlY2lmaWVkIHRoZSA8Y29kZT5maWxlPC9jb2RlPiBhcmd1 bWVudCBjb3JyZWN0bHkgaW5zaWRlIHRoZSA8Y29kZT5yZWFkLmNzdigpPC9j b2RlPiBmdW5jdGlvbj9cIilcbnRlc3RfZnVuY3Rpb24oXCJyZWFkLmNzdlwi LFwiaGVhZGVyXCIsbm90X2NhbGxlZF9tc2cgPSBcIk1ha2Ugc3VyZSB0byBz ZXQgdGhlIDxjb2RlPmhlYWRlcjwvY29kZT4gYXJndW1lbnQgaW5zaWRlIHRo ZSA8Y29kZT5yZWFkLmNzdigpPC9jb2RlPiBmdW5jdGlvbi5cIiwgaW5jb3Jy ZWN0X21zZyA9IFwiTWFrZSBzdXJlIHRvIHNldCB0aGUgPGNvZGU+aGVhZGVy PC9jb2RlPiBhcmd1bWVudCB0byA8Y29kZT5UUlVFPC9jb2RlPiBpbnNpZGUg dGhlIDxjb2RlPnJlYWQuY3N2KCk8L2NvZGU+IGZ1bmN0aW9uLlwiKVxudGVz dF9mdW5jdGlvbihcInJlYWQuY3N2XCIsXCJzdHJpbmdzQXNGYWN0b3JzXCIsIG5vdF9jYWxsZWRfbXNnID0gXCJNYWtlIHN1cmUgdG8gc2V0IHRoZSA8Y29k ZT5zdHJpbmdzQXNGYWN0b3JzPC9jb2RlPiBhcmd1bWVudCBpbnNpZGUgdGhl IDxjb2RlPnJlYWQuY3N2KCk8L2NvZGU+IGZ1bmN0aW9uLlwiLCBpbmNvcnJl Y3RfbXNnID0gXCJNYWtlIHN1cmUgdG8gc2V0IHRoZSA8Y29kZT5zdHJpbmdz QXNGYWN0b3JzPC9jb2RlPiBhcmd1bWVudCB0byA8Y29kZT5GQUxTRTwvY29k ZT4gaW5zaWRlIHRoZSA8Y29kZT5yZWFkLmNzdigpPC9jb2RlPiBmdW5jdGlv bi5cIilcbnRlc3Rfb2JqZWN0KFwiZGF0YV9tYXJ1dGlcIixpbmNvcnJlY3Rf bXNnID0gXCJUaGUgPGNvZGU+ZGF0YV9tYXJ1dGk8L2NvZGU+IHZhcmlhYmxl IGlzIG5vdCBpbml0aWFsaXplZCBhcyBleHBlY3RlZC4gVGFrZSBhIGxvb2sg YXQgdGhlIGhpbnQuXCIpXG50ZXN0X2Z1bmN0aW9uKFwiaGVhZFwiLCBcInhc Iiwgbm90X2NhbGxlZF9tc2cgPSBcIlVzZSB0aGUgZnVuY3Rpb24gPGNvZGU+ aGVhZCgpPC9jb2RlPiB0byBpbnNwZWN0IHRoZSBmaXJzdCByb3cgb2YgPGNv ZGU+ZGF0YV9tYXJ1dGk8L2NvZGU+LlwiLCBpbmNvcnJlY3RfbXNnID0gXCJN YWtlIHN1cmUgdG8gcGFzcyB0aGUgPGNvZGU+ZGF0YV9tYXJ1dGk8L2NvZGU+ IHZhcmlhYmxlIHRvIHRoZSBmdW5jdGlvbiA8Y29kZT5oZWFkKCk8L2NvZGU+ LiBUcnkgYWdhaW4uXCIpXG5zdWNjZXNzX21zZyhcIkdyZWF0ISBDaGVjayBv dXQgdGhlIGNvbHVtbiBuYW1lcyBvZiB5b3VyIGRhdGEgc2V0LiBXaGF0IGRv IHlvdSB0aGluayB0aGV5IG1lYW4/XCIpIiwiaGludCI6IlxuUmVhZCB0aGlzIGh0dHA6Ly93d3cuci10dXRvci5jb20vci1pbnRyb2R1Y3Rpb24vZGF0YS1m cmFtZS9kYXRhLWltcG9ydC4ifQ==

Melihat Sekilas Data Anda

Anda sekarang sudah familiar dengan fungsi head(), yang digunakan untuk mencetak beberapa baris pertama dari data_maruti.

Dalam latihan ini, Anda akan mencetak beberapa baris terakhir atau tail dari dataset menggunakan fungsi tail(). Anda juga akan mengetahui cara menanyakan jumlah baris dan kolom dari dataset.

Data frame data_maruti sudah dimuat di workspace untuk Anda.

Instruksi

  • Cetak enam baris terakhir dari data_maruti menggunakan fungsi tail().
  • Cetak jumlah baris di data_maruti menggunakan fungsi nrow().
  • Cetak jumlah kolom di data_maruti menggunakan fungsi ncol().
eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6IlxuI0Rvd25s b2FkIGRhdGEgc2V0XG5kYXRhX3VybCA9IFwiaHR0cDovL2Fzc2V0cy5kYXRh Y2FtcC5jb20vY291cnNlL3F1YW50aW5zdGkvZGF0YV9jaDEuY3N2XCJcbmRh dGFfbWFydXRpID0gcmVhZC5jc3YoZmlsZSA9IGRhdGFfdXJsLCBoZWFkZXIg PSBUUlVFLCBzdHJpbmdzQXNGYWN0b3JzID0gRkFMU0UpIiwic2FtcGxlIjoi XG4jIFByaW50IGxhc3Qgc2l4IHJvd3Mgb2YgJ2RhdGFfbWFydXRpJ1xuXG5c biMgUHJpbnQgdGhlIG51bWJlciBvZiByb3dzIGluIGBkYXRhX21hcnV0aWBc blxuXG4jIFByaW50IHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiBgZGF0YV9t YXJ1dGlgIiwic29sdXRpb24iOiJcbiMgUHJpbnQgbGFzdCBzaXggcm93cyBv ZiAnZGF0YV9tYXJ1dGl'1IHVzaW5nIGZ1bmN0aW9uICd0YWlsKCknXG50YWlsKGRhdGFfbWFydXRpKVxuXG4jIFByaW50IHRoZSBudW1iZXIgb2Ygcm93cyBpbiBgZGF0YV9tYXJ1dGlgIHVzaW5nIGZ1bmN0aW9uICducm93KCknXG5ucm93KGRhdGFfbWFydXRpKVxuXG4jIFByaW50IHRoZSBudW1iZXIgb2YgY29sdW1ucyBpbiBgZGF0YV9tYXJ1dGlgIHVzaW5nIGZ1bmN0aW9uICduY29sKCknXG5uY29sKGRhdGFfbWFydXRpKSIsInNjdCI6IlxuXG50ZXN0X2Vycm9yKClcbnRlc3RfZnVuY3Rpb24oXCJ0YWlsXCIsIFwieFwiLCBub3RfY2FsbGVkX21zZyA9IFwiSGF2ZSB5b3UgdXNlZCB0aGUgZnVuY3Rpb24gPGNvZGU+dGFpbCgpPC9jb2RlPj9cIixcbiAgICAgICAgICAgICAgaW5jb3JyZWN0X21zZyA9IFwiTWFrZSBzdXJlIHRvIHBhc3MgdGhlIGNvcnJlY3QgZGF0YSBmcmFtZSB0byB0aGUgPGNvZGU+dGFpbCgpPC9jb2RlPiBmdW5jdGlvbi5cIilcbnRlc3RfZnVuY3Rpb24oXCJucm93XCIsIFwieFwiLCBub3RfY2FsbGVkX21zZyA9IFwiSGF2ZSB5b3UgdXNlZCB0aGUgZnVuY3Rpb24gPGNvZGU+bmNvbCgpPC9jb2RlPj9cIixcbiAgICAgICAgICAgICAgaW5jb3JyZWN0X21zZyA9IFwiTWFrZSBzdXJlIHRvIHBhc3MgdGhlIGNvcnJlY3QgZGF0YSBmcmFtZSB0byB0aGUgPGNvZGU+bmNvbCgpPC9jb2RlPiBmdW5jdGlvbi5cIilcbnRlc3RfZnVuY3Rpb24oXCJuY29sXCIsIFwieFwiLCBub3RfY2FsbGVkX21zZyA9IFwiSGF2ZSB5b3UgdXNlZCB0aGUgZnVuY3Rpb24gPGNvZGU+bmNvbCgpPC9jb2RlPj9cIixcbiAgICAgICAgICAgICAgaW5jb3JyZWN0X21zZyA9IFwiTWFrZSBzdXJlIHRvIHBhc3MgdGhlIGNvcnJlY3QgZGF0YSBmcmFtZSB0byB0aGUgPGNvZGU+bmNvbCgpPC9jb2RlPiBmdW5jdGlvbi5cIilcbnN1Y2Nlc3NfbXNnKFwiR3JlYXQgam9iISBDb250aW51ZSB0byB0aGUgbmV4dCBleGVyaXNlLlwiKSIsImhpbnQiOiJcblRoZSBgYHRhaWwoKWBgIGZ1bmN0aW9uIHByaW50cyB0aGUgbGFzdCBzaXggcm93cyBi eSBkZWZhdWx0LCBzbyB0aGVyZSdzIG5vIG5lZWQgdG8gc3BlY2lmeSBhZGRp dGlvbmFsIGFyZ3VtZW50cy4gVGhlIHN5bnRheCB0byBydW4gYSBmdW5jdGlv biBvdmVyIGEgZGF0YSBmcmFtZSBgYGZ1bmN0aW9uX25hbWUoZGZfbmFtZSlg YC4gRm9yIGV4YW1wbGUsIHRvIHJ1biB0aGUgZnVuY3Rpb24 gYGBoZWFkKClgYCBvdmVyIGBkYXRhX21hcnV0aWAsIHdlIHNpbXBseSB3cml0ZSBgYGhlYWQoZGF0YV9tYXJ1dGkpYGAuIn0=

Tipe, Kelas, dan Dimensi Objek di R

Setiap variabel di R adalah objek yang memiliki tipe, kelas, dan dimensinya sendiri. Hanya ada beberapa tipe variabel dasar seperti numeric (mis. 5 atau 5.0), character (mis. "a") dan logical (mis. TRUE). Dimensi adalah jumlah baris dan kolom dari objek. Terakhir, kelas sebuah objek dapat mengubah perilaku fungsi yang sama. Misalnya, fungsi print() akan berperilaku berbeda untuk variabel yang berupa data frame dibandingkan dengan variabel yang berupa model linear.

Kelas objek yang kita gunakan dalam bab ini adalah vektor dan data frame. Data frame, seperti disebutkan sebelumnya, mirip tabel Excel yang paling umum digunakan dalam komputasi keuangan. Vektor mirip dengan satu baris atau kolom data yang terdiri dari tipe variabel yang sama. Dengan kata lain, sebuah data frame tersusun dari vektor-vektor.

Instruksi

Cetak tipe, kelas, dan dimensi dari objek data_maruti menggunakan fungsi typeof(), class(), dan dim() secara berurutan. Data frame data_maruti sudah dimuat di workspace.

eyJsYW5ndWFnZSI6InIiLCJwcmVfZXhlcmNpc2VfY29kZSI6IlxuZGF0YV91 cmwgPSBcImh0dHA6Ly9hc3NldHMuZGF0YWNhbXAuY29tL2NvdXJzZS9xdWFu dGluc3RpL2RhdGFfY2gxLmNzdlwiXG5kYXRhX21hcnV0aSA9IHJlYWQuY3N2KGZpbGUgPSBkYXRhX3VybCwgaGVhZGVyID0gVFJVRSwgc3RyaW5nc0FzRmFjdG9ycyA9IEZBTFNFKSIsInNhbXBsZSI6IlxuIyBQcmludCB0aGUgY2xhc3Mg b2YgJ2RhdGFfbWFydXRpJ1xuXG5cbiMgUHJpbnQgdGhlIHR5cGUgb2YgJ2Rh dGFfbWFydXRpJ1xuXG5cbiMgUHJpbnQgdGhlIGRpbWVuc2lvbnMgb2YgJ2Rh dGFfbWFydXRpJyIsInNvbHV0aW9uIjoiXG4jIFByaW50IHRoZSBjbGFzcyBv ZiAnZGF0YV9tYXJ1dGknXG5jbGFzcyhkYXRhX21hcnV0aSlcblxuIyBQcmlu dCB0aGUgdHlwZSBvZiAnZGF0YV9tYXJ1dGknXG50eXBlb2YoZGF0YV9tYXJ1 dGkpXG5cbiMgUHJpbnQgdGhlIGRpbWVuc2lvbnMgb2YgJ2RhdGFfbWFydXRp J1xuZGltKGRhdGFfbWFydXRpKSIsInNjdCI6IlxudGVzdF9vdXRwdXRfY29u dGFpbnMoXCJjbGFzcyhkYXRhX21hcnV0aSlcIiwgaW5jb3JyZWN0X21zZyA9 IFwiVXNlIHRoZSBmdW5jdGlvbiA8Y29kZT5jbGFzcygpPC9jb2RlPiBhbmQg cGFzcyBvbiA8Y29kZT5kYXRhX21hcnV0aTwvY29kZT4gYXMgdGhlIGFyZ3Vt ZW50LlwiKVxudGVzdF9vdXRwdXRfY29udGFpbnMoXCJ0eXBlb2YoZGF0YV9t YXJ1dGkpXCIsIGluY29ycmVjdF9tc2cgPSBcIlVzZSB0aGUgZnVuY3Rpb24g PGNvZGU+dHlwZW9mKCk8L2NvZGU+IGFuZCBwYXNzIG9uIDxjb2RlPmRhdGFf bWFydXRpPC9jb2RlPiBhcyB0aGUgYXJndW1lbnQuXCIpXG50ZXN0X291dHB1 dF9jb250YWlucyhcImRpbShkYXRhX21hcnV0aSlcIiwgaW5jb3JyZWN0X21z ZyA9IFwiVXNlIHRoZSBmdW5jdGlvbiA8Y29kZT5kaW0oKTwvY29kZT4gYW5k IHBhc3Mgb24gPGNvZGU+ZGF0YV9tYXJ1dGk8L2NvZGU+IGFzIHRoZSBhcmd1 bWVudC5cIilcbnN1Y2Nlc3NfbXNnKFwiVGhpcyBpcyBnb2luZyB3ZWxsISBX ZSBoYXZlIG5vdyBjb25maXJtZWQgdGhhdCA8Y29kZT5kYXRhX21hcnV0aTwv Y29kZT4gaXMgaW4gZmFjdCBhIGRhdGEgZnJhbWUuIExldCB1cyBub3cgbGVh cm4gdG8gdXNlIHNvbWUgZnVuY3Rpb25zIGluIFIgdG8gY2FsY3VsYXRlIHJl dHVybnMhXCIpIiwiaGludCI6IlxuVGhpcyBpcyBmYWlybHkgYmFzaWMhIEp1 c3QgdXNlIHRoZSBnaXZlbiBmdW5jdGlvbnMgYXMgeW91IGRpZCBpbiBwcmV2 aW91cyBxdWVzdGlvbi4ifQ==


Jika Anda ingin belajar lebih banyak dari kursus ini, berikut tautannya.

Lihat tutorial DataCamp Objects and Classes in R.

Topik
R
Data Science

Pelajari lebih lanjut tentang R

Kursus

Pengantar R

4 jam
3.1M
Kuasai dasar analisis data di R, termasuk vectors, lists, dan data frames, lalu praktikkan R dengan data sets nyata.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya