Sentiment Analysis (SA) is a field of text mining research that is still evolving. SA is the algorithmic treatment of text's opinions, sentiments, and subjectivity to determine if a text contains negative, positive, or neutral feelings. We present a thorough introduction to sentiment analysis. This approach is deduced in a simple, intuitive manner, and implementation advice is provided. The many types, uses, challenges and techniques for sentiment analysis, as well as examples, are also explored in this study. The major goal of this survey is to provide a near-complete picture of SA techniques and related topics, compare sentiment analysis and social network analysis in the latter section of the paper, highlighting the distinctions and how they can both be used along with brief information.