Faktor-faktor yang mempengaruhi pengetahuan menurut Notoatmodjo (2003) adalah:
- Sosial ekonomi
Lingkungan sosial akan mendukung tingginya pengetahuan seseorang, sedang ekonomi dikaitkan dengan pendidikan. Jika ekonomi baik makatingkat pendidikan akan tinggi sehingga tingkat pengetahuan juga akan tinggi
- Kultur (budaya, agama)
Budaya sangat berpengaruh terhadap tingkat pengetahuan seseorang,karena informasi yang baru dan diambil yang sesuai dengan budaya yang ada dan agama yang dianut.
- Pendidikan
Semakin tinggi pendidikan seseorang maka ia akan mudah menerima hal-hal baru dan mudah menyesuaikan dengan hal yang baru tersebut. Pengetahuan sangat erat kaitannya dengan pendidikan dimana diharapkan seseorang dengan pendidikan tinggi, maka orang tersebut akan semakin luas pula pengetahuannya. Namun perlu ditekankan bahwa seorang yang berpendidikan rendah tidak berarti mutlak berpengetahuan rendah pula. Peningkatan pengetahuan tidak mutlak diperoleh di pendidikan formal, akan tetapi juga dapat diperoleh pada pendidikan non formal. Pengetahuan seseorang tentang sesuatu obyek juga mengandung dua aspek yaitu aspek positif dan negatif. Keduaaspek inilah yang akhirnya akan menentukan sikap seseorang terhadap obyek tertentu. Semakin banyak aspek positif dari obyek yang diketahui, akan menumbuhkan sikap makin positif terhadap obyek tersebut .
- Pengalaman
Berkaitan dengan umur dan pendidikan individu, semakin tinggi pendidikan seseorang maka semakin luas pengalamannya dan semakintua seseorang maka akan semakin banyak pengalamannya.